By default it is set to @code{#f} for all within-staff objects,
and to a numerical value appropriate to each outside-staff object
when the object is created. The following table shows the default
-numerical values for some of the commonest outside-staff objects
-which are, by default, placed in the @code{Staff} or @code{Voice}
-contexts.
+numerical values for some of the commonest outside-staff objects.
@cindex spanners
@headitem Layout Object
@tab Priority
@tab Controls position of:
-@item @code{MultiMeasureRestText}
- @tab @code{450}
- @tab Text over full-bar rests
+@item @code{RehearsalMark}
+ @tab @code{1500}
+ @tab Rehearsal marks
+@item @code{MetronomeMark}
+ @tab @code{1000}
+ @tab Metronome marks
+@item @code{VoltaBracketSpanner}
+ @tab @code{600}
+ @tab Volta brackets
@item @code{TextScript}
@tab @code{450}
@tab Markup text
+@item @code{MultiMeasureRestText}
+ @tab @code{450}
+ @tab Markup text over full-bar rests
@item @code{OttavaBracket}
@tab @code{400}
@tab Ottava brackets
@item @code{DynamicLineSpanner}
@tab @code{250}
@tab All dynamic markings
-@item @code{VoltaBracketSpanner}
- @tab @code{100}
- @tab Volta brackets
+@item @code{BarNumber}
+ @tab @code{ 100}
+ @tab Bar numbers
@item @code{TrillSpanner}
@tab @code{50}
@tab Spanning trills
@cindex tweaking rehearsal mark placement
@cindex rehearsal marks, tweaking placement
-Note that bar numbers, metronome marks and rehearsal marks are not
-shown. By default these are created in the @code{Score} context and
-their @code{outside-staff-priority} is ignored relative to the layout
-objects which are created in the @code{Staff} context. If you wish to
-place bar numbers, metronome marks or rehearsal marks in accordance
-with the value of their @code{outside-staff-priority} the
-@code{Bar_number_engraver}, @code{Metronome_mark_engraver} or
-@code{Mark_engraver} respectively should be removed from the
-@code{Score} context and placed in the top @code{Staff} context. If
-this is done, these marks will be given the following default
-@code{outside-staff-priority} values:
-
-@multitable @columnfractions .3 .3
-@headitem Layout Object @tab Priority
-@item @code{RehearsalMark} @tab @code{1500}
-@item @code{MetronomeMark} @tab @code{1000}
-@item @code{BarNumber} @tab @code{ 100}
-@end multitable
-
If the default values of @code{outside-staff-priority} do not give you
the placing you want, the priority of any of the objects may be
overridden. Suppose we would like the ottava bracket to be placed
c,4 c c c |
@end lilypond
+Note that some of these objects, in particular bar numbers,
+metronome marks and rehearsal marks, live by default in the
+@code{Score} context, so be sure to use the correct context
+when these are being overriden.
+
@cindex slurs and outside-staff-priority
@cindex slurs and articulations
@cindex articulations and slurs
@c staff as an hint to performers. (Karl Hammer)
-TBC
+@c TBC
@c @seealso
@node set versus override
@subsection @code{\set} vs. @code{\override}
-TODO -- This section is probably unnecessary now.
+@c TODO -- This section is probably unnecessary now.
@ignore
We have seen two methods of changing properties: @code{\set} and
}
@end lilypond
-@seealso
-
-TODO: add missing @@ref's here.
+@c TODO: add appropriate @@ref's here.
@node References for percussion
@unnumberedsubsubsec References for percussion
-TODO add more.
+@c TODO add more references.
@itemize
d4 e d c
@end lilypond
-@cindex beaming in cadenzas
-@cindex beaming in unmetered music
-@cindex cadenza, beaming in
-@cindex unmetered music, beaming in
+@cindex beams, in cadenzas
+@cindex beams, in unmetered music
+@cindex cadenza, with beams
+@cindex unmetered music, with beams
Automatic beaming is disabled by @code{\cadenzaOn} and enabled
by @code{\cadenzaOff}. Therefore, all beaming in cadenzas
@code{\times}, but does not create a tuplet bracket; see
@ref{Scaling durations}.
-@cindex beaming in polymetric music
-@cindex beaming in polymetric meter
+@cindex beams, with polymetric meters
+@cindex polymetric meters, with beams
In this example, music with the time signatures of 3/4, 9/8, and
10/8 are used in parallel. In the second staff, shown durations
{ c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2 r1*2 }
@end lilypond
-Thes engravers split all running notes and rests at the bar line, and
+These engravers split all running notes and rests at the bar line, and
inserts ties for notes. One of its uses is to debug complex scores: if
the measures are not entirely filled, then the ties show exactly how
much each measure is off.
@cindex beams, manual
@cindex manual beams
-@cindex beams, setting rules for
-@cindex beams, custom rules for
+@cindex beams, customizing rules
@funindex \autoBeamOn
@funindex autoBeamOn
c16 c8
@end lilypond
-@cindex melismata, beams
-@cindex beams and melismata
+@cindex melismata, with beams
+@cindex beams, with melismata
@warning{If beams are used to indicate melismata in songs, then
automatic beaming should be switched off with @code{\autoBeamOff}
Beaming patterns that differ from the automatic defaults can be
created; see @ref{Setting automatic beam behavior}.
-
@predefined
@code{\autoBeamOff},
@code{\autoBeamOn}.
@endpredefined
-
-@snippets
-
-
-@cindex line breaks and beams
-@cindex beams and line breaks
-
+@cindex beams, line breaks
+@cindex line breaks, beams
+@cindex beams, with knee gap
+@cindex knee gap, with beams
@funindex breakable
+@snippets
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{beams-across-line-breaks.ly}
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{changing-beam-knee-gap.ly}
-@cindex \partcombine and \autoBeamOff
-@cindex \autoBeamOff and \partcombine
-
+@cindex beams, \partcombine with \autoBeamOff
+@cindex voices, \partcombine with \autoBeamOff
@lilypondfile [verbatim, lilyquote, ragged-right, texidoc, doctitle]
{partcombine-and-autobeamoff.ly}
-
@seealso
Notation Reference:
@ref{Manual beams},
@rinternals{beam-interface},
@rinternals{unbreakable-spanner-interface}.
-
@knownissues
+Beams can collide with note heads and accidentals in other
+voices. In this case use @ref{Manual beams}.
-Beams can collide with note heads and accidentals in other voices.
+@lilypond[quote,relative=1,verbatim]
+c8 des'! c, [ des'! ]
+@end lilypond
@node Setting automatic beam behavior
@unnumberedsubsubsec Setting automatic beam behavior
-
-@cindex automatic beams, tuning
-@cindex tuning automatic beaming
-@cindex automatic beam generation
-@cindex autobeam
-@cindex lyrics and beaming
+@cindex beams, with lyrics
+@cindex lyrics, with beams
@funindex autoBeaming
@funindex baseMoment
\repeat unfold 6 { a8 }
@end lilypond
-
The default automatic beaming settings for a time signature
are determined in @file{scm/time-signature-settings.scm}.
Changing the default automatic beaming settings
@end itemize
-In the rules above, the beam-type is the duration of the
+In the rules above, the @emph{beam-type} is the duration of the
shortest note in the beamed group.
-For reference, the default beaming rules are found in
+The default beaming rules can be found in
@file{scm/time-signature-settings.scm}.
@snippets
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{conducting-signs,-measure-grouping-signs.ly}
-@cindex beam, last in score
-@cindex beam, last in polyphonic voice
+@cindex beam, endings in a score
+@cindex beam, endings with multiple voices
@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
{beam-endings-in-score-context.ly}
This selects the language for the warning messages.
@item LILYPOND_GC_YIELD
-With this variable the memory footprint and performance can be
-adjusted. It is a percentage tunes memory management behavior. With
-higher values, the program uses more memory, with smaller values, it
-uses more CPU time. The default value is @code{70}.
+A variable, as a percentage, that tunes memory management
+behavior. A higher values means the program uses more memory, a
+smaller value means more CPU time is used. The default value is
+@code{70}.
@end table
@c used for news about the upcoming release; see CG 10.2
+
+@newsItem
+@subsubheading LilyPond 2.13.55 released! @emph{Mar 22, 2011}
+
+We are happy to announce the release of LilyPond 2.13.55. This
+release contains the usual number of bugfixes.
+
+Please note that this is @strong{not} the fourth release candidate,
+due to a few remaining Critical bugs.
+
+@newsEnd
+
+
@newsItem
@subsubheading Release candidate 3 withdrawn @emph{Mar 15, 2011}
PACKAGE_NAME=LilyPond
MAJOR_VERSION=2
MINOR_VERSION=13
-PATCH_LEVEL=55
+PATCH_LEVEL=56
MY_PATCH_LEVEL=
VERSION_STABLE=2.12.3
-VERSION_DEVEL=2.13.54
+VERSION_DEVEL=2.13.55
--- /dev/null
+\version "2.13.47"
+\header {
+ texidoc = "Beams only check for collisions with in-line accidentals."
+}
+
+{
+ \set suggestAccidentals = ##t
+ a'8[ fis'16 g'16]
+ \unset suggestAccidentals
+ c'8 [ des'' ]
+ r2
+}
\ No newline at end of file
--- /dev/null
+\header {
+ texidoc = "cross staff beams work with collisions."
+}
+
+\version "2.13.55"
+
+<<
+ \new Staff = "PianoRH" s4.
+ \new Staff = "PianoLH" {
+ d''8 [b''! \change Staff = "PianoRH" d'' ]
+ }
+>>
--- /dev/null
+\version "2.13.55"
+\header {
+ texidoc = "A syllable aligned with a melisma delimited with
+@code{\melisma} and @code{\melismaEnd} should be left-aligned.
+"
+}
+
+\relative c' {
+ c4 c c16\melisma d e f \melismaEnd g4
+}
+\addlyrics { ha ha looong __ ho }
--- /dev/null
+% Lily was here -- automatically converted by out/bin/midi2ly from /home/janneke/testmidi.mid
+\version "2.13.53"
+
+\layout {
+ \context {
+ \Voice
+ \remove "Note_heads_engraver"
+ \consists "Completion_heads_engraver"
+ \remove "Rest_engraver"
+ \consists "Completion_rest_engraver"
+ }
+}
+
+\header {
+texidoc="midi2ly @code{--duration-quant} preserves first note length (16)"
+options="--duration-quant=16"
+}
+
+trackAchannelA = {
+
+
+ \key a \major
+
+ % [TEXT_EVENT] Nokia Tune
+
+ \tempo 4 = 120
+
+
+ \key a \major
+
+ \time 3/8
+
+}
+
+trackA = <<
+ \context Voice = voiceA \trackAchannelA
+>>
+
+
+trackBchannelB = \relative c {
+ e'''4*41/192 r4*7/192 d4*41/192 r4*7/192 fis,4*89/192 r4*7/192 gis4*89/192
+ r4*7/192
+ | % 2
+ cis4*41/192 r4*7/192 b4*41/192 r4*7/192 d,4*89/192 r4*7/192 e4*89/192
+}
+
+trackB = <<
+ \context Voice = voiceA \trackBchannelB
+>>
+
+
+\score {
+ <<
+ \context Staff=trackB \trackA
+ \context Staff=trackB \trackB
+ >>
+ \layout {}
+ \midi {}
+}
void
Beam_collision_engraver::acknowledge_accidental (Grob_info i)
{
- covered_grobs_.push_back (i.grob ());
+ if (i.grob ()->internal_has_interface (ly_symbol2scm ("inline-accidental-interface")))
+ covered_grobs_.push_back (i.grob ());
}
void
left_y -= dy;
// Translate back to beam as ref point.
- left_y -= -me->relative_coordinate (common[Y_AXIS], Y_AXIS);
+ left_y -= me->relative_coordinate (common[Y_AXIS], Y_AXIS);
Interval allowed;
allowed.set_full ();
else
text_ = make_item ("LyricText", event_->self_scm ());
}
+
+ Context *voice = get_voice_to_lyrics (context ());
+ if (last_text_ && voice &&
+ to_boolean (voice->get_property ("melismaBusy")))
+ last_text_->set_property ("self-alignment-X",
+ get_property ("lyricMelismaAlignment"));
}
Context *
"Keep track of durations in a run of grace notes."
'(columns common-shortest-duration))
+(ly:add-interface
+ 'inline-accidental-interface
+ "An inlined accidental (i.e. normal accidentals, cautionary
+accidentals)."
+ '())
+
(ly:add-interface
'instrument-specific-markup-interface
"Instrument-specific markup (like fret boards or harp pedal diagrams)."
(Y-extent . ,ly:accidental-interface::height)
(meta . ((class . Item)
(interfaces . (accidental-interface
+ inline-accidental-interface
font-interface))))))
(AccidentalCautionary
(Y-extent . ,ly:accidental-interface::height)
(meta . ((class . Item)
(interfaces . (accidental-interface
+ inline-accidental-interface
font-interface))))))
(AccidentalPlacement
(annotation-balloon . #f)
(annotation-line . #t)
(footnote-text . ,(grob::calc-property-by-copy 'footnote-text))
- (spanner-placement . LEFT)
+ (spanner-placement . ,LEFT)
(stencil . ,ly:balloon-interface::print-spanner)
(text . ,(grob::calc-property-by-copy 'text))
(Y-extent . #f)
(meta . ((class . Item)
(interfaces . (accidental-interface
font-interface
+ inline-accidental-interface
side-position-interface
trill-pitch-accidental-interface))))))
allowed_durs = (1, 2, 4, 8, 16, 32, 64, 128)
def __init__ (self, clocks):
self.clocks = clocks
- if clocks <= 0:
- self.clocks = duration_quant_clocks
(self.dur, self.num, self.den) = self.dur_num_den (clocks)
def dur_num_den (self, clocks):
s = '%d*%d/%d' % (self.dur, self.num, self.den)
global reference_note
- if reference_note: # debugging
- reference_note.duration = self
+ reference_note.duration = self
return s
for i in notes[1:]:
s = s + i.dump (dump_dur=False)
s = s + '>'
-
s = s + notes[0].duration.dump () + ' '
reference_note = r
return s