]> git.donarmstrong.com Git - lilypond.git/commitdiff
* Documentation/topdocs/NEWS.tely (Top): mention John Mandereau.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 17 Oct 2005 15:34:55 +0000 (15:34 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 17 Oct 2005 15:34:55 +0000 (15:34 +0000)
(Top): document #'callbacks.
(Top): document nested \override.

* input/regression/figured-bass.ly: update for slash and pluses.

* input/regression/figured-bass-continuation-forbid.ly (Module):
new file.

* scm/translation-functions.scm (format-new-bass-figure): use
slashed-digit if diminished is set.
(format-new-bass-figure): add + if 'augmented is set.

* scm/define-markup-commands.scm (slashed-digit): new command slashed-digit.

* input/test/piano-staff-distance.ly: remove file.

* Documentation/user/advanced-notation.itely (Formatting cue
notes): use length-fraction for making stems/beams smaller.

* lily/parser.yy (bass_figure): accept \+ \! and / as figured bass
modifications.

* lily/new-figured-bass-engraver.cc: new property
centerFiguredBassContinuations

* Documentation/user/changing-defaults.itely (Difficult tweaks):
use callbacks.

* python/convertrules.py (FatalConversionError.subber): conversion
rule for #'callbacks

* lily/parser.yy (music_property_def): allow \override #'a #'b =
#c too.

90 files changed:
ChangeLog
Documentation/topdocs/NEWS.tely
Documentation/user/advanced-notation.itely
Documentation/user/changing-defaults.itely
input/regression/figured-bass-continuation-center.ly
input/regression/figured-bass-continuation-forbid.ly [new file with mode: 0644]
input/regression/figured-bass.ly
input/test/+.ly
input/test/add-staccato.ly
input/test/add-text-script.ly
input/test/ambitus-mixed.ly
input/test/ancient-accidentals.ly
input/test/ancient-font.ly
input/test/ancient-time.ly
input/test/bar-always.ly
input/test/bar-lines-lyric-only.ly
input/test/bar-lines.ly
input/test/bar-number-every-five-reset.ly
input/test/bar-number-regular-interval.ly
input/test/bar-number-show-all.ly
input/test/beam-alternate.ly
input/test/beam-auto-4-8.ly
input/test/beam-auto-override.ly
input/test/beam-control.ly
input/test/beam-count.ly
input/test/boxed-stencil.ly
input/test/caps.ly
input/test/chord-names-jazz.ly
input/test/chord-names-languages.ly
input/test/circle.ly
input/test/compound-time.ly
input/test/coriolan-margin.ly
input/test/divisiones.ly
input/test/dynamic-extra.ly
input/test/embedded-postscript.ly
input/test/engraver-contexts.ly
input/test/engraver-example.ily
input/test/engraver-one-by-one.ly
input/test/extra-staff.ly
input/test/fret-diagram.ly
input/test/gregorian-scripts.ly
input/test/header-ifelse.ly
input/test/hymn.ly
input/test/instrument-name-grandstaff.ly
input/test/ligature-vaticana.ly
input/test/lilypond-testpage.ly
input/test/mensural-ligatures.ly
input/test/mensural-note-heads.ly
input/test/move-specific-text.ly
input/test/music-box.ly
input/test/music-creation.ly
input/test/no-bar-lines.ly
input/test/no-key-at-end-of-line.ly
input/test/ossia.ly
input/test/partial-blank.ly
input/test/piano-staff-distance.ly [deleted file]
input/test/preset-extent.ly
input/test/rests.ly
input/test/reverse-music.ly
input/test/script-abbreviations.ly
input/test/script-chart.ly
input/test/slur-manual.ly
input/test/slur-minimum-length.ly
input/test/smart-transpose.ly
input/test/spacing-optical.ly
input/test/staff-bracket.ly
input/test/staff-container.ly
input/test/staff-lines.ly
input/test/staff-size.ly
input/test/stem-extend.ly
input/test/tablature-hammer.ly
input/test/temporary-stave.ly
input/test/text-rotate.ly
input/test/text-spanner.ly
input/test/time-signature-staff.ly
input/test/unfold-all-repeats.ly
input/test/version-output.ly
input/test/vertical-extent.ly
input/test/volta-chord-names.ly
lily/grob-array-scheme.cc [new file with mode: 0644]
lily/lexer.ll
lily/new-figured-bass-engraver.cc
lily/parser.yy
ly/engraver-init.ly
python/convertrules.py
scm/define-context-properties.scm
scm/define-grobs.scm
scm/define-markup-commands.scm
scm/define-music-properties.scm
scm/translation-functions.scm

index 17763381071dec4e0613abab4b1b3fc820b4d298..1d794b16805829fd0e971f535d03f5c4561a6783 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,31 @@
 2005-10-17  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * Documentation/topdocs/NEWS.tely (Top): mention John Mandereau. 
+       (Top): document #'callbacks.
+       (Top): document nested \override.
+
+       * input/regression/figured-bass.ly: update for slash and pluses.
+
+       * input/regression/figured-bass-continuation-forbid.ly (Module):
+       new file.
+
+       * scm/translation-functions.scm (format-new-bass-figure): use
+       slashed-digit if diminished is set.
+       (format-new-bass-figure): add + if 'augmented is set.
+
+       * scm/define-markup-commands.scm (slashed-digit): new command slashed-digit.
+
+       * input/test/piano-staff-distance.ly: remove file.
+
+       * Documentation/user/advanced-notation.itely (Formatting cue
+       notes): use length-fraction for making stems/beams smaller.
+
+       * lily/parser.yy (bass_figure): accept \+ \! and / as figured bass
+       modifications.
+
+       * lily/new-figured-bass-engraver.cc: new property
+       centerFiguredBassContinuations
+
        * Documentation/user/changing-defaults.itely (Difficult tweaks):
        use callbacks.
 
index 4cac0ab25df59b8e666a0075420e79a74ae027f7..69e6e4a243d54a315042a750e4211aab2c5113e2 100644 (file)
@@ -46,7 +46,47 @@ This document is also available in @uref{NEWS.pdf,PDF}.
 
 @itemize @bullet
 @item
-Major internal cleanups.
+Support for figured bass has been rewritten. Now it supports
+continuation lines, slashed figures, and its figures, brackets, and alignments may
+tuned separately.
+
+@lilypond[raggedright,fragment]
+<<
+\relative { c4 c c c }
+\figures {
+  \set useBassFigureExtenders = ##t
+  <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
+} >>
+@end lilypond
+
+This rewrite was sponsored by Trent Johnston and John Mandereau.
+
+@item
+Major internal cleanups: for each grob, a subproperty in
+@code{callbacks} property defines the procedure which computes it.
+
+@verbatim
+\override Beam #'callbacks #'direction
+  = #(lambda (grob)
+      (if (4 > (ly:grob-array-length (ly:grob-object 'stems)))
+          DOWN
+          UP))
+@end verbatim 
+
+@noindent
+With this code fragment, the direction of a beam is decided to be up
+or down, depending on the number of stems in the beam.
+
+@item
+Subproperties, like the @code{details} field of @code{Slur} and
+@code{Tie} may now be tuned with @code{\override}. For example, 
+
+@verbatim
+\override Stem #'details #'beamed-lengths = #'(4 4 3) 
+@end verbatim
+
+@noindent
+shortens the stems in beams.
 
 @item
 The default paper size may now be set from the command line using
@@ -69,21 +109,7 @@ Beamlets may stick out of the side of beams.
 
 This feature was sponsored by Trevor Bača.
  
-@item
-Support for figured bass has been rewritten. Now it supports
-continuation lines, and its figures, brackets, and alignments may
-tuned separately.
-
-@lilypond[raggedright,fragment]
-<<
-\relative { c4 c c c }
-\figures {
-  \set useBassFigureExtenders = ##t
-  <6+ 4 3> <6 4 3> <4 3+> 
-} >>
-@end lilypond
 
-This rewrite was sponsored by Trent Johnston.
 
 @item  
 Vertical alignments of staves can now be tuned easily for individual
@@ -156,10 +182,10 @@ This feature was sponsored by Aaron Mehl.
 
 @item
 Texts over multi measure rests can stretch the corresponding measure,
-if the appropriate @code{spacing-procedure} property is set.
+if the appropriate @code{spring-and-rods} callback is set.
 
 @lilypond[relative=2,fragment,raggedright]
-\override MultiMeasureRestText #'spacing-procedure
+\override MultiMeasureRestText #'callbacks #'springs-and-rods
   = #Multi_measure_rest::set_text_rods
 c1 R1 R1^"Very long long long text" 
 @end lilypond
index a201da7a21be7f5186f1979bf1e967ee6c74d631..42f34ba89d3a6f96221b68a433ca7acd91543cde 100644 (file)
@@ -1392,10 +1392,9 @@ first or second voice.
 @lilypond[verbatim,raggedright]
 smaller = {
   \set fontSize = #-2
-  \override Stem #'length = #5.5
+  \override Stem #'length-fraction = #0.8
   \override Beam #'thickness = #0.384
-  \override Beam #'space-function =
-    #(lambda (beam mult) (* 0.8 (Beam::space_function beam mult)))
+  \override Beam #'length-fraction = #0.8
 }
 
 \addquote clarinet \relative {
index a4a03db47982948dc3353abc5f875e106d999416..9af5cee0593b0ea423618d71b801c4e52f209e24 100644 (file)
@@ -1329,7 +1329,6 @@ of the broken tie is translated up.
   c1 ~ \break c2 ~ c
 }
 @end lilypond
-@end ignore
 
 @noindent
 When applying this trick, the new @code{after-line-breaking} callback
index 7ab4f356bcd61c57837c50d92ad2ed6448b43a7c..4570709d7cf8ded351dae309b431a672132264e1 100644 (file)
@@ -1,7 +1,8 @@
 \header {
 
-  texidoc = "Pairs of congruent figured bass extender lines are vertically centered.
- "
+  texidoc = "Pairs of congruent figured bass extender lines are
+vertically centered if @code{figuredBassCenterContinuations} is set to
+true."
 
 }
 
@@ -18,6 +19,7 @@
   }
  \figures {
     \set useBassFigureExtenders = ##t
+    \set figuredBassCenterContinuations = ##t
     <6+ 4 3>4 <6 4 3> r
     <6+ 4 3>4 <6 4 3> <4 3+> r
   } 
diff --git a/input/regression/figured-bass-continuation-forbid.ly b/input/regression/figured-bass-continuation-forbid.ly
new file mode 100644 (file)
index 0000000..749c875
--- /dev/null
@@ -0,0 +1,14 @@
+\header {
+
+  texidoc = "By adorning a bass figure with @code{\\!}, an extender
+  may be forbidden. "
+
+}
+\version "2.7.13"
+\paper { raggedright = ##t }
+
+\figures {
+  \set useBassFigureExtenders = ##t
+  <4 6 7> 
+  <4\! 6 7->
+ }
index ba2aa73ea1b0408ab4145e5cf29c1c908933b6ad..1cddfbabd9fcad3fb17e34856fd23aff272d305e 100644 (file)
@@ -6,10 +6,9 @@
   texidoc = " Figured bass is created by the FiguredBass context which
 responds to figured bass events and rest events.  You must enter these
 using the special @code{\figuremode @{ @}} mode, which allows you to
-type numbers, like @code{<4 6+>}.
+type numbers, like @code{<4 6+>} and add slashes and pluses.
 
-You can also enter markup strings. The vertical alignment may also be
-tuned.
+You can also enter markup strings. The vertical alignment may also be tuned.
 
 "
 
@@ -28,7 +27,7 @@ tuned.
   }
   \figures { 
     <3 [5 7]>
-    <3 [5] 7 [9 11]>
+    <3\+ [5/] 7/ [9 11]>
     <3+ 5- 7!>
     <3 _! 5 _- 7>
     <3 _ 5 _ 7>
index 6761780e2cc660196bfc285a867ff8b3960319c3..e97bccab4b37775cfc8399016e5422bbdd5eb93a 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 %% +.ly: Be the first .ly file for lys-to-tely.py.
 %% Better to make lys-to-tely.py include "introduction.texi" or
 %% other .texi documents too?
index 841569a533ea2a48ca9bd7e25b56dc905bf7cc7e..d900c693d040cba7444620068eb46581ebf0b3c7 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.7.10"
+\version "2.7.13"
 
 \header {
 
index fe532957ae0855d644cb55ba25ff0382d8e9acc5..ed08cbfb8e618cf707155658c41da639e895dff6 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.7.10"
+\version "2.7.13"
 
 \header {
 texidoc= "@cindex make-music Fingering
index 775d039c01b80df6d87259573b5d5a8c43079c44..ef94123d5e06a5d41be430704c7b6e40999f5830 100644 (file)
@@ -6,7 +6,7 @@ ambitus must be moved manually to prevent collisions."
 
 }
 
-\version "2.6.0"
+\version "2.7.13"
 
 \layout {
     raggedright = ##t
index e5064c558336d71eadfdf2ee131cc03452c0213e..cde3b5151ebe1eef6fa951c858f73a50efeca5c4 100644 (file)
@@ -6,7 +6,7 @@ are collected here.
 "
 }
 
-\version "2.6.0"
+\version "2.7.13"
 
 \relative c'' {
       \time 5/4
index e5245d52c3f0c9be525731ddc3bdbb5c5c462128..94dc8f238b18f89deac3c25782facc4bb1bf2d61 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.7.10"
+\version "2.7.13"
 % TODO: split ancient-font into seperate files; possibly in
 % different locations.
 \header {
index bd14b805fac7eaea93530ffdfdb3c06d6a321026..2864bd31f50755b1223d0f4e9731d6c0b07b6096 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 % TODO: move stuff from ancient-font into here?  See comment
 % for ancient-font.ly
 \header {
index dd8050814d3432767fc97d3cf2a5c086dcb20945..fa1d1f2c074aecae4e3707128038efe5e99704c7 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 \header {
 
     texidoc = "@cindex Bars Always
index c54f0712125734240f671ec95a5c8362b7791611..36f9aaeb124fa97b93ca8c75529f9ee834d2577f 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 \header { texidoc = "@cindex Bar line lyric only
 You can move @code{Bar_engraver} and @code{Span_bar_engraver} to 
 a different engraving context, if you want, for example, bar lines 
@@ -23,7 +23,7 @@ on lyrics. "
 
 
            %% need procedure, since lyrics doesn't have a staff_sym engraver.
-           \override BarLine #'bar-size-procedure = #(lambda (x) 3.0)
+           \override BarLine #'bar-size = #3.0
        }
        \context{
            \ChoirStaff
index 50d7cb2c528d6f1db08c61983f9cdc2aa3efdb22..f11cd38caebf3f27a8bb7486351c62a29d967cc8 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 
 \header {
     
index 9fbb860115262185f45b7d31dca6a9b1bcc14d4d..bef5bf563c4e5ba5d226babe927ea428769743fc 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.7.10"
+\version "2.7.13"
 
 \header {
     texidoc = "@cindex Bar Number Every Fifth Reset
index e151da304c1c48965cce9fcf1e4762d73c6ebd1c..3d88af7b93392318ddaf00327ba4ac09bab2d3f0 100644 (file)
@@ -5,18 +5,18 @@ Bar numbers can be printed at regular intervals, inside a box or a circle.
 
 " }
 
-\version "2.6.0"
+\version "2.7.13"
 
 \relative c'{
    \override Score.BarNumber  #'break-visibility = #end-of-line-invisible
    \set Score.barNumberVisibility = #(every-nth-bar-number-visible 4)
    \override Score.BarNumber #'font-size = #2
 
-   \override Score.BarNumber #'print-function
+   \override Score.BarNumber #'callbacks #'stencil
    = #(make-stencil-boxer 0.1 0.25 Text_interface::print)
    \repeat unfold 5 { c1 } \bar "|"
 
-   \override Score.BarNumber #'print-function
+   \override Score.BarNumber #'callbacks #'stencil
    = #(make-stencil-circler 0.1 0.25 Text_interface::print)
    \repeat unfold 4 { c1 } \bar "|."
 }
index 034f12016536c7692aa8e2e47f59074c61d0b45d..47c9b003b39ee185eca80789b3301fd11d9cae9f 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 \header{
     texidoc="@cindex Bar Number Show All
 By default, bar numbers are printed only in the first measure.  This 
index d20b040d9a2fae1778d9c799c51f233b63263ed4..9262aca9e239736b2bd94195d7e864eb37b6aa50 100644 (file)
@@ -8,7 +8,7 @@
 
 }
 
-\version "2.6.0"
+\version "2.7.13"
 
 wipeNote = {
     \once \override NoteHead #'transparent = ##t
index 3ed084550fc2cc97d3e5a54f65c35bfe00cc6580..bc57c182864d205c53b4eb35ef1e68b8c98d75c8 100644 (file)
@@ -1,5 +1,5 @@
 
-%% \version "2.6.0"
+%% \version "2.7.13"
 
 %% keep for now, although merging into beam-auto-override is a possibility.
 \header {
index 7de434428a7c71562b29f52653c0ec601660df60..621de6836a97f040ecfe1189598d585681926bf6 100644 (file)
@@ -1,6 +1,6 @@
 
 %% ugh
-%% \version "2.6.0"
+%% \version "2.7.13"
 
 \header {
 
index c291893ec088a28baf320122c625c2bcfbe85a44..45ae760db4ab1925f27d39c6b1768f8966bf73ce 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 \header{
     texidoc="@cindex Beam Position Control
 
index 8b6f4b1a7b2a577507c46c45e7fefe238af70847..73e8e599f6a51ca16bec51258e4b74aacfeccba4 100644 (file)
@@ -1,5 +1,5 @@
 
-%%\version "2.6.0"
+%%\version "2.7.13"
 \header{
        texidoc="@cindex Beam Count
 
index aa5776f3e1529d75a26ec66b0c4577bedb1bed54..dc412bca9ef1cc0f4843ec64c66eb091cf18c596 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 \header {
   texidoc = "@cindex Boxed Stencil
 
@@ -10,18 +10,19 @@ grob. " }
 \layout{raggedright = ##t}
 \relative c''  {
 
-  \override TextScript  #'print-function =
+  \override TextScript #'callbacks #'stencil =
   #(make-stencil-boxer 0.1 0.3 Text_interface::print)
 
   c'4^"foo"
 
-  \override Stem  #'print-function =
+  \override Stem #'callbacks #'stencil =
   #(make-stencil-boxer 0.05 0.25 Stem::print)
 
-  \override Score.RehearsalMark  #'print-function =
+  \override Score.RehearsalMark #'callbacks #'stencil =
   #(make-stencil-boxer 0.15 0.3 Text_interface::print)
   b8
-  \revert Stem #'print-function
+  \revert Stem #'callbacks % stencil
+
 
   c4. c4 \mark "F" c1 
 }
index 356fee7701d06b2616e8fb0302623d657e935911..98e04ebb66695b7d1202bdf44a6eaa62da42a080 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 \header {
 texidoc = "@cindex Capital Letters
 The font can be changed to small caps.
index f15597cd2b8f2c44b95d7014540898edf4578883..ebac8c13fb8859b0fd614df29212242d786033e0 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 \header {
 
 texidoc = " Chord names are generated from a list pitches.  The
index 0701d6df95c70734f250b0194e6d8ee751c62e73..e064a1e2dec097354be51f5fca7f477f0b2c862d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 \header  {
     texidoc = "@cindex Chord Names German
 The english naming of chords (default) can be changed to german 
index 57f7fca117e7c2e8385c10e26ed0d541901bb3bc..e80a28e9a713a7cdad7471bfa030ba6c131f334e 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 \header {
 texidoc = "@cindex Circle
 
@@ -18,6 +18,6 @@ c1
 \mark \default
 c2 d^\markup{\circle \finger "2"}
 \override Score.BarNumber #'break-visibility = #all-visible
-\override Score.BarNumber #'print-function
+\override Score.BarNumber #'callbacks #'stencil
   = #(make-stencil-circler 0.1 0.25 Text_interface::print)
 }
\ No newline at end of file
index 0bf588441ab815e81a1e1c0bd0788b518956d3c7..cefeec507f90ec60eb2c049cd1abdb173ad14455 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.5.20"
+\version "2.7.13"
 \header {
 texidoc = "@cindex compound time
 @cindex plus
@@ -24,7 +24,7 @@ compound time.
 \relative {
   %% compound time signature hack
   \time 5/8
-  \override Staff.TimeSignature #'print-function
+  \override Staff.TimeSignature #'callbacks #'stencil
   = #(lambda (grob) (compound-time grob "2" "3" "8"))
   #(override-auto-beam-setting '(end 1 8 5 8) 1 4)
   c8 c c8 c c
index 24b1b55061b11b65eabf8f6afd0c9871c3ccb191..7b13ac72396232b1366c7cd7811eb2be10e1a710 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 
 
 % Ugh, we need to override some LaTeX titling stuff
index 1f2547aacc3c4406423f029e31ae9316b9121940..d7c8db6b53d1a9868142d760c018af21414dfe5c 100644 (file)
@@ -9,7 +9,7 @@ Choices are @code{divisioMinima}, @code{divisioMaior},
 
 " }
 
-\version "2.6.0"
+\version "2.7.13"
 
 \include "gregorian-init.ly"
 
index 3c40265812391e2c239b8fcee1b1c725fb8c1973..eee42603caebc9c9694150ce9edf4ef536f18b28 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 % probably should be merged into refman.
 \header{
     texidoc = "@cindex Dynamic Piu Forte
index 70de21e9b102ef7c509faa87a743e4850d7858c1..96662eb14734ad4291db6ee25fd97dec63570621 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 
 
 \header {
index 2c6db58059db06341e3c9decbc78146a17872f77..648c9e35e2cc4da987dbcd395074d10d4dbc9964 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 \header {
     
 texidoc ="In polyphonic notation, many voices can share a staff: In
index 63ea250917c3d710fa03d2e402783ad14a6e2801..f656243cab13d5c69e6a743a148bb77febd1013f 100644 (file)
@@ -1,5 +1,5 @@
 %% texidoc = "Include file for engraver example."
-\version "2.4.0"
+\version "2.7.13"
 topVoice =  \relative c' {
   \key d\major
   es8([ g] a[ fis])
index 694f84ac6b9ef814d2e75d1196954104be72c6d2..f8ccf6389a508a30cb474488a6939868ed43cdd9 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.7.6"
+\version "2.7.13"
 \header {
     
 texidoc = "The notation problem, creating a certain symbol,
index a3ad74c57400c0f054c6b51b702150a40cf6d329..20d28fcda4e9eb15fb91ab7b54fbaacc1d341ac3 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 
 % definitely wil be renamed to something.
 %{
index 583cf4da657642535d4d154b95849f029ef208c2..50f562ed384af1c80b5c36192d31b9ab99c51583 100644 (file)
@@ -3,7 +3,7 @@
   texidoc = "Frets are supported as markup commands."
 }
 
-\version "2.6.0"
+\version "2.7.13"
 
 \score {
     <<
index 81b43fa1e4ea91cb11c7ee37b226ee07e6faa91a..71bb9d68368eea19d663f21d291442faea69d2b9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 \header {
     texidoc  = "@cindex Gregorian Scripts
 
index d7f47e723612361b8e752555a1c9173ef8cdc805..e4448af31bddaf0874dd4c42f5f5ccf582968cef 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 
 
 #(if (not (defined? 'pieceTagLine))
index ed428c8ce02f0adf99599217d431c88cb6af1242..1fdabc642f69dc12dacd4ade9469605c331801af 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 
 \header { texidoc = "
 
index 5a1a4cff896fb876c29152c125f4c63a0fa59cba..a3329b8e8bdafbbdc905f0827240eb50b5385331 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 \header { texidoc = "@cindex Instrument Name Grandstaff
 You can have a name for the whole @code{GrandStaff} in addition to 
 individual @code{Staff}s. " }
index 3f516d92ec2c5e9f67599a4485da867ae378bb0d..416380acd614e0353171f28588336a3f4f094a68 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 
 \header { texidoc      = "@cindex Ancient Vaticana
 Vaticana ligature uses four staff lines, special clef, and
index f70ad7350219031d20543f7b86d6dfc092c1cb9d..ba5fdffee7f471a30c440e9e36c2d71ee416abb0 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 % MERGE with title.ly -gp
 
 %{
index 70c9a5636e6bf3a47f43ddfe41502edaa2b9fde7..d6158ba75f09c417ab5a86f5aa24ddf1073178e9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 % TODO:
 % check with ancient- stuff.  rename, merge, something.  -gp
 
index a5a4a30b33b0d5a6d3b209f59fb740833c37939e..09485c537c81d14c6207cad4ae13cb44b961c6bb 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 
 \header {
     texidoc ="@cindex Ancient Mensural Note Heads
index a82b6bdeee4e42810a02212dfeda246bce42d977..65b631b3a820e8fcfba226bf19f12f9a4312f611 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.7.10"
+\version "2.7.13"
 % possible rename to scheme- or something like that.  -gp
 \header { texidoc = "@cindex Scheme Move Text
 Objects, like text, can be moved around by using some Scheme code.
index 47b2cfdd183f78820f47232d9173b14b6688e44b..70a47f6b3608513c8bea04b8df62309cd8c1e67d 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.7.10"
+\version "2.7.13"
 \include "deutsch.ly"
 % possible rename to scheme- something.  -gp
 % TODO: ask if it needs to have so many empty bars in the middle.  -gp
@@ -53,7 +53,7 @@ using Scheme functions to avoid typing work. " }
 
 
 
-\version "2.7.10"
+\version "2.7.13"
 
 pat =  \transpose c c' \repeat unfold 2 {
   << { \context Staff = "up" {r8 e16 f g e f g } }
index 3075eecfd43b688a903a6e3bde4ada6061fc51f8..b5fac5e960c233b1474ad9861e8a0a717251639e 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 
 % possible rename to scheme- something.  -gp
 \header { texidoc = "@cindex Scheme Music Creation
index 7cb4a6b65b05dde67346c68617e3b523ee1f4f68..4355abdd981227999ed504be8d0d91d3994e1ba9 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 % possible rename to bar-lines-foo.  -gp
 
 \header{ texidoc = "@cindex Bar Lines Remove
index b3fa4cd25d30d42344a9a99c50e333bddc858cc2..d036d86e9eb969f54052d310c0312332e05dc9fa 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 \header {
 
     texidoc = "@cindex Key Signature End of Line
index 00535b076e756711b7a0e93139cba1e38300e0f0..d73e3efa1a9bba1f6587bdc3018f22953e57ecaa 100644 (file)
@@ -2,7 +2,7 @@
 \header { texidoc = "Ossia fragments can be done with starting and
 stopping staves. " }
 
-\version "2.6.0"
+\version "2.7.13"
 \paper { raggedright = ##t }
 
 <<
index 0b444e3fe1e62d1203cf04f39c1982e5f2925fd4..d6fd42ae1a8fc30e5d4aa346cc4c1c7b5102be4e 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 % check with invisible-notes or blank-notes.  possible rename. -gp
 \header{ texidoc = "@cindex Partial Blank
 When entering partially typeset music (i.e. for students to be 
diff --git a/input/test/piano-staff-distance.ly b/input/test/piano-staff-distance.ly
deleted file mode 100644 (file)
index bfd2ed5..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-
-\header
-{
-
- texidoc = "It is possible to have different staff distances between
-the staffs of a piano system, but it requires some advanced Scheme code. 
-Currently, this is for testing purposes.  "
-
-}
-
-\version "2.6.0"
-
-#(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:grob-parent grob axis))
-       (o (ly:grob-original a))
-       (bs (if (ly:grob? o)
-               (ly:spanner-broken-into o)
-               #f))
-       )
-
-
-     (if (and (list? bs)
-             (< count (length bs))
-             (equal? (list-ref bs count) a)
-        )
-        (ly:grob-set-property! a 'forced-distance distance))
-     
-     (Align_interface::fixed_distance_alignment_callback grob axis)) )
-
-\score {
-     \relative c''  \context PianoStaff
-    \with {
-       verticalAlignmentChildCallback = #(futz-alignment-callback 20 1)
-
-       %% Every cross staff beam will trigger
-       %% alignment unless autokneeing is switched off 
-       \override Beam #'auto-knee-gap = #'()
-    } <<
-
-       \context Staff = "up" {
-           
-           \time 2/4 
-           c8[
-               \change Staff = down
-               \once \override Stem #'direction = #UP
-               c8
-               \change Staff = up
-               c c ](
-           |
-           \break
-           
-           c8[)
-               \change Staff = down
-               \once \override Stem #'direction = #UP
-               c8
-               \change Staff = up
-               c c ](
-       }
-       \context Staff = "down" {
-           \skip 1 }
-
-    >>
-    \layout { raggedright = ##T } 
-}
index c608a35d045ff9fe82bfd0b8737ccc78ac56b449..1266112761ee69d175ec28b613c8e0ecf61513ac 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 \header { texidoc = "
 
 @cindex Preset Extent
index cbcc9de4ec64a358b2b1cbefa2ca7c3b1c6b1643..987da8a86d92c6e595c1e891daff8cdd99235be6 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 \header {
     texidoc = "@cindex Rests
 
index a0e31643bf6af896ca690662a3062763593f0aba..b267b12f9b6b3750b3f73aaa35b404d30d976dc0 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.7.10"
+\version "2.7.13"
 % possible rename to scheme-something.
 \header { texidoc="@cindex Scheme Reverse Music
 Symmetric, or palindromical music can be produced, first, by printing
index 8ea4f2ba75f267e6efe4e69c7e477f4f2a1aeb07..621cddeedd7a340978da7383f0b6749a52592352 100644 (file)
@@ -1,7 +1,7 @@
 
 % this chart is used in the manual too.
 
-\version "2.6.0"
+\version "2.7.13"
 \header { texidoc = "@cindex Script Abbreviations
 
 Some articulations may be entered using an abbreviation.
index ccfe23055e53fd1c5a7e11e695cd8c530871196c..1a4c4337edcc9777a1062b78d91d4952aa5feee4 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 
 % this chart is used in the manual too.
 
index 51534e522545a74b1ffc13bc17ddd8519825fc7d..b164ed3e620d07d5d8c4904465cbdd3c7ef690b7 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 \header {
 
 
index a1994968bd8bc47415b8dfe8cbd7374d0381ccb7..3dd0e4d47e45ab8f2dc74a09e36a7c46a79329c3 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 
 \header { texidoc = "@cindex Slur Minimum Length
 By setting the minimum length of a slur, notes are more separated. " 
index dec010bd84e64b55c3eb4d1376526432bf3cb9a6..557a81c45eac2034092c8a4175895b81fcdcf2e1 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.7.10"
+\version "2.7.13"
 
 \header {
 texidoc="@cindex Smart Transpose
index c21723657029700879e9f08dc5928e1388c24637..27feecd3514a7295869c7e573c0d97912899953c 100644 (file)
@@ -4,7 +4,7 @@ texidoc  = "Stem directions and head positions are taken into account for spacin
 
 }
 
-\version "2.6.0"
+\version "2.7.13"
 
 \paper {
   raggedright = ##t
index 51f6314fa369c6b2af2d7b16c330ce38f2d228c3..70be25751ecd458cbac8acc6f1f83cd3773b0599 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0
+\version "2.7.13
 
 \header{ texidoc="@cindex Nested Staff Groups
 Staffs can be nested in various combinations. Here, @code{StaffGroup}
index 00c13dc796a3f923967d52268d9e968cb9359cfb..8070e9c49f4ddef9b120c40c38ad9c62c5443c60 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.7.6"
+\version "2.7.13"
 
 \header {
 
index 78a9a75d935d77e672c4b460d4684cc41b13375d..c02a2c196093463d8a0c4c26efc00a826cd690bd 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 
 \header {
 
index 633ea32f7f29d0865c98bef891ec6eb1579b4296..8d01ad22907968404f00bc57e3e5734df1848046 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 
 \header { texidoc = "@cindex Staff Size
 
index 056d1cc8deaf9076af7bc52385cf34ec38a25961..42fdbb452aaf6f26bd65087d493a741d23dd9ae9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 
 \header { texidoc = "@cindex Stem Extend
 Extending stems to the center line may be prevented using @code{no-stem-extend}.
index c478734766fa7b4f027ce9842d53b9c75997d9bd..00846291bf49e0674d39abfecdaaf74d3c5e07d3 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 \header {texidoc = "@cindex Tablature hammer
 A hammer in tablature can be faked with slurs. "
 } 
index dbcdd63805df5ca54f3a9c36ff480eecde39e19b..09402d6830670daf678b4d34068220e0aabae760 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 
 \header {
 
index f3552a30a2b2b03c36b1a232d1ea2e62e33a0da6..b1a2190f89a349880bd583cc6572763da4968fd1 100644 (file)
@@ -16,7 +16,7 @@ output for printing of the source of this example (commenting one line).
 
     }
 
-\version "2.6.0"
+\version "2.7.13"
 
 \score {
 \new Staff  \relative c'' {
index 32d0d573203a10c0aed33d380b5c05613e733909..60a3972256dee72a178d4fd9b96b80ec56220a3e 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "2.6.0"
+\version "2.7.13"
 
 \header { texidoc = "@cindex text spanner
 Text spanners can be used in the similar manner than markings for pedals
index a58cf37a174f205f7790b709117414d6892305a9..d5c59523f3345db83d2c629fe5fefdc05cdce99f 100644 (file)
@@ -6,7 +6,7 @@
   used contemporary pieces with many time signature changes.  "
 
 }
-\version "2.7.6"
+\version "2.7.13"
 \layout {
   raggedright =  ##T
 }
index 153c930f17dd2900ef086f1d5aa354c36328f58d..34ffdc1dac6ad095bd92e45cde7faace29cd9202 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.7.10"
+\version "2.7.13"
 
 \header { 
 texidoc = "Applying the standard function @code{unfold-repeats} unfolds 
index f92705de82af261daf6fc404ef47f1f79fdd28df..3d0a3f9e62adf18e494ee4826ac1a8357e5b51b9 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 
 \header {
 
index 494935c3be73fdf19871ec27bbdc8531a8799e1d..fb268bb11819d4969efe986614ae4103a76e4420 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.6.0"
+\version "2.7.13"
 % TODO: huh?  what's this file about?  -gp
 
 \header { texidoc = "
index 111efde1e5dbd2b2f9ba6c9ce689d582e803ccab..dc140c96169e538707e37896655749e967c8c6b9 100644 (file)
@@ -3,7 +3,7 @@
 the @code{voltaOnThisStaff} property to true for the @code{ChordNames} context and to false for the topmost ordinary @code{Staff} context."
 }
 
-\version "2.6.0"
+\version "2.7.13"
 \score { <<
   \new ChordNames \with {
     voltaOnThisStaff = ##t
diff --git a/lily/grob-array-scheme.cc b/lily/grob-array-scheme.cc
new file mode 100644 (file)
index 0000000..89aba0a
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+  grob-array-scheme.cc -- implement Grob_array bindings.
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+*/
+
+#include "grob-array.hh"
+#include "grob.hh"
+
+LY_DEFINE (ly_grob_array_length, "ly:grob-array-length",
+          1, 0, 0,
+          (SCM grob_arr),
+          "Return the grob_array length.")
+{
+  Grob_array *me = unsmob_grob_array (grob_arr);
+  SCM_ASSERT_TYPE (me, grob_arr, SCM_ARG1, __FUNCTION__, "Grob_array");
+  return  scm_from_int (me->size ());
+}
+
+
+LY_DEFINE (ly_grob_array_ref, "ly:grob-array-ref",
+          2, 0, 0,
+          (SCM grob_arr, SCM index),
+          "Retrieve the @code{index} element of @code{grob-arr}.")
+{
+  Grob_array *me = unsmob_grob_array (grob_arr);
+  SCM_ASSERT_TYPE (me, grob_arr, SCM_ARG1, __FUNCTION__, "Grob_array");
+  SCM_ASSERT_TYPE (scm_is_integer (index), index, SCM_ARG2, __FUNCTION__, "integer");
+
+  int i = scm_to_int (index);
+  if (i < 0 || i >= me->size ())
+    {
+      scm_out_of_range (NULL, scm_from_size_t (i)); 
+    }
+  
+  return me->grob (i)->self_scm ();
+}
+
index d12fea593637160d72a44bd34371c6b6d9cdecdc..b4e3697a5078cf2385aacd0093b918b65c7f980a 100644 (file)
@@ -611,6 +611,8 @@ BOM_UTF8    \357\273\277
        return E_CLOSE;
     case '[':
        return E_BRACKET_OPEN;
+    case '+':
+       return E_PLUS;
     case ']':
        return E_BRACKET_CLOSE;
     case '~':
index 04dae1da50706dd0bb25f766a1ab57a4d7a645e1..fbf0665f3a1f07a953babd26e40d777d3ff5c07d 100644 (file)
@@ -32,9 +32,11 @@ struct Figure_group
   
   Item *figure_item_; 
   Music *current_music_;
+  bool force_no_continuation_;
   
   Figure_group ()
   {
+    force_no_continuation_ = false;
     continuation_line_ = 0;
     number_ = SCM_EOL;
     alteration_ = SCM_EOL;
@@ -45,6 +47,7 @@ struct Figure_group
   {
     return
       current_music_
+      && !force_no_continuation_
       && ly_is_equal (number_,
                      current_music_->get_property ("figure"))
       && ly_is_equal (alteration_,
@@ -147,7 +150,8 @@ New_figured_bass_engraver::try_music (Music *m)
              && ly_is_equal (groups_[i].number_, fig))
            {
              groups_[i].current_music_ = m;
-            
+             groups_[i].force_no_continuation_
+               = to_boolean (m->get_property ("no-continuation"));
              continuation_ = true;
              return true; 
            }
@@ -208,8 +212,8 @@ New_figured_bass_engraver::clear_spanners ()
     return;
   
   alignment_ = 0;
-  center_repeated_continuations();
-
+  if (to_boolean (get_property ("figuredBassCenterContinuations")))
+    center_repeated_continuations();
   
   groups_.clear ();
 }
@@ -275,7 +279,8 @@ New_figured_bass_engraver::process_music ()
   bool use_extenders = to_boolean (get_property ("useBassFigureExtenders"));
   if (!use_extenders)
     {
-      center_repeated_continuations ();
+      if (to_boolean (get_property ("figuredBassCenterContinuations")))
+       center_repeated_continuations ();
       alignment_ = 0;
       for (int i = 0; i < groups_.size (); i++)
        {
@@ -457,6 +462,7 @@ ADD_TRANSLATOR (New_figured_bass_engraver,
                "bass-figure-event rest-event",
 
                /* read */
+               "figuredBassCenterContinuations "
                "implicitBassFigures "
                "newFiguredBassFormatter "
                "figuredBassAlterationDirection "
index 4ddc525e55f1a1376c60a0422627dcbf79ebad61..4734db7fe3f3e2b29f76e3d5d09d1ebe4f8b617b 100644 (file)
@@ -350,15 +350,12 @@ or
 %token E_OPEN "\\("
 %token E_BRACKET_CLOSE "\\]"
 %token E_ANGLE_OPEN "\\<"
+%token E_PLUS "\\+"
 %token E_TILDE "\\~"
 %token EXTENDER "__"
-/*  These used at all?
-  %token FIGURE_BRACKET_CLOSE 
-  %token FIGURE_BRACKET_OPEN
-
-parser.yy:348.8-25: warning: symbol `"\\>"' used more than once as a literal string
-parser.yy:352.8-24: warning: symbol `"\\<"' used more than once as a literal string
 
+/*
+If we give names, Bison complains.
 */
 %token FIGURE_CLOSE /* "\\>" */
 %token FIGURE_OPEN /* "\\<" */
@@ -428,7 +425,7 @@ parser.yy:352.8-24: warning: symbol `"\\<"' used more than once as a literal str
 %type <book> book_body
 
 %type <i> bare_unsigned
-%type <i> bass_mod
+%type <i> figured_bass_alteration
 %type <i> dots
 %type <i> exclamations
 %type <i> optional_rest
@@ -479,6 +476,7 @@ parser.yy:352.8-24: warning: symbol `"\\<"' used more than once as a literal str
 %type <scm> assignment_id
 %type <scm> bare_number
 %type <scm> bass_figure
+%type <scm> figured_bass_modification
 %type <scm> br_bass_figure
 %type <scm> bass_number
 %type <scm> chord_body_elements
@@ -2187,7 +2185,7 @@ bass_number:
        | full_markup { $$ = $1; }
        ;
 
-bass_mod:
+figured_bass_alteration:
        '-'     { $$ = -2; }
        | '+'   { $$ = 2; }
        | '!'   { $$ = 0; }
@@ -2214,7 +2212,7 @@ bass_figure:
                $$ = $1;
                unsmob_music ($1)->set_property ("bracket-stop", SCM_BOOL_T);
        }
-       | bass_figure bass_mod {
+       | bass_figure figured_bass_alteration {
                Music *m = unsmob_music ($1);
                if ($2) {
                        SCM salter = m->get_property ("alteration");
@@ -2225,9 +2223,36 @@ bass_figure:
                        m->set_property ("alteration", scm_from_int (0));
                }
        }
+       | bass_figure figured_bass_modification  {
+               Music *m = unsmob_music ($1);
+               if ($2 == ly_symbol2scm ("plus"))
+                       {
+                       m->set_property ("augmented", SCM_BOOL_T);
+                       }
+               else if ($2 == ly_symbol2scm ("slash"))
+                       {
+                       m->set_property ("diminished", SCM_BOOL_T);
+                       }
+               else if ($2 == ly_symbol2scm ("exclamation"))
+                       {
+                       m->set_property ("no-continuation", SCM_BOOL_T);
+                       }
+       }
        ;
 
 
+figured_bass_modification:
+       E_PLUS          {
+               $$ = ly_symbol2scm ("plus");
+       }
+       | E_EXCLAMATION {
+               $$ = ly_symbol2scm ("exclamation");
+       }
+       | '/'           {
+               $$ = ly_symbol2scm ("slash");
+       }
+       ;
+
 br_bass_figure:
        bass_figure {
                $$ = $1;
index 79ecb85d407f2a810a0b8ad7b1f2abecd66a3302..44bdc1ee51a20a758bda17680c3268e2856e3d8c 100644 (file)
@@ -223,7 +223,8 @@ contained staves are not connected vertically."
   \name CueVoice
   \alias Voice
   fontSize = #-4
-  \override Stem #'lengths = #'(2.5 2.5 3.0 3.0)
+  \override Stem #'length-fraction = #(magstep -4)
+  \override Beam #'length-fraction = #(magstep -4)
 }
 
 \context {
index b098537a9c2893c824d29b7ef0d17dd15c89d1e1..92436d5a7ddbc29435745556a178100c4389673d 100644 (file)
@@ -2604,6 +2604,13 @@ def conv (str):
        str = re.sub(r"(override|revert)\s*([a-zA-Z.]+)\s*#'(spacing-procedure|after-line-breaking-callback"
                    + r"|before-line-breaking-callback|print-function)",
                    subber, str)
+
+       if re.search ('bar-size-procedure', str):
+               error_file.write (NOT_SMART % "bar-size-procedure")
+       if re.search ('space-function', str):
+               error_file.write (NOT_SMART % "space-function")
+       if re.search ('verticalAlignmentChildCallback', str):
+               error_file.write ('verticalAlignmentChildCallback has been deprecated') 
        return str
 
 conversions.append (((2, 7, 13), conv,
index 95255d7895dc59e5abfc813abdac327655487d35..641376fde65a59a0cbacf53523d1369d61b712f2 100644 (file)
@@ -209,6 +209,7 @@ another non-natural.")
                          "extra vertical extent, same format as @var{minimumVerticalExtent}")
 
 
+     (figuredBassCenterContinuations ,boolean? "Whether to vertically center pairs of extender lines.")
      (figuredBassAlterationDirection ,ly:dir? "Where to put
 alterations relative to the main figure.")
      (followVoice ,boolean? "If set, note heads are tracked across staff
index e13a5c5768e6ebbcb2258acc8a67f440ff659337..fd23168585c70dff34ecc9887bcd5691c2b30c68 100644 (file)
        (avoid-slur . inside)
        (cautionary-style . parentheses)
        (callbacks . ((stencil . ,Accidental_interface::print)
-                     (after-line-breaking . ,Accidental_interface::after_line_breaking)))
-       
+                     (after-line-breaking
+                      . ,Accidental_interface::after_line_breaking)
+                     ))
        (meta . ((class . Item)
                 (interfaces . (accidental-interface
                                font-interface))))))
     
     (AccidentalSuggestion
-     . (
-
-       (callbacks . ((stencil . ,Accidental_interface::print)))
+     . ((callbacks . ((stencil . ,Accidental_interface::print)))
        (X-offset-callbacks . (,Self_alignment_interface::centered_on_parent
                               ,Self_alignment_interface::aligned_on_self))
        (self-alignment-X . ,CENTER)
index 8d5e057a51567d3ac58ccb29fcf6a81390b32866..2eeb3fae06169717a66c48247d689b3199e5bd5d 100644 (file)
@@ -991,6 +991,47 @@ letter 'A'."
    (Text_interface::interpret_markup layout props
      (number->markletter-string number->mark-alphabet-vector num)))
 
+
+
+(def-markup-command (slashed-digit layout props num) (integer?)
+  "A feta number, with slash. This is for use in the context of
+figured bass notation"
+  (let*
+      ((mag (magstep (chain-assoc-get 'font-size props 0)))
+       (thickness
+       (* mag
+          (chain-assoc-get 'thickness props 0.16)))
+       (dy (* mag 0.15))
+       (number-stencil (interpret-markup layout
+                                        (prepend-alist-chain 'font-encoding 'fetaNumber props)
+                                        (number->string num)))
+       (num-x (interval-widen (ly:stencil-extent number-stencil X)
+                             (* mag 0.2)))
+       (num-y (ly:stencil-extent number-stencil Y))
+       (slash-stencil 
+       (ly:make-stencil
+        `(draw-line
+          ,thickness
+          ,(car num-x) ,(- (interval-center num-y) dy)
+          ,(cdr num-x) ,(+ (interval-center num-y) dy))
+        num-x num-y
+        )))
+
+    (ly:stencil-add number-stencil
+                   (cond
+                    ((= num 5) (ly:stencil-translate slash-stencil
+                                                     ;;(cons (* mag -0.05) (* mag 0.42))
+                                                     (cons (* mag -0.00) (* mag -0.07))
+
+                                                     ))
+                    ((= num 7) (ly:stencil-translate slash-stencil
+                                                     ;;(cons (* mag -0.05) (* mag 0.42))
+                                                     (cons (* mag -0.00) (* mag -0.15))
+
+                                                     ))
+                    
+                    (else slash-stencil)))
+    ))
 \f
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; the note command.
index 263c188a62ae20ec2da8b8cacfba46973ec5e2e3..95c89a8480153ee8525dcd903aae8faa58258967 100644 (file)
@@ -29,6 +29,7 @@ TODO: consider making type into symbol")
      (articulation-type ,string? "key for script definitions alist.
 
 TODO: consider making type into symbol ")
+     (augmented ,boolean? "This figure is for an augmented figured bass (with +) sign.")
      (associated-context ,string? "Name of the Voice context associated with this \\newaddlyrics section")
      (bass ,boolean? "Set if this note is a bass note in a chord")
      (cautionary ,boolean? "If set, this alteration needs cautionary accidental")
@@ -41,6 +42,7 @@ TODO: consider making type into symbol ")
 descend in the context tree.")
      (denominator ,integer? "denominator in a time signature")
      (digit ,integer? "digit for fingering")
+     (diminished ,boolean? "This bass figure should be slashed.")
      (direction ,ly:dir? "Print this up or down?")
      (drum-type ,symbol? "Which percussion instrument to play this note on.")
      (error-found ,boolean? "If true, a parsing error was found in this expression")
index aa536c2e5c0d7830568a3b422fc2c8e8cb02fe0a..b16768d5fdae20d9afd43af9b82cea976b1390a9 100644 (file)
@@ -61,7 +61,9 @@
 (define-public (format-new-bass-figure figure event context)
   (let* ((fig (ly:music-property event 'figure))
         (fig-markup (if (number? figure)
-                        (markup #:number (number->string figure 10))
+                        (if (eq? #t (ly:music-property event 'diminished))
+                            (markup #:slashed-digit figure)
+                            (markup #:number (number->string figure 10)))
                         #f
                         ))
         (alt (ly:music-property event 'alteration))
@@ -72,6 +74,9 @@
                      (alteration->text-accidental-markup alt))
              
              #f))
+        (plus-markup (if (eq? #t (ly:music-property event 'augmented))
+                         (markup #:number "+")
+                         #f))
         (alt-dir (ly:context-property context 'figuredBassAlterationDirection))
         )
 
                      #:pad-x 0.2 alt-markup
                      )))
 
+    (if plus-markup
+       (set! fig-markup
+             (markup #:put-adjacent
+                     fig-markup
+                     X LEFT
+                     #:pad-x 0.2 plus-markup)))
+    
     (if (markup? fig-markup)
        (markup #:fontsize -2 fig-markup)
-       empty-markup)))
+       empty-markup)
+
+    ))