]> git.donarmstrong.com Git - lilypond.git/commitdiff
* lily/note-spacing.cc (get_spacing): less space at EOL in case of
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 17 Feb 2004 22:13:17 +0000 (22:13 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 17 Feb 2004 22:13:17 +0000 (22:13 +0000)
key/clef/time signatures.

* input/test/ossia.ly: revise example.

* lily/span-bar.cc (evaluate_glyph): read 'glyph of self first.
cleanup.

* lily/grob-scheme.cc (LY_DEFINE): change a few function names to
comply to Scheme standard.  Remove ly:get-paper-variable

36 files changed:
ChangeLog
Documentation/user/refman.itely
VERSION
input/les-nereides.ly
input/mutopia/J.S.Bach/baerenreiter-sarabande.ly
input/regression/accidental-octave.ly
input/regression/accidental-voice.ly
input/regression/accidentals.ly
input/regression/apply-context.ly
input/regression/apply-output.ly
input/regression/between-systems.ly
input/regression/molecule-hacking.ly
input/regression/music-map.ly
input/regression/tuplet-nest.ly
input/test/add-staccato.ly
input/test/add-text-script.ly
input/test/ambitus-mixed.ly
input/test/count-systems.ly
input/test/engraver-one-by-one.ly
input/test/move-accidentals.ly
input/test/move-specific-text.ly
input/test/music-box.ly
input/test/ossia.ly
input/test/piano-staff-distance.ly
input/test/polymetric-differing-notes.ly
input/test/reverse-music.ly
input/test/smart-transpose.ly
input/test/spanner-after-break-tweak.ly
lily/grob-scheme.cc
lily/note-spacing.cc
lily/span-bar.cc
ly/init.ly
scm/music-functions.scm
scm/slur.scm
scm/stencil.scm
scripts/convert-ly.py

index 51f9decf7bb0fb861eed7546d61640a4890dc93d..aabc7ce5d292f68286288b947a1c01bfdfe94c89 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2004-02-17  Han-Wen Nienhuys   <hanwen@xs4all.nl>
+
+       * lily/note-spacing.cc (get_spacing): less space at EOL in case of
+       key/clef/time signatures. 
+
+       * input/test/ossia.ly: revise example.
+
+       * lily/span-bar.cc (evaluate_glyph): read 'glyph of self first.
+       cleanup.
+       
+       * lily/grob-scheme.cc (LY_DEFINE): change a few function names to
+       comply to Scheme standard.  Remove ly:get-paper-variable
+
 2004-02-17  Mats Bengtsson  <mabe@drongo.s3.kth.se>
 
        * scripts/convert-ly.py (2.1.22): Corrected documentation printout.
index 03c178464593132172f174ae9a0d178c8fedf99d..ac1b83d0736768e463d7bca24472d086d740ba38 100644 (file)
@@ -2832,6 +2832,26 @@ down = \drums { bassdrum4 snare8 bd r bd sn4 }
 >> }
 @end lilypond
 
+The above example shows verbose polyphonic notation. The short
+polyphonic notation, described in @ref{Polyphony}, can also be used if
+the @internalsref{DrumVoices} are instantiated by hand first. For example, 
+
+@lilypond[fragment] 
+\drums \new DrumStaff <<
+  \context DrumVoice = "1" {  s1 *2 }
+  \context DrumVoice = "2" {  s1 *2 }
+  {
+    bd4 sn4 bd4 sn4
+    <<
+      { \repeat unfold 16 hh16 }
+      \\
+      { bd4 sn4 bd4 sn4 }
+    >>
+  }   
+>>
+@end lilypond
+
+
 There are also other layout possibilities. To use these, set the
 property @code{drumStyleTable} in context @internalsref{DrumVoice}.
 The following variables have been predefined:
@@ -3029,8 +3049,11 @@ Dynamics are not centered, but kludges do exist. See
 @cindex cross staff stem
 @cindex stem, cross staff
 
-
-@c fixme: should have hyperlinks as well.
+The distance between the two staves is normally fixed across the
+entire score. It is possible to tune this per system, but it does
+require arcane command incantations. See
+@inputfileref{input/test,piano-staff-distance.ly}.
 
 
 
