]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' into lilypond/translation
authorFrancisco Vila <francisco.vila@hispalinux.es>
Thu, 24 Mar 2011 11:17:34 +0000 (12:17 +0100)
committerFrancisco Vila <francisco.vila@hispalinux.es>
Thu, 24 Mar 2011 11:17:34 +0000 (12:17 +0100)
18 files changed:
Documentation/learning/tweaks.itely
Documentation/notation/ancient.itely
Documentation/notation/changing-defaults.itely
Documentation/notation/percussion.itely
Documentation/notation/rhythms.itely
Documentation/usage/running.itely
Documentation/web/news-front.itexi
VERSION
input/regression/beam-collision-accidentals.ly [new file with mode: 0644]
input/regression/beam-collision-cross-staff.ly [new file with mode: 0644]
input/regression/lyric-melisma-melisma.ly [new file with mode: 0644]
input/regression/midi/quantize-duration-2.ly [new file with mode: 0644]
lily/beam-collision-engraver.cc
lily/beam.cc
lily/lyric-engraver.cc
scm/define-grob-interfaces.scm
scm/define-grobs.scm
scripts/midi2ly.py

index 99cfcf645f5512d44bd2b3ad77679e9e8a2f26ca..96851ff26c96992e886748866f8087e2830bbfce 100644 (file)
@@ -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
index 07a433cf0e916b6100fd885b7e737c891ce67689..9f0eebf0895d93e35b90fb4d2bf06468a8c80ea0 100644 (file)
@@ -2684,7 +2684,7 @@ TBC
 @c staff as an hint to performers.  (Karl Hammer)
 
 
-TBC
+@c TBC
 
 
 @c @seealso
index fc4a736af4e3a3f1ec661c560339ec471e8ecb2e..663791a35faac80e1b28c224018c3bf929ba3e79 100644 (file)
@@ -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.
index 6e61eebffeb412f7e6318ed5a087cba9e986211f..1689ec00c1774c1fdfd97270db089640472d2280 100644 (file)
@@ -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
 
index 5ab5bdc53d4230c41f72ab4602c2107d7d98ea79..6e399ff9ce723484445670abe8a0a9ba1840f260 100644 (file)
@@ -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}
index faeb8146663a534a7314fce35e6b4d52d4c42935..b4726ab6cb86142bc40cca268bb311ed6051492c 100644 (file)
@@ -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
 
index ca2a2808737b0f70f2f3477a5f56e632b350d282..b1c78739b19ea868aff46c172fff2e6205946b04 100644 (file)
@@ -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 9ffddbf81ff97ab01722e99659a1803923644071..b8bb74811ff2a4d2828449e6ee66349029b73b73 100644 (file)
--- 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 (file)
index 0000000..90238f4
--- /dev/null
@@ -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 (file)
index 0000000..d546aaf
--- /dev/null
@@ -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 (file)
index 0000000..a951678
--- /dev/null
@@ -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 (file)
index 0000000..1944b2d
--- /dev/null
@@ -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 {}
+}
index 39e614c2a15dea10f3b72f88110959c35dc389a1..367570ff6d0797e9fa382b54c8b814d51a95da4e 100644 (file)
@@ -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
index e3135dadfa92609362dccfd467e5f164dde1bde7..6fbd71d7d6a6d4ddcda0a7fbd7782f8e6eef43c4 100644 (file)
@@ -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 ();
index ffae2783ba2d409ea3b6ccf445ef6a3476feff72..3bc2c121bf961fb59f909dbeff0b8c99f26bf28b 100644 (file)
@@ -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 *
index 223cdafcf62f88a1a840401916883936b81bc793..edc02a7fb3ea911d9f63e77ad3b80ca3b0c6a542 100644 (file)
@@ -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)."
index 8b9564f41e1776e00814887a7d4516b95dba4465..c3e0c7709c73a39a65d858d683a7b2fa600e21b7 100644 (file)
@@ -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
        (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))))))
 
index 82cfa963de6ec40d7e4cff438e741cccd7b5b96b..60a2febde0b583fb7e3cf0a776594660167f0663 100644 (file)
@@ -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