]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.5.6 release/1.5.6
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 14 Aug 2001 11:48:31 +0000 (13:48 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 14 Aug 2001 11:48:31 +0000 (13:48 +0200)
=========

* Allow for duplicated articulation scripts with different direction.

* Added new ornaments: \upmordent, \downmordent, \pralldown, \prallup,
  \lineprall, \thumb, \comma (to be used with scriptHorizontal = ##t),
  see also input/test/trill.ly. [WARNING: FONT UPDATE!]

* Bug fix: staccato dot placement.

1.5.5.

108 files changed:
CHANGES
Documentation/regression-test.tely
Documentation/topdocs/INSTALL.texi
Documentation/user/refman.itely
VERSION
input/bugs/1st-note-spacing.ly [deleted file]
input/bugs/abe.ly [deleted file]
input/bugs/ac-clash.ly [deleted file]
input/bugs/accents.ly [deleted file]
input/bugs/accid.ly [deleted file]
input/bugs/accidental-collision.ly [deleted file]
input/bugs/ancient-font.ly [deleted file]
input/bugs/auto-beam-tuplets.ly [deleted file]
input/bugs/auto-beam.ly [deleted file]
input/bugs/barline.ly [deleted file]
input/bugs/beam.ly [deleted file]
input/bugs/beamed-chord.ly [deleted file]
input/bugs/beaming.ly [deleted file]
input/bugs/braces.ly [deleted file]
input/bugs/broken-tuplet.ly [deleted file]
input/bugs/context-weirdness.ly [deleted file]
input/bugs/denneboom.ly [deleted file]
input/bugs/die-staff.ly [deleted file]
input/bugs/different-time.ly [deleted file]
input/bugs/dots.ly [deleted file]
input/bugs/drarn.ly [deleted file]
input/bugs/dynamic-switch.ly [deleted file]
input/bugs/grace-dynamic.ly [deleted file]
input/bugs/grace-finger.ly [deleted file]
input/bugs/grace-gets-slur.ly [deleted file]
input/bugs/grace-staff-length.ly [deleted file]
input/bugs/grace-stems.ly [deleted file]
input/bugs/hinterfleisch-gone.ly [deleted file]
input/bugs/l.ly [deleted file]
input/bugs/lyrics-bar.ly [deleted file]
input/bugs/lyrics-spacing.ly [deleted file]
input/bugs/markup-definition.ly [deleted file]
input/bugs/markup.ly [deleted file]
input/bugs/mmrest-collide.ly [deleted file]
input/bugs/multiply.ly [deleted file]
input/bugs/partial-beam.ly [deleted file]
input/bugs/pc-direction.ly [deleted file]
input/bugs/pc-mmrest.ly [deleted file]
input/bugs/pc-rest-collide.ly [deleted file]
input/bugs/prefatory-spacing.ly [deleted file]
input/bugs/repeat.ly [deleted file]
input/bugs/rest-melisma.ly [deleted file]
input/bugs/slur-attachment.ly [deleted file]
input/bugs/slur-dots.ly [deleted file]
input/bugs/slur-dx.ly [deleted file]
input/bugs/slur-steep-broken.ly [deleted file]
input/bugs/spacing-very-tight.ly [deleted file]
input/bugs/staff-size.ly [deleted file]
input/bugs/standchen-space.ly [deleted file]
input/bugs/steep-beam.ly [deleted file]
input/bugs/steep.ly [deleted file]
input/bugs/text-kerning.ly [deleted file]
input/bugs/text-spanner.ly [deleted file]
input/bugs/textcresc.ly [deleted file]
input/bugs/tie-break-accidental.ly [deleted file]
input/bugs/ties.ly [deleted file]
input/bugs/time.ly [deleted file]
input/bugs/triplets.ly [deleted file]
input/bugs/voice-switch-slur.ly [deleted file]
input/regression/grace-bar-line.ly
input/regression/grace-nest.ly [deleted file]
input/regression/grace-nest1.ly [new file with mode: 0644]
input/regression/grace-nest2.ly
input/regression/grace-nest4.ly [new file with mode: 0644]
input/regression/grace-nest5.ly [new file with mode: 0644]
input/regression/grace-sync.ly
input/regression/number-staff-lines.ly
input/regression/spacing-clefs.ly [deleted file]
input/test/ancient-font.ly
input/test/trills.ly
lily/auto-beam-engraver.cc
lily/chord-tremolo-iterator.cc
lily/duration.cc
lily/global-translator.cc
lily/grob.cc
lily/include/moment.hh
lily/include/sequential-music-iterator.hh
lily/midi-def.cc
lily/midi-item.cc
lily/midi-walker.cc
lily/moment.cc
lily/music-sequence.cc
lily/musical-request.cc
lily/new-spacing-spanner.cc
lily/parser.yy
lily/percent-repeat-engraver.cc
lily/performance.cc
lily/score-performer.cc
lily/sequential-music-iterator.cc
lily/spacing-spanner.cc
lily/tempo-performer.cc
lily/timing-translator.cc
ly/grace-init.ly
make/out/lilypond.lsm
make/out/lilypond.redhat.spec
make/out/lilypond.suse.spec
mf/feta-bolletjes.mf
mf/feta-schrift.mf
mf/feta-slag.mf
mf/feta-toevallig.mf
scm/grob-property-description.scm
scm/output-lib.scm
scm/script.scm

diff --git a/CHANGES b/CHANGES
index 4606292e68835fc8e2a1176c3fe0f36a6318a9c8..70dd2d3d061799c89374e625f1d64d777187d2af 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,28 @@
+1.4.6.mb1
+=========
+
+* Allow for duplicated articulation scripts with different direction.
+
+* Added new ornaments: \upmordent, \downmordent, \pralldown, \prallup,
+  \lineprall, \thumb, \comma (to be used with scriptHorizontal = ##t),
+  see also input/test/trill.ly. [WARNING: FONT UPDATE!]
+
+* Bug fix: staccato dot placement.
+
+1.5.5.jr1
+=========
+
+* recent ancient-font.ly development branches manually merged and
+  updated;
+
+* added enhanced mensural minima/fusa noteheads (30 degrees rhomb
+  style); the former 45 degrees quadratic shapes are now available
+  under notehead style "neo_mensural"; [WARNING: FONT UPDATE] 
+
+* minor ancient font corrections (in particular, enhanced set_char_box()
+  arguments).
+
+
 1.5.5.jcn2
 ==========
 
@@ -8,6 +33,13 @@
   - Move examples that crash lilypond to input/no-notation.
   - Update examples.
 
+1.5.5.hwn1
+==========
+
+* Grace property fixes.
+
+* More grace nesting bugfixes.
+
 1.5.5
 =====
 
index 608a7be1cbb8daa5afbc0ed435bcaaca3cd8828b..b91c7158a0b1a1ea409b65446a8a6eda8fa56c64 100644 (file)
@@ -79,8 +79,24 @@ documenting bugfixes.
 
 @section Grace notes
 
+Grace note do weird things with timing. Fragile.
+
+
 @lilypondfile[printfilename]{grace.ly}
 
+@lilypondfile[printfilename]{grace-bar-line.ly}
+
+@lilypondfile[printfilename]{grace-nest2.ly}
+
+@lilypondfile[printfilename]{grace-nest3.ly}
+
+@lilypondfile[printfilename]{grace-nest4.ly}
+
+@lilypondfile[printfilename]{grace-nest.ly}
+
+@lilypondfile[printfilename]{grace-start.ly}
+
+@lilypondfile[printfilename]{grace-sync.ly}
 
 
 @section Beams
@@ -179,6 +195,7 @@ documenting bugfixes.
 @lilypondfile[printfilename]{rest-collision.ly}
 
 @lilypondfile[printfilename]{collisions.ly}
+
 @lilypondfile[printfilename]{collision-dots.ly}
 
 @lilypondfile[printfilename]{number-staff-lines.ly}
@@ -195,6 +212,14 @@ documenting bugfixes.
 
 @lilypondfile[printfilename]{spacing-loose.ly}
 
+@lilypondfile[printfilename]{spacing-accidentals.ly}
+
+@lilypondfile[printfilename]{spacing-accidentals-staff.ly}
+
+@lilypondfile[printfilename]{spacing-accidentals.ly}
+
+@lilypondfile[printfilename]{spacing-accidentals-staff.ly}
+
 @lilypondfile[printfilename]{lyrics-bar.ly}
 
 @lilypondfile[printfilename]{non-empty-text.ly}
index 214d9705b7d5e915e0f05160856462387ee4c418..75aece174161dca25d9c38f4b6cd371c85869fa8 100644 (file)
@@ -28,7 +28,8 @@ servers}. Big enhancements go into the latest odd numbered version
 (1.3), whose webpages are on @uref{http://www.lilypond.org/,the lilypond
 site}.
 
-@subsection Source code
+@subsection  source code
+
 
 If you want to compile LilyPond from source, download here:
 @itemize @bullet
@@ -43,42 +44,25 @@ If you want to compile LilyPond from source, download here:
 @uref{http://www.lilypond.org/ftp/} by HTTP.
 @end itemize
 
-Of course, if your platform supports LilyPond, such as Debian GNU/Linux,
-FreeBSD, OpenBSD or NetBSD, you're encouraged to use the native build
-from source drill.
-
-For Red Hat Linux and SuSE Linux, @file{.spec} files are included in the
-tarball; see instructions below.
-
 @html
 <a name="download-binaries">
 @end html
 
 
 
-@subsection Precompiled binaries
-
-If you want to track bleeding edge development, try:
-
-@itemize @bullet
-@item @uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond/, Debian
-GNU/Linux} usually has the latest binaries for the most useful stable
-and development versions, while
-@item @uref{http://rpmfind.net/linux/mandrake/cooker/contrib/RPMS/,
-Mandrake Cooker} also provides fairly recent versions.
-@end itemize
-
-Binaries are made available for other popular platforms, but as we need
-to compile them ourselves, they are not updated for every version
-released.
+@subsection Binaries
 
+Binaries are available, but are not updated for every version released.
 @itemize @bullet
 @item @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/RedHat/RPMS/, Red Hat i386}
-@item @uref{ftp://ftp.lilypond.org/pub/LilyPond/binaries/SuSE, SuSE}
-@item @uref{ftp://ftp.lilypond.org/pub/LilyPond/binaries/linuxppc/,
-LinuxPPC}
+@item @uref{ftp://ftp.lilypond.org/pub/LilyPond/binaries/linuxppc/, LinuxPPC}
+@item @uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond/, Debian GNU/Linux}
 @item
-@uref{http://www.lilypond.org/gnu-windows/, Windows}
+@c  @uref{http://home.austin.rr.com/jbr/jeff/lilypond/, Windows Stable}
+@c @item @uref{ftp://ftp.lilypond.org/pub/lilypond/gnu-windows, Windows
+@c Testing} 
+@uref{http://www.lilypond.org/gnu-windows/, Windows Testing}
+
 @end itemize
 
 @subsection Upgrading
@@ -390,7 +374,7 @@ platform.
 @subsection Mandrake
 
 Some binaries are available at rpmfind.net. Refer to 
-@uref{http://rpmfind.net/linux/mandrake/cooker/contrib/RPMS/}.
+@uref{ftp://ftp.rpmfind.net/linux/Mandrake-devel/cooker/contrib/RPMS/}.
 
 
 @subsection Debian GNU/Linux
index 3deccc35ce0eff4fa69b54a0ffdcd52b01e87fd3..1c9d14271e92fee323dcf9931d71fc2985cb0d26 100644 (file)
@@ -1224,7 +1224,8 @@ underneath.
         c''-\rtoe        c''-\turn         c''-\open          c''-\flageolet
         c''-\reverseturn c''-\trill        c''-\prall         c''-\mordent
         c''-\prallprall  c''-\prallmordent c''-\upprall       c''-\downprall
-        c''-\thumb       c''-\segno        c''-\coda
+        c''-\upmordent   c''-\downmordent  c''-\pralldown     c''-\prallup
+        c''-\lineprall   c''-\thumb        c''-\segno         c''-\coda
       }
       \context Lyrics \lyrics {
         accent__      marcato__      staccatissimo__ fermata
@@ -1233,7 +1234,8 @@ underneath.
         rtoe__        turn__         open__          flageolet
         reverseturn__ trill__        prall__         mordent
         prallprall__  prallmordent__ uprall__        downprall
-        thumb__       segno__        coda
+        upmordent__   downmordent__  pralldown__  prallup__
+        lineprall__   thumb__       segno__        coda
       }
     >
     \paper {
diff --git a/VERSION b/VERSION
index ab749b20fe619c36112a9f30ca7e8c7d1146d78e..05d768bbe81c84ffe8a9ca963195a0b02c20af35 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=5
-PATCH_LEVEL=5
-MY_PATCH_LEVEL=jcn3
+PATCH_LEVEL=6
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
diff --git a/input/bugs/1st-note-spacing.ly b/input/bugs/1st-note-spacing.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/abe.ly b/input/bugs/abe.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/ac-clash.ly b/input/bugs/ac-clash.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/accents.ly b/input/bugs/accents.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/accid.ly b/input/bugs/accid.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/accidental-collision.ly b/input/bugs/accidental-collision.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/ancient-font.ly b/input/bugs/ancient-font.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/auto-beam-tuplets.ly b/input/bugs/auto-beam-tuplets.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/auto-beam.ly b/input/bugs/auto-beam.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/barline.ly b/input/bugs/barline.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/beam.ly b/input/bugs/beam.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/beamed-chord.ly b/input/bugs/beamed-chord.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/beaming.ly b/input/bugs/beaming.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/braces.ly b/input/bugs/braces.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/broken-tuplet.ly b/input/bugs/broken-tuplet.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/context-weirdness.ly b/input/bugs/context-weirdness.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/denneboom.ly b/input/bugs/denneboom.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/die-staff.ly b/input/bugs/die-staff.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/different-time.ly b/input/bugs/different-time.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/dots.ly b/input/bugs/dots.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/drarn.ly b/input/bugs/drarn.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/dynamic-switch.ly b/input/bugs/dynamic-switch.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/grace-dynamic.ly b/input/bugs/grace-dynamic.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/grace-finger.ly b/input/bugs/grace-finger.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/grace-gets-slur.ly b/input/bugs/grace-gets-slur.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/grace-staff-length.ly b/input/bugs/grace-staff-length.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/grace-stems.ly b/input/bugs/grace-stems.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/hinterfleisch-gone.ly b/input/bugs/hinterfleisch-gone.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/l.ly b/input/bugs/l.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/lyrics-bar.ly b/input/bugs/lyrics-bar.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/lyrics-spacing.ly b/input/bugs/lyrics-spacing.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/markup-definition.ly b/input/bugs/markup-definition.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/markup.ly b/input/bugs/markup.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/mmrest-collide.ly b/input/bugs/mmrest-collide.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/multiply.ly b/input/bugs/multiply.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/partial-beam.ly b/input/bugs/partial-beam.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/pc-direction.ly b/input/bugs/pc-direction.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/pc-mmrest.ly b/input/bugs/pc-mmrest.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/pc-rest-collide.ly b/input/bugs/pc-rest-collide.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/prefatory-spacing.ly b/input/bugs/prefatory-spacing.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/repeat.ly b/input/bugs/repeat.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/rest-melisma.ly b/input/bugs/rest-melisma.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/slur-attachment.ly b/input/bugs/slur-attachment.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/slur-dots.ly b/input/bugs/slur-dots.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/slur-dx.ly b/input/bugs/slur-dx.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/slur-steep-broken.ly b/input/bugs/slur-steep-broken.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/spacing-very-tight.ly b/input/bugs/spacing-very-tight.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/staff-size.ly b/input/bugs/staff-size.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/standchen-space.ly b/input/bugs/standchen-space.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/steep-beam.ly b/input/bugs/steep-beam.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/steep.ly b/input/bugs/steep.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/text-kerning.ly b/input/bugs/text-kerning.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/text-spanner.ly b/input/bugs/text-spanner.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/textcresc.ly b/input/bugs/textcresc.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/tie-break-accidental.ly b/input/bugs/tie-break-accidental.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/ties.ly b/input/bugs/ties.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/time.ly b/input/bugs/time.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/triplets.ly b/input/bugs/triplets.ly
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/input/bugs/voice-switch-slur.ly b/input/bugs/voice-switch-slur.ly
deleted file mode 100644 (file)
index e69de29..0000000
index 69b0ceed92135a21873a7f4155460384aa85bc0d..176da92aa9719320cec2873f9a0681a1761e105b 100644 (file)
@@ -1,6 +1,5 @@
 \header {
-
-texidoc = "Bar line should come before the grace note.";
+texidoc = "Bar line should come before the grace note."
 }
 
        
@@ -8,6 +7,6 @@ texidoc = "Bar line should come before the grace note.";
 
 
 \score  {\notes \relative c' \context Staff  { 
- f1 \ngrace { [a'16 f]  } g1 }
+ f1 \grace { [a'16 f]  } g1 }
                \paper { linewidth = -1. }
  } 
diff --git a/input/regression/grace-nest.ly b/input/regression/grace-nest.ly
deleted file mode 100644 (file)
index 71ca4b4..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-\header {
-texidoc = "grace code should not be confused by nested sequential musics, containing grace notes; practically speaking, this means that the end-bar and measure bar coincide in this example." 
-
-}
-\score{
-\notes 
-
-{ c''2 { \grace  b'16  c''2 }  \bar "|." }
-  \paper {
-}
- }
-
diff --git a/input/regression/grace-nest1.ly b/input/regression/grace-nest1.ly
new file mode 100644 (file)
index 0000000..71ca4b4
--- /dev/null
@@ -0,0 +1,12 @@
+\header {
+texidoc = "grace code should not be confused by nested sequential musics, containing grace notes; practically speaking, this means that the end-bar and measure bar coincide in this example." 
+
+}
+\score{
+\notes 
+
+{ c''2 { \grace  b'16  c''2 }  \bar "|." }
+  \paper {
+}
+ }
+
index 5ab4e1e56cfeb5ab72c3843b1bfc0af776db3252..fbd4c8989e3b59bf41ffe7f6cfaeadddda71f7ce 100644 (file)
@@ -4,6 +4,6 @@ texidoc = "grace code should not be confused by nested sequential musics, contai
 }
 
 \score { \notes \context Voice {
-        { \grace b'4 c''2 }
-       \grace b'4 c''2 \bar "|."
+        { \grace b'8 c''2 }
+       \grace b'16 c''4 c''4 \bar "|."
     }}
diff --git a/input/regression/grace-nest4.ly b/input/regression/grace-nest4.ly
new file mode 100644 (file)
index 0000000..416983b
--- /dev/null
@@ -0,0 +1,14 @@
+\header {
+texidoc = "Another combination of grace note nesting."
+}
+
+\score { \notes \context Voice {
+
+    <
+     { \grace  g32 f4 }
+    >
+    \grace c16 c2. \bar "|."
+}
+}
+
+
diff --git a/input/regression/grace-nest5.ly b/input/regression/grace-nest5.ly
new file mode 100644 (file)
index 0000000..36e0290
--- /dev/null
@@ -0,0 +1,7 @@
+
+\score
+{ \notes {
+     s2 <f4>
+    \grace g e4
+}
+}
index 4ce8fa85b8f39d971b56bff204763400aae72ab6..69efcd5df6192061bb04c56ff30bbcbde60806b8 100644 (file)
@@ -4,12 +4,12 @@
 
 \score  {\notes < \context Staff  { c2
         \grace  c8
-  c2 c4 }
+  c4 c4 }
                \context Staff = SB { c2 \clef bass
  \grace { [dis8 ( d8] }
 
-  ) c2 c4 }
-               \context Staff = SC { c2 c2 c4 }
+  ) c4 c4 }
+               \context Staff = SC { c2 c4 c4 \bar "|." }
                >
                \paper { linewidth = -1. }
  } 
index 8c05e3022556fa4aacdca667868f2e37894e6117..e522311a04817daf538ab1b6235634279ccdf14c 100644 (file)
@@ -1,11 +1,9 @@
 \version "1.3.146"
 
 \header{
-
 texidoc=" The number of stafflines of a staff can be set.  Ledger
 lines both on note heads and rests are adjusted.  Barlines also are
 adjusted.  "
-
 }
 
 \score { 
diff --git a/input/regression/spacing-clefs.ly b/input/regression/spacing-clefs.ly
deleted file mode 100644 (file)
index e69de29..0000000
index 703d5b2f04d8361d1686f2e3dca864fea70ac2f0..2e9cd0c3f92b8e241c8114509120dfd622173d17 100644 (file)
@@ -26,43 +26,74 @@ upperVoice =  \context Staff = upperVoice <
        \property Staff.KeySignature \override #'style = #'vaticana
        \property Staff.Accidentals \override #'style = #'vaticana
        \property Staff.Custos \override #'style = #'vaticana
-       \property Voice.NoteHead \override #'style = #'mensural
+       \property Voice.NoteHead \override #'style = #'vaticana_punctum
        \key es \major
        \clef "vaticana_fa2"
-       cis!2 des! e! fis! ges!
+       c!1 des! e! f! ges!
 
 %      \property Staff.clefGlyph = #"clefs-vaticana_do"
 %      \property Staff.clefPosition = #1
 %      \property Staff.clefOctavation = #0 
        \clef "vaticana_do2"
 
-       a b c'
-       b as gis fes
+       \property Voice.NoteHead \override #'style = #'vaticana_subbipunctum
+       a! b! ces'
+       \property Voice.NoteHead \override #'style = #'vaticana_virga
+       b! a! ges fes
        \clef "vaticana_fa1"
-       es dis ces1 \bar "|"
+       \property Voice.NoteHead \override #'style = #'vaticana_quilisma
+       es d
+       \property Voice.NoteHead \override #'style = #'vaticana_rvirga
+       c d
+       \breathe
+       \property Voice.NoteHead \override #'style = #'vaticana_rvirga
+       es f
+       \property Staff.BarLine \override #'bar-size = #3.0 \bar "|"
+       \property Voice.NoteHead \override #'style = #'vaticana_lpes
+       g as
+       \property Staff.BarLine \override #'bar-size = #2.0 \bar "|"
+       \property Voice.NoteHead \override #'style = #'vaticana_upes
+       bes as
+       \breathe
+       \property Voice.NoteHead \override #'style = #'vaticana_vupes
+       g f
+       \property Voice.NoteHead \override #'style = #'vaticana_plica
+       \property Staff.BarLine \override #'bar-size = #2.0 \bar "|"
+       es d
+       \property Voice.NoteHead \override #'style = #'vaticana_epiphonus
+       \property Staff.BarLine \override #'bar-size = #3.0 \bar "|"
+       c d
+       \property Voice.NoteHead \override #'style = #'vaticana_cephalicus
+       es f
 
        \property Staff.KeySignature \override #'style = #'medicaea
        \property Staff.Accidentals \override #'style = #'medicaea
        \property Staff.Custos \override #'style = #'medicaea
-       \property Voice.NoteHead \override #'style = #'mensural
+       \property Voice.NoteHead \override #'style = #'medicaea_punctum
        \clef "medicaea_fa2"
-       ces2 des es fes ges
+       ces! des! e! f! ges!
        \clef "medicaea_do2"
-       as bes ces'
-       bes as ges fes
+       \property Voice.NoteHead \override #'style = #'medicaea_subbipunctum
+       a! b! ces'!
+       \property Voice.NoteHead \override #'style = #'medicaea_virga
+       b! a! ges! fes!
        \clef "medicaea_fa1"
-       es des ces1 \bar "|"
+       \property Voice.NoteHead \override #'style = #'medicaea_rvirga
+       e! des! ces! \bar "|"
 
        \property Staff.KeySignature \override #'style = #'hufnagel
        \property Staff.Accidentals \override #'style = #'hufnagel
        \property Staff.Custos \override #'style = #'hufnagel
-       \property Voice.NoteHead \override #'style = #'mensural
+       \property Voice.NoteHead \override #'style = #'hufnagel_punctum
        \clef "hufnagel_fa2"
-       ces!2 des! es! fes! ges!
+       ces! des! es! fes! ges!
        \clef "hufnagel_do2"
+       \property Voice.NoteHead \override #'style = #'hufnagel_lpes
        as! bes! ces'!
+       \property Voice.NoteHead \override #'style = #'hufnagel_virga
        bes! as! ges! fes!
        \clef "hufnagel_do_fa"
+       \property Voice.NoteHead \override #'style = #'hufnagel_punctum
        es! des! ces!1 \bar "||"
     }
 >
@@ -79,7 +110,7 @@ lowerVoice =  \context Staff = lowerNotes <
        \property Staff.KeySignature \override #'style = #'mensural
        \property Staff.Accidentals \override #'style = #'mensural
        \property Staff.Custos \override #'style = #'mensural
-        \property Voice.NoteHead \override #'style = #'mensural
+        \property Voice.NoteHead \override #'style = #'neo_mensural
        \key a \major
        \clef "neo_mensural_c2"
        c2 dis es fis ges
@@ -99,6 +130,7 @@ lowerVoice =  \context Staff = lowerNotes <
        \clef "mensural_g"
        e d c1 \bar "|"
 
+        \property Voice.NoteHead \override #'style = #'mensural
        \clef "petrucci_f"
        c2 d e f g
         \property Staff.forceClef = ##t
@@ -139,15 +171,15 @@ lowerVoice =  \context Staff = lowerNotes <
 %      \paperTwentysix
        linewidth = 17.25\cm
        textheight = 26.0\cm
-       stafflinethickness = \staffspace / 5.0
+%      stafflinethickness = \staffspace / 5.0
        indent = 0.0
        \translator {
            \StaffContext
            \consists Custos_engraver
 %          Custos \override #'style = #'mensural
            \remove Time_signature_engraver
+           StaffSymbol \override #'thickness = #2.0
 %          StaffSymbol \override #'line-count = #4
        }
     }
 }
-
index ab7cc17555278c42a3cfd6e6c4d0e092c51c87f0..aab0438e97f7955a115fc77c77185d06b95474b3 100644 (file)
@@ -1,22 +1,62 @@
 \header {
   texidoc="Document trills, pralls and turns"
-  title="Marques des agr\'ements et leur signification"
+  title="Marques des agr\\'ements et leur signification"
+  composer="D'Anglebert"
   copyright="(1689)"
 }
 
+invisible = \property Voice.NoteHead \override #'transparent = ##t
+visible = \property Voice.NoteHead \revert #'transparent
+
+% Ugly hack to get reasonable position of the pincé and Cheute
+startHorizScript = {
+  \property Voice.scriptHorizontal = ##t
+  \property Voice.Script \override #'padding = #0.3
+  \property Voice.Script \override #'extra-offset = #'(-.6 . 0)
+  % Avoid collision with the dots of dotted notes
+  \property Voice.Dots \override #'extra-extent-X = #'(-0.7 . 0)
+}
+endHorizScript = {
+  \property Voice.scriptHorizontal \unset
+  \property Voice.Dots \revert #'padding
+  \property Voice.Script \revert #'padding
+  \property Voice.Script \revert #'extra-offset
+}
+
+
 \score {
   <
     \property Score.TimeSignature = \turnOff
     \context GrandStaff <
       \context Staff=upper \notes\relative c'' {
        \time 1/4
-       c4-\prallprall
+       c4-\prall
        \time 3/8
-       c4.^"TODO"
+       c4.^\lineprall
        c4.-\downprall
        c4.-\upprall
        \time 5/8
        c4-\turn c4.-\upprall
+       d4-\turn b4.-\downprall
+       \time 3/4
+       b4 c^\turn d 
+       \time 1/4
+       <\context Voice=upper{\voiceOne d4}
+        \context Voice=lower{\voiceTwo 
+          \property Voice.Script \override #'extra-offset = #'(-0.8 . 2.0)
+          b_\turn}>
+       \startHorizScript c^\comma
+       \time 3/8
+       c4.^\comma
+       b8 c4_\comma 
+       c8 b4_\comma
+       b8 c4^\comma _\comma \endHorizScript
+        \time  2/2 \slurDown
+       <{c2}{s4 \invisible d1*1/4 ( \visible }> ) e2
+       <{a,2}{s4 \invisible b1*1/4 ( \visible }> ) d2
+       <{a2}{s4 \invisible b1*1/4 ( \visible }> ) d2
+       \time 3/4
+       d2^\prallup e4
       }
       \context Lyrics=one \lyrics {
        "Tremblement"4
        "Cadence"
        "autre"
        "Double"4 "cadence"4.
+       "autre"4 _4.
+       _4 "sans tremblement"2
+       "sur une tierce"4
+       "Pinc\\'e"4
+       "autre"4.
+       "Cheute ou Port de"
+       "en descendant"
+       "Cheute et pinc\\'e"
+       "Coul\\'e Sur 2 notes"1
+       "autre"
+       "autre"
+       "Double cadence"2.
       }
       \context Lyrics=two \lyrics {
        "simple"4
        "appuy\'e"4.
+       \skip 1*3
+       \skip 4 \skip 4.
+       "voix et montant"
+       \skip 2.
+       "de suite"1
       }
       \context Staff=lower \notes\relative c'' {
         % autobeamer has som problems here
index fdd0f1e633dd91f53f30d3a1fedb14255abe5075..0f8bf698bd35b61575d4508c7c1c996a099eafe3 100644 (file)
@@ -76,7 +76,7 @@ Auto_beam_engraver::Auto_beam_engraver ()
 {
   count_i_ = 0;
   stem_l_arr_p_ = 0;
-  shortest_mom_ = Moment (1, 8);
+  shortest_mom_ = Moment (Rational (1, 8));
   finished_beam_p_ = 0;
   finished_grouping_p_ = 0;
   grouping_p_ = 0;
@@ -265,7 +265,7 @@ Auto_beam_engraver::junk_beam ()
   delete grouping_p_;
   grouping_p_ = 0;
 
-  shortest_mom_ = Moment (1, 8);
+  shortest_mom_ = Moment (Rational (1, 8));
 }
 
 void
@@ -286,7 +286,7 @@ Auto_beam_engraver::end_beam ()
       grouping_p_ = 0;
     }
 
-  shortest_mom_ = Moment (1, 8);
+  shortest_mom_ = Moment (Rational (1, 8));
 }
 
 void
index 1cfbc590d32623048437bd7acab6717f0ebdb7de..2556751e84f24c3eeef96978d212d8a2c27a4f1c 100644 (file)
@@ -20,7 +20,7 @@ void
 Chord_tremolo_iterator::construct_children ()
 {
   Repeated_music * rep = dynamic_cast<Repeated_music*> (music_l ());
-  factor_  = Moment (1, rep->repeat_count ());
+  factor_  = Moment (Rational(1, rep->repeat_count ()));
   child_iter_p_ = get_iterator_p (rep->body ());
 }
 
index 38cb80f6ca1ae2ba244239255d77e3b803c190e6..1a0273850db88f4fbd81aeb6569c7afea6513237 100644 (file)
@@ -71,7 +71,7 @@ String
 Duration::str () const
 {
   String s =  to_str (durlog_i_) + to_str ('.', dots_i_);
-  if (factor_ != Moment (1,1))
+  if (factor_ != Moment (Rational (1,1)))
     {
       s += "*" + factor_.str ();
     }
index f7848d72a2206a292fd1d3374ca3f0124f0801d5..4e4208bd8282ab00b31d6e982ff3cbd83375e136 100644 (file)
@@ -86,7 +86,6 @@ Global_translator::run_iterator_on_me (Music_iterator * iter)
   if (iter-> ok ())
     prev_mom_ = now_mom_ = iter->pending_moment ();
 
-
   bool first = true;
   while (iter->ok () || moments_left_i ())
     {
index abbe22874bd2ba68630cda5af3e2117c1dbccf2c..0f233e61369b61a04650580be4d96088635d4c0e 100644 (file)
@@ -56,32 +56,40 @@ Grob::Grob (SCM basicprops)
 
   smobify_self ();
 
+  /*
+    TODO:
+
+    destill this into a function, so we can re-init the immutable
+    properties with a new BASICPROPS value after creation. Convenient
+    eg. when using \override with StaffSymbol.  */
+  
   char const*onames[] = {"X-offset-callbacks", "Y-offset-callbacks"};
   char const*enames[] = {"X-extent-callback", "Y-extent-callback"};
   
-  for (int a = X_AXIS; a <= Y_AXIS; a++){
-    SCM l = get_grob_property (onames[a]);
-
-    if (scm_ilength (l) >=0)
-      {
-       dim_cache_[a].offset_callbacks_ = l;
-       dim_cache_[a].offsets_left_ = scm_ilength (l);
-      }
-    else
-      {
-       programming_error ("[XY]-offset-callbacks must be a list");
-      }
-
-    SCM cb = get_grob_property (enames[a]);
-
-    /*
-      Should change default to be empty? 
-     */
-    if (cb != SCM_BOOL_F && !gh_procedure_p (cb) && !gh_pair_p (cb))
-      cb = molecule_extent_proc;
+  for (int a = X_AXIS; a <= Y_AXIS; a++)
+    {
+      SCM l = get_grob_property (onames[a]);
+
+      if (scm_ilength (l) >=0)
+       {
+         dim_cache_[a].offset_callbacks_ = l;
+         dim_cache_[a].offsets_left_ = scm_ilength (l);
+       }
+      else
+       {
+         programming_error ("[XY]-offset-callbacks must be a list");
+       }
+
+      SCM cb = get_grob_property (enames[a]);
+
+      /*
+       Should change default to be empty? 
+      */
+      if (cb != SCM_BOOL_F && !gh_procedure_p (cb) && !gh_pair_p (cb))
+       cb = molecule_extent_proc;
     
-    dim_cache_[a].dimension_ = cb;
-  }
+      dim_cache_[a].dimension_ = cb;
+    }
 
   SCM meta = get_grob_property ("meta");
   SCM ifs = scm_assoc (ly_symbol2scm ("interfaces"), meta);
index 6881b933da19b1fc51493bdecc019012e5faad05..4993b7691f84bebb64f30cb45571a5805ee6aeb7 100644 (file)
@@ -23,8 +23,8 @@ class Moment
 public:
   Moment ();
   Moment (int m);
-  Moment (int m, int n);
 
+  Moment (Rational, Rational);
   Moment (Rational m);
 
   Moment operator - () const;
index fcedb517f77ddbdca36de33ed0c24d6ea11bc254..37cfbe34be57dccdac82a5284f7b74a5cf7e4f39 100644 (file)
   by initting here_mom_ with Music::start_music (); no fixups are needed.
 
 */
-struct Grace_ski
+struct Grace_fixu
 {
   Moment start_;
-  Rational length_;
+  Moment length_;
 
   Rational grace_start_;  
-  Grace_skip *next_;
+  Grace_fixup *next_;
 };
 
 /** Sequential_music iteration: walk each element in turn, and
@@ -51,7 +51,7 @@ struct Grace_skip
 class Sequential_music_iterator :  public Music_iterator
 {
 public:
-  Grace_skip * grace_skips_;
+  Grace_fixup * grace_fixups_;
   
   VIRTUAL_COPY_CONS (Music_iterator);
   static SCM constructor_cxx_function;
index 6f3a2cd642e62fcade2be97c4216df40dc757d70..40a2d065b35dcedb0d23a8ace68003879e4bef86 100644 (file)
@@ -16,7 +16,7 @@
 Midi_def::Midi_def ()
 {
   // ugh
-  set_tempo (Moment (1, 4), 60);
+  set_tempo (Moment (Rational (1, 4)), 60);
 }
 
 int
index 11f6bd559fa57659a28524887e6645e6adb38d68..baf6e9ec3c24cc0d88295de020fa5732e2f9fbd9 100644 (file)
@@ -228,7 +228,8 @@ Midi_note::length_mom () const
 {
   Moment m = audio_l_->length_mom_;
 #if 0
-  if (m < Moment (1, 1000))
+  //junkme?
+  if (m < Moment (Rational (1, 1000)))
     {
       warning (_ ("silly duration"));
       m = 1;
index 17548174b49d48161037100ee54cf3352b745bee..6a568b43fce3a393d1edd0ac72e0c7011355dcc4 100644 (file)
@@ -45,7 +45,7 @@ Midi_walker::Midi_walker (Audio_staff* audio_staff_l, Midi_track* track_l)
 Midi_walker::~Midi_walker ()
 { 
   // ugh
-  do_stop_notes (last_mom_ + Moment (10, 1));
+  do_stop_notes (last_mom_ + Moment (Rational (10, 1)));
 }
 
 /**
index 2f98bfd2ea848f2362a914612d3475e31caad436..e75b6880f6958acc8319de3175963ddd6f2f7eb8 100644 (file)
@@ -51,11 +51,11 @@ Moment::print_smob (SCM s, SCM port, scm_print_state *)
 SCM
 make_rational (SCM n, SCM d)
 {
-  Moment m (1,1);
+  Moment m (Rational (1,1));
 
   if (SCM_INUMP (n) && SCM_INUMP (d))
     {
-      m =  Moment (gh_scm2int (n), gh_scm2int (d));
+      m =  Moment (Rational (gh_scm2int (n), gh_scm2int (d)));
     }
   else
     {
@@ -112,10 +112,10 @@ Moment::Moment (int m)
   grace_part_  = Rational( 0);
 }
 
-Moment::Moment (int m, int n)
+Moment::Moment (Rational m, Rational g)
 {
-  main_part_ = Rational (m,n);
-  grace_part_  = Rational (0);
+  main_part_ = m;
+  grace_part_  = g;
 }
 
 Moment::Moment (Rational m)
index 17da5f46746ed0b99ab9193a071192e3f3328656..a8e9e76fa52a8f7088de2594b16974fad58093c1 100644 (file)
@@ -85,6 +85,8 @@ Music_sequence::cumulative_length () const
 
   last_len.grace_part_ = Rational (0);
   cumulative += last_len;
+
+  cumulative += - first_start ();
   
   return  cumulative;
 }
@@ -101,8 +103,14 @@ Music_sequence::maximum_length () const
 {
   Moment dur = 0;
   for (SCM s = music_list (); gh_pair_p (s);  s = gh_cdr (s))
-    dur = dur >? unsmob_music (gh_car (s))->length_mom ();
+    {
+      Music * m = unsmob_music (gh_car (s));
+      Moment l = m->length_mom () + m->start_mom ();
+      dur = dur >? l;
+    }
 
+  dur -= minimum_start ();
+  
   return dur;
 }
 int
index 21c6c5d090207a876cb403371e9eb0feae1169b5..ae24d23a2e44772ac0b017943eefc887d922205e 100644 (file)
@@ -103,7 +103,8 @@ Articulation_req::do_equal_b (Request const* r) const
   Articulation_req const* a = dynamic_cast<Articulation_req const*> (r);
   
   return a && gh_equal_p (get_mus_property ("articulation-type"),
-                         r->get_mus_property ("articulation-type"));
+                         r->get_mus_property ("articulation-type"))
+    && get_direction () == a->get_direction ();
 }
 
 
index e67af0ea089378bc372da5620469ecad10a77c36..b67c373fcb705a5fdbb0111564e9edf8c71fafaa 100644 (file)
@@ -146,7 +146,7 @@ cout << "params for cols " << Paper_column::rank_i (l) << " " << Paper_column::r
            UGH: KLUDGE!
          */
          
-         //      if (delta_t > Moment (1,32))
+         //      if (delta_t > Moment (Rational (1,32)))
          hinterfleisch += stem_dir_correction (me, l, r);
        }
 
index 5019a8d8a231c5a45b6a10780836260050eb6bff..c732454e5325a659c8996f5539b185d604deb000 100644 (file)
@@ -872,7 +872,7 @@ Composite_music:
                scm_gc_unprotect_object (mp->self_scm ());
                $$->set_mus_property ("numerator", gh_int2scm (n));
                $$->set_mus_property ("denominator", gh_int2scm (d));
-               $$->compress (Moment (n,d));
+               $$->compress (Moment (Rational (n,d)));
 
        }
        | Repeated_music                { $$ = $1; }
index 0082971d9b4b62dd934b6bc6f7da102175039e05..193a350c6cc6b6f09b9aca4be2ae9cbe1d36d111 100644 (file)
@@ -103,7 +103,7 @@ Percent_repeat_engraver::try_music (Music * m)
        meas_len = *unsmob_moment (m);
 
       if (body_length_ < meas_len &&
-         meas_len.main_part_.mod_rat (body_length_.main_part_) == Moment (0,0))
+         meas_len.main_part_.mod_rat (body_length_.main_part_) == Moment (Rational (0,0)))
        repeat_sign_type_ = BEAT;
       else if (meas_len == body_length_)
        repeat_sign_type_ = MEASURE;
index 55122e302a43f1cb649421e527d07a8107d360c3..f77674fe5508043c84c88003d1c91c3507a1be44 100644 (file)
@@ -123,7 +123,7 @@ Performance::output_header_track (Midi_stream& midi_stream)
   midi_track.add (Moment (0), &track_name);
 
   // Some sequencers read track 0 last.
-  //  Audio_tempo tempo_a (midi_l_->get_tempo_i (Moment (1, 4)));
+  //  Audio_tempo tempo_a (midi_l_->get_tempo_i (Moment (Rational (1, 4))));
   //  Midi_tempo tempo (&tempo_a);
   //  midi_track.add (Moment (0), &tempo);
 
index 63af656abedbe03fbb08e34d87c5c5826b0912a4..b1267acdce216ac3b2bdc6d164eea1c012573acc 100644 (file)
@@ -83,7 +83,7 @@ Score_performer::start ()
 int
 Score_performer::get_tempo_i () const
 {
-  return performance_p_->midi_l_->get_tempo_i (Moment (1, 4));
+  return performance_p_->midi_l_->get_tempo_i (Moment (Rational (1, 4)));
 }
 
 void
index 13d08740d0773f084326ef8500d40e15291ec1cc..5d8ce337de7cbd604b3c928fa350c2e826aa022a 100644 (file)
 
 */
 
+/*
+
+  TODO: the grace note handling hasn't been done for skip() and
+  get_music(), meaning that staff-switching and partcombining will be
+  broken with grace notes.
+  
+ */
+/*
+
+  TODO: the grace note handling hasn't been done for skip() and
+  get_music(), meaning that staff-switching and partcombining will be
+  broken with grace notes.
+  
+ */
 /*
   Invariant for the data structure.
 
@@ -39,14 +53,14 @@ Sequential_music_iterator::Sequential_music_iterator ()
 {
   cursor_ = SCM_EOL;
   here_mom_ = Moment (0);
-  grace_skips_ = 0;
+  grace_fixups_ = 0;
   iter_p_ =0;
 }
 
 Sequential_music_iterator::Sequential_music_iterator (Sequential_music_iterator const &src)
   : Music_iterator (src)
 {
-  grace_skips_ = src.grace_skips_;
+  grace_fixups_ = src.grace_fixups_;
   cursor_ = src.cursor_;
   here_mom_ = src.here_mom_;
   if (src.iter_p_)
@@ -72,14 +86,14 @@ Sequential_music_iterator::~Sequential_music_iterator ()
   
  */
 
-Grace_skip *
-get_grace_skips (SCM cursor)
+Grace_fixup *
+get_grace_fixups (SCM cursor)
 {
-  Moment here (0);  
+  Moment here;
   Moment last (-1);
-  Grace_skip *head = 0;
-  Grace_skip **tail = &head;
-  
+  Grace_fixup *head = 0;
+  Grace_fixup **tail = &head;
+
   for (; gh_pair_p (cursor); cursor = gh_cdr (cursor))
     {
       Music * mus = unsmob_music (gh_car (cursor));
@@ -90,9 +104,9 @@ get_grace_skips (SCM cursor)
        {
          if (last != Moment (-1))
            {
-             Grace_skip *p =new Grace_skip;
+             Grace_fixup *p =new Grace_fixup;
              p->start_ = last;
-             p->length_ = (here - last).main_part_;
+             p->length_ = here - last;
              p->grace_start_ = s.grace_part_;
              p->next_ = 0;
              *tail = p;
@@ -122,9 +136,8 @@ Sequential_music_iterator::construct_children ()
       next_element ();
     }
 
-  grace_skips_ = get_grace_skips (cursor_);
-
   here_mom_ = music_l ()->start_mom ();
+  grace_fixups_ = get_grace_fixups (cursor_);
 
   /*
     iter_p_->ok () is tautology, but what the heck.
@@ -142,20 +155,17 @@ void
 Sequential_music_iterator::next_element ()
 {
   Moment len =iter_p_->music_length_mom ();
-  Moment start  = iter_p_->music_start_mom ();
-  assert (!grace_skips_  || grace_skips_->start_ >= here_mom_);
+  assert (!grace_fixups_  || grace_fixups_->start_ >= here_mom_);
   
-  if (len.main_part_ && grace_skips_ &&
-      grace_skips_->start_.main_part_ == here_mom_.main_part_)
+  if (len.main_part_ && grace_fixups_ &&
+      grace_fixups_->start_ == here_mom_)
     {
-      Moment sk;
-      sk.main_part_ = grace_skips_->length_;
-      here_mom_ +=  sk;
-      here_mom_.grace_part_ = grace_skips_->grace_start_;
-
-      Grace_skip * n =grace_skips_->next_;
-      delete grace_skips_;
-      grace_skips_ = n;
+      here_mom_ += grace_fixups_->length_;
+      here_mom_.grace_part_ += grace_fixups_->grace_start_;
+
+      Grace_fixup * n =grace_fixups_->next_;
+      delete grace_fixups_;
+      grace_fixups_ = n;
     }
   else if (len.grace_part_ && !len.main_part_)
     {
@@ -167,10 +177,10 @@ Sequential_music_iterator::next_element ()
        !len.grace_part_ || len.main_part_
 
        We skip over a big chunk (mainpart != 0). Any starting graces
-       in that chunk are compensated by subtracting START.
+       in that chunk should be in len.grace_part_
 
       */
-      here_mom_ += len - start;
+      here_mom_ += len;
     }
   
   delete iter_p_;
@@ -250,7 +260,7 @@ Sequential_music_iterator::get_music (Moment until)const
   Skip events till UNTIL. We don't do any other side effects such as
   descending to child iterator contexts, because they might depend on
   \context specs and \translator changes being executed
-    
+  TODO: build support for grace notes here.
  */
 void
 Sequential_music_iterator::skip (Moment until)
@@ -273,17 +283,17 @@ Sequential_music_iterator::process (Moment until)
 {
   while (iter_p_)
     {
-      if (grace_skips_ &&
-         grace_skips_->start_ == here_mom_
-         && (grace_skips_->start_ + grace_skips_->length_).main_part_ ==
-         until.main_part_)
+      if (grace_fixups_ &&
+         grace_fixups_->start_ == here_mom_
+         && (grace_fixups_->start_ + grace_fixups_->length_
+             + Moment (Rational (0), grace_fixups_->grace_start_) == until))
        {
          /*
            do the stuff/note/rest preceding a grace.
           */
-         Moment u = until;
-         u.grace_part_ = 0;
-         iter_p_->process (u - here_mom_);
+         iter_p_->process (iter_p_->music_length_mom ()+ 
+                           iter_p_->music_start_mom ());
+
        }
       else
        iter_p_->process (until - here_mom_ + iter_p_->music_start_mom ());
@@ -310,13 +320,10 @@ Sequential_music_iterator::pending_moment () const
   /*
     Fix-up a grace note halfway in the music.
   */
-  if (grace_skips_ && here_mom_ == grace_skips_->start_
-      && cp.main_part_ >=  grace_skips_->length_)
+  if (grace_fixups_ && here_mom_ == grace_fixups_->start_
+      && grace_fixups_->length_ + iter_p_->music_start_mom () == cp)
     {
-      cp += here_mom_ ;
-      cp.grace_part_ = grace_skips_->grace_start_;
-      return cp;
-
+      return here_mom_ + grace_fixups_->length_ + Moment (0, grace_fixups_->grace_start_);
     }
 
   /*
index e5a519f1ea9e2e5914df4346e4e486ab431ed7ff..472fa6732bd82528b5ec2584caaeab60fe99c6b2 100644 (file)
@@ -478,7 +478,7 @@ Spacing_spanner::note_spacing (Grob*me, Grob *lc, Grob *rc,
     UGH: KLUDGE!
   */
   
-  if (delta_t > Moment (1,32))
+  if (delta_t > Moment (Rational (1,32)))
     dist += stem_dir_correction (me, lc,rc);
 
 
index f24dd0f8aab44cac0028e0a25476851fefe8f645..97be2fd709eec34ec61522592abdb8bf71b0e94e 100644 (file)
@@ -51,7 +51,7 @@ Tempo_performer::create_audio_elements ()
       SCM met = tempo_req_l_->get_mus_property ("metronome-count");
       Duration *d = unsmob_duration (tempo_req_l_->get_mus_property ("duration"));
       
-      Rational r =  (d->length_mom () / Moment (1, 4) * Moment (gh_scm2int (met))).main_part_;
+      Rational r =  (d->length_mom () / Moment (Rational (1, 4)) * Moment (gh_scm2int (met))).main_part_;
       
       audio_p_ = new Audio_tempo (int (r));
 
index 5548a249d81963ff5d844b4a3a42a46ce1ef8143..7c05a7d14bd5f292e01ceb8bdf815051fef4531d 100644 (file)
@@ -90,9 +90,9 @@ Timing_translator::initialize ()
 
   daddy_trans_l_->set_property ("timeSignatureFraction",
                                gh_cons (gh_int2scm (4), gh_int2scm (4)));
-  daddy_trans_l_->set_property ("measurePosition", Moment (0).smobbed_copy ());
-  daddy_trans_l_->set_property ("measureLength", Moment (1).smobbed_copy ());
-  daddy_trans_l_->set_property ("beatLength", Moment (1,4).smobbed_copy ());
+  daddy_trans_l_->set_property ("measurePosition", Moment (Rational (0)).smobbed_copy ());
+  daddy_trans_l_->set_property ("measureLength", Moment (Rational (1)).smobbed_copy ());
+  daddy_trans_l_->set_property ("beatLength", Moment (Rational (1,4)).smobbed_copy ());
 }
 
 Rational
index b9a895cdc40f4f163ffe9a0a7f283526ecc89d39..691498d1bd00aaa847793c49a961d364684b4c80 100644 (file)
@@ -9,20 +9,20 @@ startGraceMusic = {
     \property Voice.Stem \override #'lengths = 
         #(map (lambda (x) (* 0.8 x)) '(3.5 3.5 3.5 4.5 5.0))
     \property Voice.Stem \override #'beamed-lengths =
-        #(map (lambda (x) (* 1.25 x)) '(0.0 2.5 2.0 1.5))
+        #(map (lambda (x) (* 0.8 x)) '(0.0 2.5 2.0 1.5))
     \property Voice.Stem \override #'beamed-minimum-lengths =
-        #(map (lambda (x) (* 1.25 x)) '(0.0 1.5 1.25 1.0))
+        #(map (lambda (x) (* 0.8 x)) '(0.0 1.5 1.25 1.0))
     \property Voice.Stem \override #'no-stem-extend = ##t
     \property Voice.Stem \override #'flag-style  = #"grace"
 
     \property Voice.Beam \override #'space-function = #grace-beam-space-function
-    \property Voice.Beam \override #'thickness = #0.3
+    \property Voice.Beam \override #'thickness = #0.384
     
     % Can't use Staff.fontSize, since time sigs, keys sigs, etc. will
     % be smaller as well.
 
     \property Voice.fontSize = #-2
-    \property Staff.LocalKeyItem \override #'font-relative-size = #-2
+    \property Staff.Accidentals \override #'font-relative-size = #-2
 }
 
 stopGraceMusic = {
index 89685c8e2dc6dd3466dbb65671d881d0167023c4..2fbafa4e25d1a88b3b490120fe71e91f1a77f943 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.5.5
-Entered-date: 12AUG01
+Version: 1.5.6
+Entered-date: 14AUG01
 Description: @BLURB@
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.5.5.tar.gz 
+       1000k lilypond-1.5.6.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.5.5.tar.gz 
+       1000k lilypond-1.5.6.tar.gz 
 Copying-policy: GPL
 End
index fe73841ded920d0e594619dfc22328f26e407a77..946c7b90a51a1a3b825f005c8b191e24ec638fb7 100644 (file)
@@ -1,11 +1,11 @@
 %define info yes
 
 Name: lilypond
-Version: 1.5.5
+Version: 1.5.6
 Release: 1
 License: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.5.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.6.tar.gz
 Summary: Create and print music notation 
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 BuildRoot: /tmp/lilypond-install
index 244fff0007dabdabe7a21c40b26606a51e84e43b..4ff11cf3edc3db61e9ea9b480e94228dcda094d7 100644 (file)
 
 Distribution: SuSE Linux 7.0 (i386)
 Name: lilypond
-Version: 1.5.5
+Version: 1.5.6
 Release: 2
 Copyright:    GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.5.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.6.tar.gz
 # music notation software for.. ?
 Summary: A program for printing sheet music.
 URL: http://www.lilypond.org/
index b7d67cba4868e87e0c585564c1ae043c7b5d8578..6947dda34d9f4bb38bf9866f25da8205d2f0d64c 100644 (file)
@@ -110,7 +110,7 @@ fet_beginchar("Brevis notehead", "-1mensural", "mensuralbrevishead")
        draw_brevis(brevis_wid#);
 fet_endchar;
 
-def draw_mensural_black_head (expr wid) =
+def draw_neo_mensural_black_head (expr wid) =
        save head_width;
        head_width# = wid;
        set_char_box (0, head_width#, noteheight#/2, noteheight#/2);
@@ -128,8 +128,8 @@ def draw_mensural_black_head (expr wid) =
        filldraw z1 -- z2 -- z3 -- z4 -- cycle;
 enddef;
 
-def draw_mensural_open_head (expr wid)=
-       draw_mensural_black_head (wid);
+def draw_neo_mensural_open_head (expr wid)=
+       draw_neo_mensural_black_head (wid);
        save diamNW, diamSW;
        diamNW = length (z2 - z1) + blot_diameter;
        diamSW = length (z4 - z1) + blot_diameter;
@@ -148,16 +148,57 @@ def draw_mensural_open_head (expr wid)=
        unfill z5 -- z6 -- z7 -- z8 --cycle;
 enddef;
 
+fet_beginchar("Neo-mensural open head","0neo_mensural","neomensuralminimhead")
+      draw_neo_mensural_open_head (staff_space#);
+fet_endchar;
+
+fet_beginchar("Neo-mensural open head","1neo_mensural","neomensuralsemiminimhead")
+      draw_neo_mensural_open_head (staff_space#);
+fet_endchar;
+
+fet_beginchar("Neo-mensural black head","2neo_mensural","neofusahead")
+      draw_neo_mensural_black_head (staff_space#);
+fet_endchar;
+
+
+def draw_mensural_head (expr wid, open) =
+      save head_width;
+      head_width# = wid;
+      set_char_box (0, head_width#,
+                   noteheight#/2, noteheight#/2);
+
+      define_pixels(head_width, noteheight);
+
+      x2 = head_width/2;
+      y2 = 1.1 noteheight/2;
+      y1 = 0;
+      (x2 - x1) / (y2 - y1) = tand(30);
+      z3 = (2x2 - x1, y1);
+      z4 = z3 + z1 - z2;
+
+      pickup pencircle
+            xscaled 0.18 head_width
+            yscaled 0.36 head_width
+            rotated -30;
+
+      if open:
+             draw z1 -- z2 -- z3 -- z4 -- cycle;
+      else:
+             filldraw z1 -- z2 -- z3 -- z4 -- cycle;
+      fi;
+enddef;
+
+
 fet_beginchar("Mensural open head","0mensural","mensuralminimhead")
-       draw_mensural_open_head (staff_space#);
+       draw_mensural_head (staff_space#, true);
 fet_endchar;
 
 fet_beginchar("Mensural open head","1mensural","mensuralsemiminimhead")
-       draw_mensural_open_head (staff_space#);
+       draw_mensural_head (staff_space#, true);
 fet_endchar;
 
 fet_beginchar("Mensural black head","2mensural","fusahead")
-       draw_mensural_black_head (staff_space#);
+       draw_mensural_head (staff_space#, false);
 fet_endchar;
 
 
@@ -582,7 +623,7 @@ fet_beginchar("Ed. Vat. subbipunctum", "0vaticana_subbipunctum",
        2beta# = ht# * b_h;
        a# = beta# * a_b;
        wd# = 2a# / a_w;
-       set_char_box(0wd#, 0.5 ht#, 0.5 ht#);
+       set_char_box(0.3wd#, 0.3wd#, 0.5 ht#, 0.5 ht#);
        black_notehead_width# := wd#;
 
        save za, alpha, size;
@@ -615,7 +656,7 @@ def punctum_char (expr verbose_name, internal_name, mudela_name,
                2beta# = ht# * b_h;
                a# = beta# * a_b;
                wd# = 2a# / a_w;
-               set_char_box(0.0, 0.4wd#, 0.5ht#, 0.5ht#);
+               set_char_box(0.25wd#, 0.25wd#, 0.5ht#, 0.5ht#);
                black_notehead_width# := wd#;
 
                save convexity;
@@ -733,7 +774,7 @@ fet_beginchar("Ed. Vat. quilisma", "0vaticana_quilisma", "vatquilismahead")
        2beta#=ht#*b_h;
        a# = beta#*a_b;
        wd# = 2a# / a_w;
-       set_char_box(0wd#, 0.5 ht#, 0.5 ht#);
+       set_char_box(0.1wd#, 0.4wd#, 0.5 ht#, 0.5 ht#);
        black_notehead_width# := wd#;
 
        define_pixels(ht, wd);
@@ -770,7 +811,7 @@ fet_beginchar("Ed. Med. subbipunctum", "0medicaea_subbipunctum",
        2beta# = ht# * b_h;
        a# = beta# * a_b;
        wd# = 2a# / a_w;
-       set_char_box(0, wd#, 0.5 ht#, 0.5 ht#);
+       set_char_box(wd#/2, wd#/2, 0.5 ht#, 0.5 ht#);
        black_notehead_width# := wd#;
 
        save za, alpha, size;
@@ -899,11 +940,11 @@ fet_beginchar("Hufnagel pes lower punctum", "0hufnagel_lpes", "huflpeshead")
        2beta# = ht# * b_h;
        a# = beta# * a_b;
        wd# = 2a# / a_w;
-       set_char_box(wd#/2, wd#/2, 0.7 ht#, 0.7 ht#);
+       set_char_box(wd#, wd#, 0.7 ht#, 0.7 ht#);
        black_notehead_width# := wd#;
 
-       save za, zb, zc, alpha, size;
-       pair za, zb, zc;
+       save za, alpha, size;
+       pair za;
        define_pixels(ht, wd);
        alpha = 35;
        size = 0.7ht;
index 8ddcc5d1d658603c0088304c4825e99222d64581..bdb0ef87571255a68716dca3fe76b26f7b1f6bf5 100644 (file)
@@ -123,9 +123,17 @@ fet_beginchar("> accent", "sforzato", "sforzatoaccent")
        labels(4);
 fet_endchar;
 
+% Hmm, changed 1.5 to 1.4 to avoid problems with "random" placement of
+% the dots because of quantization effects for almost integer values. /MB
+
+
+%
+% Hmm. Should not meddle with darkness of font. Check out the 
+% correct value for radius. Maybe we'd better change padding --hwn
+%
 fet_beginchar("staccato dot", "staccato", "staccato")
        save radius;
-       radius# = 1.5 stafflinethickness#;
+       radius# = 1.4 stafflinethickness#;
        define_pixels(radius);
        pickup pencircle scaled 2 radius;
        draw (0,0);
@@ -678,6 +686,39 @@ fet_beginchar("Coda", "coda", "coda")
 
 fet_endchar;
 
+def draw_comma = 
+       save alpha, thick, thin, ht;
+       alpha:=35;
+       thin# = 1.2 stafflinethickness#;
+       thick# = 3 stafflinethickness#;
+       ht# = .6staff_space#;
+       define_pixels(thin, thick,ht);
+       set_char_box(0, .5staff_space#, ht#, ht#);
+
+       penpos1(thick, alpha);
+       penpos2(thick, alpha+90);
+       penpos3(thin, 180-alpha);
+       penpos4(thin, 90-alpha);
+       x3r=0;
+       x1l=x3l;
+       y2r=-y4l=h;
+       z1=z2;
+       z3=z4;
+       penlabels(1,2,3,4);
+       fill z1l{dir (alpha+90)} .. z2r{dir alpha} .. z1r{dir (alpha-90)} .. 
+       z3l{dir (270-alpha)} .. z4l{dir (alpha+180)} .. 
+       z3r{dir (90-alpha)} .. cycle;
+enddef;
+
+fet_beginchar("Right Comma","rcomma","rcomma");
+       draw_comma;
+fet_endchar;
+
+fet_beginchar("Left Comma","lcomma","lcomma");
+       draw_comma;
+       xy_mirror_char;
+fet_endchar;
+
 thick#:=1/24designsize;
 define_blacker_pixels(thick);
 
index 769348609e77cb3c07cb9abace207e7ae9d7842f..df3ae8d0cb9665b140c90652740f5d21a1af0714 100644 (file)
@@ -93,7 +93,7 @@ fet_endchar;
 
 fet_beginchar("mordent", "mordent", "mordent")
        trills := 2;
-       set_char_box(trills*twidth#-0.5toverlap#, trills*twidth#-0.5toverlap#, theight#, theight#);
+       set_char_box(trills*twidth#-0.5toverlap#, trills*twidth#-0.5toverlap#, 4/3*theight#, 4/3*theight#);
        draw_trill_two;
        draw_mordent(0);
 fet_endchar;
@@ -112,7 +112,7 @@ fet_endchar;
 
 fet_beginchar("prallmordent", "prallmordent", "prallmordent")
        trills := 3;
-       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, trills*twidth#-(trills-1)*0.5toverlap#, theight#, theight#);
+       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, trills*twidth#-(trills-1)*0.5toverlap#, 4/3*theight#, 4/3*theight#);
        draw_trill_three;
        draw_mordent(twidth-0.5toverlap);
 fet_endchar;
@@ -146,3 +146,61 @@ fet_beginchar("downprall", "downprall", "downprall")
        draw_trill_three;
 fet_endchar;
 
+fet_beginchar("upmordent", "upmordent", "upmordent")
+%      trills := 4;
+       trills := 3;
+       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, trills*twidth#-(trills-1)*0.5toverlap#, 4/3*theight#, 4/3*theight#);
+%      draw_slur(-2twidth#,-2theight#,0,-1);
+%      currentpicture := currentpicture shifted (-0.5w+tthin,-tfat*theight+0.75tthin);
+       draw_slur(0,-2theight#,0,-1);
+%      currentpicture := currentpicture shifted (-0.5w+1.3tthin,-tfat*theight+1.5tthin);
+       currentpicture := currentpicture shifted (-0.5w+1.65tthin,-tfat*theight+1.15tthin);
+%      draw_trill_four;
+       draw_trill_three;
+       draw_mordent(twidth-0.5toverlap);
+fet_endchar;
+
+fet_beginchar("downmordent", "downmordent", "downmordent")
+       trills := 3;
+       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, trills*twidth#-(trills-1)*0.5toverlap#, 4/3*theight#, 4/3*theight#);
+%      draw_slur(-2twidth#,2theight#,0,1);
+       draw_slur(0,2theight#,0,1);
+%      currentpicture := currentpicture shifted (-0.5w+tthin,-tfat*theight+0.75tthin);
+       currentpicture := currentpicture shifted (-0.5w+tthin,-tfat*theight+0.5tthin);
+       draw_trill_three;
+       draw_mordent(twidth-0.5toverlap);
+fet_endchar;
+
+fet_beginchar("lineprall", "lineprall", "lineprall")
+       trills := 3;
+       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, trills*twidth#-(trills-1)*0.5toverlap#, theight#, 4*theight#);
+       pickup pencircle scaled tthin;
+       draw (-0.5w+tthin,-tfat*theight+0.5tthin) -- (-0.5w+tthin,h);
+       draw_trill_three;
+fet_endchar;
+
+fet_beginchar("pralldown", "pralldown", "pralldown")
+%      trills := 4;
+       trills := 3;
+       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, trills*twidth#-(trills-1)*0.5toverlap#, theight#, theight#);
+%      draw_slur(-2twidth#,-2theight#,0,-1);
+%      currentpicture := currentpicture shifted (-0.5w+tthin,-tfat*theight+0.75tthin);
+       draw_slur(0,-2theight#,0,-1);
+%      currentpicture := currentpicture shifted (-0.5w+1.3tthin,-tfat*theight+1.5tthin);
+       currentpicture := currentpicture shifted (-0.5w+1.65tthin,-tfat*theight+1.15tthin);
+%      draw_trill_four;
+       draw_trill_three;
+       currentpicture := currentpicture xscaled -1;
+fet_endchar;
+
+fet_beginchar("prallup", "prallup", "prallup")
+       trills := 3;
+       set_char_box(trills*twidth#-(trills-1)*0.5toverlap#, trills*twidth#-(trills-1)*0.5toverlap#, theight#, theight#);
+%      draw_slur(-2twidth#,2theight#,0,1);
+       draw_slur(0,2theight#,0,1);
+%      currentpicture := currentpicture shifted (-0.5w+tthin,-tfat*theight+0.75tthin);
+       currentpicture := currentpicture shifted (-0.5w+tthin,-tfat*theight+0.5tthin);
+       draw_trill_three;
+       currentpicture := currentpicture xscaled -1;
+fet_endchar;
+
index 9eeafb828df19f37b6aa48ff6a37ea8260985e92..3ff3269f2b83ca9a42b60c73b3e26bf16e18dbc9 100644 (file)
@@ -328,7 +328,7 @@ fet_beginchar("Ed. Med. Flat" , "medicaea-1", "medicaeaflat");
 %
 %
 fet_beginchar("Ed. Vat. Flat" , "vaticana-1", "vaticanaflat");
-        set_char_box(0, 0.8 staff_space#, 0.6 staff_space#, 
+        set_char_box(0, 0.7 staff_space#, 0.6 staff_space#, 
                 2.0 staff_space#);
         define_pixels (stafflinethickness, staff_space);
 
@@ -349,7 +349,7 @@ fet_beginchar("Ed. Vat. Flat" , "vaticana-1", "vaticanaflat");
         fet_endchar;
 
 fet_beginchar("Ed. Vat. Natural" , "vaticana0", "vaticananatural");
-       set_char_box(0, 0.7 staff_space#, 0.6 staff_space#, 
+       set_char_box(0, 0.6 staff_space#, 0.6 staff_space#, 
                2.0 staff_space#);
        define_pixels (stafflinethickness, staff_space);
 
@@ -381,7 +381,7 @@ fet_beginchar("Ed. Vat. Natural" , "vaticana0", "vaticananatural");
 %
 %
 fet_beginchar("Mensural Sharp" , "mensural1", "mensuralsharp");
-       set_char_box(0, 0.7 staff_space#, 0.5 staff_space#, 
+       set_char_box(0.4 staff_space#, 0.6 staff_space#, 0.5 staff_space#, 
                0.5 staff_space#);
        save stemthick;
        define_pixels (stemthick, staff_space);
@@ -400,7 +400,7 @@ fet_beginchar("Mensural Sharp" , "mensural1", "mensuralsharp");
        fet_endchar;
 
 fet_beginchar("Mensural Flat" , "mensural-1", "mensuralflat");
-       set_char_box(0, 0.7 staff_space#, 0.4 staff_space#, 
+       set_char_box(0.1 staff_space#, 0.7 staff_space#, 0.4 staff_space#, 
                1.8 staff_space#);
        save stemthick;
        define_pixels (stemthick, staff_space);
@@ -422,7 +422,7 @@ fet_beginchar("Mensural Flat" , "mensural-1", "mensuralflat");
        fet_endchar;
 
 fet_beginchar("Hufnagel Flat" , "hufnagel-1", "hufnagelflat");
-       set_char_box(0, 0.7 staff_space#, 0.4 staff_space#, 
+       set_char_box(0.5 staff_space#, 0.7 staff_space#, 0.4 staff_space#, 
                1.8 staff_space#);
        save stemthick;
        define_pixels (stemthick, staff_space);
index e08b36c8e4f4b48e4e841b6d954bde95f2d74382..74dd0faf6237cd3e948961fb7e64b293020413a8 100644 (file)
@@ -204,7 +204,12 @@ For barline, space after a thick line.")
 (grob-property-description 'left-padding number? "space left of accs.")
 (grob-property-description 'length number? "Stem length for unbeamed stems, only for user override.")
 (grob-property-description 'lengths list? "Stem length given multiplicity of flag.")
-(grob-property-description 'line-count integer? "Number of staff lines.")
+(grob-property-description 'line-count integer? "Number of staff
+lines.  If you want to override this for staffs individually, you must
+use @code{\outputproperty}. @code{\property .. \override} will not
+work: @code{\override} is processed after the StaffSymbol is created,
+and will have no effect.
+")
 (grob-property-description 'line-thickness number? "the thickness[stafflinethickness] of the line.")
 (grob-property-description 'lookup symbol? "lookup method: 'value for plain text, 'name for character-name.")
 (grob-property-description 'magnify number? "the magnification factor.  FIXME: doesn't work for feta fonts.")
index a5364c45e86924d536d1f49b81899bb3e6eff25a..8c6f1e3d91988b384550a9be0b3820bf36e53782 100644 (file)
@@ -83,6 +83,7 @@ centered, X==1 is at the right, X == -1 is at the left."
     ((default) '(1.0 . 0.5))
     ((cross) '(1.0 . 0.75))
     ((mensural) '(0.0 . 0.6))
+    ((neo_mensural) '(0.0 . 0.6))
     ((diamond) '(1.0 . 0.8))
     ((transparent) '(1.0 . 1.0))
     ((slash) '(1.0 . 1.0))
index c721e51ea79db8cda6acd53b10a77a5b52c2fa3e..628876274bf6cea9cbbcdaecdd88692c9bcd868d 100644 (file)
@@ -21,6 +21,7 @@
        ("stopped" . ((feta . ("stopped" . "stopped")) #f 0 1 0))
        ("staccato" . ((feta . ("staccato" . "staccato")) #t -1 0 -100))
        ("tenuto" . ((feta . ("tenuto" . "tenuto")) #t -1 0 0))
+       ("comma" . ((feta . ("lcomma" . "rcomma")) #t 0 1 0))
        ("upbow" . ((feta . ("upbow" . "upbow")) #f 0 1 0))
        ("downbow" . ((feta . ("downbow" . "downbow")) #f 0 1 0))
        ("lheel" . ((feta . ("upedalheel" . "upedalheel")) #f 0 -1  0))
        ("prallmordent" . ((feta . ("prallmordent" . "prallmordent")) #f 0 1 0))
        ("upprall" . ((feta . ("upprall" . "upprall")) #f 0 1 0))
        ("downprall" . ((feta . ("downprall" . "downprall")) #f 0 1 0))
+       ("upmordent" . ((feta . ("upmordent" . "upmordent")) #f 0 1 0))
+       ("downmordent" . ((feta . ("downmordent" . "downmordent")) #f 0 1 0))
+       ("lineprall" . ((feta . ("lineprall" . "lineprall")) #f 0 1 0))
+       ("pralldown" . ((feta . ("pralldown" . "pralldown")) #f 0 1 0))
+       ("prallup" . ((feta . ("prallup" . "prallup")) #f 0 1 0))
        ("segno" . ((feta . ("segno" . "segno")) #f 0 1 0))
        ("coda" . ((feta . ("coda" . "coda")) #f 0 1 0)))
       default-script-alist)