@@ -4558,6 +4581,11 @@ The first page shows all staffs in full. If they should be  removed
 from  the first page too, set @code{remove-first} to false
 in @internalsref{RemoveEmptyVerticalGroup}.
 
+Another application is making ossia sections, i.e. alternative
+melodies on a separate piece of staff, with help of a Frenched
+staff. See @inputfileref{input/test,ossia.ly} for an example.
+
+
 @node Different editions from one source
 @subsection Different editions from one source
 
diff --git a/VERSION b/VERSION
index e8dd6499cc1aaed649fffc170f9966153c27d26d..eda89cd94b3f67374ac7204ccfb384b1c4406034 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
 MINOR_VERSION=1
-PATCH_LEVEL=24
-MY_PATCH_LEVEL=hwn1
+PATCH_LEVEL=25
+MY_PATCH_LEVEL=
 
index 1aef409f0ae99dfdec51341300f28408db5eed20..e27d168ba06c9bda19feaffd785167871e554948 100644 (file)
@@ -1,5 +1,5 @@
 #(ly:set-option 'old-relative)
-\version "2.1.23"
+\version "2.1.25"
 
 \header {
     composer = "ARTHUR GRAY"
index 8e8ea651148bd4b9332598aea14f55695bb577a1..b80bb0b9717d2b4114b3a84f8801abb19f667bf1 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.1.23"
+\version "2.1.25"
 
 % #(ly:set-point-and-click 'line-column)
 
@@ -7,9 +7,9 @@ forcedLastBreak = \notes { \break }
 %% We want this to perfectly match the Baerenreiter spacing.
 %% If we're not using 6 systems, there's definately a problem.
 #(define (assert-system-count smob n)
-  (let ((systems (length (ly:get-broken-into
-                         (ly:get-original
-                          (ly:get-system smob))))))
+  (let ((systems (length (ly:spanner-broken-into
+                         (ly:grob-original
+                          (ly:grob-system smob))))))
     (if (not (equal? n systems))
        (error
        ;;(warn
index ffe29a2181cab681863cc120315422be30114bd6..eda701480220f30385771a00d934bf5d0e551e14 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.1.22"
+\version "2.1.25"
 
 \header {
 texidoc="
index 1f28742fff0a285cc4dec6fbd5e422f2003b134d..f735632933d8f06db2db753fea77352a9d8664fe 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.1.22"
+\version "2.1.25"
 
 \header{
 texidoc="
index 52705da2942c402324f5d2efad028fdbbdc7b4a0..b4984c908bce29b021229fac23230c0ded1539e1 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.1.22"
+\version "2.1.25"
 
 \header{
 texidoc="
index 954a31015306151b49b60afec094a133bdee2782..5369dc086da85b124970e2b4d7146a86d29f9bc5 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.1.22"
+\version "2.1.25"
 
 
 \header {
index f8dbe2bbe9f2fe3dada2a80b6decc2d2d36c4496..44b6c0393c180279fcfd9562caf18fd1f83f7df6 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.1.22
+\version "2.1.25
 \header {
 
 texidoc = "The @code{\applyoutput} expression is the most flexible way to
index d76885198923a3e142108f9527e02ab0ea8d8557..63acde706b469e2235a6793fca4aa1e6351bb881 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.1.22"
+\version "2.1.25"
 
 \header{
 texidoc="
index d7372e301c8468a29ed4d9d958be2b83ed02c3c8..dfa8bf52c99086006d9e1e810ef40bd8eb0c959f 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.1.22"
+\version "2.1.25"
 
 \header { texidoc=" You can write stencil callbacks in Scheme, thus
 providing custom glyphs for notation elements.  A simple example is
index 88b9a6eca043f97be628d53d7d97c67b4cba89d4..20bc3cae330eb62fc0fc71704a3d4e8431a06447 100644 (file)
@@ -10,7 +10,7 @@ dynamics are left over. These are put onto the 2nd measure."
 
 }
 
-\version "2.1.22"
+\version "2.1.25"
 
 #(define (notes-to-skip m)
 "Convert all stuff with duration (notes, lyrics, bass figures, etc.) to skips.
index 23733fba195780d9d9d01b88795d9ded48d11c9d..284832844f244b8f3e871e0ff697d3b92ce27e18 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.1.22"
+\version "2.1.25"
 \header {
   texidoc="Manual hack for nested tuplets, move outer tuplet up."
 }
index 3179337db57ee3683a428091b367f312b219b34a..fb3a4b8a5cb9f2be6570090ec1645318d53116ca 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.1.22"
+\version "2.1.25"
 
 \header {
 
index 15e774d1308da8aaa1ae49523c5557df003e7603..f287b6bb5d333396a9f26b6448be7fed2deab1af 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.1.22"
+\version "2.1.25"
 
 \header {
 texidoc= "@cindex make-music Fingering
index 895002b34b6e5aa9d1e4011464f17afde5de6729..644d2cf0a25844d8ab11521801f01a95b053f0a4 100644 (file)
@@ -13,7 +13,7 @@ derived context can then be used in parallel in the same score. (this is not dem
 "
 }
 
-\version "2.1.23"
+\version "2.1.25"
 
 #(define (kill-ambitus grob grob-context apply-context)
   (if (memq 'ambitus-interface (ly:get-grob-property grob 'interfaces))
index baf3e7f3807bac3a243cf72e989f8acaa46dab79..09a957b2033ca225daa3bd5aeea19caa96f311c7 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.1.22"
+\version "2.1.25"
 \header{
     
     texidoc="@cindex Count Systems
@@ -9,9 +9,9 @@ specified number of lines.
 " }
 
 #(define (display-systemno smob)
-  (let* ((this-system (ly:get-system smob))
-        (systems (ly:get-broken-into
-                  (ly:get-original this-system))))
+  (let* ((this-system (ly:grob-system smob))
+        (systems (ly:spanner-broken-into
+                  (ly:grob-original this-system))))
     (display smob)
     (display (list-index systems this-system))
     (newline)))
@@ -19,9 +19,9 @@ specified number of lines.
 
 #(define (display-system-count smob)
   (display (length
-           (ly:get-broken-into
-            (ly:get-original
-             (ly:get-system smob))))))
+           (ly:spanner-broken-into
+            (ly:grob-original
+             (ly:grob-system smob))))))
 
   
   
index 05d84b7b5b154ef8619fa8360e0f2c1af109042b..2bc69fe62e55dbfe9f0a80dfc63c5c9f2a8ec944 100644 (file)
@@ -103,7 +103,7 @@ MyVoiceContext = \translator {
        \consists "Chord_tremolo_engraver"
        \consists "Percent_repeat_engraver"
        \consists "Slash_repeat_engraver"
-       \consists "Melisma_engraver"
+       \consists "Melisma_translator"
 
 %{
  Must come before text_engraver, but after note_column engraver.
index e4edc5c1200c1f32e30641a24213bae48bd5efab..ab81caf3fba9c54162d6295d76f47d431675893b 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.1.22"
+\version "2.1.25"
 
 % possible rename to scheme- or something like that.  -gp
 \header { texidoc= "@cindex Scheme Manual Accidentals
@@ -11,7 +11,7 @@ involves some scheme code. " }
       (not (eq? #f (memq 'accidental-interface
                     (ly:get-grob-property elt 'interfaces))))
       (eq? (ly:get-grob-property
-           (ly:get-parent elt 1) 'staff-position) pos))))
+           (ly:grob-parent elt 1) 'staff-position) pos))))
 
 \score {
   \context Voice \notes \relative c'' {
index 224345ae65e1a881adc7c9a553681ed5a8db97ee..f35dd4e1ee199ffeafeceae00815d973b65c4a6e 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.1.22"
+\version "2.1.25"
 % possible rename to scheme- or something like that.  -gp
 \header { texidoc = "@cindex Scheme Move Text
 You can move objects around with scheme.  This example shows how to
index c0c0d68f61633a25bd63cec911d380515d8dff63..b94eb9010cdf37f74b4617f18fa8b84a625ccab1 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.1.23"
+\version "2.1.25"
 \include "deutsch.ly"
 % possible rename to scheme- something.  -gp
 % TODO: ask if it needs to have so many empty bars in the middle.  -gp
@@ -62,7 +62,7 @@ using Scheme functions to avoid typing work. " }
 
 
 
-\version "2.1.23"
+\version "2.1.25"
 
 pat = \notes \transpose c c' \repeat unfold 2 {
   << { \context Staff=up {r8 e16 f g e f g } }
index a5679aa7bd31b23cb17d059cf6c40b6b63226046..979203a69b91a4feca44d71d3f8b989aab87e12a 100644 (file)
@@ -1,17 +1,44 @@
-\version "2.1.22"
-% pretty much a duplicate of extra-staff.ly. candidate for merge or delete. -gp
+\header { texidoc = "A temporary ossia in an instrumental part for
+    just a few bars on a separate staff. Here is an example using
+    proper short staffs. A simpler solution is to instantiate a full
+    staff, and let @code{RemoveEmptyStaffContext} take out the unused parts.
 
-\header { texidoc = "@cindex Ossia
-Ossias present alternatives for a piece. They are not
-really supported, but can be somewhat faked in lily. "
-}
+   Both solutions are demonstrated here.
+" }
+
+\version "2.1.22"
 
 \score {
-\notes\relative c'' { c1 c1 <<
-       {\clef "treble" c1 c1 }
-       \new Staff { c1 c1 }
+    \notes\relative c''
+    \new StaffGroup \with {
+       \remove "System_start_delimiter_engraver"
+       \override SpanBar #'glyph = #":"
+    } <<
+
+       %% solution 1
+       { c1 c1
+       <<
+           { c1 c1 } 
+           \new Staff \with {
+               \remove "Time_signature_engraver"
+           } {
+               c,4^"ossia" es f fis g1
+           }
        >>
-}
-       \paper {raggedright= ##t}
+         c1 \break c c }
+
+       %% solution 2
+       \new Staff { R1*2 c,4^"ossia" es f fis g1 R1 * 3 }
+    >>
+    
+
+    \paper {
+       raggedright= ##t
+       \translator {\RemoveEmptyStaffContext}
+       \translator {
+           \ScoreContext
+           \remove System_start_delimiter_engraver
+           }
+    }
 }
 
index e0d6e5b3cbb14167f9d97a748700a9c25368c455..98bbcf02ad9e5d8e2fb0176abee7de4de20e602d 100644 (file)
@@ -8,17 +8,17 @@ this at home.  "
 
 }
 
-\version "2.1.24"
+\version "2.1.25"
 
 #(define ((futz-alignment-callback distance count) grob axis)
 
    "Check if we're the system number COUNT, and if yes, set fixed distance to
 DISTANCE; then call the original callback.  "
    (let*
-       ((a (ly:get-parent grob axis))
-       (o (ly:get-original a))
+       ((a (ly:grob-parent grob axis))
+       (o (ly:grob-original a))
        (bs (if (ly:grob? o)
-               (ly:get-broken-into o)
+               (ly:spanner-broken-into o)
                #f))
        )
 
index aaebb712e02a0d8b1cfeff59bcdd4fe4b1f05222..b459b95ff146a67078f8bce4cf1b9f3f3898ebec 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.1.22"
+\version "2.1.25"
 
 \header{ texidoc="
 
index 1b14a4a0a404e03a743954409215322d5650f09d..79008c14d69a4cf7c3f159f1d63fa6c7982b35dc 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.1.22"
+\version "2.1.25"
 % possible rename to scheme-something.
 \header { texidoc="@cindex Scheme Reverse Music
 Simple customised music apply. "
index c646cebc2d10a0dcb899ce96605abe5e025eb48c..cb2d0e88f335f37710847b9faf518bf54d6b99d2 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.9.6"
+\version "2.1.25"
 
 \header {
 texidoc="@cindex Smart Transpose
@@ -26,13 +26,15 @@ how useful these enharmonic modifications are. Mats B.
          (n (ly:pitch-notename p)))
 
     (cond
-     ((and (> a 1) (or (eq? n 6) (eq? n 2)))
-      (set! a (- a 2)) (set! n (+ n 1)))
-     ((and (< a -1) (or (eq? n 0) (eq? n 3)))
-      (set! a (+ a 2)) (set! n (- n 1))))
+     ((and (> a 2) (or (eq? n 6) (eq? n 2)))
+      (set! a (- a 2))
+      (set! n (+ n 1)))
+     ((and (< a -2) (or (eq? n 0) (eq? n 3)))
+      (set! a (+ a 2))
+      (set! n (- n 1))))
 
     (cond
-     ((eq? a 4)  (set! a 0) (set! n (+ n 1)))
+     ((eq? a 4) (set! a 0) (set! n (+ n 1)))
      ((eq? a -4) (set! a 0) (set! n (- n 1))))
 
     (if (< n 0) (begin (set!  o (- o 1)) (set! n (+ n 7))))
index df76d873f2ab0668fb270faa4b5bcd3760c778ac..f24fa692a37c79493a235cd91b74187b63fe5b4a 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.1.22"
+\version "2.1.25"
 
 \header { texidoc = "@cindex Spanner after break
 
@@ -11,8 +11,8 @@ after the line break is moved around. "
 
 #(define (my-callback grob)
   (let* (
-      (o (ly:get-original grob))
-      (b (if (ly:grob? o) (ly:get-broken-into o) '() ))
+      (o (ly:grob-original grob))
+      (b (if (ly:grob? o) (ly:spanner-broken-into o) '() ))
       )
 
     ;; Call the equivalent of Tie::after_line_breaking
index ca3c5ef046ac149b007b29c047fa9647bb4657bb..2906d08dd5b83e8795a5654af37538d9f8893b22 100644 (file)
@@ -38,7 +38,7 @@ LY_DEFINE (ly_get_grob_property,
   return sc->internal_get_grob_property (sym);
 }
 
-LY_DEFINE (spanner_get_bound, "ly:get-spanner-bound", 2 , 0, 0,
+LY_DEFINE (spanner_get_bound, "ly:spanner-get-bound", 2 , 0, 0,
           (SCM slur, SCM dir),
           "Get one of the bounds of @var{spanner}. @var{dir} is @code{-1} "
           "for left, and @code{1} for right.")
@@ -49,19 +49,6 @@ LY_DEFINE (spanner_get_bound, "ly:get-spanner-bound", 2 , 0, 0,
   return sl->get_bound (to_dir (dir))->self_scm ();
 }
 
-/* TODO: make difference between scaled and unscalead variable in
-   calling (i.e different funcs.) */
-LY_DEFINE (ly_get_paper_var,"ly:get-paper-variable", 2, 0, 0,
-  (SCM grob, SCM sym),
-  "Get a variable from the \\paper block.")
-{
-  Grob * sc = unsmob_grob (grob);
-  SCM_ASSERT_TYPE (sc, grob, SCM_ARG1, __FUNCTION__, "grob");
-  SCM_ASSERT_TYPE (gh_symbol_p (sym), sym, SCM_ARG2, __FUNCTION__, "symbol");  
-
-  return sc->get_paper () ->lookup_variable (sym);
-}
-
 /* TODO: make difference between scaled and unscalead variable in
    calling (i.e different funcs.) */
 LY_DEFINE (ly_grob_paper,"ly:grob-paper", 1, 0, 0,
@@ -77,7 +64,7 @@ LY_DEFINE (ly_grob_paper,"ly:grob-paper", 1, 0, 0,
 
 
 
-LY_DEFINE (ly_get_extent, "ly:get-extent", 3, 0, 0,
+LY_DEFINE (ly_get_extent, "ly:grob-extent", 3, 0, 0,
           (SCM grob, SCM refp, SCM axis),
           "Get the extent in @var{axis} direction of @var{grob} relative to "
           "the grob @var{refp}")
@@ -92,7 +79,7 @@ LY_DEFINE (ly_get_extent, "ly:get-extent", 3, 0, 0,
   return ly_interval2scm ( sc->extent (ref, Axis (gh_scm2int (axis))));
 }
 
-LY_DEFINE (ly_get_parent, "ly:get-parent", 2, 0, 0, (SCM grob, SCM axis),
+LY_DEFINE (ly_get_parent, "ly:grob-parent", 2, 0, 0, (SCM grob, SCM axis),
           "Get the parent of @var{grob}.  @var{axis} is 0 for the X-axis, "
           "1 for the Y-axis.")
 {
@@ -105,7 +92,7 @@ LY_DEFINE (ly_get_parent, "ly:get-parent", 2, 0, 0, (SCM grob, SCM axis),
 }
 
 LY_DEFINE (ly_get_system,
-          "ly:get-system",
+          "ly:grob-system",
           1, 0, 0, (SCM grob),
           "Return the System Grob of @var{grob}.")
 {
@@ -119,7 +106,7 @@ LY_DEFINE (ly_get_system,
 }
 
 LY_DEFINE (ly_get_original,
-          "ly:get-original",
+          "ly:grob-original",
           1, 0, 0, (SCM grob),
           "Return the unbroken original Grob of @var{grob}.")
 {
@@ -134,7 +121,7 @@ LY_DEFINE (ly_get_original,
   logical for this list? */
 
 LY_DEFINE (get_broken_into,
-         "ly:get-broken-into", 1, 0, 0, (SCM spanner),
+         "ly:spanner-broken-into", 1, 0, 0, (SCM spanner),
           "Return broken-into list for @var{spanner}.")
 {
   ///  Spanner *me = unsmob_spanner (spanner);
index 6a8600e7d4932e5156cea292f0a7d4f3c48a17b7..fca28671ee048d73b1f7feecdb438eb630c6281f 100644 (file)
@@ -140,17 +140,22 @@ Note_spacing::get_spacing (Grob *me, Item* right_col,
    */
   *space = (base_space - increment) + *fixed ;
 
-  if (Item::breakable_b (right_col)
-      || right_col->original_)
+  if (!extents[RIGHT].is_empty ()
+      && (Item::breakable_b (right_col)
+         || right_col->original_))
     {
       /*
        This is for the situation
 
        rest | 3/4 (eol)
-       
+
+       Since we only take half of the right-object space above, the
+       barline will bump into the notes preceding it, if the right
+       thing is big. We add the rest of the extents here:
        */
-      *space += -extents[RIGHT][LEFT];
-      *fixed += -extents[RIGHT][LEFT];
+      
+      *space += -extents[RIGHT][LEFT] / 2;
+      *fixed += -extents[RIGHT][LEFT] / 2;
     }
   
   stem_dir_correction (me, right_col, increment, space, fixed);
index 97e581e938c58ae3ede5c55189dee4de3a2acc33..9e289e452eba54b709898805b0f6bed4e1cdc4fd 100644 (file)
@@ -176,17 +176,16 @@ Span_bar::evaluate_empty (Grob*me)
 void
 Span_bar::evaluate_glyph (Grob*me)
 {
-  SCM elts = me->get_grob_property ("elements");
-  SCM glyph_symbol = ly_symbol2scm ("glyph");
-  SCM gl = SCM_EOL;
+  SCM gl = me->get_grob_property ("glyph");
 
-  while (gh_pair_p (elts))
+  if (gh_string_p (gl))
+    return ;
+  
+  for (SCM s = me->get_grob_property ("elements");
+       !gh_string_p (gl) && gh_pair_p (s); s = gh_cdr (s))
     {
-      gl = unsmob_grob (gh_car (elts))
-       ->internal_get_grob_property (glyph_symbol);
-      if (gh_string_p (gl))
-       break;
-      elts =gh_cdr (elts);
+      gl = unsmob_grob (gh_car (s))
+       ->get_grob_property ("glyph");
     }
 
   if (!gh_string_p (gl))
@@ -210,9 +209,9 @@ Span_bar::evaluate_glyph (Grob*me)
     }
 
   gl = scm_makfrom0str (type.to_str0 ());
-  if (scm_equal_p (me->internal_get_grob_property (glyph_symbol), gl)
+  if (scm_equal_p (me->get_grob_property ("glyph"), gl)
       != SCM_BOOL_T)
-    me->internal_set_grob_property (glyph_symbol, gl);
+    me->set_grob_property ("glyph", gl);
 }
 
 Interval
index bf9fc9f2e290d85ee5ed44ee5cdd81d1bcfaa57a..ea1d75d85e2515fd3f996aebc6160e2f48448933 100644 (file)
@@ -4,7 +4,7 @@
 #(define-public midi-debug #f)
 
 
-\version "2.1.22"
+\version "2.1.25"
 
 \include "declarations-init.ly"
 
index 34b02c98c8193f4e3efe92d8a9c13bcd71d1b708..0f61658f52bbe28dcf8421bf0861ee8fb80feccf 100644 (file)
@@ -507,6 +507,8 @@ Rest can contain a list of beat groupings
 
    voicify-list :: [ [Music ] ] -> number -> [Music]
    LST is a list music-lists.
+
+   NUMBER is 0-base, i.e. Voice=1 (upstems) has number 0.
 "
 
    (if (null? lst) '()
@@ -516,7 +518,7 @@ Rest can contain a list of beat groupings
                (make-voice-props-set number)
                (make-simultaneous-music (car lst))))
 
-             'Voice  (number->string number))
+             'Voice  (number->string (1+ number)))
              (voicify-list (cdr lst) (1+ number))
        ))
    )
@@ -530,7 +532,7 @@ Rest can contain a list of beat groupings
      ch
    ))
 
-(define (voicify-music m)
+(define-public (voicify-music m)
    "Recursively split chords that are separated with \\ "
    
    (if (not (ly:music? m))
index 355ed0dce541d55ad3f1823ad2ebba926bf162ec..0a7ea00cd34702af14aac8e3985c28bd44f797ff 100644 (file)
@@ -11,7 +11,7 @@
         (col (if (= dir 1) (car note-columns) (car (last-pair note-columns))))
         (stem (ly:get-grob-property col 'stem)))
     (and
-     (eq? col (ly:get-spanner-bound slur dir))
+     (eq? col (ly:spanner-get-bound slur dir))
      (ly:grob? stem)
      (ly:get-grob-property stem 'heads))))
 
index 81869ae7f26af4d4d59f75e851ca54e0a211c345..146a72c3ab7c162e6e6d9eabb42df2090a770c39 100644 (file)
@@ -56,8 +56,8 @@
   "Make a box of exactly the extents of the grob.  The box precisely
 encloses the contents.
 "
-  (let* ((xext (ly:get-extent grob grob 0))
-        (yext (ly:get-extent grob grob 1))
+  (let* ((xext (ly:grob-extent grob grob 0))
+        (yext (ly:grob-extent grob grob 1))
         (thick 0.1))
 
     (ly:stencil-add (make-filled-box-stencil xext (cons (- (car yext) thick) (car yext) ))
index a6d4d1aeaed157ef8006928d8adc8960ba13c901..db8c3b5ac947457c4c478d74ffa9946549a930e0 100644 (file)
@@ -1898,6 +1898,21 @@ def conv (str):
 
 conversions.append (((2,1,24), conv, """music-list? -> ly:music-list?"""))
 
+def conv (str):
+       str = re.sub (r'ly:get-spanner-bound', 'ly:spanner-get-bound', str)
+       str = re.sub (r'ly:get-extent', 'ly:grob-extent', str)
+       str = re.sub (r'ly:get-system', 'ly:grob-system', str)
+       str = re.sub (r'ly:get-original', 'ly:grob-original', str)
+       str = re.sub (r'ly:get-parent', 'ly:grob-parent', str)
+       str = re.sub (r'ly:get-broken-into', 'ly:spanner-broken-into', str)
+       str = re.sub (r'Melisma_engraver', 'Melisma_translator', str)
+       if re.search ("ly:get-paper-variable", str):
+               sys.stderr.write ('use (ly:paper-lookup (ly:grob-paper ))')
+               raise FatalConversionError()
+       return str
+
+conversions.append (((2,1,25), conv, """Scheme grob function renaming"""))
+
 
 ################################
 #      END OF CONVERSIONS