From: Francisco Vila Date: Thu, 24 Mar 2011 11:17:34 +0000 (+0100) Subject: Merge branch 'master' into lilypond/translation X-Git-Tag: release/2.13.56-1~10 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=6c844cc87faf5aa000778d2734d2aea52b767010;hp=b9b875fb9d9b43bc774d751259d55eabd90d222c;p=lilypond.git Merge branch 'master' into lilypond/translation --- diff --git a/Documentation/learning/tweaks.itely b/Documentation/learning/tweaks.itely index 99cfcf645f..96851ff26c 100644 --- a/Documentation/learning/tweaks.itely +++ b/Documentation/learning/tweaks.itely @@ -1935,9 +1935,7 @@ The @code{outside-staff-priority} is defined in the 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 @@ -1957,12 +1955,21 @@ linked hairpins and dynamics. @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 @@ -1972,9 +1979,9 @@ linked hairpins and dynamics. @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 @@ -2032,25 +2039,6 @@ It also shows how ottava brackets are created. @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 @@ -2088,6 +2076,11 @@ c4\ff c \stopTextSpan | 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 diff --git a/Documentation/notation/ancient.itely b/Documentation/notation/ancient.itely index 07a433cf0e..9f0eebf089 100644 --- a/Documentation/notation/ancient.itely +++ b/Documentation/notation/ancient.itely @@ -2684,7 +2684,7 @@ TBC @c staff as an hint to performers. (Karl Hammer) -TBC +@c TBC @c @seealso diff --git a/Documentation/notation/changing-defaults.itely b/Documentation/notation/changing-defaults.itely index fc4a736af4..663791a35f 100644 --- a/Documentation/notation/changing-defaults.itely +++ b/Documentation/notation/changing-defaults.itely @@ -1964,7 +1964,7 @@ generated ties in a chord. @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 @@ -3859,6 +3859,4 @@ tempoPadded = } @end lilypond -@seealso - -TODO: add missing @@ref's here. +@c TODO: add appropriate @@ref's here. diff --git a/Documentation/notation/percussion.itely b/Documentation/notation/percussion.itely index 6e61eebffe..1689ec00c1 100644 --- a/Documentation/notation/percussion.itely +++ b/Documentation/notation/percussion.itely @@ -35,7 +35,7 @@ also be used to show the rhythms of melodies. @node References for percussion @unnumberedsubsubsec References for percussion -TODO add more. +@c TODO add more references. @itemize diff --git a/Documentation/notation/rhythms.itely b/Documentation/notation/rhythms.itely index 5ab5bdc53d..6e399ff9ce 100644 --- a/Documentation/notation/rhythms.itely +++ b/Documentation/notation/rhythms.itely @@ -1439,10 +1439,10 @@ c4 c d8[ d d] f4 g4. 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 @@ -1553,8 +1553,8 @@ signature; see @ref{Time signature}. The scaling is done with @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 @@ -1698,7 +1698,7 @@ notes are also tied. { 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. @@ -1835,8 +1835,7 @@ By default, beams are inserted automatically: @cindex beams, manual @cindex manual beams -@cindex beams, setting rules for -@cindex beams, custom rules for +@cindex beams, customizing rules @funindex \autoBeamOn @funindex autoBeamOn @@ -1863,8 +1862,8 @@ c4 c8 c8. c16 c8. 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} @@ -1876,35 +1875,30 @@ produce unintended results. See the snippet below for more information.} 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}, @@ -1925,21 +1919,20 @@ Internals Reference: @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 @@ -2094,7 +2087,6 @@ context to the default behavior. \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 @@ -2161,10 +2153,10 @@ end beams at the end of beats. @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 @@ -2182,8 +2174,8 @@ For reference, the default beaming rules are found in @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} diff --git a/Documentation/usage/running.itely b/Documentation/usage/running.itely index faeb814666..b4726ab6cb 100644 --- a/Documentation/usage/running.itely +++ b/Documentation/usage/running.itely @@ -446,10 +446,10 @@ subdirectories called @file{ly/}, @file{ps/}, @file{tex/}, etc. 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 diff --git a/Documentation/web/news-front.itexi b/Documentation/web/news-front.itexi index ca2a280873..b1c78739b1 100644 --- a/Documentation/web/news-front.itexi +++ b/Documentation/web/news-front.itexi @@ -8,6 +8,19 @@ @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} diff --git a/VERSION b/VERSION index 9ffddbf81f..b8bb74811f 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ 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 diff --git a/input/regression/beam-collision-accidentals.ly b/input/regression/beam-collision-accidentals.ly new file mode 100644 index 0000000000..90238f40f4 --- /dev/null +++ b/input/regression/beam-collision-accidentals.ly @@ -0,0 +1,12 @@ +\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 diff --git a/input/regression/beam-collision-cross-staff.ly b/input/regression/beam-collision-cross-staff.ly new file mode 100644 index 0000000000..d546aafa18 --- /dev/null +++ b/input/regression/beam-collision-cross-staff.ly @@ -0,0 +1,12 @@ +\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'' ] + } +>> diff --git a/input/regression/lyric-melisma-melisma.ly b/input/regression/lyric-melisma-melisma.ly new file mode 100644 index 0000000000..a9516789b6 --- /dev/null +++ b/input/regression/lyric-melisma-melisma.ly @@ -0,0 +1,11 @@ +\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 } diff --git a/input/regression/midi/quantize-duration-2.ly b/input/regression/midi/quantize-duration-2.ly new file mode 100644 index 0000000000..1944b2d4ae --- /dev/null +++ b/input/regression/midi/quantize-duration-2.ly @@ -0,0 +1,59 @@ +% 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 {} +} diff --git a/lily/beam-collision-engraver.cc b/lily/beam-collision-engraver.cc index 39e614c2a1..367570ff6d 100644 --- a/lily/beam-collision-engraver.cc +++ b/lily/beam-collision-engraver.cc @@ -160,7 +160,8 @@ Beam_collision_engraver::acknowledge_note_head (Grob_info i) 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 diff --git a/lily/beam.cc b/lily/beam.cc index e3135dadfa..6fbd71d7d6 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -1276,7 +1276,7 @@ Beam::shift_region_to_valid (SCM grob, SCM posns) 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 (); diff --git a/lily/lyric-engraver.cc b/lily/lyric-engraver.cc index ffae2783ba..3bc2c121bf 100644 --- a/lily/lyric-engraver.cc +++ b/lily/lyric-engraver.cc @@ -79,6 +79,12 @@ Lyric_engraver::process_music () 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 * diff --git a/scm/define-grob-interfaces.scm b/scm/define-grob-interfaces.scm index 223cdafcf6..edc02a7fb3 100644 --- a/scm/define-grob-interfaces.scm +++ b/scm/define-grob-interfaces.scm @@ -107,6 +107,12 @@ note)." "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)." diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 8b9564f41e..c3e0c7709c 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -36,6 +36,7 @@ (Y-extent . ,ly:accidental-interface::height) (meta . ((class . Item) (interfaces . (accidental-interface + inline-accidental-interface font-interface)))))) (AccidentalCautionary @@ -48,6 +49,7 @@ (Y-extent . ,ly:accidental-interface::height) (meta . ((class . Item) (interfaces . (accidental-interface + inline-accidental-interface font-interface)))))) (AccidentalPlacement @@ -887,7 +889,7 @@ (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) @@ -2242,6 +2244,7 @@ (meta . ((class . Item) (interfaces . (accidental-interface font-interface + inline-accidental-interface side-position-interface trill-pitch-accidental-interface)))))) diff --git a/scripts/midi2ly.py b/scripts/midi2ly.py index 82cfa963de..60a2febde0 100644 --- a/scripts/midi2ly.py +++ b/scripts/midi2ly.py @@ -111,8 +111,6 @@ class Duration: 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): @@ -140,8 +138,7 @@ class Duration: 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 @@ -663,7 +660,6 @@ def dump_chord (ch): 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