\times 2/3 { c8 c c } \times 2/3 { c8 c c }
@end lilypond
+Use the @code{\tweak} function to override nested tuplets beginning at the
+same music moment. In this example, @code{\tweak} specifies fraction
+text for the
+outer @code{TupletNumber} and denominator text for the @code{TupletNumber}
+of the first of the three inner tuplets.
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff {
+ \tweak #'text #tuplet-number::calc-fraction-text
+ \times 4/3 {
+ \tweak #'text #tuplet-number::calc-denominator-text
+ \times 2/3 { c'8[ c'8 c'8] }
+ \times 2/3 { c'8[ c'8 c'8] }
+ \times 2/3 { c'8[ c'8 c'8] }
+ }
+}
+@end lilypond
+
+Here @code{\tweak} and @code{\override} work together to specify
+@code{TupletBracket} direction. The first @code{\tweak} positions
+the @code{TupletBracket} of the outer
+tuplet above the staff. The second @code{\tweak} positions the
+@code{TupletBracket} of the first of the three inner tuplets below the
+staff. Note that this pair of @code{\tweak} functions affects only
+the outer tuplet and the first of the three inner tuplets because only
+those two tuplets begin at the same music moment. We use @code{\override}
+in the usual way to position the @code{TupletBrackets} of
+the second and third of the inner tuplets below the staff.
+
+@lilypond[quote,ragged-right,verbatim]
+\new Staff {
+ \tweak #'text #tuplet-number::calc-fraction-text
+ \tweak #'direction #up
+ \times 4/3 {
+ \tweak #'direction #down
+ \times 2/3 { c'8[ c'8 c'8] }
+ \override TupletBracket #'direction = #down
+ \times 2/3 { c'8[ c'8 c'8] }
+ \times 2/3 { c'8[ c'8 c'8] }
+ }
+}
+@end lilypond
+
Tuplet brackets can be made to run to prefatory matter or
the next note
@refbugs
Kneed beams are inserted automatically when a large gap is detected
-between the note heads. This behavior can be tuned through the object.
+between the note heads. This behavior can be tuned through the
+@code{auto-knee-gap} object.
Automatically kneed cross-staff beams cannot be used together with
hidden staves. See @ref{Hiding staves}.
\header { texidoc = "
The property @code{chordNameExceptions} can used to store a list of
-special notations for specific chords.
+special notations for specific chords.
" }
% 7sus4 denoted with ^7 wahh
\version "2.10.12"
\header { texidoc = "
-The layout of the major 7 can be tuned with @code{majorSevenSymbol}
+The layout of the major 7 can be tuned with @code{majorSevenSymbol}
" }
\chords {
\version "2.10.12"
\header { texidoc = "
-l.v. ties should avoid dots and staff lines, similar to normal ties.
-They have fixed size. Their formatting can be tuned with
- @{tie-configuration@}
+Laissez vibrer ties should avoid dots and staff lines, similar to
+normal ties. They have fixed size. Their formatting can be tuned with
+@code{tie-configuration}
" }
\paper {
Between notes, there may be simple glissando lines. Here, the first
two glissandi are not consecutive.
+
The engraver does no time-keeping, so it involves some trickery to get
-<< @{ s8 s8 s4 @} @{ c4 \gliss d4 @} >> working correctly.
+@code{>} working correctly.
" }
\layout{
\version "2.10.12"
\header { texidoc = "
-Marks can be printed as numbers. By setting @{markFormatter@} we may
-choose a different style of mark printing. Also, marks can be specified
-manually, with a markup argument.
+Marks can be printed as numbers.
+
+
+By setting @code{markFormatter} we may choose a different style of mark
+printing. Also, marks can be specified manually, with a markup
+argument.
" }
\paper {
\version "2.10.12"
\header { texidoc = "
-The @{\tag@} command marks music expressions with a name. These tagged
-expressions can be filtered out later. This mechanism can be used to
-make different versions of the same music. In this example, the top
-stave displays the music expression with all tags included. The bottom
-two staves are filtered: the part has cue notes and fingerings, but the
-score has not.
+The @code{\tag} command marks music expressions with a name. These
+tagged expressions can be filtered out later. This mechanism can be
+used to make different versions of the same music. In this example, the
+top stave displays the music expression with all tags included. The
+bottom two staves are filtered: the part has cue notes and fingerings,
+but the score has not.
" }
\layout {
\version "2.10.12"
\header { texidoc = "
-By setting @{voltaOnThisStaff@}, repeats can be put also over other
-staves than the topmost one in a score.
+By setting @code{voltaOnThisStaff}, repeat brackets can be put over
+staves other than the topmost one in a score.
" }
\layout {
\version "2.10.12"
\header { texidoc = "
-By setting properties in @{NonMusicalPaperColumn@}, vertical spacing of
-alignments can be adjusted per system.
+By setting properties in @code{NonMusicalPaperColumn}, vertical spacing
+of alignments can be adjusted per system.
-By setting @{alignment-extra-space@} or @{fixed-alignment-extra-space@}
-an individual system may be stretched vertically.
-For technical reasons, @{overrideProperty@} has to be used for setting
-properties on individual object. @{override@} in a @{\context@} block
-may still be used for global overrides
+By setting @code{alignment-extra-space} or
+@code{fixed-alignment-extra-space} an individual system may be
+stretched vertically.
+
+
+For technical reasons, @code{overrideProperty} has to be used for
+setting properties on individual objects. @code{override} in a
+@code{\context} block may still be used for global overrides.
" }
#(set-global-staff-size 13)
\version "2.10.12"
\header { texidoc = "
-By setting properties in @{NonMusicalPaperColumn@}, vertical spacing of
-page layout can be adjusted.
+By setting properties in @code{NonMusicalPaperColumn}, vertical spacing
+of page layout can be adjusted.
-For technical reasons, @{overrideProperty@} has to be used for setting
-properties on individual object. @{\override@} may still be used for
-global overrides.
-By setting @{annotate-spacing@}, we can see the effect of each
-property.
+For technical reasons, @code{overrideProperty} has to be used for
+setting properties on individual objects. @code{\override} may still be
+used for global overrides.
+
+
+By setting @code{annotate-spacing}, we can see the effect of each
+property.
" }
#(set-global-staff-size 11)
\header { texidoc = "
Proportional notation can be created by setting
-@{proportionalNotationDuration@}. Notes will be spaced proportional to
-the distance for the given duration.
+@code{proportionalNotationDuration}. Notes will be spaced proportional
+to the distance for the given duration.
" }
\paper {
\version "2.10.12"
\header { texidoc = "
-With @{strict-note-spacing@} spacing for grace notes (even multiple
-ones), is floating as well.
+With @code{strict-note-spacing} spacing for grace notes (even multiple
+ones) is floating as well.
" }
\paper {
\version "2.10.12"
\header { texidoc = "
-If @{strict-note-spacing@} is set, then spacing of notes is not
-influenced by bars and clefs half-way on the system. Rather, they are
-put just before the note that occurs at the same time. This may cause
-collisions.
+If @code{strict-note-spacing} is set spacing of notes is not influenced
+by bars or clefs part way along the system. Rather, they are put just
+before the note that occurs at the same time. This may cause
+collisions.
" }
\paper {
\header { texidoc = "
The vertical positions of staff lines may be specified individually, by
-setting the @{line-positions@} property of the StaffSymbol.
+setting the @code{line-positions} property of the StaffSymbol.
" }
\new Staff \relative c' {
\header { texidoc = "
The default font families for text can be overridden with
-@{make-pango-font-tree@}
+@code{make-pango-font-tree}.
" }
\paper {
\header { texidoc = "
Ambituses indicate pitch ranges for voices.
+
Accidentals only show up if they're not part of key signature.
-@{AmbitusNoteHead@} grobs also have ledger lines.
+@code{AmbitusNoteHead} grobs also have ledger lines.
" }
\layout {
\version "2.10.12"
\header { texidoc = "
-With the @{\lyricsto@} mechanism, individual lyric lines can be
+With the @code{\lyricsto} mechanism, individual lyric lines can be
associated with one melody line. For each lyric line, they can be tuned
-whether to follow melismata or not.
+whether to follow melismata or not.
" }
<<
Skyline::internal_merge_skyline (list<Building> *s1, list<Building> *s2,
list<Building> *const result)
{
+ if (s1->empty () || s2->empty ())
+ {
+ programming_error ("tried to merge an empty skyline");
+ return;
+ }
+
Real x = -infinity_f;
while (!s1->empty ())
{
Skyline::Skyline ()
{
sky_ = UP;
- empty_skyline (&buildings_);
+ empty_skyline (&buildings_);
}
Skyline::Skyline (Skyline const &src)
list<Building> other_bld;
list<Building> my_bld;
+ /* do the same filtering as in Skyline (vector<Box> const&, etc.) */
+ Interval iv = b[a];
+ iv.widen (horizon_padding);
+ if (iv.length () <= EPS || b[other_axis (a)].is_empty ())
+ return;
+
my_bld.splice (my_bld.begin (), buildings_);
single_skyline (Building (b, horizon_padding, a, sky_), b[a][LEFT], horizon_padding, &other_bld);
internal_merge_skyline (&other_bld, &my_bld, &buildings_);