From 7f9e5064f10a1ef632bf30a57735e2098706ba40 Mon Sep 17 00:00:00 2001 From: fred Date: Tue, 26 Mar 2002 23:57:20 +0000 Subject: [PATCH] lilypond-1.3.97 --- input/denneboom.ly | 2 +- input/example-1.ly | 2 +- input/example-2.ly | 2 +- input/example-3.ly | 2 +- input/just-friends.ly | 4 +- input/praeludium-fuga-E.ly | 2 +- input/rhythm.ly | 2 +- input/scarlatti-properties.ly | 2 +- input/star-spangled-banner.ly | 2 +- input/test/accid.ly | 2 +- input/test/accidental-spacing.ly | 2 +- input/test/american-chords.ly | 9 +- input/test/as.ly | 2 +- input/test/as1.ly | 2 +- input/test/auto-isknee.ly | 2 +- input/test/bagpipe.ly | 22 +- input/test/banter-chords.ly | 2 +- input/test/bar-scripts.ly | 2 +- input/test/beam-abbrev.ly | 2 +- input/test/beam-chord.ly | 2 +- input/test/beam-control.ly | 2 +- input/test/beam-cross-staff.ly | 2 +- input/test/beam-damp.ly | 2 +- input/test/beam-dir.ly | 2 +- input/test/beam-extreme.ly | 2 +- input/test/beam-isknee.ly | 2 +- input/test/beam-length.ly | 2 +- input/test/beam-position.ly | 2 +- input/test/beam-slope.ly | 2 +- input/test/beam-suspect.ly | 2 +- input/test/beam-trend.ly | 2 +- input/test/beams.ly | 2 +- input/test/breathing-sign.ly | 2 +- input/test/broken.ly | 2 +- input/test/chord-inversion.ly | 2 +- input/test/chord-names.ly | 7 +- input/test/chord-table.ly | 2 +- input/test/chords.ly | 8 +- input/test/clefs.ly | 2 +- input/test/collision-merge-dotted.ly | 2 +- input/test/collisions.ly | 2 +- input/test/defaultbars.ly | 2 +- input/test/dots.ly | 2 +- input/test/drarn-chords.ly | 4 +- input/test/dynamics.ly | 2 +- input/test/extra-staff.ly | 2 +- input/test/font-body.ly | 2 +- input/test/font.ly | 2 +- input/test/font16.ly | 2 +- input/test/font20.ly | 2 +- input/test/force-hshift.ly | 2 +- input/test/generic-property-override.ly | 2 +- input/test/gmsusd.ly | 2 +- input/test/gourlay.ly | 2 +- input/test/grace-end.ly | 2 +- input/test/hara-kiri-short.ly | 2 +- input/test/hara-kiri-switch.ly | 2 +- input/test/hara-kiri.ly | 2 +- input/test/harmonics.ly | 2 +- input/test/hshift.ly | 2 +- input/test/incipit.ly | 2 +- input/test/jazz-chords.ly | 46 +- input/test/keys.ly | 2 +- input/test/keys2.ly | 2 +- input/test/knee-mult.ly | 2 +- input/test/knee.ly | 2 +- input/test/lyric-combine.ly | 2 +- input/test/lyric-extender.ly | 2 +- input/test/lyric-hyphen.ly | 2 +- input/test/lyric-phrasing.ly | 4 +- input/test/lyrics-multi-stanza.ly | 2 +- input/test/lyrics.ly | 2 +- input/test/mark.ly | 2 +- input/test/memory.ly | 2 +- input/test/multi-measure-rest.ly | 2 +- input/test/multi-rest.ly | 2 +- input/test/multi-slope.ly | 2 +- input/test/no-stem-extend.ly | 2 +- input/test/non-empty-text.ly | 2 +- input/test/note-shift.ly | 2 +- input/test/noteheadstyle.ly | 2 +- input/test/notemode-chords.ly | 2 +- input/test/number-staff-lines.ly | 2 +- input/test/orchestscore.ly | 2 +- input/test/ossia.ly | 2 +- input/test/perform-grace.ly | 2 +- input/test/perform-tie.ly | 2 +- input/test/pushproperty.ly | 2 +- input/test/repeatbar.ly | 2 +- input/test/rest-collision.ly | 2 +- input/test/rests.ly | 2 +- input/test/scripts.ly | 2 +- input/test/sizes.ly | 2 +- input/test/sleur.ly | 2 +- input/test/slur-cross-staff.ly | 2 +- input/test/slur-damping.ly | 2 +- input/test/slur-dash.ly | 2 +- input/test/slur-follow-music.ly | 2 +- input/test/slur-nice.ly | 2 +- input/test/slurs.ly | 2 +- input/test/spacing-2.ly | 2 +- input/test/spacing.ly | 2 +- input/test/span-bars.ly | 2 +- input/test/staccato-pos.ly | 2 +- input/test/staff-margin-partial.ly | 2 +- input/test/staff-margin.ly | 2 +- input/test/staff-side-slur.ly | 2 +- input/test/staff-size.ly | 2 +- input/test/stem-length.ly | 2 +- input/test/stem-spacing.ly | 2 +- input/test/stem-tremolo.ly | 2 +- input/test/stem.ly | 2 +- input/test/tchaikovsky.ly | 2 +- input/test/thumb.ly | 2 +- input/test/tie-sparse.ly | 2 +- input/test/time.ly | 2 +- input/test/timing.ly | 2 +- input/test/title.ly | 2 +- input/test/transposing.ly | 2 +- input/test/transposition.ly | 2 +- input/test/tup.ly | 2 +- input/test/tuplet.ly | 2 +- input/test/twinkle-as5.ly | 2 +- input/test/two-slurs.ly | 2 +- input/test/updown.ly | 4 +- input/test/vertical-align.ly | 2 +- input/test/vertical-text.ly | 2 +- input/trip.ly | 2 +- input/twinkle-pop.ly | 2 +- input/twinkle.ly | 2 +- lily/chord-name-engraver.cc | 2 +- lily/dynamic-engraver.cc | 54 +-- lily/dynamic-performer.cc | 25 +- lily/include/musical-request.hh | 31 +- lily/lyric-engraver.cc | 5 +- lily/lyric-performer.cc | 8 +- lily/musical-request.cc | 3 +- lily/parser.yy | 55 ++- lily/text-engraver.cc | 22 +- ly/book-fragment.ly | 2 +- ly/book-init.ly | 2 +- ly/catalan.ly | 2 +- ly/center-fragment.ly | 2 +- ly/center.ly | 2 +- ly/deutsch.ly | 2 +- ly/english.ly | 2 +- ly/engraver.ly | 567 +--------------------- ly/fragment.ly | 2 +- ly/init-as.fly | 2 +- ly/init-as.ly | 2 +- ly/init.fly | 2 +- ly/init.ly | 2 +- ly/init.sly | 2 +- ly/italiano.ly | 2 +- ly/norsk.ly | 4 +- ly/paper-as5.ly | 2 +- ly/paper-as9.ly | 2 +- ly/paper11.ly | 22 +- ly/paper13.ly | 19 +- ly/paper16.ly | 23 +- ly/paper20.ly | 28 +- ly/paper23.ly | 20 +- ly/paper26.ly | 21 +- ly/params.ly | 4 +- ly/property.ly | 2 +- ly/svenska.ly | 2 +- scm/chord-names.scm | 129 +++-- scm/element-descriptions.scm | 594 ++++++++++++++++++++++++ scm/font.scm | 140 ++++++ scm/generic-property.scm | 4 + scripts/convert-mudela.py | 6 + 171 files changed, 1146 insertions(+), 1026 deletions(-) create mode 100644 scm/element-descriptions.scm create mode 100644 scm/font.scm diff --git a/input/denneboom.ly b/input/denneboom.ly index 3fa6b727a0..2600ab0ed0 100644 --- a/input/denneboom.ly +++ b/input/denneboom.ly @@ -7,7 +7,7 @@ copyright = "public domain"; \include "paper20.ly" -\version "1.3.93"; +\version "1.3.96"; oden = \lyrics{ O | diff --git a/input/example-1.ly b/input/example-1.ly index 839690d4c7..f9ac3b298b 100644 --- a/input/example-1.ly +++ b/input/example-1.ly @@ -17,4 +17,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/example-2.ly b/input/example-2.ly index 982027eb40..1c7c56208c 100644 --- a/input/example-2.ly +++ b/input/example-2.ly @@ -17,4 +17,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/example-3.ly b/input/example-3.ly index 7446e2eb47..1819d76805 100644 --- a/input/example-3.ly +++ b/input/example-3.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; one = \notes\relative c{ c'' d e f diff --git a/input/just-friends.ly b/input/just-friends.ly index 82b34fc94d..8eef71faa1 100644 --- a/input/just-friends.ly +++ b/input/just-friends.ly @@ -48,7 +48,7 @@ of a certain tune (Jazz, Real Book, for example), like indent = 0.0\mm; linewidth = 100.0\mm; \translator{ - \ChordNameContext + \ChordNamesContext barAuto = "1"; \consists Bar_engraver; \consists "Repeat_engraver"; @@ -56,4 +56,4 @@ of a certain tune (Jazz, Real Book, for example), like } } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/praeludium-fuga-E.ly b/input/praeludium-fuga-E.ly index e6680033fb..6fe81a6229 100644 --- a/input/praeludium-fuga-E.ly +++ b/input/praeludium-fuga-E.ly @@ -22,7 +22,7 @@ * organ staff... %} -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/rhythm.ly b/input/rhythm.ly index c0eebab78b..ded45e1890 100644 --- a/input/rhythm.ly +++ b/input/rhythm.ly @@ -7,7 +7,7 @@ TestedFeatures = "multiple meters, beaming, unsynced bars, userdefd engravers"; -\version "1.3.93"; +\version "1.3.96"; ritme = \notes\transpose c'' { \time 4/4; diff --git a/input/scarlatti-properties.ly b/input/scarlatti-properties.ly index b364b406d2..52e9c4fb8a 100644 --- a/input/scarlatti-properties.ly +++ b/input/scarlatti-properties.ly @@ -1,7 +1,7 @@ -\version "1.3.93"; +\version "1.3.96"; rh=\property Thread.NoteHead \push #'style = #'default lh=\property Thread.NoteHead \push #'style = #'diamond diff --git a/input/star-spangled-banner.ly b/input/star-spangled-banner.ly index 1416f5bf83..f3033e00f8 100644 --- a/input/star-spangled-banner.ly +++ b/input/star-spangled-banner.ly @@ -4,7 +4,7 @@ http://www.Arkkra.com/doc/star.html http://www.Arkkra.com/doc/star.ps %} -\version "1.3.93"; +\version "1.3.96"; % TODO: % diff --git a/input/test/accid.ly b/input/test/accid.ly index fb00fbc50e..ec686fadc0 100644 --- a/input/test/accid.ly +++ b/input/test/accid.ly @@ -10,4 +10,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/accidental-spacing.ly b/input/test/accidental-spacing.ly index 19d07f138b..22217e1208 100644 --- a/input/test/accidental-spacing.ly +++ b/input/test/accidental-spacing.ly @@ -7,4 +7,4 @@ linewidth=-1.0; } \midi { } -} \ No newline at end of file +} diff --git a/input/test/american-chords.ly b/input/test/american-chords.ly index bb344b2256..bc20a85f4c 100644 --- a/input/test/american-chords.ly +++ b/input/test/american-chords.ly @@ -1,3 +1,4 @@ +\version "1.3.96" %{ See scm/chord-names.scm: chord::names-alist-american James Hammons @@ -13,7 +14,7 @@ chord::names-alist-american)) chord = \notes\transpose c''\chords{ -\property ChordNames.chordNameStyle = "american" + \property ChordNames.ChordNames \push #'style = #"american" c cs:m df:m5- @@ -46,8 +47,10 @@ c:m7.9 > \paper { - \translator { \ChordNameContext chordNameWordSpace = #1 } - \translator { \LyricsContext textScriptWordSpace = #0.3 } + \translator { + \ChordNamesContext + ChordNames \push #'word-space = #1 + } } } diff --git a/input/test/as.ly b/input/test/as.ly index 3aa062eec9..06cc24dea3 100644 --- a/input/test/as.ly +++ b/input/test/as.ly @@ -6,4 +6,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/as1.ly b/input/test/as1.ly index cd66621667..2003013d42 100644 --- a/input/test/as1.ly +++ b/input/test/as1.ly @@ -7,4 +7,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/auto-isknee.ly b/input/test/auto-isknee.ly index b53ec2924a..ea22d212a7 100644 --- a/input/test/auto-isknee.ly +++ b/input/test/auto-isknee.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score { \notes \context PianoStaff < \context Staff = "up" { diff --git a/input/test/bagpipe.ly b/input/test/bagpipe.ly index 89689d4358..e9be547c7a 100644 --- a/input/test/bagpipe.ly +++ b/input/test/bagpipe.ly @@ -1,4 +1,4 @@ -\version "1.3.80"; +\version "1.3.96"; % bagpipe music. \header @@ -12,20 +12,20 @@ \translator { \GraceContext - basicNoteHeadProperties \push #'font-size = #-2 - basicNoteHeadProperties \push #'font-size = #-2 - basicStemProperties \push #'flag-style = ##f + NoteHead \push #'font-size = #-2 + NoteHead \push #'font-size = #-2 + Stem \push #'flag-style = ##f % The following determines the length of stems without beams % default is between 2.8 and 4.0 depending on the number of flags - basicStemProperties \push #'length = #6 - basicStemProperties \push #'font-size = #-2 - basicGraceAlignItemProperties \push #'horizontal-space = #1 - basicStemProperties \push #'flag-style = #"" + Stem \push #'length = #6 + Stem \push #'font-size = #-2 + GraceAlignItem \push #'horizontal-space = #1 + Stem \push #'flag-style = #"" } \translator { \StaffContext - basicTimeSignatureProperties \push #'style = #"C4/4" - basicTimeSignatureProperties \push #'visibility-function = #begin-of-line-visible + TimeSignature \push #'style = #"C4/4" + TimeSignature \push #'visibility-function = #begin-of-line-visible } } @@ -72,7 +72,7 @@ gcdg = \notes{ \grace { [g'32 c d]}} \score { \notes { \time 6/8; \partial 4; \property Voice.tieVerticalDirection = \up - \slurup + \slurUp f4 | \gg f4 e8 \thrd d4. | \eg a4.()a4 d8 | diff --git a/input/test/banter-chords.ly b/input/test/banter-chords.ly index 91691f5978..f1f0284d9f 100644 --- a/input/test/banter-chords.ly +++ b/input/test/banter-chords.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \header{ enteredby = "jcn"; diff --git a/input/test/bar-scripts.ly b/input/test/bar-scripts.ly index c40ab56b41..2ab1966e14 100644 --- a/input/test/bar-scripts.ly +++ b/input/test/bar-scripts.ly @@ -1,5 +1,5 @@ -\version "1.3.93"; +\version "1.3.96"; onestaff = \context Staff = foo\notes { \property Staff.instr = instr diff --git a/input/test/beam-abbrev.ly b/input/test/beam-abbrev.ly index e23cb2d407..3d64f71efa 100644 --- a/input/test/beam-abbrev.ly +++ b/input/test/beam-abbrev.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score { \context Voice \notes\relative c { c'1:16 diff --git a/input/test/beam-chord.ly b/input/test/beam-chord.ly index ac00bc9b3c..447c03554e 100644 --- a/input/test/beam-chord.ly +++ b/input/test/beam-chord.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score{ \notes\transpose c'{ diff --git a/input/test/beam-control.ly b/input/test/beam-control.ly index 0c27c6b744..f15ddae723 100644 --- a/input/test/beam-control.ly +++ b/input/test/beam-control.ly @@ -20,4 +20,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/beam-cross-staff.ly b/input/test/beam-cross-staff.ly index 7bdd5232b4..7ba56ff437 100644 --- a/input/test/beam-cross-staff.ly +++ b/input/test/beam-cross-staff.ly @@ -22,4 +22,4 @@ > } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/beam-damp.ly b/input/test/beam-damp.ly index 5cfc6bcd04..b4d50f4560 100644 --- a/input/test/beam-damp.ly +++ b/input/test/beam-damp.ly @@ -17,4 +17,4 @@ linewidth=-1.; } } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/beam-dir.ly b/input/test/beam-dir.ly index 3b431ef15b..6b95542399 100644 --- a/input/test/beam-dir.ly +++ b/input/test/beam-dir.ly @@ -5,4 +5,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/beam-extreme.ly b/input/test/beam-extreme.ly index 9d84d55709..d538b2318d 100644 --- a/input/test/beam-extreme.ly +++ b/input/test/beam-extreme.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score{ \notes\relative c''{ [g8 c c,] diff --git a/input/test/beam-isknee.ly b/input/test/beam-isknee.ly index d8e3197d30..376bb4b369 100644 --- a/input/test/beam-isknee.ly +++ b/input/test/beam-isknee.ly @@ -16,4 +16,4 @@ } } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/beam-length.ly b/input/test/beam-length.ly index c408e64b2c..0b39c8e46a 100644 --- a/input/test/beam-length.ly +++ b/input/test/beam-length.ly @@ -7,4 +7,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/beam-position.ly b/input/test/beam-position.ly index 2d912fd9e3..940843afc5 100644 --- a/input/test/beam-position.ly +++ b/input/test/beam-position.ly @@ -9,4 +9,4 @@ linewidth=-1.0; } \midi { } -} \ No newline at end of file +} diff --git a/input/test/beam-slope.ly b/input/test/beam-slope.ly index 90316d2ea4..47eb49c3b5 100644 --- a/input/test/beam-slope.ly +++ b/input/test/beam-slope.ly @@ -5,4 +5,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/beam-suspect.ly b/input/test/beam-suspect.ly index 9ae29bcfd1..46fc2afd7f 100644 --- a/input/test/beam-suspect.ly +++ b/input/test/beam-suspect.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score{ \notes\relative c'{ \stemUp diff --git a/input/test/beam-trend.ly b/input/test/beam-trend.ly index 7c1357fec4..7182e5c82d 100644 --- a/input/test/beam-trend.ly +++ b/input/test/beam-trend.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score{ \notes\relative c'{ \stemUp diff --git a/input/test/beams.ly b/input/test/beams.ly index f219590cc5..018bd4c032 100644 --- a/input/test/beams.ly +++ b/input/test/beams.ly @@ -6,7 +6,7 @@ copyright = "PD"; TestedFeatures = "beams and beamflags"; } -\version "1.3.93"; +\version "1.3.96"; \score{ < diff --git a/input/test/breathing-sign.ly b/input/test/breathing-sign.ly index 9eaaa673b8..634ee257f2 100644 --- a/input/test/breathing-sign.ly +++ b/input/test/breathing-sign.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score { \notes \relative c' { diff --git a/input/test/broken.ly b/input/test/broken.ly index 38cf583388..ed1f191cbd 100644 --- a/input/test/broken.ly +++ b/input/test/broken.ly @@ -5,7 +5,7 @@ TestedFeatures = "This file tests Feta embedded slurs" + "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "1.3.93"; +\version "1.3.96"; shortlong = \notes{ c4()c( c c | diff --git a/input/test/chord-inversion.ly b/input/test/chord-inversion.ly index fe78836b81..5d717e02f9 100644 --- a/input/test/chord-inversion.ly +++ b/input/test/chord-inversion.ly @@ -20,4 +20,4 @@ inversions = \notes\transpose c''\chords{ > } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/chord-names.ly b/input/test/chord-names.ly index 500f98e949..940999a4b4 100644 --- a/input/test/chord-names.ly +++ b/input/test/chord-names.ly @@ -1,3 +1,4 @@ +\version "1.3.96" chord = \notes\transpose c''\chords{ c1 c:m @@ -20,8 +21,10 @@ chord = \notes\transpose c''\chords{ > \paper{ linewidth = -1.0; - \translator { \ChordNameContext chordNameWordSpace = #1 } - \translator { \LyricsContext textScriptWordSpace = #0.3 } + \translator { + \ChordNamesContext + ChordNames \push #'word-space = #1 + } } } diff --git a/input/test/chord-table.ly b/input/test/chord-table.ly index 6527e63723..3ec0e0ec1a 100644 --- a/input/test/chord-table.ly +++ b/input/test/chord-table.ly @@ -41,4 +41,4 @@ tab = \notes\transpose c'''\chords{ } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/chords.ly b/input/test/chords.ly index 8fc784cb40..76e1ca7395 100644 --- a/input/test/chords.ly +++ b/input/test/chords.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.97"; %{ Would this be acceptable/good enough/convenient for entry? @@ -59,4 +59,10 @@ keys = \notes{ \context ChordNames \scales \context Staff < \scales \keys > > + \paper{ + \translator { + \ChordNamesContext + ChordNames \push #'word-space = #1 + } + } } diff --git a/input/test/clefs.ly b/input/test/clefs.ly index 7a70aaf0c1..6ede9ce6cc 100644 --- a/input/test/clefs.ly +++ b/input/test/clefs.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score { \notes{ diff --git a/input/test/collision-merge-dotted.ly b/input/test/collision-merge-dotted.ly index 9fa2d0749c..21bec97b81 100644 --- a/input/test/collision-merge-dotted.ly +++ b/input/test/collision-merge-dotted.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score { \context Voice \notes\relative c { diff --git a/input/test/collisions.ly b/input/test/collisions.ly index e31e717b57..6ae299fb0b 100644 --- a/input/test/collisions.ly +++ b/input/test/collisions.ly @@ -5,7 +5,7 @@ enteredby = "HWN,JCN"; copyright = "public domain"; Tested = "test the Collision resolution "; } -\version "1.3.93"; +\version "1.3.96"; twovoice = \context Staff \notes < \context Voice=i { \stemDown c4 d e f g2~ g4 a [c8 d e f] c2| } diff --git a/input/test/defaultbars.ly b/input/test/defaultbars.ly index 05fa27508e..4eaee53619 100644 --- a/input/test/defaultbars.ly +++ b/input/test/defaultbars.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score { diff --git a/input/test/dots.ly b/input/test/dots.ly index a4ffc101a2..b21cd00eee 100644 --- a/input/test/dots.ly +++ b/input/test/dots.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score { \context Voice \notes\relative c'' { \time 6/8; diff --git a/input/test/drarn-chords.ly b/input/test/drarn-chords.ly index 5842761fb9..875761201a 100644 --- a/input/test/drarn-chords.ly +++ b/input/test/drarn-chords.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; %{ Would this be acceptable/good enough/convenient for entry? @@ -31,7 +31,7 @@ scales = \notes \transpose c'' \chords{ \paper{ % \paper_as_nine \translator { - \ChordNameContext + \ChordNamesContext } } } diff --git a/input/test/dynamics.ly b/input/test/dynamics.ly index cd8b8d8a9f..05fca1aaca 100644 --- a/input/test/dynamics.ly +++ b/input/test/dynamics.ly @@ -7,4 +7,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/extra-staff.ly b/input/test/extra-staff.ly index 0effb0a789..25580ed50b 100644 --- a/input/test/extra-staff.ly +++ b/input/test/extra-staff.ly @@ -42,4 +42,4 @@ extra-staff.ly: } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/font-body.ly b/input/test/font-body.ly index 846928eede..f1643d5438 100644 --- a/input/test/font-body.ly +++ b/input/test/font-body.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; FontBody= \notes\transpose c''{ \bar "|:"; diff --git a/input/test/font.ly b/input/test/font.ly index 415401f2f5..32ed3fbaab 100644 --- a/input/test/font.ly +++ b/input/test/font.ly @@ -7,7 +7,7 @@ description = "This file tests the Feta music font"; % "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "1.3.93"; +\version "1.3.96"; \include "font-body.ly" \score{ diff --git a/input/test/font16.ly b/input/test/font16.ly index 95564bde08..1126c75eea 100644 --- a/input/test/font16.ly +++ b/input/test/font16.ly @@ -7,7 +7,7 @@ description = "This file tests the Feta music font"; % "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "1.3.93"; +\version "1.3.96"; \include "paper16.ly" \include "font-body.ly" diff --git a/input/test/font20.ly b/input/test/font20.ly index 6d43a2be28..04b49aa649 100644 --- a/input/test/font20.ly +++ b/input/test/font20.ly @@ -17,5 +17,5 @@ TestedFeatures = gourlay_maxmeasures =5.; } } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/force-hshift.ly b/input/test/force-hshift.ly index b70d20084e..097ddc3812 100644 --- a/input/test/force-hshift.ly +++ b/input/test/force-hshift.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score { \context Voice \notes\relative c { diff --git a/input/test/generic-property-override.ly b/input/test/generic-property-override.ly index adb56e4b3c..c6b503c983 100644 --- a/input/test/generic-property-override.ly +++ b/input/test/generic-property-override.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score { \notes \relative c'' \context Voice { diff --git a/input/test/gmsusd.ly b/input/test/gmsusd.ly index 8f20ee9a0b..71b5dd5042 100644 --- a/input/test/gmsusd.ly +++ b/input/test/gmsusd.ly @@ -3,7 +3,7 @@ % perhaps the current modifier approach is too simplistic -\version "1.3.93"; +\version "1.3.96"; gmsus=\notes\relative c \chords{ g1 diff --git a/input/test/gourlay.ly b/input/test/gourlay.ly index e0f5a644d8..53f5258c61 100644 --- a/input/test/gourlay.ly +++ b/input/test/gourlay.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; %{ diff --git a/input/test/grace-end.ly b/input/test/grace-end.ly index d61b1047b7..0fbacee532 100644 --- a/input/test/grace-end.ly +++ b/input/test/grace-end.ly @@ -6,4 +6,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/hara-kiri-short.ly b/input/test/hara-kiri-short.ly index 5a27380cdc..3566b27fa0 100644 --- a/input/test/hara-kiri-short.ly +++ b/input/test/hara-kiri-short.ly @@ -1,5 +1,5 @@ -\version "1.3.93"; +\version "1.3.96"; zager = \context Staff = zager \notes \relative c'' { \clef treble; c1 diff --git a/input/test/hara-kiri-switch.ly b/input/test/hara-kiri-switch.ly index ae042f764d..e1c41c282c 100644 --- a/input/test/hara-kiri-switch.ly +++ b/input/test/hara-kiri-switch.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; voiceOne = \notes \relative c'' { a1 a a diff --git a/input/test/hara-kiri.ly b/input/test/hara-kiri.ly index 30dce01a5c..918b085f27 100644 --- a/input/test/hara-kiri.ly +++ b/input/test/hara-kiri.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; toeter_i = \notes\relative c <{ \property Staff.instrument = #"Toeters" diff --git a/input/test/harmonics.ly b/input/test/harmonics.ly index 1a8eb47295..30c4db4622 100644 --- a/input/test/harmonics.ly +++ b/input/test/harmonics.ly @@ -4,4 +4,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/hshift.ly b/input/test/hshift.ly index 44fc980698..be09c586ab 100644 --- a/input/test/hshift.ly +++ b/input/test/hshift.ly @@ -14,4 +14,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/incipit.ly b/input/test/incipit.ly index 8813591d7e..9cfe6f60e2 100644 --- a/input/test/incipit.ly +++ b/input/test/incipit.ly @@ -6,7 +6,7 @@ /Mats B %} -\version "1.3.93"; +\version "1.3.96"; incipit = \notes\relative c'{ diff --git a/input/test/jazz-chords.ly b/input/test/jazz-chords.ly index 2e18444a95..44d35bc008 100644 --- a/input/test/jazz-chords.ly +++ b/input/test/jazz-chords.ly @@ -1,11 +1,12 @@ -% -% Make sure the correct msamxx.tfm is where lily can find it -% (ie cwd or lily's tfm dir). -% -% For normal (20pt) paper, do -% -% cp locate `msam9.tfm` $LILYPONDPREFIX/tfm -% +\version "1.3.96" +%% This should only be necessary if your kpathsea setup is broken +%% +%% Make sure the correct msamxx.tfm is where lily can find it +%% (ie cwd or lily's tfm dir). +%% +%% For normal (20pt) paper, do +%% +%% cp locate `msam9.tfm` $LILYPONDPREFIX/tfm #(set! chord::names-alist-american (append @@ -13,32 +14,33 @@ ;; any changes here, see scm/chord-names.scm - ;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("o7" (type . "super")))) + ;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (super "o7")) ;jazz: the delta, see jazz-chords.ly - (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("N" (type . "super") (style . "msam") (size . -3)))) + (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (super ((family . "math") "N"))) - ;(((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (("x7" (type . "super")))) + ;(((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (super "x7")) ; slashed o - (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (("o" (type . "super")) ("/" (size . -2) (offset . (-0.58 . 0.5))) ("7" (type . "super")))) - + (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (rows (super "o") ((kern . -0.5) ((size . "-3") "/")) "7")) ) chord::names-alist-american)) chord = \notes\transpose c''\chords{ -\property ChordNames.chordNameStyle = "american" -c:m5-.7- -c:m5-.7 + \property ChordNames.ChordNames \push #'style = #"american" + c:m5-.7- + c:m5-.7 } \score{ -< -\context ChordNames \chord -\context Staff \chord -> + < + \context ChordNames \chord + \context Staff \chord + > \paper { - \translator { \ChordNameContext chordNameWordSpace = #1 } - \translator { \LyricsContext textScriptWordSpace = #0.3 } + \translator { + \ChordNamesContext + ChordNames \push #'word-space = #1 + } } } diff --git a/input/test/keys.ly b/input/test/keys.ly index c5bd953e7f..c4809ee7e5 100644 --- a/input/test/keys.ly +++ b/input/test/keys.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score { \notes \relative c'' diff --git a/input/test/keys2.ly b/input/test/keys2.ly index 66c040fc5f..5c161a0641 100644 --- a/input/test/keys2.ly +++ b/input/test/keys2.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; blah = \notes { diff --git a/input/test/knee-mult.ly b/input/test/knee-mult.ly index e710d252e3..c1116065af 100644 --- a/input/test/knee-mult.ly +++ b/input/test/knee-mult.ly @@ -16,4 +16,4 @@ } } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/knee.ly b/input/test/knee.ly index 3b86f0c937..2c61a32858 100644 --- a/input/test/knee.ly +++ b/input/test/knee.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score{ \notes\relative c'{ [c16 \stemDown c'' \stemBoth c,, d] diff --git a/input/test/lyric-combine.ly b/input/test/lyric-combine.ly index bfb58c36aa..85ac0efab4 100644 --- a/input/test/lyric-combine.ly +++ b/input/test/lyric-combine.ly @@ -7,7 +7,7 @@ enteredby = "HWN, chords by Johan Vromans"; copyright = "public domain"; } -\version "1.3.93"; +\version "1.3.96"; m =\notes \relative c'' { \property Staff.automaticMelismata = ##t diff --git a/input/test/lyric-extender.ly b/input/test/lyric-extender.ly index 42a416b99b..a238fbd742 100644 --- a/input/test/lyric-extender.ly +++ b/input/test/lyric-extender.ly @@ -5,4 +5,4 @@ > } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/lyric-hyphen.ly b/input/test/lyric-hyphen.ly index a27a19b1d7..4efb6251f4 100644 --- a/input/test/lyric-hyphen.ly +++ b/input/test/lyric-hyphen.ly @@ -5,7 +5,7 @@ > } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/lyric-phrasing.ly b/input/test/lyric-phrasing.ly index 0e2dbec581..8c790f35fd 100644 --- a/input/test/lyric-phrasing.ly +++ b/input/test/lyric-phrasing.ly @@ -7,7 +7,7 @@ enteredby = "HWN, chords by Johan Vromans"; copyright = "public domain"; } -\version "1.3.93"; +\version "1.3.96"; m =\notes \relative c'' { \property Staff.automaticMelismata = ##t @@ -40,4 +40,4 @@ textIII = \lyrics { la -- da __ doo dah; dargh la dargh loo. } \paper { } -} \ No newline at end of file +} diff --git a/input/test/lyrics-multi-stanza.ly b/input/test/lyrics-multi-stanza.ly index d998078f91..d80bcba78b 100644 --- a/input/test/lyrics-multi-stanza.ly +++ b/input/test/lyrics-multi-stanza.ly @@ -3,7 +3,7 @@ % * Stanza_number_engraver % * Automatic melismata on beamed notes -\version "1.3.93"; +\version "1.3.96"; \include "english.ly" \header{ diff --git a/input/test/lyrics.ly b/input/test/lyrics.ly index 31b8354b63..72a2f9a8b6 100644 --- a/input/test/lyrics.ly +++ b/input/test/lyrics.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; $somewhat_long = \lyrics{ \property Lyrics . textStyle = "roman" diff --git a/input/test/mark.ly b/input/test/mark.ly index 754beeedd5..f48ceba0ff 100644 --- a/input/test/mark.ly +++ b/input/test/mark.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; global = \notes { s1 | \mark "A"; diff --git a/input/test/memory.ly b/input/test/memory.ly index ae76027ad9..00c039596a 100644 --- a/input/test/memory.ly +++ b/input/test/memory.ly @@ -11,5 +11,5 @@ bla = \notes { > \paper { Gourlay_maxmeaures = 2.; } } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/multi-measure-rest.ly b/input/test/multi-measure-rest.ly index ba4aedffa2..def26a27f3 100644 --- a/input/test/multi-measure-rest.ly +++ b/input/test/multi-measure-rest.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score { \notes { \time 3/4; \key cis \major; R2.*15 R2. R2.*7 } diff --git a/input/test/multi-rest.ly b/input/test/multi-rest.ly index 0738d53849..88e11166bf 100644 --- a/input/test/multi-rest.ly +++ b/input/test/multi-rest.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; voice_one = \notes\transpose c''{ \stemUp R1 * 2 | f'4-. r r2 | R1 * 3 | diff --git a/input/test/multi-slope.ly b/input/test/multi-slope.ly index 1cea6506b3..045d649728 100644 --- a/input/test/multi-slope.ly +++ b/input/test/multi-slope.ly @@ -5,4 +5,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/no-stem-extend.ly b/input/test/no-stem-extend.ly index 2f43ce8586..fe48d84f5d 100644 --- a/input/test/no-stem-extend.ly +++ b/input/test/no-stem-extend.ly @@ -17,4 +17,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/non-empty-text.ly b/input/test/non-empty-text.ly index ade385f569..51b38a8bc6 100644 --- a/input/test/non-empty-text.ly +++ b/input/test/non-empty-text.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score{ \notes\relative c''{ diff --git a/input/test/note-shift.ly b/input/test/note-shift.ly index c81ae2efe3..d4affe5ea9 100644 --- a/input/test/note-shift.ly +++ b/input/test/note-shift.ly @@ -29,4 +29,4 @@ linewidth=-1.0; } \midi { } -} \ No newline at end of file +} diff --git a/input/test/noteheadstyle.ly b/input/test/noteheadstyle.ly index 4e2185811e..70e879a476 100644 --- a/input/test/noteheadstyle.ly +++ b/input/test/noteheadstyle.ly @@ -40,4 +40,4 @@ c4 c2 c8 c16 c16 c1 c\breve c\longa } } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/notemode-chords.ly b/input/test/notemode-chords.ly index 60fb93fe1c..9290c19b05 100644 --- a/input/test/notemode-chords.ly +++ b/input/test/notemode-chords.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score{ \notes \transpose c''{ diff --git a/input/test/number-staff-lines.ly b/input/test/number-staff-lines.ly index d1d42d05af..f275c84ccf 100644 --- a/input/test/number-staff-lines.ly +++ b/input/test/number-staff-lines.ly @@ -6,4 +6,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/orchestscore.ly b/input/test/orchestscore.ly index f938c5bc3f..0668bd2b50 100644 --- a/input/test/orchestscore.ly +++ b/input/test/orchestscore.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; m = \notes \relative c''{ diff --git a/input/test/ossia.ly b/input/test/ossia.ly index bab09a904b..6de5602752 100644 --- a/input/test/ossia.ly +++ b/input/test/ossia.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score { diff --git a/input/test/perform-grace.ly b/input/test/perform-grace.ly index 39a88c14fe..7842d17156 100644 --- a/input/test/perform-grace.ly +++ b/input/test/perform-grace.ly @@ -9,4 +9,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/perform-tie.ly b/input/test/perform-tie.ly index 7ec02e5e6a..e4cbd45844 100644 --- a/input/test/perform-tie.ly +++ b/input/test/perform-tie.ly @@ -6,4 +6,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/pushproperty.ly b/input/test/pushproperty.ly index 31e996899e..c91a964ede 100644 --- a/input/test/pushproperty.ly +++ b/input/test/pushproperty.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; %{ diff --git a/input/test/repeatbar.ly b/input/test/repeatbar.ly index 4631d472e9..b606718f09 100644 --- a/input/test/repeatbar.ly +++ b/input/test/repeatbar.ly @@ -7,4 +7,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/rest-collision.ly b/input/test/rest-collision.ly index 7e65f5cd47..5dc05f149b 100644 --- a/input/test/rest-collision.ly +++ b/input/test/rest-collision.ly @@ -49,4 +49,4 @@ restsII = \context Staff \notes { } } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/rests.ly b/input/test/rests.ly index a52025ae07..7c944f5f98 100644 --- a/input/test/rests.ly +++ b/input/test/rests.ly @@ -9,4 +9,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/scripts.ly b/input/test/scripts.ly index b426bd6129..80e18cbbbc 100644 --- a/input/test/scripts.ly +++ b/input/test/scripts.ly @@ -1,5 +1,5 @@ -\version "1.3.93"; +\version "1.3.96"; blah = \notes{ \transpose c'' { diff --git a/input/test/sizes.ly b/input/test/sizes.ly index 420decf0b9..c4a32baebf 100644 --- a/input/test/sizes.ly +++ b/input/test/sizes.ly @@ -14,4 +14,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/sleur.ly b/input/test/sleur.ly index 0d3ccb443e..bc329381ab 100644 --- a/input/test/sleur.ly +++ b/input/test/sleur.ly @@ -5,7 +5,7 @@ TestedFeatures = "This file tests Feta embedded slurs" + "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "1.3.93"; +\version "1.3.96"; shortlong = \notes{ c4()c( c c | diff --git a/input/test/slur-cross-staff.ly b/input/test/slur-cross-staff.ly index 1dcc5cfd20..3cb178686a 100644 --- a/input/test/slur-cross-staff.ly +++ b/input/test/slur-cross-staff.ly @@ -28,4 +28,4 @@ > } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/slur-damping.ly b/input/test/slur-damping.ly index b7c52f3bfd..aac38e2428 100644 --- a/input/test/slur-damping.ly +++ b/input/test/slur-damping.ly @@ -1,5 +1,5 @@ % test damping -\version "1.3.93"; +\version "1.3.96"; \score{ \notes\relative c'{ diff --git a/input/test/slur-dash.ly b/input/test/slur-dash.ly index f7473dacbd..14da7cbc58 100644 --- a/input/test/slur-dash.ly +++ b/input/test/slur-dash.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score{ \notes{ diff --git a/input/test/slur-follow-music.ly b/input/test/slur-follow-music.ly index 04da8d37d6..8787b5cd91 100644 --- a/input/test/slur-follow-music.ly +++ b/input/test/slur-follow-music.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; \score { \context Voice \notes\relative c { % CASE 3 diff --git a/input/test/slur-nice.ly b/input/test/slur-nice.ly index 5bf4da02bc..5e30aca285 100644 --- a/input/test/slur-nice.ly +++ b/input/test/slur-nice.ly @@ -1,5 +1,5 @@ -\version "1.3.93"; +\version "1.3.96"; \score{ \notes\relative c''{ \time 3/4; diff --git a/input/test/slurs.ly b/input/test/slurs.ly index 6b3cf27f35..05ab47eca7 100644 --- a/input/test/slurs.ly +++ b/input/test/slurs.ly @@ -1,5 +1,5 @@ -\version "1.3.93"; +\version "1.3.96"; \score{ \notes\transpose c'{ diff --git a/input/test/spacing-2.ly b/input/test/spacing-2.ly index 7492df7db9..4b9413cb5d 100644 --- a/input/test/spacing-2.ly +++ b/input/test/spacing-2.ly @@ -33,4 +33,4 @@ source = "Petits Preludes et Fugues. Urtext. Editions Henry Lemoine, Paris."; } } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/spacing.ly b/input/test/spacing.ly index 6b9b98dfbd..8ef16c4cfa 100644 --- a/input/test/spacing.ly +++ b/input/test/spacing.ly @@ -6,7 +6,7 @@ copyright = "public domain"; TestedFeatures = "This file tests various spacings"; } -\version "1.3.93"; +\version "1.3.96"; multipart = \notes \relative c'{ \context StaffGroup < diff --git a/input/test/span-bars.ly b/input/test/span-bars.ly index 8723c11a9e..a5bbdb81e9 100644 --- a/input/test/span-bars.ly +++ b/input/test/span-bars.ly @@ -1,5 +1,5 @@ -\version "1.3.93"; +\version "1.3.96"; nt = \notes { c1 \break c1 c1 } stuff = \notes \relative c'' < \context Staff = stone { \nt } diff --git a/input/test/staccato-pos.ly b/input/test/staccato-pos.ly index a6a3489511..dc0150a477 100644 --- a/input/test/staccato-pos.ly +++ b/input/test/staccato-pos.ly @@ -9,4 +9,4 @@ linewidth=-1.0; } \midi { } -} \ No newline at end of file +} diff --git a/input/test/staff-margin-partial.ly b/input/test/staff-margin-partial.ly index d9648fc673..40bfe1d92c 100644 --- a/input/test/staff-margin-partial.ly +++ b/input/test/staff-margin-partial.ly @@ -1,6 +1,6 @@ % test staff margin with partial measure. -\version "1.3.93"; +\version "1.3.96"; \score { \notes { \property Staff.instrument = "foo" \partial 4; c4 c1 } diff --git a/input/test/staff-margin.ly b/input/test/staff-margin.ly index 0737be1ff9..981b2a598f 100644 --- a/input/test/staff-margin.ly +++ b/input/test/staff-margin.ly @@ -1,6 +1,6 @@ -\version "1.3.93"; +\version "1.3.96"; \score { diff --git a/input/test/staff-side-slur.ly b/input/test/staff-side-slur.ly index e4a04ba2bb..f4c0541ac1 100644 --- a/input/test/staff-side-slur.ly +++ b/input/test/staff-side-slur.ly @@ -18,4 +18,4 @@ } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/staff-size.ly b/input/test/staff-size.ly index 486ead240b..d53dbc0401 100644 --- a/input/test/staff-size.ly +++ b/input/test/staff-size.ly @@ -14,4 +14,4 @@ > \paper { linewidth = -1.; } } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/stem-length.ly b/input/test/stem-length.ly index ca1aec2324..2061a8262d 100644 --- a/input/test/stem-length.ly +++ b/input/test/stem-length.ly @@ -6,4 +6,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/stem-spacing.ly b/input/test/stem-spacing.ly index 9c391a6142..772cca797b 100644 --- a/input/test/stem-spacing.ly +++ b/input/test/stem-spacing.ly @@ -8,4 +8,4 @@ linewidth=-1.0; } \midi { } -} \ No newline at end of file +} diff --git a/input/test/stem-tremolo.ly b/input/test/stem-tremolo.ly index 5c9d7d86e3..9dce9f94d4 100644 --- a/input/test/stem-tremolo.ly +++ b/input/test/stem-tremolo.ly @@ -1,5 +1,5 @@ -\version "1.3.93"; +\version "1.3.96"; \score{ \context Voice\notes \relative c''{ %%? diff --git a/input/test/stem.ly b/input/test/stem.ly index af01e1e777..f884cc1aab 100644 --- a/input/test/stem.ly +++ b/input/test/stem.ly @@ -8,7 +8,7 @@ of beams"; } -\version "1.3.93"; +\version "1.3.96"; beamintervals = \notes{ \time 7/4; diff --git a/input/test/tchaikovsky.ly b/input/test/tchaikovsky.ly index 81542e6a0a..9f70867255 100644 --- a/input/test/tchaikovsky.ly +++ b/input/test/tchaikovsky.ly @@ -7,7 +7,7 @@ enteredby = "Maarten Storm"; instrument= "Violoncello"; } -\version "1.3.93"; +\version "1.3.96"; % this is an example of extreme dynamics diff --git a/input/test/thumb.ly b/input/test/thumb.ly index e23b193a64..7dc3a251b7 100644 --- a/input/test/thumb.ly +++ b/input/test/thumb.ly @@ -7,7 +7,7 @@ % the thumb-script is used in cello music to indicate a note that should % be played with your thumb. -\version "1.3.93"; +\version "1.3.96"; \score { \notes \relative c'' { [ <)b_\thumb b'-3> diff --git a/input/test/tie-sparse.ly b/input/test/tie-sparse.ly index a3b30ae2dc..e00e10e648 100644 --- a/input/test/tie-sparse.ly +++ b/input/test/tie-sparse.ly @@ -10,4 +10,4 @@ linewidth=-1.0; } \midi { } -} \ No newline at end of file +} diff --git a/input/test/time.ly b/input/test/time.ly index e9cae53f81..d97e700df6 100644 --- a/input/test/time.ly +++ b/input/test/time.ly @@ -143,4 +143,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/timing.ly b/input/test/timing.ly index cd8ba855c4..4c0f7a5f80 100644 --- a/input/test/timing.ly +++ b/input/test/timing.ly @@ -20,4 +20,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/title.ly b/input/test/title.ly index dd96c2ff6a..ea16a1a0ff 100644 --- a/input/test/title.ly +++ b/input/test/title.ly @@ -10,7 +10,7 @@ source = "urtext"; instrument= "Instrument"; } -\version "1.3.93"; +\version "1.3.96"; \score{ \notes diff --git a/input/test/transposing.ly b/input/test/transposing.ly index 3c2ebc2478..f4439b5529 100644 --- a/input/test/transposing.ly +++ b/input/test/transposing.ly @@ -14,4 +14,4 @@ } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/transposition.ly b/input/test/transposition.ly index 1f483df4e0..926600cd78 100644 --- a/input/test/transposition.ly +++ b/input/test/transposition.ly @@ -22,7 +22,7 @@ copyright = "public domain"; } -\version "1.3.93"; +\version "1.3.96"; vOne = \notes \relative c''{ \clef"violin"; diff --git a/input/test/tup.ly b/input/test/tup.ly index 0be36c81c9..4b1e671760 100644 --- a/input/test/tup.ly +++ b/input/test/tup.ly @@ -8,4 +8,4 @@ } } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/test/tuplet.ly b/input/test/tuplet.ly index 0afb1f27dd..375e9b5c7c 100644 --- a/input/test/tuplet.ly +++ b/input/test/tuplet.ly @@ -1,4 +1,4 @@ -\version "1.3.93" +\version "1.3.96" \score { \context Voice \notes\relative c'' { diff --git a/input/test/twinkle-as5.ly b/input/test/twinkle-as5.ly index 78e40399d5..43fa026a46 100644 --- a/input/test/twinkle-as5.ly +++ b/input/test/twinkle-as5.ly @@ -6,7 +6,7 @@ enteredby = "hwn and jcn"; copyright = "public domain"; } -\version "1.3.93"; +\version "1.3.96"; \include "paper-as5.ly" diff --git a/input/test/two-slurs.ly b/input/test/two-slurs.ly index 9475f78274..854080fe56 100644 --- a/input/test/two-slurs.ly +++ b/input/test/two-slurs.ly @@ -1,4 +1,4 @@ -\version "1.3.93"; +\version "1.3.96"; % % We'd want to combine the stems, but have two slurs too... % Looks like the a-due engraver diff --git a/input/test/updown.ly b/input/test/updown.ly index fe5faf77fc..3ae0713b60 100644 --- a/input/test/updown.ly +++ b/input/test/updown.ly @@ -10,9 +10,9 @@ {\voiceTwo c}> - \version "1.3.93"; + \version "1.3.96"; } \paper { } \midi { } -} \ No newline at end of file +} diff --git a/input/test/vertical-align.ly b/input/test/vertical-align.ly index 57fff1e03f..4262f80194 100644 --- a/input/test/vertical-align.ly +++ b/input/test/vertical-align.ly @@ -1,5 +1,5 @@ -\version "1.3.93"; +\version "1.3.96"; \score { \notes < diff --git a/input/test/vertical-text.ly b/input/test/vertical-text.ly index c497223856..f51f88c136 100644 --- a/input/test/vertical-text.ly +++ b/input/test/vertical-text.ly @@ -15,4 +15,4 @@ } } -\version "1.3.93"; +\version "1.3.96"; diff --git a/input/trip.ly b/input/trip.ly index 4b588fe39b..071311620e 100644 --- a/input/trip.ly +++ b/input/trip.ly @@ -19,7 +19,7 @@ TODO: %} -\version "1.3.93"; +\version "1.3.96"; praeludiumRight = \notes { \key e \major; \clef violin; diff --git a/input/twinkle-pop.ly b/input/twinkle-pop.ly index 24bf8face8..b82341d10b 100644 --- a/input/twinkle-pop.ly +++ b/input/twinkle-pop.ly @@ -7,7 +7,7 @@ enteredby = "HWN, chords by Johan Vromans"; copyright = "public domain"; } -\version "1.3.93"; +\version "1.3.96"; melodie = \notes\relative c'' { \clef "violin"; diff --git a/input/twinkle.ly b/input/twinkle.ly index 759ccbc25f..d5788e083d 100644 --- a/input/twinkle.ly +++ b/input/twinkle.ly @@ -20,7 +20,7 @@ Tested Features: lyrics, interleaving lyrics and staffs, repeats, auto beaming, adding lyrics to notes, hyphens %} -\version "1.3.93"; +\version "1.3.96"; melody = \notes \relative c'' { \clef violin; diff --git a/lily/chord-name-engraver.cc b/lily/chord-name-engraver.cc index 7578496b8e..9a0944e2ee 100644 --- a/lily/chord-name-engraver.cc +++ b/lily/chord-name-engraver.cc @@ -116,7 +116,7 @@ void Chord_name_engraver::create_chord_name () { assert (chord_p_); - chord_name_p_ = new Item (get_property ("ChordName")); + chord_name_p_ = new Item (get_property ("ChordNames")); /* Hmm, why not represent complete chord as list? ((tonic third fifth) (inversion bass)) diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index d7bc14459f..0da8f321c6 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -32,11 +32,11 @@ */ class Dynamic_engraver : public Engraver { - Item * text_p_; + Item * script_p_; Spanner * finished_cresc_p_; Spanner * cresc_p_; - Text_script_req* text_req_l_; + Dynamic_script_req* script_req_l_; Span_req * current_cresc_req_; Drul_array accepted_spanreqs_drul_; @@ -67,14 +67,14 @@ ADD_THIS_TRANSLATOR (Dynamic_engraver); Dynamic_engraver::Dynamic_engraver () { - text_p_ = 0; + script_p_ = 0; finished_cresc_p_ = 0; line_spanner_ = 0; finished_line_spanner_ = 0; current_cresc_req_ = 0; cresc_p_ =0; - text_req_l_ = 0; + script_req_l_ = 0; accepted_spanreqs_drul_[START] = 0; accepted_spanreqs_drul_[STOP] = 0; } @@ -82,7 +82,7 @@ Dynamic_engraver::Dynamic_engraver () void Dynamic_engraver::do_post_move_processing () { - text_req_l_ = 0; + script_req_l_ = 0; accepted_spanreqs_drul_[START] = 0; accepted_spanreqs_drul_[STOP] = 0; } @@ -90,13 +90,10 @@ Dynamic_engraver::do_post_move_processing () bool Dynamic_engraver::do_try_music (Music * m) { - if (Text_script_req* d = dynamic_cast (m)) + if (Dynamic_script_req* d = dynamic_cast (m)) { - if (d->style_str_ == "dynamic") - { - text_req_l_ = d; - return true; - } + script_req_l_ = d; + return true; } else if (Span_req* s = dynamic_cast (m)) { @@ -124,7 +121,7 @@ Dynamic_engraver::do_try_music (Music * m) void Dynamic_engraver::do_process_music () { - if (accepted_spanreqs_drul_[START] || accepted_spanreqs_drul_[STOP] || text_req_l_) + if (accepted_spanreqs_drul_[START] || accepted_spanreqs_drul_[STOP] || script_req_l_) { if (!line_spanner_) @@ -136,7 +133,7 @@ Dynamic_engraver::do_process_music () Axis_group_interface::set_axes (line_spanner_, Y_AXIS, Y_AXIS); Request * rq = accepted_spanreqs_drul_[START]; - if (text_req_l_) rq = text_req_l_ ; + if (script_req_l_) rq = script_req_l_ ; announce_element (line_spanner_, rq); @@ -149,7 +146,7 @@ Dynamic_engraver::do_process_music () */ else if (accepted_spanreqs_drul_[STOP] - && !accepted_spanreqs_drul_[START] && !text_req_l_) + && !accepted_spanreqs_drul_[START] && !script_req_l_) { finished_line_spanner_ = line_spanner_; line_spanner_ = 0; @@ -182,18 +179,17 @@ Dynamic_engraver::do_process_music () maybe we should leave dynamic texts to the text-engraver and simply acknowledge them? */ - if (text_req_l_) + if (script_req_l_) { - String loud = text_req_l_->text_str_; - - text_p_ = new Item (get_property ("DynamicText")); - text_p_->set_elt_property ("text", ly_str02scm (loud.ch_C ())); - if (Direction d=text_req_l_->get_direction ()) + script_p_ = new Item (get_property ("DynamicText")); + script_p_->set_elt_property ("text", + script_req_l_->get_mus_property ("text")); + if (Direction d = script_req_l_->get_direction ()) Directional_element_interface::set (line_spanner_, d); - Axis_group_interface::add_element (line_spanner_, text_p_); + Axis_group_interface::add_element (line_spanner_, script_p_); - announce_element (text_p_, text_req_l_); + announce_element (script_p_, script_req_l_); } if (accepted_spanreqs_drul_[STOP]) @@ -266,11 +262,11 @@ Dynamic_engraver::do_process_music () Score_element *cc = unsmob_element (get_property ("currentMusicalColumn")); cresc_p_->set_bound (LEFT, cc); - if (text_p_) + if (script_p_) { - Side_position::set_direction (text_p_, LEFT); - Side_position::set_axis (text_p_, X_AXIS); - Side_position::add_support (text_p_, cresc_p_); + Side_position::set_direction (script_p_, LEFT); + Side_position::set_axis (script_p_, X_AXIS); + Side_position::add_support (script_p_, cresc_p_); } Axis_group_interface::add_element (line_spanner_, cresc_p_); @@ -312,10 +308,10 @@ Dynamic_engraver::typeset_all () finished_cresc_p_ =0; } - if (text_p_) + if (script_p_) { - typeset_element (text_p_); - text_p_ = 0; + typeset_element (script_p_); + script_p_ = 0; } if (finished_line_spanner_) { diff --git a/lily/dynamic-performer.cc b/lily/dynamic-performer.cc index 2ab1550fdb..92e53acd49 100644 --- a/lily/dynamic-performer.cc +++ b/lily/dynamic-performer.cc @@ -33,7 +33,7 @@ protected: virtual void do_pre_move_processing (); private: - Text_script_req* text_script_req_l_; + Dynamic_script_req* script_req_l_; Audio_dynamic* audio_p_; }; @@ -41,7 +41,7 @@ ADD_THIS_TRANSLATOR (Dynamic_performer); Dynamic_performer::Dynamic_performer () { - text_script_req_l_ = 0; + script_req_l_ = 0; audio_p_ = 0; } @@ -53,14 +53,15 @@ Dynamic_performer::~Dynamic_performer () void Dynamic_performer::do_process_music () { - if (text_script_req_l_) + if (script_req_l_) { SCM proc = get_property ("dynamicAbsoluteVolumeFunction"); SCM svolume = SCM_EOL; if (gh_procedure_p (proc)) { - svolume = gh_call1 (proc, ly_str02scm (text_script_req_l_->text_str_.ch_C ())); + // urg + svolume = gh_call1 (proc, script_req_l_->get_mus_property ("text")); } Real volume = 0.5; @@ -111,9 +112,9 @@ Dynamic_performer::do_process_music () } audio_p_ = new Audio_dynamic (volume); - Audio_element_info info (audio_p_, text_script_req_l_); + Audio_element_info info (audio_p_, script_req_l_); announce_element (info); - text_script_req_l_ = 0; + script_req_l_ = 0; } } @@ -130,16 +131,12 @@ Dynamic_performer::do_pre_move_processing () bool Dynamic_performer::do_try_music (Music* r) { - if (!text_script_req_l_) + if (!script_req_l_) { - // urg, text script, style `dynamic' is how absolute dynamics appear - if(Text_script_req* t = dynamic_cast (r)) + if(Dynamic_script_req* d = dynamic_cast (r)) { - if (t->style_str_ == "dynamic") - { - text_script_req_l_ = t; - return true; - } + script_req_l_ = d; + return true; } } return false; diff --git a/lily/include/musical-request.hh b/lily/include/musical-request.hh index e928984f3b..5fb7299a69 100644 --- a/lily/include/musical-request.hh +++ b/lily/include/musical-request.hh @@ -16,7 +16,6 @@ #include "musical-pitch.hh" #include "array.hh" - /** a request with a duration. This request is used only used as a base class. */ @@ -46,13 +45,13 @@ struct Tremolo_req : public Request { }; -/** a syllable or lyric is a string with rhythm. +/** + a syllable or lyric is a string with rhythm. */ -class Lyric_req : public Rhythmic_req { -public: - - String text_str_; - VIRTUAL_COPY_CONS(Music); +class Lyric_req : public Rhythmic_req +{ +protected: + VIRTUAL_COPY_CONS (Music); }; @@ -66,18 +65,18 @@ protected: VIRTUAL_COPY_CONS(Music); }; -class Text_script_req : public Script_req { -public: - String text_str_; - - // should be generic property of some kind.. - String style_str_; +class Text_script_req : public Script_req +{ protected: - VIRTUAL_COPY_CONS(Music); - virtual bool do_equal_b (Request const*)const; - + VIRTUAL_COPY_CONS (Music); + virtual bool do_equal_b (Request const*) const; }; +class Dynamic_script_req : public Script_req +{ +protected: + VIRTUAL_COPY_CONS (Music); +}; /// request which has some kind of pitch struct Melodic_req :virtual Request diff --git a/lily/lyric-engraver.cc b/lily/lyric-engraver.cc index 0f042d33f3..c0af7c4fd8 100644 --- a/lily/lyric-engraver.cc +++ b/lily/lyric-engraver.cc @@ -43,10 +43,7 @@ Lyric_engraver::do_process_music() { text_p_= new Item (get_property ("LyricText")); - text_p_->set_elt_property ("text", -// ly_str02scm ((req_l_->text_str_ + " ").ch_C ())); - ly_str02scm ((req_l_->text_str_).ch_C ())); - + text_p_->set_elt_property ("text", req_l_->get_mus_property ("text")); /* We can't reach the notehead where we're centered from here. So diff --git a/lily/lyric-performer.cc b/lily/lyric-performer.cc index 4569505c4a..4557f43076 100644 --- a/lily/lyric-performer.cc +++ b/lily/lyric-performer.cc @@ -21,9 +21,13 @@ Lyric_performer::Lyric_performer () void Lyric_performer::do_process_music () { - if (lreq_arr_.size () && lreq_arr_[0]->text_str_.length_i ()) + // FIXME: won't work with fancy lyrics + if (lreq_arr_.size () + && gh_string_p (lreq_arr_[0]->get_mus_property ("text")) + && ly_scm2string (lreq_arr_[0]->get_mus_property ("text")).length_i ()) { - audio_p_ = new Audio_text (Audio_text::LYRIC, lreq_arr_[0]->text_str_); + audio_p_ = new Audio_text (Audio_text::LYRIC, + ly_scm2string (lreq_arr_[0]->get_mus_property ("text"))); Audio_element_info info (audio_p_, lreq_arr_[0]); announce_element (info); } diff --git a/lily/musical-request.cc b/lily/musical-request.cc index dccf2e3fd5..81183d7d29 100644 --- a/lily/musical-request.cc +++ b/lily/musical-request.cc @@ -114,7 +114,8 @@ bool Text_script_req::do_equal_b (Request const* r) const { Text_script_req const* t = dynamic_cast (r); - return t && t->text_str_ == text_str_ && t->style_str_ == style_str_; + return t && gh_equal_p (get_mus_property ("text"), + t->get_mus_property ("text")); } diff --git a/lily/parser.yy b/lily/parser.yy index 8d64ac3d47..a0fab22726 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -128,6 +128,7 @@ yylex (YYSTYPE *s, void * v_l) /* tokens which are not keywords */ %token AUTOCHANGE %token ARPEGGIO +%token DYNAMICSCRIPT %token TEXTSCRIPT %token ACCEPTS %token ALTERNATIVE @@ -140,6 +141,7 @@ yylex (YYSTYPE *s, void * v_l) %token CM_T %token CONSISTS %token SEQUENTIAL +%token ELEMENTDESCRIPTIONS %token SIMULTANEOUS %token CONSISTSEND %token DENIES @@ -459,6 +461,12 @@ translator_spec_body: | translator_spec_body CONSISTS STRING semicolon { unsmob_translator_def ($$)->add_element ($3); } + | translator_spec_body ELEMENTDESCRIPTIONS embedded_scm { + for (SCM p = $3; gh_pair_p (p); p = gh_cdr (p)) + unsmob_translator_def ($$) + ->add_property_assign (scm_symbol_to_string (gh_caar (p)), gh_cdar (p)); + + } | translator_spec_body CONSISTSEND STRING semicolon { unsmob_translator_def ($$)->add_last_element ( $3); } @@ -1056,13 +1064,17 @@ verbose_request: $$ = dynamic_cast (unsmob_music ($1)->clone ()); $$->set_spot (THIS->here_input ()); } - | TEXTSCRIPT STRING STRING { - Text_script_req *ts_p = new Text_script_req; - ts_p-> text_str_ = ly_scm2string ($2); - ts_p-> style_str_ = ly_scm2string ($3); - ts_p->set_spot (THIS->here_input ()); - - $$ = ts_p; + | DYNAMICSCRIPT embedded_scm { + Dynamic_script_req *d = new Dynamic_script_req; + d->set_mus_property ("text", $2); + d->set_spot (THIS->here_input ()); + $$ = d; + } + | TEXTSCRIPT embedded_scm { + Text_script_req *t = new Text_script_req; + t->set_mus_property ("text", $2); + t->set_spot (THIS->here_input ()); + $$ = t; } | SPANREQUEST bare_int STRING { Span_req * sp_p = new Span_req; @@ -1225,19 +1237,28 @@ open_request_parens: ; gen_text_def: - string { - Text_script_req *t = new Text_script_req; + embedded_scm { + Text_script_req *t = new Text_script_req; + t->set_mus_property ("text", $1); + t->set_spot (THIS->here_input ()); + $$ = t; + } + | string { + Text_script_req *t = new Text_script_req; + t->set_mus_property ("text", $1); + t->set_spot (THIS->here_input ()); $$ = t; - t->text_str_ = ly_scm2string ($1); - - $$->set_spot (THIS->here_input ()); } | DIGIT { - Text_script_req* t = new Text_script_req; + /* + Maybe use Finger_script_request? + */ + Text_script_req* t = new Text_script_req; + t->set_mus_property ("text", + gh_cons (ly_symbol2scm ("finger"), + ly_str02scm (to_str ($1).ch_C ()))); + t->set_spot (THIS->here_input ()); $$ = t; - t->text_str_ = to_str ($1); - t->style_str_ = "finger"; - $$->set_spot (THIS->here_input ()); } ; @@ -1420,7 +1441,7 @@ simple_element: else THIS->pop_spot (); Lyric_req* lreq_p = new Lyric_req; - lreq_p ->text_str_ = ly_scm2string ($1); + lreq_p->set_mus_property ("text", $1); lreq_p->duration_ = *$3; lreq_p->set_spot (THIS->here_input()); Simultaneous_music* velt_p = new Request_chord (gh_list (lreq_p->self_scm (), SCM_UNDEFINED)); diff --git a/lily/text-engraver.cc b/lily/text-engraver.cc index 2a30a0a6fb..2322691825 100644 --- a/lily/text-engraver.cc +++ b/lily/text-engraver.cc @@ -38,9 +38,6 @@ Text_engraver::do_try_music (Music *m) { if (Text_script_req *r = dynamic_cast (m)) { - if (r->style_str_ == "dynamic") - return false; - reqs_.push (r); return true; } @@ -84,15 +81,20 @@ Text_engraver::do_process_music () for (int i=0; i < reqs_.size (); i++) { Text_script_req * r = reqs_[i]; + + // URG: Text vs TextScript + String basic = "TextScript"; - String basic = "TextScript"; - +#if 0 + // maybe use some sort of TYPE for script/dynamic/finger? + // separate engraver? if (r->style_str_== "finger") { basic = "Fingering"; } - Item *text = new Item (get_property (basic.ch_C())); +#endif + Item *text = new Item (get_property (basic.ch_C ())); /* FIXME -> need to use basic props. @@ -102,6 +104,7 @@ Text_engraver::do_process_music () Axis ax = to_boolean (axisprop) ? X_AXIS : Y_AXIS; Side_position::set_axis (text, ax); +#if 0 if (r->style_str_ == "finger" && ax == Y_AXIS) { /* @@ -110,6 +113,7 @@ Text_engraver::do_process_music () text->add_offset_callback (Side_position::aligned_on_self_proc, X_AXIS); text->add_offset_callback (Side_position::centered_on_parent_proc, X_AXIS); } +#endif @@ -122,12 +126,8 @@ Text_engraver::do_process_music () if (r->get_direction ()) Side_position::set_direction (text, r->get_direction ()); - text->set_elt_property ("text", - ly_str02scm ( r->text_str_.ch_C ())); + text->set_elt_property ("text", r->get_mus_property ("text")); - if (r->style_str_.length_i ()) - text->set_elt_property ("style", ly_str02scm (r->style_str_.ch_C())); - SCM nonempty = get_property ("textNonEmpty"); if (to_boolean (nonempty)) /* diff --git a/ly/book-fragment.ly b/ly/book-fragment.ly index 2ed7db67fb..3124f362a1 100644 --- a/ly/book-fragment.ly +++ b/ly/book-fragment.ly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.3.93"; +\version "1.3.96"; \include "declarations.ly" diff --git a/ly/book-init.ly b/ly/book-init.ly index b88f349620..adf2523e79 100644 --- a/ly/book-init.ly +++ b/ly/book-init.ly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.3.93"; +\version "1.3.96"; \include "declarations.ly"; diff --git a/ly/catalan.ly b/ly/catalan.ly index 1c71d9722f..1739ae0862 100644 --- a/ly/catalan.ly +++ b/ly/catalan.ly @@ -71,4 +71,4 @@ -\version "1.3.93"; +\version "1.3.96"; diff --git a/ly/center-fragment.ly b/ly/center-fragment.ly index 6f87babb9b..52ac0fde26 100644 --- a/ly/center-fragment.ly +++ b/ly/center-fragment.ly @@ -1,7 +1,7 @@ % Toplevel initialisation file. -\version "1.3.93"; +\version "1.3.96"; \include "declarations.ly" diff --git a/ly/center.ly b/ly/center.ly index ebd09b43fd..1ccfa5bc74 100644 --- a/ly/center.ly +++ b/ly/center.ly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.3.93"; +\version "1.3.96"; \include "declarations.ly" diff --git a/ly/deutsch.ly b/ly/deutsch.ly index ae99df64f9..25f2f87431 100644 --- a/ly/deutsch.ly +++ b/ly/deutsch.ly @@ -49,4 +49,4 @@ -\version "1.3.93"; +\version "1.3.96"; diff --git a/ly/english.ly b/ly/english.ly index bd89faceb7..4f125fe764 100644 --- a/ly/english.ly +++ b/ly/english.ly @@ -77,5 +77,5 @@ (bss . ( -1 6 2 )) ) -\version "1.3.93"; +\version "1.3.96"; diff --git a/ly/engraver.ly b/ly/engraver.ly index d24a5da6f2..8d5be1e064 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -1,5 +1,5 @@ -\version "1.3.93" +\version "1.3.96" % % setup for Request->Element conversion. Guru-only % @@ -165,13 +165,13 @@ GraceContext=\translator { TextScript \push #'font-size = #-1 Slur \push #'font-size = #-1 Accidentals \push #'font-size = #-1 - Beam \push #'beam-thickness = #0.3 - Beam \push #'beam-space-function = #(lambda (x) 0.5) + Beam \push #'thickness = #0.3 + Beam \push #'space-function = #(lambda (x) 0.5) Stem \push #'lengths = #(map (lambda (x) (* 0.8 x)) '(3.5 3.5 3.5 4.5 5.0)) Stem \push #'beamed-lengths = #'(0.0 2.5 2.0 1.5) - Stem \push #'minimum-beamed-lengths + Stem \push #'beamed-minimum-lengths = #(map (lambda (x) (* 0.8 x)) '(0.0 2.5 2.0 1.5)) weAreGraceContext = ##t @@ -266,23 +266,26 @@ LyricsContext = \translator { \accepts "LyricVoice"; } -ChordNameVoiceContext = \translator { +ChordNamesVoiceContext = \translator { \type "Engraver_group_engraver"; - \name ChordNameVoice ; + \name ChordNamesVoice ; \consists "Output_property_engraver"; \consistsend "Axis_group_engraver"; \consists "Separating_line_group_engraver"; \consists "Chord_name_engraver"; } -ChordNameContext = \translator { +ChordNamesContext = \translator { \type "Engraver_group_engraver"; \name ChordNames; Generic_property_list = #generic-chord-staff-properties + \consists "Property_engraver"; \consists "Output_property_engraver"; - \accepts "ChordNameVoice"; + \accepts "ChordNamesVoice"; + + VerticalAxisGroup \push #'invisible-staff = ##t \consistsend "Axis_group_engraver"; } @@ -429,555 +432,13 @@ ScoreContext = \translator { Time_signature Stanza_number ) - + + + \elementdescriptions #all-element-descriptions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TODO: uniform naming.; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - % - % distances are given in stafflinethickness (thicknesses) and - % staffspace (distances) - % - Arpeggio = #`( - (interfaces . (arpeggio-interface side-position-interface)) - (X-extent-callback . ,Arpeggio::width_callback) - (molecule-callback . ,Arpeggio::brew_molecule) - (Y-offset-callbacks . (,Staff_symbol_referencer::callback)) - (X-offset-callbacks . (,Side_position::aligned_side)) - (direction . -1) - (staff-position . 0.0) - (name . "Arpeggio") - ) - BarLine = #`( - (interfaces . (bar-interface staff-bar-interface)) - (break-align-symbol . Staff_bar) - (glyph . "|") - (break-glyph-function . ,default-break-barline) - (barsize-procedure . ,Bar::get_staff_bar_size) - (molecule-callback . ,Bar::brew_molecule) - (visibility-lambda . ,all-visible) - (breakable . #t) - (before-line-breaking-callback . ,Bar::before_line_breaking) - ;; - ;; Ross. page 151 lists other values, we opt for a leaner look - ;; - (kern . 3.0) - (thin-kern . 3.0) - (hair-thickness . 1.6) - (thick-thickness . 6.0) - (name . "BarLine") - ) - - BarNumber = #`( - (molecule-callback . ,Text_item::brew_molecule) - (breakable . #t) - (visibility-lambda . ,begin-of-line-visible) - (name . "BarNumber") - (padding . 1.0) - (direction . 1) - ) - - Beam = #basic-beam-properties - - BreakAlignment = #`( - (breakable . #t) - (interfaces . (break-align-interface)) - (stacking-dir . 1) - (axes 0) - (X-offset-callbacks . (,Break_align_interface::self_align_callback)) - (space-alist . ,default-break-align-space-alist) - (name . "BreakAlignment") - ) - - BreakAlignGroup = #`( - (interfaces . (axis-group-interface)) - (axes . (0)) - (X-offset-callbacks . (,Break_align_interface::alignment_callback)) - - (name . "BreakAlignGroup") - ) - - BreathingSign = #`( - (interfaces . (breathing-sign-interface)) - (break-align-symbol . Breathing_sign) - (breakable . #t ) - (molecule-callback . ,Breathing_sign::brew_molecule) - (Y-offset-callbacks . (,Breathing_sign::offset_callback)) - (visibility-lambda . ,begin-of-line-invisible) - (name . "BreathingSign") - ) - - Clef = #`( - (interfaces . (clef-interface)) - (molecule-callback . ,Score_element::brew_molecule) - (before-line-breaking-callback . ,Clef::before_line_breaking) - (breakable . #t) - (break-align-symbol . Clef_item) - (visibility-lambda . ,begin-of-line-visible) - (Y-offset-callbacks . (,Staff_symbol_referencer::callback)) - (name . "Clef") - ) - - ChordName = #`( - (molecule-callback . ,Chord_name::brew_molecule) - (interfaces . (chord-name-interface)) - (after-line-breaking-callback . ,Chord_name::after_line_breaking) - (chord-name-function . ,default-chord-name-function) - (name . "ChordName") - ) - - NoteCollision = #`( - (axes 0 1) - (interfaces . (collision-interface)) - (note-width . 1.65) - (name . "NoteCollision") - ) - - Crescendo = #`( - (molecule-callback . ,Crescendo::brew_molecule) - (interfaces . (crescendo-interface dynamic-interface)) - (thickness . 1.0) - (shorten-for-letter . 4.0) - (height . 0.6666) - (dash-thickness . 1.2) - (dash-length . 4.0) - (name . "Crescendo") - (self-alignment-Y . 0) - (Y-offset-callbacks . (,Side_position::aligned_on_self)) - ) - - DotColumn = #`( - (interfaces . (dot-column-interface axis-group-interface )) - (axes 0 ) - (name . "DotColumn") - ) - - Dots = #`( - (interfaces . (dot-interface)) - (molecule-callback . ,Dots::brew_molecule) - (dot-count . 1) - (staff-position . 0.0) - (Y-offset-callbacks . (,Dots::quantised_position_callback ,Staff_symbol_referencer::callback)) - - (name . "Dots") - ) - - DynamicText = #`( - (style . "dynamic") - (interfaces . (dynamic-interface)) - (Y-offset-callbacks . (,Side_position::aligned_on_self)) - - (molecule-callback . ,Text_item::brew_molecule) - (script-priority . 100) - (self-alignment-Y . 0) - (name . "DynamicText") - ) - - DynamicLineSpanner = #`( - (interfaces . (dynamic-interface axis-group-interface side-position-interface)) - (axes . ( 1)) - (padding . 3) - (minimum-space . 6) - (name . "dynamic alignment") - ) - - LeftEdge = #`( - (break-align-symbol . Left_edge_item) - (breakable . #t) - (name . "LeftEdge") - ) - - Fingering = #`( - (interfaces . (finger-interface text-script-interface text-item-interface side-position-interface)) - (molecule-callback . ,Text_item::brew_molecule) - (padding . 3.0) - (self-alignment-X . 0) - (name . "Fingering") - ) - - GraceAlignment = #`( - (interfaces . (axis-group-interface align-interface)) - (axes . (0)) - (horizontal-space . 1.2) - (padding . 1.0) - (before-line-breaking-callback . ,Grace_align_item::before_line_breaking) - (name . "GraceAlignment") - ) - - HaraKiriVerticalGroup = #`( - (Y-offset-callbacks . (,Hara_kiri_group_spanner::force_hara_kiri_callback)) - (Y-extent-callback . ,Hara_kiri_group_spanner::y_extent) - (interfaces . (hara-kiri-group-interface)) - (axes 1) - (name . "HaraKiriVerticalGroup") - ) - - LyricHyphen = #`( - (interfaces . (lyric-hyphen-interface)) - (thickness . 1.0) - (height . 0.4) - (minimum-length . 0.5) - (molecule-callback . ,Hyphen_spanner::brew_molecule) - (Y-extent-callback . ,Score_element::point_dimension_callback) - (name . "LyricHyphen") - ) - - InstrumentName = #`( - (interfaces . (instrument-name-interface)) - (breakable . #t) - (Y-offset-callbacks . (,Side_position::centered_on_parent)) - (molecule-callback . ,Text_item::brew_molecule) - (break-align-symbol . Instrument_name) - (visibility-lambda . ,begin-of-line-visible) - (name . "InstrumentName") - ) - - KeySignature = #`( - (interfaces . (key-item-interface)) - (molecule-callback . ,Key_item::brew_molecule) - (break-align-symbol . Key_item) - (visibility-lambda . ,begin-of-line-visible) - (breakable . #t) - (name . "KeySignature") - ) - - Accidentals = #`( - (molecule-callback . ,Local_key_item::brew_molecule) - (X-offset-callbacks . (,Side_position::aligned_side)) - (direction . -1) - (left-padding . 0.2) - (right-padding . 0.4) - (interfaces . (accidentals-interface)) - (name . "Accidentals") - ) - - LineOfScore = #`( - (axes . (0 1)) - (interfaces . (axis-group-interface)) - (name . "LineOfScore") - ) - - LyricExtender = #`( - (interfaces . (lyric-extender-interface)) - (molecule-callback . ,Lyric_extender::brew_molecule) - (height . 0.8) ; stafflinethickness; - (right-trim-amount . 0.5) - (Y-extent-callback . ,Score_element::point_dimension_callback) - (name . "LyricExtender") - ) - - LyricText = #`( - (interfaces . (lyric-syllable-interface text-item-interface)) - (molecule-callback . ,Text_item::brew_molecule) - (X-offset-callbacks . (,Side_position::aligned_on_self)) - (self-alignment-X . 0) - (non-rhythmic . #t) - (word-space . 0.6) - (name . "LyricText") - ) - RehearsalMark = #`( - (interfaces . (mark-interface side-position-interface)) - (molecule-callback . ,Text_item::brew_molecule) - (breakable . #t) - (visibility-lambda . ,end-of-line-invisible) - (padding . 4.0) - (name . "RehearsalMark") - ) - - MultiMeasureRest = #`( - (interfaces . (multi-measure-rest-interface)) - (spacing-procedure . ,Multi_measure_rest::set_spacing_rods) - (molecule-callback . ,Multi_measure_rest::brew_molecule) - (staff-position . 0) - (expand-limit . 10) - (padding . 2.0) ; staffspace - (minimum-width . 12.5) ; staffspace - (name . "MultiMeasureRest") - ) - - NoteColumn = #`( - (interfaces . (axis-group-interface note-column-interface)) - (axes 0 1) - (name . "NoteColumn") - ) - - NoteHead = #`( - (interfaces . (note-head-interface rhythmic-head-interface)) - (style . default) - (molecule-callback . ,Note_head::brew_molecule) - (Y-offset-callbacks . (,Staff_symbol_referencer::callback)) - (name . "NoteHead") - ) - - NoteName = #`( - (molecule-callback . ,Text_item::brew_molecule) - (name . "NoteName") - ) - - OctavateEight = #`( - (self-alignment-X . 0) - (text . "8") - (visibility-lambda . ,begin-of-line-visible) - (X-offset-callbacks . (,Side_position::centered_on_parent ,Side_position::aligned_on_self)) - (Y-offset-callbacks . (,Side_position::aligned_side)) - (molecule-callback . ,Text_item::brew_molecule) - (style . "italic") - (name . "OctavateEight") - ) - - PaperColumn = #`( - (interfaces . (paper-column-interface axis-group-interface)) - (axes 0) - (rank . -1) - (name . "PaperColumn") - ) - - Rest = #`( - (interfaces . (rest-interface rhythmic-head-interface)) - (after-line-breaking-callback . ,Rest::after_line_breaking) - (molecule-callback . ,Rest::brew_molecule) - (minimum-beam-collision-distance . 1.5) - (name . "Rest") - ) - - RestCollision = #`( - (interfaces . (rest-collision-interface)) - (minimum-distance . 0.75) - (name . "RestCollision") - ) - - Script = #`( - (molecule-callback . ,Script::brew_molecule) - (interfaces . (script-interface side-position-interface)) - (X-offset-callbacks . (,Side_position::centered_on_parent)) - (name . "Script") - ) - - ScriptColumn = #`( - (before-line-breaking-callback . ,Script_column::before_line_breaking) - (name . "ScriptColumn") - ) - - Slur = #default-basic-slur-properties - - SpacingSpanner =#`( - (spacing-procedure . ,Spacing_spanner::set_springs) - - ;; assume that notes at least this long are present. - (maximum-duration-for-spacing . ,(make-moment 1 8)) - (name . "SpacingSpanner") - ) - SpanBar = #`( - (interfaces . (bar-interface span-bar-interface)) - (break-align-symbol . Staff_bar) - (barsize-procedure . ,Span_bar::get_bar_size) - (molecule-callback . ,Bar::brew_molecule) - (visibility-lambda . ,begin-of-line-invisible) - (X-extent-callback . ,Span_bar::width_callback) - (Y-offset-callbacks . (,Span_bar::center_on_spanned_callback)) - - (breakable . #t) - (glyph . "|") - (before-line-breaking-callback . ,Span_bar::before_line_breaking) - ;; ugh duplication! - - ;; - ;; Ross. page 151 lists other values, we opt for a leaner look - ;; - (kern . 3.0) - (thin-kern . 3.0) - (hair-thickness . 1.6) - (thick-thickness . 6.0) - (name . "SpanBar") - ) - - StanzaNumber = #`( - (breakable . #t) - (molecule-callback . ,Text_item::brew_molecule) - (break-align-symbol . Clef_item) - (visibility-lambda . ,begin-of-line-visible) - (name . "StanzaNumber") - ) - - StaffSymbol = #`( - (interfaces . (staff-symbol-interface )) - (molecule-callback . ,Staff_symbol::brew_molecule) - (staff-space . 1.0) - (line-count . 5 ) - (name . "StaffSymbol") - ) - - SystemStartDelimiter = #`( - (molecule-callback . ,System_start_delimiter::brew_molecule) - (after-line-breaking-callback . ,System_start_delimiter::after_line_breaking) - (collapse-height . 1.0) - (thickness . 1.6) - (arch-height . 1.5) - (arch-angle . 50.0) - (arch-thick . 0.25) - (arch-width . 1.5) - (bracket-thick . 0.25) - (bracket-width . 2.0) - (name . "SystemStartDelimiter") - ) - - TextScript = #`( - (molecule-callback . ,Text_item::brew_molecule) - (no-spacing-rods . #t) - (interfaces . (text-script-interface text-item-interface side-position-interface)) - (padding . 0.5) - (name . "TextScript") - ) - TextSpanner = #`( - (interfaces . (text-spanner-interface)) - (molecule-callback . ,Text_spanner::brew_molecule) - (type . "line") - (direction . 1) - (text-style . "italic") - (name . "TextSpanner") - ) - Tie = #`( - (interfaces . (tie-interface)) - (molecule-callback . ,Tie::brew_molecule) - (spacing-procedure . ,Tie::set_spacing_rods) - (staffline-clearance . 0.24) - (details . ((ratio . 0.333) (height-limit . 1.0))) - (thickness . 1.2) - (x-gap . 0.2) - (minimum-length . 2.5) - (name . "Tie") - ) - - TieColumn = #`( - (after-line-breaking-callback . ,Tie_column::after_line_breaking) - (interfaces . (tie-column-interface)) - (name . "TieColumn") - ) - - TimeSignature = #`( - (interfaces . (time-signature-interface)) - (molecule-callback . ,Time_signature::brew_molecule) - (break-align-symbol . Time_signature) - (visibility-lambda . ,all-visible) - (breakable . #t) - (name . "TimeSignature") - ) - - TupletBracket = #`( - (number-gap . 2.0) - (delta-y . 0) - (thick . 1.0) - (after-line-breaking-callback . ,Tuplet_spanner::after_line_breaking) - (molecule-callback . ,Tuplet_spanner::brew_molecule) - (interfaces . (tuplet-spanner-interface)) - (name "TupletBracket") - ) - - SostenutoPedal = #`( - (molecule-callback . ,Text_item::brew_molecule) - (X-offset-callbacks . (,Side_position::aligned_on_self)) - (Y-offset-callbacks . - (,Side_position::aligned_side - ,Side_position::centered_on_parent)) - - (style . "italic") - (no-spacing-rods . #t) - (self-alignment-X . 0) - (name . "SostenutoPedal") - - ) - - Stem = #`( - (interfaces . (stem-interface)) - (before-line-breaking-callback . ,Stem::before_line_breaking) - (molecule-callback . ,Stem::brew_molecule) - (thickness . 0.8) - (beamed-lengths . (0.0 2.5 2.0 1.5)) - (beamed-minimum-lengths . (0.0 1.5 1.25 1.0)) - -;; Stems in unnatural (forced) direction should be shortened, -;; according to [Roush & Gourlay]. Their suggestion to knock off -;; a whole staffspace seems a bit drastical: we'll do half. - - (lengths . (3.5 3.5 3.5 4.5 5.0)) - (stem-shorten . (0.5)) - ; if stem is on middle line, choose this direction. - (default-neutral-direction . 1) - (X-offset-callbacks . (,Stem::off_callback)) - (name . "Stem") - ) - - StemTremolo = #`( - (molecule-callback . ,Stem_tremolo::brew_molecule) - (beam-width . 2.0) ; staff-space - (beam-thickness . 0.42) ; staff-space - (beam-space-function . ,default-beam-space-function) - (name . "StemTremolo") - ) - - SeparationItem = #`( - (interfaces . (separation-item-interface)) - (name . "SeparationItem") - ) - - SeparatingGroupSpanner = #`( - (interfaces . (separation-spanner-interface)) - (spacing-procedure . ,Separating_group_spanner::set_spacing_rods) - (name . "SeparatingGroupSpanner") - ) - - SustainPedal = #`( - (interfaces . (sustain-pedal-interface side-position-interface)) - (no-spacing-rods . #t) - (molecule-callback . ,Sustain_pedal::brew_molecule) - (self-alignment-X . 0) - (X-offset-callbacks . (,Side_position::aligned_on_self)) - (Y-offset-callbacks . - (,Side_position::aligned_side - ,Side_position::centered_on_parent)) - - (name . "SustainPedal") - ) - UnaChordaPdeal = #`( - (molecule-callback . ,Text_item::brew_molecule) - (style . "italic") - (no-spacing-rods . #t) - (self-alignment-X . 0) - (X-offset-callbacks . (,Side_position::aligned_on_self)) - (Y-offset-callbacks . - (,Side_position::aligned_side - ,Side_position::centered_on_parent)) - - (name . "UnaChordaPedal") - ) - - VoltaBracket = #`( - (molecule-callback . ,Volta_spanner::brew_molecule) - (interfaces . (volta-spanner-interface side-position-interface)) - (direction . 1) - (padding . 5) - (thickness . 1.6) ; stafflinethickness - (height . 2.0) ; staffspace; - (minimum-space . 25) - (name . "VoltaBracket") - ) - - VerticalAlignment = #`( - (axes 1) - (interfaces . (align-interface axis-group-interface)) - (Y-extent-callback . ,Axis_group_interface::group_extent_callback) - (X-extent-callback . #f) - (stacking-dir . -1) - (name . "VerticalAlignment") - ) - - VerticalAxisGroup = #`( - (axes 1) - (interfaces . (axis-group-interface)) - (name . "VerticalAxisGroup") - ) \include "auto-beam-settings.ly"; diff --git a/ly/fragment.ly b/ly/fragment.ly index 3989fbe6aa..13973739a0 100644 --- a/ly/fragment.ly +++ b/ly/fragment.ly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.3.93"; +\version "1.3.96"; \include "declarations.ly" diff --git a/ly/init-as.fly b/ly/init-as.fly index 76d3082bb8..1b73300c31 100644 --- a/ly/init-as.fly +++ b/ly/init-as.fly @@ -1,6 +1,6 @@ % Toplevel AsciiScript initialisation file. -\version "1.3.93"; +\version "1.3.97"; \include "declarations-as.ly" diff --git a/ly/init-as.ly b/ly/init-as.ly index 0c581e9733..191ae8741e 100644 --- a/ly/init-as.ly +++ b/ly/init-as.ly @@ -1,6 +1,6 @@ % Toplevel AsciiScript initialisation file. -\version "1.3.93"; +\version "1.3.96"; \include "declarations-as.ly" diff --git a/ly/init.fly b/ly/init.fly index 40f7f94c06..423594cb63 100644 --- a/ly/init.fly +++ b/ly/init.fly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.3.93"; +\version "1.3.97"; \include "declarations.ly" diff --git a/ly/init.ly b/ly/init.ly index f26b2cc1f4..ae95b0139f 100644 --- a/ly/init.ly +++ b/ly/init.ly @@ -1,7 +1,7 @@ % Toplevel initialisation file. -\version "1.3.93"; +\version "1.3.96"; \include "declarations.ly"; diff --git a/ly/init.sly b/ly/init.sly index 4484454982..34bcf9312d 100644 --- a/ly/init.sly +++ b/ly/init.sly @@ -1,6 +1,6 @@ % Toplevel initialisation file. -\version "1.3.93"; +\version "1.3.97"; \include "declarations.ly" diff --git a/ly/italiano.ly b/ly/italiano.ly index 4f741f6b1e..28bbc05995 100644 --- a/ly/italiano.ly +++ b/ly/italiano.ly @@ -48,4 +48,4 @@ (sidd . ( -1 6 2 )) ) -\version "1.3.93"; +\version "1.3.96"; diff --git a/ly/norsk.ly b/ly/norsk.ly index 20026760a9..2dce7f7fd6 100644 --- a/ly/norsk.ly +++ b/ly/norsk.ly @@ -1,5 +1,5 @@ -% $Id: norsk.ly,v 1.6 2000/10/08 14:26:55 fred Exp $ +% $Id: norsk.ly,v 1.7 2000/10/22 00:11:33 fred Exp $ %{ @@ -104,4 +104,4 @@ -\version "1.3.93"; +\version "1.3.96"; diff --git a/ly/paper-as5.ly b/ly/paper-as5.ly index 78974f206e..2c7689ef9a 100644 --- a/ly/paper-as5.ly +++ b/ly/paper-as5.ly @@ -1,6 +1,6 @@ % paper-as5.ly -\version "1.3.93"; +\version "1.3.96"; paper_as_five = \paper { staffheight = 5.\char; diff --git a/ly/paper-as9.ly b/ly/paper-as9.ly index 323bd921a4..2c183e4e6c 100644 --- a/ly/paper-as9.ly +++ b/ly/paper-as9.ly @@ -1,6 +1,6 @@ % paper-as9.ly -\version "1.3.93"; +\version "1.3.96"; paper_as_nine = \paper { staffheight = 9.\char; diff --git a/ly/paper11.ly b/ly/paper11.ly index 10b23e7ab8..a842af3e9e 100644 --- a/ly/paper11.ly +++ b/ly/paper11.ly @@ -1,33 +1,15 @@ % paper11.ly -\version "1.3.93"; +\version "1.3.96"; paper_eleven = \paper { staffheight = 11.0\pt; - - - font_Large = 8.; - font_large = 6.; - font_normal = 5.; - font_script = 4.; - - font_finger = 4.; - font_volta = 4.; - font_number = 4.; - font_dynamic = 10.; - font_mark = 6.; - - % UGH! - magnification_dynamic = -4.0; + style_sheet = "paper11"; -1=\font "feta11" -2=\font "feta11" 0=\font "feta11" - "font_feta-2" = 11.; - "font_feta-1" = 11.; - "font_feta" = 11.; - \include "params.ly"; } diff --git a/ly/paper13.ly b/ly/paper13.ly index b1399839a6..11c7697aff 100644 --- a/ly/paper13.ly +++ b/ly/paper13.ly @@ -1,29 +1,14 @@ % paper13.ly -\version "1.3.93"; +\version "1.3.96"; paper_thirteen = \paper { staffheight = 13.0\pt; - - - font_Large = 8.; - font_large = 6.; - font_normal = 5.; - font_script = 4.; - - font_finger = 4.; - font_volta = 4.; - font_number = 6.; - font_dynamic = 10.; - font_mark = 6.; + style_sheet = "paper13"; 0=\font "feta13" -1=\font "feta11" - "font_feta-2" = 11.; - "font_feta-1" = 11.; - "font_feta" = 13.; - \include "params.ly"; } diff --git a/ly/paper16.ly b/ly/paper16.ly index b045c81ae0..f5b6bdb5d5 100644 --- a/ly/paper16.ly +++ b/ly/paper16.ly @@ -1,34 +1,15 @@ % paper16.ly - - -\version "1.3.93"; +\version "1.3.96"; paper_sixteen = \paper { staffheight = 16.0\pt; - font_Large = 12.; - font_large = 10.; - font_normal = 8.; - font_script = 7.; - - magnification_dynamic = 1.0; - font_finger = 4.; - font_volta = 5.; - font_number = 8.; - font_timesig = 8.; - font_dynamic = 10.; - font_mark = 10.; - font_msam = 8.; + style_sheet = "paper16"; 0 = \font "feta16" -1 = \font "feta13" -2 = \font "feta11" -3 = \font "feta11" - - "font_feta" = 16.; - "font_feta-1" = 13.; - "font_feta-2" = 11.; - "font_feta-3" = 11.; \include "params.ly"; } diff --git a/ly/paper20.ly b/ly/paper20.ly index 3af633c2cf..d4dbebacc9 100644 --- a/ly/paper20.ly +++ b/ly/paper20.ly @@ -1,41 +1,17 @@ % paper20.ly -\version "1.3.93"; +\version "1.3.96"; paper_twenty = \paper { staffheight = 20.0\pt; + style_sheet = "paper20"; - font_Large = 12.; - font_large = 12.; - font_normal = 10.; - font_script = 8.; - - font_finger = 5.; - font_volta = 8.; - font_number = 10.; - font_timesig = 10.; - font_mark = 12.; - font_msam = 9.; - - % what about: - "font_number-1" = 8.; - %"font_number" = 10.; - "font_number+1" = 12.; - - % Ugh - magnification_dynamic = 2.; - 0 = \font "feta20" -1 = \font "feta16" -2 = \font "feta13" -3 = \font "feta11" - "font_feta" = 20.; - "font_feta-1" = 16.; - "font_feta-2" = 13.; - "font_feta-3" = 11.; - \include "params.ly"; } diff --git a/ly/paper23.ly b/ly/paper23.ly index a3148706aa..79008874cc 100644 --- a/ly/paper23.ly +++ b/ly/paper23.ly @@ -1,32 +1,16 @@ % paper23.ly -\version "1.3.93"; +\version "1.3.96"; paper_twentythree = \paper { staffheight = 23.0\pt; - - font_Large = 12.; - font_large = 12.; - font_normal = 10.; - font_script = 8.; - - font_finger = 5.; - font_volta = 8.; - font_number = 10.; - font_mark = 12.; - - % Ugh - magnification_dynamic = 3.; + style_sheet = "paper23"; -2 = \font "feta16" -1 = \font "feta20" 0 = \font "feta23" - "font_feta-2" = 16.; - "font_feta-1" = 20.; - "font_feta" = 23.; - \include "params.ly"; } diff --git a/ly/paper26.ly b/ly/paper26.ly index 5c58adf608..28902384c6 100644 --- a/ly/paper26.ly +++ b/ly/paper26.ly @@ -1,32 +1,15 @@ % paper26.ly -\version "1.3.93"; +\version "1.3.96"; paper_twentysix = \paper { staffheight = 26.0\pt; - font_Large = 17.; - font_large = 14.; - font_normal = 12.; - font_script = 10.; - - font_dynamic = 10.; - % Ugh - magnification_dynamic = 4.; - - font_finger = 8.; - font_volta = 10.; - font_number = 10.; - magnification_number = 2.; - font_mark = 14.; + style_sheet = "paper26"; 0=\font "feta26" -1 = \font "feta23" -2 = \font "feta20" - "font_feta-2" = 20.; - "font_feta-1" = 23.; - "font_feta" = 26.; - \include "params.ly"; } diff --git a/ly/params.ly b/ly/params.ly index 5e89fd3f35..209e4da951 100644 --- a/ly/params.ly +++ b/ly/params.ly @@ -127,8 +127,8 @@ compression_energy_factor = 0.6; \translator { \StaffContext } \translator { \VoiceContext} \translator { \StaffGroupContext } -\translator { \ChordNameContext } -\translator { \ChordNameVoiceContext} +\translator { \ChordNamesContext } +\translator { \ChordNamesVoiceContext} \translator { \GrandStaffContext} \translator { \LyricsContext } \translator { \ThreadContext} diff --git a/ly/property.ly b/ly/property.ly index d5e2211674..15656a9161 100644 --- a/ly/property.ly +++ b/ly/property.ly @@ -1,6 +1,6 @@ % property.ly -\version "1.3.93"; +\version "1.3.96"; stemUp = \property Voice.Stem \push #'direction = #1 stemDown = \property Voice.Stem \push #'direction = #-1 diff --git a/ly/svenska.ly b/ly/svenska.ly index 39c808c5df..09cfad936e 100644 --- a/ly/svenska.ly +++ b/ly/svenska.ly @@ -40,4 +40,4 @@ (hiss . ( -1 6 1 )) (hississ . ( -1 6 2 )) ) -\version "1.3.93"; +\version "1.3.96"; diff --git a/scm/chord-names.scm b/scm/chord-names.scm index 27f4314bfb..99400b03ab 100644 --- a/scm/chord-names.scm +++ b/scm/chord-names.scm @@ -10,23 +10,12 @@ (ice-9 regex) ) -;; The regex module may not be available, or may be broken. -(define chord-use-regex - (let ((os (string-downcase (vector-ref (uname) 0)))) - (not (equal? "cygwin" (substring os 0 (min 6 (string-length os))))))) - -;; If you have trouble with regex, define #f -(define chord-use-regex #t) -;;(define chord-use-regex #f) - ;; ;; (octave notename accidental) ;; ;; -;; text: list of word -;; word: string + optional list of property -;; property: size, style, font, super, offset +;; text: scm markup text -- see font.scm and input/test/markup.ly ;; ;; TODO @@ -52,17 +41,17 @@ ; Cm iso Cm.no5 (((0 . 0) (2 . -1)) . ("m")) ; C2 iso C2.no3 - (((0 . 0) (1 . 0) (4 . 0)) . (("2" (type . "super")))) + (((0 . 0) (1 . 0) (4 . 0)) . (super "2")) ; C4 iso C4.no3 - (((0 . 0) (3 . 0) (4 . 0)) . (("4" (type . "super")))) + (((0 . 0) (3 . 0) (4 . 0)) . (super "4")) ; Cdim iso Cm5- (((0 . 0) (2 . -1) (4 . -1)) . ("dim")) ; Co iso Cm5-7- ; urg - (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("o" (type . "super")))) + (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (super "o")) ; Cdim9 - (((0 . 0) (2 . -1) (4 . -1) (6 . -2) (1 . -1)) . ("dim" ("9" (type . "super")))) - (((0 . 0) (2 . -1) (4 . -1) (6 . -2) (1 . -1) (3 . -1)) . ("dim" ("11" (type . "super")))) + (((0 . 0) (2 . -1) (4 . -1) (6 . -2) (1 . -1)) . ("dim" (super "9"))) + (((0 . 0) (2 . -1) (4 . -1) (6 . -2) (1 . -1) (3 . -1)) . ("dim" (super "11"))) ) chord::names-alist-banter)) @@ -87,21 +76,21 @@ (((0 . 0) (2 . -1)) . ("m")) (((0 . 0) (3 . 0) (4 . 0)) . ("sus")) (((0 . 0) (2 . -1) (4 . -1)) . ("dim")) -;Alternate: (((0 . 0) (2 . -1) (4 . -1)) . (("o" (type . "super")))) +;Alternate: (((0 . 0) (2 . -1) (4 . -1)) . ((super "o"))) (((0 . 0) (2 . 0) (4 . 1)) . ("aug")) ;Alternate: (((0 . 0) (2 . 0) (4 . 1)) . ("+")) (((0 . 0) (1 . 0) (4 . 0)) . ("2")) ;; Common seventh chords - (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("o" (type . "super")) "7")) + (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (rows (super "o") "7")) (((0 . 0) (2 . 0) (4 . 0) (6 . 0)) . ("maj7")) (((0 . 0) (2 . -1) (4 . 0) (6 . -1)) . ("m7")) (((0 . 0) (2 . 0) (4 . 0) (6 . -1)) . ("7")) (((0 . 0) (2 . -1) (4 . 0) (6 . 0)) . ("m(maj7)")) ;jazz: the delta, see jazz-chords.ly - ;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("N" (type . "super") (style . "msam") (size . -3)))) - (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (("o" (type . "super")) ("/" (size . -2) (offset . (-0.58 . 0.5))) "7")) ; slashed o + ;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (super ((family . "math") "N")) + (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (rows (super "o") ((kern . -0.5) ((size . "-3") "/")) "7")) ; slashed o (((0 . 0) (2 . 0) (4 . 1) (6 . -1)) . ("aug7")) - (((0 . 0) (2 . 0) (4 . -1) (6 . 0)) . (("maj7") ("accidentals--1" (font . "feta") (type . "super")) ("5"))) + (((0 . 0) (2 . 0) (4 . -1) (6 . 0)) . (rows "maj7" (music (named ("accidentals--1"))) "5")) (((0 . 0) (3 . 0) (4 . 0) (6 . -1)) . ("7sus4")) ;; Common ninth chords (((0 . 0) (2 . 0) (4 . 0) (5 . 0) (1 . 0)) . ("6/9")) ;; we don't want the '/no7' @@ -126,10 +115,14 @@ (make-string 1 (integer->char (+ (modulo (+ (cadr pitch) 2) 7) 65))) (if (= (caddr pitch) 0) '() - (list (list (string-append "accidentals-" - (number->string (caddr pitch))) - ;; Keep accidentals from being too large - '(font . "feta") '(type . "super") ))))) + (list + (append '(music) + (list + (append '(named) + (list + (string-append "accidentals-" + (number->string (caddr pitch))))))))))) + (define (step->text pitch) (string-append @@ -265,51 +258,52 @@ ;; additions, subtractions and base or inversion to chord name ;; (define (chord::inner-name-banter tonic user-name additions subtractions base-and-inversion) - (apply append (pitch->text-banter tonic) - (if user-name user-name '()) - ;; why does list->string not work, format seems only hope... - (if (and chord-use-regex - (string-match "super" (format "~s" user-name)) - (or (pair? additions) - (pair? subtractions))) - '(("/" (type . "super"))) - '()) - (let loop ((from additions) (to '())) - (if (pair? from) + (apply append + '(rows) + (pitch->text-banter tonic) + (if user-name user-name '()) + ;; why does list->string not work, format seems only hope... + (if (and (string-match "super" (format "~s" user-name)) + (or (pair? additions) + (pair? subtractions))) + '((super "/")) + '()) + (let loop ((from additions) (to '())) + (if (pair? from) + (let ((p (car from))) + (loop (cdr from) + (append to + (cons + (list 'super (step->text-banter p)) + (if (or (pair? (cdr from)) + (pair? subtractions)) + '((super "/")) + '()))))) + to)) + (let loop ((from subtractions) (to '())) + (if (pair? from) (let ((p (car from))) (loop (cdr from) (append to - (cons - (cons (step->text-banter p) '((type . "super"))) - (if (or (pair? (cdr from)) - (pair? subtractions)) - '(("/" (type . "super"))) - '()))))) + (cons '(super "no") + (cons + (list 'super (step->text-banter p)) + (if (pair? (cdr from)) + '((super "/")) + '())))))) to)) - (let loop ((from subtractions) (to '())) - (if (pair? from) - (let ((p (car from))) - (loop (cdr from) - (append to - (cons '("no" (type . "super")) - (cons - (cons (step->text-banter p) '((type . "super"))) - (if (pair? (cdr from)) - '(("/" (type . "super"))) - '())))))) - to)) - (if (and (pair? base-and-inversion) - (or (car base-and-inversion) - (cdr base-and-inversion))) - (cons "/" (append - (if (car base-and-inversion) - (pitch->text - (car base-and-inversion)) - (pitch->text - (cdr base-and-inversion))) - '())) - '()) - '())) + (if (and (pair? base-and-inversion) + (or (car base-and-inversion) + (cdr base-and-inversion))) + (cons "/" (append + (if (car base-and-inversion) + (pitch->text + (car base-and-inversion)) + (pitch->text + (cdr base-and-inversion))) + '())) + '()) + '())) (define (chord::name-banter tonic user-name pitches base-and-inversion) (let ((additions (chord::additions pitches)) @@ -367,3 +361,4 @@ transposed))) (name-func (car pitches) user-name completed base-and-inversion)))))) + diff --git a/scm/element-descriptions.scm b/scm/element-descriptions.scm new file mode 100644 index 0000000000..80613065f4 --- /dev/null +++ b/scm/element-descriptions.scm @@ -0,0 +1,594 @@ + +; distances are given in stafflinethickness (thicknesses) and +; staffspace (distances) + +(define all-element-descriptions + `((Arpeggio . ( + (X-extent-callback . ,Arpeggio::width_callback) + (molecule-callback . ,Arpeggio::brew_molecule) + (Y-offset-callbacks . (,Staff_symbol_referencer::callback)) + (X-offset-callbacks . (,Side_position::aligned_side)) + (direction . -1) + (staff-position . 0.0) + (meta . ,(element-description "Arpeggio" arpeggio-interface side-position-interface)) + )) + + (BarLine . ( + (break-align-symbol . Staff_bar) + (glyph . "|") + (break-glyph-function . ,default-break-barline) + (barsize-procedure . ,Bar::get_staff_bar_size) + (molecule-callback . ,Bar::brew_molecule) + (visibility-lambda . ,all-visible) + (breakable . #t) + (before-line-breaking-callback . ,Bar::before_line_breaking) + ;; + ;; Ross. page 151 lists other values, we opt for a leaner look + ;; + (kern . 3.0) + (thin-kern . 3.0) + (hair-thickness . 1.6) + (thick-thickness . 6.0) + (meta . ,(element-description "BarLine" bar-line-interface )) + )) + + (BarNumber . ( + (molecule-callback . ,Text_item::brew_molecule) + (breakable . #t) + (visibility-lambda . ,begin-of-line-visible) + (padding . 1.0) + (direction . 1) + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (font-family . "roman") + (meta . ,(element-description "BarNumber" + text-interface break-aligned-interface)) + )) + + (Beam . ,basic-beam-properties) + + (BreakAlignment . ( + (breakable . #t) + (stacking-dir . 1) + (axes 0) + (X-offset-callbacks . (,Break_align_interface::self_align_callback)) + (space-alist . ,default-break-align-space-alist) + (meta . ,(element-description "BreakAlignment" + axis-group-interface align-interface + ) + ) + )) + + (BreakAlignGroup . ( + (axes . (0)) + (X-offset-callbacks . (,Break_align_interface::alignment_callback)) + + (meta . ,(element-description "BreakAlignGroup" axis-group-interface)) + )) + + (BreathingSign . ( + (break-align-symbol . Breathing_sign) + (breakable . #t ) + (molecule-callback . ,Breathing_sign::brew_molecule) + (Y-offset-callbacks . (,Breathing_sign::offset_callback)) + (visibility-lambda . ,begin-of-line-invisible) + (meta . ,(element-description "BreathingSign" break-aligned-interface)) + )) + + (Clef . ( + (molecule-callback . ,Score_element::brew_molecule) + (before-line-breaking-callback . ,Clef::before_line_breaking) + (breakable . #t) + (break-align-symbol . Clef_item) + (visibility-lambda . ,begin-of-line-visible) + (Y-offset-callbacks . (,Staff_symbol_referencer::callback)) + (meta . ,(element-description "Clef" clef-interface break-aligned-interface )) + )) + + (ChordNames . ( + (molecule-callback . ,Chord_name::brew_molecule) + (after-line-breaking-callback . ,Chord_name::after_line_breaking) + (chord-name-function . ,default-chord-name-function) + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (font-size . "0") ;; Hmm, 0 should be the default, maybe?? + (font-family . "roman") + (meta . ,(element-description "ChordNames" chord-name-interface)) + )) + + (NoteCollision . ( + (axes 0 1) + (note-width . 1.65) + (meta . ,(element-description "NoteCollision" + note-collision-interface axis-group-interface + )) + )) + + (Crescendo . ( + (molecule-callback . ,Crescendo::brew_molecule) + (thickness . 1.0) + (shorten-for-letter . 4.0) + (height . 0.6666) + (dash-thickness . 1.2) + (dash-length . 4.0) + (self-alignment-Y . 0) + (Y-offset-callbacks . (,Side_position::aligned_on_self)) + (meta . ,(element-description "Crescendo" hairpin-interface)) + )) + + (DotColumn . ( + (axes 0 ) + (meta . ,(element-description "DotColumn" dot-column-interface axis-group-interface)) + )) + + (Dots . ( + (molecule-callback . ,Dots::brew_molecule) + (dot-count . 1) + (staff-position . 0.0) + (Y-offset-callbacks . (,Dots::quantised_position_callback ,Staff_symbol_referencer::callback)) + (meta . ,(element-description "Dots" dot-interface )) + )) + + (DynamicText . ( + (Y-offset-callbacks . (,Side_position::aligned_on_self)) + (molecule-callback . ,Text_item::brew_molecule) + (script-priority . 100) + (font-style . dynamic) + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (self-alignment-Y . 0) + + (meta . ,(element-description "DynamicText" text-interface )) + )) + + (DynamicLineSpanner . ( + (axes . ( 1)) + (padding . 3) + (minimum-space . 6) + (meta . ,(element-description "DynamicLineSpanner" dynamic-interface axis-group-interface side-position-interface)) + )) + + (LeftEdge . ( + (break-align-symbol . Left_edge_item) + (breakable . #t) + (meta . ,(element-description "LeftEdge" break-aligned-interface)) + )) + + (Fingering . ( + (molecule-callback . ,Text_item::brew_molecule) + (padding . 3.0) + (self-alignment-X . 0) + (font-style . dynamic) + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + + (meta . ,(element-description "Fingering" finger-interface text-script-interface text-interface side-position-interface)) + )) + + (GraceAlignment . ( + (axes . (0)) + (horizontal-space . 1.2) + (padding . 1.0) + (before-line-breaking-callback . ,Grace_align_item::before_line_breaking) + (meta . ,(element-description "GraceAlignment" axis-group-interface align-interface grace-alignment-interface)) + )) + + (HaraKiriVerticalGroup . ( + (Y-offset-callbacks . (,Hara_kiri_group_spanner::force_hara_kiri_callback)) + (Y-extent-callback . ,Hara_kiri_group_spanner::y_extent) + (axes 1) + (meta . ,(element-description "HaraKiriVerticalGroup" axis-group-interface hara-kiri-group-interface)) + )) + + (LyricHyphen . ( + (thickness . 1.0) + (height . 0.4) + (minimum-length . 0.5) + (molecule-callback . ,Hyphen_spanner::brew_molecule) + (Y-extent-callback . ,Score_element::point_dimension_callback) + (meta . ,(element-description "LyricHyphen" lyric-hyphen-interface )) + )) + + (InstrumentName . ( + (breakable . #t) + (Y-offset-callbacks . (,Side_position::centered_on_parent)) + (molecule-callback . ,Text_item::brew_molecule) + (break-align-symbol . Instrument_name) + (visibility-lambda . ,begin-of-line-visible) + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (font-family . "roman") + (meta . ,(element-description "InstrumentName" text-interface break-aligned-interface)) + )) + + (KeySignature . ( + (molecule-callback . ,Key_item::brew_molecule) + (break-align-symbol . Key_item) + (visibility-lambda . ,begin-of-line-visible) + (breakable . #t) + (meta . ,(element-description "KeySignature" key-signature-interface break-aligned-interface)) + )) + + (Accidentals . ( + (molecule-callback . ,Local_key_item::brew_molecule) + (X-offset-callbacks . (,Side_position::aligned_side)) + (direction . -1) + (left-padding . 0.2) + (right-padding . 0.4) + (meta . ,(element-description "Accidentals" accidentals-interface)) + )) + + (LineOfScore . ( + (axes . (0 1)) + (meta . ,(element-description "LineOfScore" axis-group-interface)) + )) + + (LyricExtender . ( + (molecule-callback . ,Lyric_extender::brew_molecule) + (height . 0.8) ; stafflinethickness; + (right-trim-amount . 0.5) + (Y-extent-callback . ,Score_element::point_dimension_callback) + (meta . ,(element-description "LyricExtender" lyric-extender-interface)) + )) + + (LyricText . ( + (molecule-callback . ,Text_item::brew_molecule) + (X-offset-callbacks . (,Side_position::aligned_on_self)) + (self-alignment-X . 0) + (non-rhythmic . #t) + (word-space . 0.6) + + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (font-family . "roman") + + (meta . ,(element-description "LyricText" lyric-syllable-interface text-interface)) + )) + + (RehearsalMark . ( + (molecule-callback . ,Text_item::brew_molecule) + (breakable . #t) + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (font-style . mark) + (visibility-lambda . ,end-of-line-invisible) + (padding . 4.0) + (meta . ,(element-description "RehearsalMark" mark-interface side-position-interface)) + )) + + (MultiMeasureRest . ( + (spacing-procedure . ,Multi_measure_rest::set_spacing_rods) + (molecule-callback . ,Multi_measure_rest::brew_molecule) + (staff-position . 0) + (expand-limit . 10) + (padding . 2.0) ; staffspace + (minimum-width . 12.5) ; staffspace + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (font-family . "number") + (meta . ,(element-description "MultiMeasureRest" multi-measure-rest-interface )) + )) + + (NoteColumn . ( + (axes . (0 1)) + (meta . ,(element-description "NoteColumn" axis-group-interface note-column-interface)) + )) + + (NoteHead . ( + (style . default) + (molecule-callback . ,Note_head::brew_molecule) + (Y-offset-callbacks . (,Staff_symbol_referencer::callback)) + (meta . ,(element-description "NoteHead" + rhythmic-head-interface + note-head-interface )) + )) + + (NoteName . ( + (style . default) + (molecule-callback . ,Text_item::brew_molecule) + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (font-family . "roman") + (font-size . "0") + (meta . ,(element-description "NoteName" + note-name-interface + general-element-interface)) + )) + + (OctavateEight . ( + (self-alignment-X . 0) + (text . "8") + (visibility-lambda . ,begin-of-line-visible) + (X-offset-callbacks . (,Side_position::centered_on_parent ,Side_position::aligned_on_self)) + (Y-offset-callbacks . (,Side_position::aligned_side)) + (molecule-callback . ,Text_item::brew_molecule) + (font-shape . "italic") + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + + (meta . ,(element-description "OctavateEight" text-interface )) + )) + + (PaperColumn . ( + (axes 0) + (before-musical-spacing-factor . 0.4) + (meta . ,(element-description "PaperColumn" paper-column-interface axis-group-interface spaceable-element-interface)) + )) + (NonMusicalPaperColumn . ( + (axes 0) + (before-musical-spacing-factor . 1.0) + (meta . ,(element-description "NonMusicalPaperColumn" paper-column-interface axis-group-interface spaceable-element-interface)) + )) + + (Rest . ( + (after-line-breaking-callback . ,Rest::after_line_breaking) + (molecule-callback . ,Rest::brew_molecule) + (minimum-beam-collision-distance . 1.5) + (meta . ,(element-description "Rest" + rhythmic-head-interface + rest-interface )) + )) + (RestCollision . ( + (minimum-distance . 0.75) + (meta . ,(element-description "RestCollision" rest-collision-interface )) + )) + + (Script . ( + (molecule-callback . ,Script::brew_molecule) + (X-offset-callbacks . (,Side_position::centered_on_parent)) + (meta . ,(element-description "Script" script-interface side-position-interface)) + )) + + (ScriptColumn . ( + (before-line-breaking-callback . ,Script_column::before_line_breaking) + (meta . ,(element-description "ScriptColumn" script-column-interface)) + )) + + (Slur . ,default-basic-slur-properties) + (SpacingSpanner . ( + (spacing-procedure . ,Spacing_spanner::set_springs) + + ;; assume that notes at least this long are present. + (maximum-duration-for-spacing . ,(make-moment 1 8)) + (meta . ,(element-description "SpacingSpanner" spacing-spanner-interface)) + )) + (SpanBar . ( + + (break-align-symbol . Staff_bar) + (barsize-procedure . ,Span_bar::get_bar_size) + (molecule-callback . ,Bar::brew_molecule) + (visibility-lambda . ,begin-of-line-invisible) + (X-extent-callback . ,Span_bar::width_callback) + (Y-offset-callbacks . (,Span_bar::center_on_spanned_callback)) + + (breakable . #t) + (glyph . "|") + (before-line-breaking-callback . ,Span_bar::before_line_breaking) + ;; ugh duplication! + + ;; + ;; Ross. page 151 lists other values, we opt for a leaner look + ;; + (kern . 3.0) + (thin-kern . 3.0) + (hair-thickness . 1.6) + (thick-thickness . 6.0) + (meta . ,(element-description "SpanBar" span-bar-interface bar-line-interface )) + )) + + (StanzaNumber . ( + (breakable . #t) + (molecule-callback . ,Text_item::brew_molecule) + (break-align-symbol . Clef_item) + (visibility-lambda . ,begin-of-line-visible) + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (font-family . "roman") +(meta . ,(element-description "StanzaNumber" break-aligned-interface text-interface)) + )) + + (StaffSymbol . ( + (molecule-callback . ,Staff_symbol::brew_molecule) + (staff-space . 1.0) + (line-count . 5 ) + (meta . ,(element-description "StaffSymbol" staff-symbol-interface )) + )) + (SostenutoPedal . ( + (molecule-callback . ,Text_item::brew_molecule) + (X-offset-callbacks . (,Side_position::aligned_on_self)) + (Y-offset-callbacks . + (,Side_position::aligned_side + ,Side_position::centered_on_parent)) + (no-spacing-rods . #t) + (font-shape . "italic") + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + + (self-alignment-X . 0) + (meta . ,(element-description "SostenutoPedal" text-interface )) + )) + + (Stem . ( + (before-line-breaking-callback . ,Stem::before_line_breaking) + (molecule-callback . ,Stem::brew_molecule) + (thickness . 0.8) + (beamed-lengths . (0.0 2.5 2.0 1.5)) + (beamed-minimum-lengths . (0.0 1.5 1.25 1.0)) + +;; Stems in unnatural (forced) direction should be shortened, +;; according to [Roush & Gourlay]. Their suggestion to knock off +;; a whole staffspace seems a bit drastical: we'll do half. + + (lengths . (3.5 3.5 3.5 4.5 5.0)) + (stem-shorten . (0.5)) + ; if stem is on middle line, choose this direction. + (default-neutral-direction . 1) + (X-offset-callbacks . (,Stem::off_callback)) + (meta . ,(element-description "Stem" stem-interface )) + )) + + (StemTremolo . ( + (molecule-callback . ,Stem_tremolo::brew_molecule) + (beam-width . 2.0) ; staff-space + (beam-thickness . 0.42) ; staff-space + (beam-space-function . ,default-beam-space-function) + (meta . ,(element-description "StemTremolo" stem-tremolo-interface )) + )) + + (SeparationItem . ( + (meta . ,(element-description "SeparationItem" separation-item-interface )) + )) + (SeparatingGroupSpanner . ( + (spacing-procedure . ,Separating_group_spanner::set_spacing_rods) + (meta . ,(element-description "SeparatingGroupSpanner" separation-spanner-interface)) + )) + + (SustainPedal . ( + (no-spacing-rods . #t) + (molecule-callback . ,Sustain_pedal::brew_molecule) + (self-alignment-X . 0) + (X-offset-callbacks . (,Side_position::aligned_on_self)) + (Y-offset-callbacks . + (,Side_position::aligned_side + ,Side_position::centered_on_parent)) + + (meta . ,(element-description "SustainPedal" sustain-pedal-interface side-position-interface)) + )) + + (SystemStartDelimiter . ( + (molecule-callback . ,System_start_delimiter::brew_molecule) + (after-line-breaking-callback . ,System_start_delimiter::after_line_breaking) + (collapse-height . 1.0) + (thickness . 1.6) + (arch-height . 1.5) + (arch-angle . 50.0) + (arch-thick . 0.25) + (arch-width . 1.5) + (bracket-thick . 0.25) + (bracket-width . 2.0) + (meta . ,(element-description "SystemStartDelimiter" system-start-delimiter )) + )) + + (TextScript . ( + (molecule-callback . ,Text_item::brew_molecule) + (no-spacing-rods . #t) + (padding . 0.5) + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (font-family . "roman") + (meta . ,(element-description "TextScript" text-script-interface text-interface side-position-interface )) + )) + (TextSpanner . ( + (molecule-callback . ,Text_spanner::brew_molecule) + (font-shape . "italic") + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (type . "line") + (direction . 1) + (meta . ,(element-description "TextSpanner" text-spanner-interface )) + )) + (Tie . ( + (molecule-callback . ,Tie::brew_molecule) + (spacing-procedure . ,Tie::set_spacing_rods) + (staffline-clearance . 0.24) + (details . ((ratio . 0.333) (height-limit . 1.0))) + (thickness . 1.2) + (x-gap . 0.2) + (minimum-length . 2.5) + (meta . ,(element-description "Tie" tie-interface )) + )) + + (TieColumn . ( + (after-line-breaking-callback . ,Tie_column::after_line_breaking) + (meta . ,(element-description "TieColumn" tie-column-interface )) + )) + + (TimeSignature . ( + (molecule-callback . ,Time_signature::brew_molecule) + (break-align-symbol . Time_signature) + (visibility-lambda . ,all-visible) + (breakable . #t) + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (font-style . timesig) + + (meta . ,(element-description "TimeSignature" time-signature-interface )) + )) + + (TupletBracket . ( + (number-gap . 2.0) + (delta-y . 0) + (thick . 1.0) + (after-line-breaking-callback . ,Tuplet_spanner::after_line_breaking) + (molecule-callback . ,Tuplet_spanner::brew_molecule) + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (font-shape . "italic") + (meta . ,(element-description "TupletBracket" + tuplet-bracket-interface)) + )) + + (UnaChordaPdeal . ( + (molecule-callback . ,Text_item::brew_molecule) + (font-shape . "italic") + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (no-spacing-rods . #t) + (self-alignment-X . 0) + (X-offset-callbacks . (,Side_position::aligned_on_self)) + (Y-offset-callbacks . + (,Side_position::aligned_side + ,Side_position::centered_on_parent)) + (meta . ,(element-description "UnaChordaPedal" text-interface )) + )) + + (VoltaBracket . ( + (molecule-callback . ,Volta_spanner::brew_molecule) + (direction . 1) + (padding . 5) + (properties-to-font-name . ,properties-to-font-name) + (style-to-font-name . ,style-to-font-name) + (markup-to-properties . ,markup-to-properties) + (font-style . volta) + + (thickness . 1.6) ; stafflinethickness + (height . 2.0) ; staffspace; + (minimum-space . 25) + (meta . ,(element-description "VoltaBracket" volta-bracket-interface side-position-interface)) + )) + + (VerticalAlignment . ( + (axes 1) + (Y-extent-callback . ,Axis_group_interface::group_extent_callback) + (X-extent-callback . #f) + (stacking-dir . -1) + (meta . ,(element-description "VerticalAlignment" align-interface axis-group-interface)) + )) + + (VerticalAxisGroup . ( + (axes 1) + (meta . ,(element-description "VerticalAxisGroup" axis-group-interface)) + )) +)) + + + +; (display (map pair? all-element-descriptions)) + diff --git a/scm/font.scm b/scm/font.scm new file mode 100644 index 0000000000..1c641c854e --- /dev/null +++ b/scm/font.scm @@ -0,0 +1,140 @@ +;;; +;;; font.scm -- implement Font stuff +;;; +;;; source file of the GNU LilyPond music typesetter +;;; +;;; (c) 2000 Jan Nieuwenhuizen +;;; + + +;; Corresponding properties: +;; +;; font-series font-shape font-family font-name font-point font-size +;; + +(define style-to-font-alist + '( + (finger . "* * number * * -4") + (volta . "* * number * * -3") + (timesig . "* * number * * 0") + (mark . "* * number * * 2") + (script . "* * roman * * -1") + (large . "* * roman * * 1") + (Large . "bold * roman * * 2") + (dynamic . "bold * dynamic * * 0") + )) + +(define paper20-style-sheet-alist-template + '( + (("medium upright music feta 20" . 0) . "feta20") + (("medium upright music feta 16" . -1) . "feta16") + (("medium upright music feta 13" . -2) . "feta13") + (("medium upright music feta 23" . 1) . "feta23") + (("medium upright music feta 26" . 2) . "feta26") + (("medium upright braces feta-braces 20" . 0) . "feta-braces20") + (("bold italic dynamic feta 10" . 0) . "feta-din10") + ;; Hmm + (("medium upright number feta-nummer 13" . 3) . "feta-nummer13") + (("medium upright number feta-nummer 13" . 2) . "feta-nummer13") + (("medium upright number feta-nummer 12" . 1) . "feta-nummer12") + (("medium upright number feta-nummer 10" . 0) . "feta-nummer10") + (("medium upright number feta-nummer 8" . -1) . "feta-nummer8") + (("medium upright number feta-nummer 6" . -2) . "feta-nummer6") + (("medium upright number feta-nummer 5" . -3) . "feta-nummer5") + (("medium upright number feta-nummer 4" . -4) . "feta-nummer4") + (("medium upright number feta-nummer 3" . -5) . "feta-nummer3") + (("medium upright roman cmr 8" . -1) . "cmr8" ) + (("medium upright roman cmr 10" . 0) . "cmr10") + (("medium upright roman cmr 12" . 1) . "cmr12") + (("bold upright roman cmbx 10" . 0) . "cmbx10") + (("bold upright roman cmbx 12" . 1) . "cmbx12") + (("medium italic roman cmbx 10" . 0) . "cmbx10") + (("medium italic roman cmbx 12" . 1) . "cmbx12") + (("medium upright math msam 10" . -2) . "msam10") + (("medium upright math msam 10" . -1) . "msam10") + (("medium upright math msam 10" . 0) . "msam10") + )) + +(define (style-sheet-template-entry-compile entry size) + (cons + (string-append (caar entry) + " " + (number->string (- (cdar entry) size)) + " ") + (cdr entry))) + +(define style-sheet-alist + `( + (paper11 . ,(map (lambda (x) (style-sheet-template-entry-compile x -3)) + paper20-style-sheet-alist-template)) + (paper13 . ,(map (lambda (x) (style-sheet-template-entry-compile x -2)) + paper20-style-sheet-alist-template)) + (paper16 . ,(map (lambda (x) (style-sheet-template-entry-compile x -1)) + paper20-style-sheet-alist-template)) + (paper20 . ,(map (lambda (x) (style-sheet-template-entry-compile x 0)) + paper20-style-sheet-alist-template)) + (paper23 . ,(map (lambda (x) (style-sheet-template-entry-compile x 1)) + paper20-style-sheet-alist-template)) + (paper26 . ,(map (lambda (x) (style-sheet-template-entry-compile x 2)) + paper20-style-sheet-alist-template)) + )) + +(define (font-regexp-to-font-name paper regexp) + (let ((style-sheet (cdr (assoc paper style-sheet-alist)))) + (let loop ((fonts style-sheet)) + (if (string-match regexp (caar fonts)) + (cdar fonts) + (if (pair? (cdr fonts)) + (loop (cdr fonts)) + '()))))) + +(define (properties-to-font-name paper properties-alist) + (let ((font-regexp (apply string-append + (map (lambda (key) + (string-append + (let ((entry (assoc key properties-alist))) + (if entry (cdr entry) "[^ ]+")) + " ")) + '(font-series font-shape font-family font-name font-point font-size))))) + (font-regexp-to-font-name paper font-regexp))) + +(define markup-to-properties-alist + '( + (style . font-style) + (series . font-series) + (shape . font-shape) + (family . font-family) + (name . font-name) + (size . font-size) + (point . font-point) + (kern . kern) + )) + +(define markup-abbrev-to-properties-alist + (append + '( + (rows . (align . 0)) + (lines . (align . 1)) + (roman . (font-family . "roman")) + (music . (font-family . "music")) + (bold . (font-series . "bold")) + (italic . (font-shape . "italic")) + (named . (lookup . name)) + (text . (lookup . value)) + ;; super needs some work + (super . (font-size . "-1"))) + (map (lambda (x) (cons (car x) (cons 'font-style (car x)))) + style-to-font-alist))) + +(define (markup-to-properties markup) + (if (pair? markup) + (cons (cdr (assoc (car markup) markup-to-properties-alist)) (cdr markup)) + (cdr (assoc markup markup-abbrev-to-properties-alist)))) + +(define (style-to-font-name paper style) + (let* ((entry (assoc style style-to-font-alist)) + (font (if entry (cdr entry) "* * * * * *")) + (font-regexp + (regexp-substitute/global #f "\\*" font 'pre "[^ ]+" 'post))) + (font-regexp-to-font-name paper font-regexp))) + diff --git a/scm/generic-property.scm b/scm/generic-property.scm index 6de6407461..2903c24d0c 100644 --- a/scm/generic-property.scm +++ b/scm/generic-property.scm @@ -162,6 +162,10 @@ (cons 'note-head-interface (list (list 'noteHeadStyle symbol? 'style)))) +(define generic-notename-properties + (cons 'note-name-interface + (list (list 'noteNaemStyle symbol? 'style)))) + (define generic-rest-properties (cons 'rest-interface diff --git a/scripts/convert-mudela.py b/scripts/convert-mudela.py index 33401136d1..3dfc56f3b5 100644 --- a/scripts/convert-mudela.py +++ b/scripts/convert-mudela.py @@ -538,7 +538,13 @@ if 1: 'property definiton case (eg. onevoice -> oneVoice)') +if 1: + def conv (str): + str = re.sub ('ChordNames*', 'ChordNames', str) + return str + + conversions.append ((1,3,97), conv, 'ChordName -> ChordNames') ############################ -- 2.39.5