]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.3.125.jcn2
authorJan Nieuwenhuizen <janneke@gnu.org>
Fri, 26 Jan 2001 13:59:06 +0000 (14:59 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Fri, 26 Jan 2001 13:59:06 +0000 (14:59 +0100)
1.3.125.jcn2
============

* Moved feature and regression-test input to input/feature, input/regression.

* Added some regtests.

* Bugfix: auto-knee for beam over rest.

* Fixes for Coriolan and viola Solo Cello Suites.

* Replaced generic 'collapse-height' for System_start_delimiter with
brace-collapse-height, bracket-collapse-height, bar-line-collapse-height.

* Bugfix: measure System_start_delimiter's *-collapse-height in staff-space.

201 files changed:
CHANGES
Documentation/regression-test.tely
VERSION
input/GNUmakefile
input/bugs/hara-kiri-short.ly
input/features/GNUmakefile [new file with mode: 0644]
input/features/beam-count.ly [new file with mode: 0644]
input/features/beam-dir-function.ly [new file with mode: 0644]
input/features/beam-neutral-direction.ly [new file with mode: 0644]
input/features/beam-position.ly [new file with mode: 0644]
input/features/beam-rest.ly [new file with mode: 0644]
input/features/beam-slope.ly [new file with mode: 0644]
input/features/crescendo-text.ly [new file with mode: 0644]
input/features/embedded-postscript.ly [new file with mode: 0644]
input/features/embedded-tex.ly [new file with mode: 0644]
input/features/follow-thread.ly [new file with mode: 0644]
input/features/fragment.ly [new file with mode: 0644]
input/features/metronome.ly [new file with mode: 0644]
input/features/move-notehead.ly [new file with mode: 0644]
input/features/move-specific-text.ly [new file with mode: 0644]
input/features/no-bar-lines.ly [new file with mode: 0644]
input/features/no-staff.ly [new file with mode: 0644]
input/features/ophee-slurs.ly [new file with mode: 0644]
input/features/ottava.ly [new file with mode: 0644]
input/features/part-combine.ly [new file with mode: 0644]
input/features/reverse-music.ly [new file with mode: 0644]
input/features/slur-attachment-override.ly [new file with mode: 0644]
input/features/slur-attachment.ly [new file with mode: 0644]
input/features/slur-ugly.ly [new file with mode: 0644]
input/features/smart-transpose.ly [new file with mode: 0644]
input/regression/GNUmakefile [new file with mode: 0644]
input/regression/accidental-single-double.ly [new file with mode: 0644]
input/regression/accidental.ly [new file with mode: 0644]
input/regression/arpeggio.ly [new file with mode: 0644]
input/regression/auto-beam-bar.ly [new file with mode: 0644]
input/regression/auto-change.ly [new file with mode: 0644]
input/regression/auto-isknee.ly [new file with mode: 0644]
input/regression/auto-knee.ly [new file with mode: 0644]
input/regression/bar-number.ly [new file with mode: 0644]
input/regression/bar-scripts.ly [new file with mode: 0644]
input/regression/beam-cross-staff.ly [new file with mode: 0644]
input/regression/beam-extreme.ly [new file with mode: 0644]
input/regression/beam-length.ly [new file with mode: 0644]
input/regression/beam-position.ly [new file with mode: 0644]
input/regression/beaming.ly [new file with mode: 0644]
input/regression/between-systems.ly [new file with mode: 0644]
input/regression/break.ly [new file with mode: 0644]
input/regression/breathing-sign.ly [new file with mode: 0644]
input/regression/chord-names.ly [new file with mode: 0644]
input/regression/chord-tremolo.ly [new file with mode: 0644]
input/regression/clefs.ly [new file with mode: 0644]
input/regression/collisions.ly [new file with mode: 0644]
input/regression/dots.ly [new file with mode: 0644]
input/regression/dyn-line.ly [new file with mode: 0644]
input/regression/generic-output-property.ly [new file with mode: 0644]
input/regression/generic-property-override.ly [new file with mode: 0644]
input/regression/glissando.ly [new file with mode: 0644]
input/regression/grace.ly [new file with mode: 0644]
input/regression/hara-kiri-short.ly [new file with mode: 0644]
input/regression/keys.ly [new file with mode: 0644]
input/regression/lyric-combine.ly [new file with mode: 0644]
input/regression/lyrics-bar.ly [new file with mode: 0644]
input/regression/lyrics-multi-stanza.ly [new file with mode: 0644]
input/regression/mm-rests2.ly [new file with mode: 0644]
input/regression/molecule-hacking.ly [new file with mode: 0644]
input/regression/multi-measure-rest.ly [new file with mode: 0644]
input/regression/non-empty-text.ly [new file with mode: 0644]
input/regression/noteheadstyle.ly [new file with mode: 0644]
input/regression/number-staff-lines.ly [new file with mode: 0644]
input/regression/repeat-fold.ly [new file with mode: 0644]
input/regression/repeat-line-break.ly [new file with mode: 0644]
input/regression/repeat-unfold.ly [new file with mode: 0644]
input/regression/repeat-volta.ly [new file with mode: 0644]
input/regression/rest-collision.ly [new file with mode: 0644]
input/regression/rest.ly [new file with mode: 0644]
input/regression/size11.ly [new file with mode: 0644]
input/regression/size13.ly [new file with mode: 0644]
input/regression/size16.ly [new file with mode: 0644]
input/regression/size20.ly [new file with mode: 0644]
input/regression/size23.ly [new file with mode: 0644]
input/regression/size26.ly [new file with mode: 0644]
input/regression/slur-attachment.ly [new file with mode: 0644]
input/regression/slur-broken-trend.ly [new file with mode: 0644]
input/regression/slur-cross-staff.ly [new file with mode: 0644]
input/regression/slur-nice.ly [new file with mode: 0644]
input/regression/slur-symmetry-1.ly [new file with mode: 0644]
input/regression/slur-symmetry.ly [new file with mode: 0644]
input/regression/spacing-loose.ly [new file with mode: 0644]
input/regression/spacing-natural.ly [new file with mode: 0644]
input/regression/spacing-tight.ly [new file with mode: 0644]
input/regression/staccato-pos.ly [new file with mode: 0644]
input/regression/staff-margin.ly [new file with mode: 0644]
input/regression/stem-direction-down.ly [new file with mode: 0644]
input/regression/stem-direction.ly [new file with mode: 0644]
input/regression/stem-spacing.ly [new file with mode: 0644]
input/regression/stem-tremolo.ly [new file with mode: 0644]
input/regression/tie-accidental.ly [new file with mode: 0644]
input/regression/tie-chord.ly [new file with mode: 0644]
input/regression/tie.ly [new file with mode: 0644]
input/regression/triplets.ly [new file with mode: 0644]
input/regression/tup.ly [new file with mode: 0644]
input/test/accidental-single-double.ly
input/test/accidental.ly
input/test/arpeggio.ly
input/test/auto-beam-bar.ly
input/test/auto-change.ly
input/test/auto-isknee.ly
input/test/auto-knee.ly
input/test/bar-number.ly
input/test/bar-scripts.ly
input/test/beam-cross-staff.ly
input/test/beam-dir-function.ly
input/test/beam-extreme.ly
input/test/beam-length.ly
input/test/beam-position.ly
input/test/beam-rest.ly
input/test/beaming.ly
input/test/between-systems.ly
input/test/break.ly
input/test/breathing-sign.ly
input/test/chord-names.ly
input/test/chord-tremolo.ly
input/test/clefs.ly
input/test/collisions.ly
input/test/dots.ly
input/test/dyn-line.ly
input/test/follow-thread.ly
input/test/generic-output-property.ly
input/test/generic-property-override.ly
input/test/glissando.ly
input/test/grace.ly
input/test/hara-kiri-short.ly
input/test/keys.ly
input/test/lyric-combine.ly
input/test/lyrics-bar.ly
input/test/lyrics-multi-stanza.ly
input/test/metronome.ly
input/test/mm-rests2.ly
input/test/molecule-hacking.ly
input/test/multi-measure-rest.ly
input/test/music-apply.ly
input/test/non-empty-text.ly
input/test/noteheadstyle.ly
input/test/number-staff-lines.ly
input/test/ophee-slurs.ly
input/test/orchestscore.ly
input/test/ottava.ly
input/test/part-combine-score.ly
input/test/part-combine.ly
input/test/repeat-fold.ly
input/test/repeat-line-break.ly
input/test/repeat-unfold.ly
input/test/repeat-volta.ly
input/test/rest-collision.ly
input/test/rest.ly
input/test/size11.ly
input/test/size13.ly
input/test/size16.ly
input/test/size20.ly
input/test/size23.ly
input/test/size26.ly
input/test/slur-attachment-override.ly
input/test/slur-attachment.ly
input/test/slur-broken-trend.ly
input/test/slur-cross-staff.ly
input/test/slur-nice.ly
input/test/slur-symmetry-1.ly
input/test/slur-symmetry.ly
input/test/slur-ugly.ly
input/test/smart-transpose.ly
input/test/spacing-loose.ly
input/test/spacing-natural.ly
input/test/spacing-tight.ly
input/test/staccato-pos.ly
input/test/staff-margin.ly
input/test/stem-direction-down.ly
input/test/stem-direction.ly
input/test/stem-spacing.ly
input/test/stem-tremolo.ly
input/test/tie-accidental.ly
input/test/tie-chord.ly
input/test/tie.ly
input/test/triplets.ly
input/test/tup.ly
lily/beam.cc
lily/stem.cc
lily/system-start-delimiter.cc
make/ly-rules.make
mutopia/Coriolan/bassi.ly
mutopia/Coriolan/coriolan-paper.ly
mutopia/Coriolan/coriolan-part-paper.ly
mutopia/Coriolan/violi.ly
mutopia/J.S.Bach/Solo-Cello-Suites/courante-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/gigue-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-viola.ly
scm/grob-description.scm
scm/grob-property-description.scm
scripts/ly2dvi.py
scripts/pmx2ly.py

diff --git a/CHANGES b/CHANGES
index 02e10f2f61b5f2394c66470cdaf4a856323170a3..200fdcb3194652d7b518c62a1af9608073a9d01d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,8 +1,26 @@
+1.3.125.jcn2
+============
+
+* Moved feature and regression-test input to input/feature, input/regression.
+
+* Added some regtests.
+
+* Bugfix: auto-knee for beam over rest.
+
+* Fixes for Coriolan and viola Solo Cello Suites.
+
+* Replaced generic 'collapse-height' for System_start_delimiter with
+brace-collapse-height, bracket-collapse-height, bar-line-collapse-height.
+
+* Bugfix: measure System_start_delimiter's *-collapse-height in staff-space.
+
 1.3.125.jcn1
 ============
 
 * Fixed some info and html links.
 
+* Automatic knees now on by default for vertical distances >= 7 staff-space.
+
 1.3.124.jcn3
 ============
 
index 95d4f9b9ceb97096fa3a17e11884bb7b7053ec6c..f7fb0eb9d282908582186e365f7a7b04c44dcf76 100644 (file)
@@ -184,6 +184,8 @@ and documenting bugfixes.
 
 @lilypondfile[printfilename]{break.ly}
 
+@lilypondfile[printfilename]{bar-number.ly}
+
 @lilypondfile[printfilename]{bar-scripts.ly}
 
 @lilypondfile[printfilename]{staff-margin.ly}
diff --git a/VERSION b/VERSION
index ec23b1ba7608786629e0a4e3d55720eb5bb2fe00..12fd5a4e59bd4d0b3cefab160ee2ceea36f3e656 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PATCH_LEVEL=125
-MY_PATCH_LEVEL=jcn1
+MY_PATCH_LEVEL=jcn2
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index f9ab946b3a35e43f892b2674d18503a2d855c5d2..20cb71ba46499c89050ec525b783199499d06852 100644 (file)
@@ -2,7 +2,7 @@
 
 depth = ..
 
-SUBDIRS=test bugs tutorial
+SUBDIRS=bugs features test regression tutorial
 
 examples=trip  star-spangled-banner paddy scarlatti-test
 flexamples=
index 1cb4fdbeddf0d2a32c5c865bc1827d67a895a3bb..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,40 +0,0 @@
-\header{
-texidoc="
-Hara kiri staffs kill themselves if they are empty.  This example really
-contains two staffs, but the second contains only spaces, and is
-therefore removed.  Also, any staff brackets and braces are removed.
-";
-}
-
-\version "1.3.117";
-zager =  \context Staff = zager \notes \relative c'' {
-       \clef treble;
-       c1
-}
-
-zoger =  \context Staff = zoger \notes \relative c'' {
-       \clef treble;
-       \skip 1* 1;
-}
-
-zagers =  \context GrandStaff <
-       \zager
-       \zoger
->
-\score{
-       <
-               \context StaffGroup = zagers <
-                       \zagers
-               >
-       >
-       \paper{
-               linewidth = 80.0\mm;
-
-               \translator { \HaraKiriStaffContext }
-%uh?
-
-       }
-}
-
-
diff --git a/input/features/GNUmakefile b/input/features/GNUmakefile
new file mode 100644 (file)
index 0000000..5587717
--- /dev/null
@@ -0,0 +1,6 @@
+depth = ../..
+
+LOCALSTEPMAKE_TEMPLATES=mutopia
+include $(depth)/make/stepmake.make 
+
+
diff --git a/input/features/beam-count.ly b/input/features/beam-count.ly
new file mode 100644 (file)
index 0000000..89167f1
--- /dev/null
@@ -0,0 +1,20 @@
+
+fragment = \notes {
+  f'32 g a b b a g f
+
+  \property Voice.autoBeamSettings
+    \set #'(end * * * *) = #(make-moment 1 4)
+  f32 g a b b a g f
+
+  f32 g a
+  \property Voice.stemRightBeamCount = #1 b
+  \property Voice.stemLeftBeamCount = #1 b
+  a g f
+}
+
+\paper { linewidth = -1.; } 
+
+\score {
+  \notes\relative c \fragment
+  \paper { }  
+}
diff --git a/input/features/beam-dir-function.ly b/input/features/beam-dir-function.ly
new file mode 100644 (file)
index 0000000..d445468
--- /dev/null
@@ -0,0 +1,40 @@
+\header{
+texidoc="
+There are several ways to calculate the direction of a beam
+
+@table @samp
+@item majority
+number count of up or down notes
+@item mean
+mean centre distance of all notes
+@item median
+mean centre distance weighted per note
+@end table
+
+We should see:
+
+  up down down
+
+  up up down
+";
+}
+
+\score {
+  \notes \relative c'' {
+    % the default
+    %\property Voice.Beam \set #'dir-function = #beam-dir-majority
+    [d8 a]
+    \property Voice.Beam \set #'dir-function = #beam-dir-mean
+    [d a] 
+    \property Voice.Beam \set #'dir-function = #beam-dir-median
+    [d a]
+    
+    \property Voice.Beam \set #'dir-function = #beam-dir-majority
+    \time 3/8;
+    [d8 a a]
+    \property Voice.Beam \set #'dir-function = #beam-dir-mean
+    [d a a] 
+    \property Voice.Beam \set #'dir-function = #beam-dir-median
+    [d a a] 
+  }
+}
diff --git a/input/features/beam-neutral-direction.ly b/input/features/beam-neutral-direction.ly
new file mode 100644 (file)
index 0000000..f8e1568
--- /dev/null
@@ -0,0 +1,13 @@
+
+fragment = \notes {
+  [b''8 b]
+  \property Voice.Beam \set #'default-neutral-direction = #-1
+  [b b]
+}
+
+\paper { linewidth = -1.; } 
+
+\score {
+  \notes\relative c \fragment
+  \paper { }  
+}
diff --git a/input/features/beam-position.ly b/input/features/beam-position.ly
new file mode 100644 (file)
index 0000000..bf14a7f
--- /dev/null
@@ -0,0 +1,13 @@
+
+fragment = \notes {
+  \property Voice.Beam \set #'y-position-hs = #4
+  \property Voice.Beam \set #'height-hs = #-4
+  [c'8 c]
+}
+
+\paper { linewidth = -1.; } 
+
+\score {
+  \notes\relative c \fragment
+  \paper { }  
+}
diff --git a/input/features/beam-rest.ly b/input/features/beam-rest.ly
new file mode 100644 (file)
index 0000000..736a847
--- /dev/null
@@ -0,0 +1,17 @@
+\header{
+texidoc="
+Beams over rests.
+";
+}
+
+\score{
+        \context Staff=one \notes\relative c''{
+         r4 [r8 g a]
+         [bes8 r16 f g a]
+         [bes8 r16 \property Voice.stemLeftBeamCount = #1 f g a]
+    }
+
+    \paper{
+        linewidth =-1;
+    }
+}
diff --git a/input/features/beam-slope.ly b/input/features/beam-slope.ly
new file mode 100644 (file)
index 0000000..254a5cb
--- /dev/null
@@ -0,0 +1,13 @@
+
+fragment = \notes {
+  \property Voice.Beam \set #'direction = #1
+  \property Voice.Beam \set #'height-hs = #0
+  [a''8 e' d c]
+}
+
+\paper { linewidth = -1.; } 
+
+\score {
+  \notes\relative c \fragment
+  \paper { }  
+}
diff --git a/input/features/crescendo-text.ly b/input/features/crescendo-text.ly
new file mode 100644 (file)
index 0000000..b9b6edb
--- /dev/null
@@ -0,0 +1,15 @@
+
+fragment = \notes {
+  \context Voice {
+    \property Voice.crescendoText = "cresc."
+    \property Voice.crescendoSpanner = #'dashed-line
+    a''2\mf\< a a \!a
+  }
+}
+
+\paper { linewidth = -1.; } 
+
+\score {
+  \notes\relative c \fragment
+  \paper { }  
+}
diff --git a/input/features/embedded-postscript.ly b/input/features/embedded-postscript.ly
new file mode 100644 (file)
index 0000000..9667149
--- /dev/null
@@ -0,0 +1,10 @@
+\score {
+  \notes \relative c'' {
+    a-#"\\embeddedps{3 4 moveto 5 3 rlineto stroke}"
+    -#"\\embeddedps{ [ 0 1 ] 0 setdash 3 5 moveto 5 -3 rlineto stroke}"
+    b-#"\\embeddedps{3 4 moveto 0 0 1 2 8 4 20 3.5 rcurveto stroke}"
+    s2
+    a'1
+  }
+  \paper { linewidth = 70 * \staffspace; }
+}
diff --git a/input/features/embedded-tex.ly b/input/features/embedded-tex.ly
new file mode 100644 (file)
index 0000000..970e2fc
--- /dev/null
@@ -0,0 +1,11 @@
+
+fragment = \notes {
+  a''^"3 $\\times$ \\`a deux"
+}
+
+\paper { linewidth = -1.; } 
+
+\score {
+  \notes\relative c \fragment
+  \paper { }  
+}
diff --git a/input/features/follow-thread.ly b/input/features/follow-thread.ly
new file mode 100644 (file)
index 0000000..bf37078
--- /dev/null
@@ -0,0 +1,26 @@
+\header{
+texidoc="
+Theads can be traced automagically when they switch staffs by setting
+property @code{followThread}.
+";
+}
+% followThread: connect note heads with line when thread switches staff 
+
+fragment = \notes {
+  \context PianoStaff <
+    \property PianoStaff.followThread = ##t
+    \context Staff \context Voice {
+      c'1
+      \translator Staff=two
+      b2 a
+    }
+    \context Staff=two {\clef bass; \skip 1*2;}
+  >
+}
+
+\paper { linewidth = -1.; } 
+
+\score {
+  \notes\relative c \fragment
+  \paper { }  
+}
diff --git a/input/features/fragment.ly b/input/features/fragment.ly
new file mode 100644 (file)
index 0000000..8e37abe
--- /dev/null
@@ -0,0 +1,10 @@
+fragment = \notes {
+
+}
+
+\paper { linewidth = -1.; } 
+
+\score {
+  \notes\relative c \fragment
+  \paper { }  
+}
diff --git a/input/features/metronome.ly b/input/features/metronome.ly
new file mode 100644 (file)
index 0000000..1b5bacf
--- /dev/null
@@ -0,0 +1,30 @@
+
+\version "1.3.117";
+
+% Test scm markup text and kerning
+
+% Warning
+%  
+% This is not a feature, it is a hack.  If you change anything,
+% it will probably break (that's because scm markup text is a
+% bit broken and needs fixing).  Chances are, it's already
+% broken by the time you read this.  Don't complain.
+%
+% FIXME: put in an item, and typeset by an engraver.
+
+#(define note '(rows (music "noteheads-2" ((kern . -0.1) "flags-stem"))))
+#(define eight-note `(rows ,note ((kern . -0.1) (music ((raise . 3.5) "flags-u3")))))
+#(define dotted-eight-note `(rows ,eight-note (music "dots-dot")))
+
+\score {
+  \notes\relative c'' {
+    a1^#`(rows ,dotted-eight-note " = 64")
+  }
+  \paper {
+    linewidth = -1.;
+    \translator{
+      \ScoreContext
+      TextScript \override #'font-shape = #'upright
+    }
+  }
+}
diff --git a/input/features/move-notehead.ly b/input/features/move-notehead.ly
new file mode 100644 (file)
index 0000000..20d6983
--- /dev/null
@@ -0,0 +1,13 @@
+
+fragment = \notes {
+    \outputproperty #(make-type-checker 'note-head-interface)
+      #'extra-offset = #'(2 . 3)
+    c''2 c
+}
+
+\paper { linewidth = -1.; } 
+
+\score {
+  \notes\relative c \fragment
+  \paper { }  
+}
diff --git a/input/features/move-specific-text.ly b/input/features/move-specific-text.ly
new file mode 100644 (file)
index 0000000..08c909a
--- /dev/null
@@ -0,0 +1,12 @@
+#(define (make-text-checker text)
+   (lambda (grob) (equal? text (ly-get-elt-property grob 'text))))
+
+\score {
+  \notes\relative c''' {
+    \property Voice.Stem \set #'direction = #1
+    \outputproperty #(make-text-checker "m.d.")
+      #'extra-offset = #'(-3.5 . -4.5)
+    a^2^"m.d."
+  }
+  \paper { linewidth = -1.; }
+}
diff --git a/input/features/no-bar-lines.ly b/input/features/no-bar-lines.ly
new file mode 100644 (file)
index 0000000..6624407
--- /dev/null
@@ -0,0 +1,15 @@
+\score {
+  \notes \relative c'' {
+    a b c d
+    d c b a
+  }
+  \paper {
+    linewidth = -1.;
+    \translator {
+      \StaffContext
+      whichBar = #""
+      \remove "Time_signature_engraver";
+    }
+  }
+}
+
diff --git a/input/features/no-staff.ly b/input/features/no-staff.ly
new file mode 100644 (file)
index 0000000..05eba66
--- /dev/null
@@ -0,0 +1,13 @@
+\score {
+  \notes { c4 c4 c8 c8 }
+  \paper {
+    linewidth = -1.;
+    \translator {
+      \StaffContext
+      \remove Staff_symbol_engraver;
+      \consists Pitch_squash_engraver;
+      \remove Clef_engraver;
+    }
+  }
+}
+
diff --git a/input/features/ophee-slurs.ly b/input/features/ophee-slurs.ly
new file mode 100644 (file)
index 0000000..d32dd6c
--- /dev/null
@@ -0,0 +1,18 @@
+\header{
+texidoc="
+Slurs can be forced to always attach to note heads.
+";
+}
+
+fragment = \notes {
+  \property Voice.Slur \set #'direction = #1
+  \property Voice.Slur \set #'attachment = #'(head . head)
+  g''16()g()g()g()d'()d()d()d
+}
+
+\paper { linewidth = -1.; } 
+
+\score {
+  \notes\relative c \fragment
+  \paper { }  
+}
diff --git a/input/features/ottava.ly b/input/features/ottava.ly
new file mode 100644 (file)
index 0000000..513946d
--- /dev/null
@@ -0,0 +1,16 @@
+
+fragment = \notes {
+  a'''' b c a
+  \property Voice.TextSpanner \set #'type = #'dotted-line
+  \property Voice.TextSpanner \set #'edge-height = #'(0 . 1.5)
+  \property Voice.TextSpanner \set #'edge-text = #'("8va " . "")
+  \property Staff.centralCPosition = #-13
+  a\spanrequest \start "text" b c a \spanrequest \stop "text"
+}
+
+\paper { linewidth = -1.; } 
+
+\score {
+  \notes\relative c \fragment
+  \paper { }  
+}
diff --git a/input/features/part-combine.ly b/input/features/part-combine.ly
new file mode 100644 (file)
index 0000000..ec4262f
--- /dev/null
@@ -0,0 +1,37 @@
+\header{
+texidoc="
+In orchestral scores and hymns, voices are traditionally combined onto
+one staff.  LilyPond has a part combiner, that combines or separates two
+voices according to actual rhythm and pitch.  User-defined texts such as
+``solo'' and ``@`a2'' are typeset automagically, as appropriate.
+";
+}
+
+\score{
+  \context Staff = flauti <
+    \time 4/4;
+    \context Voice=one \partcombine Voice
+    \context Thread=one \notes\relative c'' {
+      c4 d e f | b,4 d c d | r2 e4 f | c4 d e f |
+      c4 r e f | c4 r e f | c4 r a r | a a r a |
+      a2 \property Voice.soloADue = ##f a |
+    }
+    \context Thread=two \notes\relative c'' {
+      g4 b d f | r2 c4 d | a c c d | a4. b8 c4 d
+      c r e r | r2 s2 | a,4 r a r | a r r a |
+      a2 \property Voice.soloADue = ##f a |
+    }
+  >
+  \paper{
+    linewidth = 80 * \staffspace;
+    \translator{
+      \ThreadContext
+      \consists Rest_engraver;
+    }
+    \translator{
+      \VoiceContext
+      \remove Rest_engraver;
+    }
+  }
+}
+
diff --git a/input/features/reverse-music.ly b/input/features/reverse-music.ly
new file mode 100644 (file)
index 0000000..0d9fe6a
--- /dev/null
@@ -0,0 +1,30 @@
+\header {
+texidoc="
+Simple customised music apply.
+";
+}
+
+music = \notes { c'4 d'4( e'4 f'4 }
+
+#(define (reverse-music music)
+  (let* ((elements (ly-get-mus-property music 'elements))
+         (reversed (reverse elements))
+         (span-dir (ly-get-mus-property music 'span-direction)))
+
+    (ly-set-mus-property music 'elements reversed)
+
+    (if (dir? span-dir)
+        (ly-set-mus-property music 'span-direction (- span-dir)))
+
+    (map reverse-music reversed)
+
+    music))
+
+\score {
+  \context Voice {
+    \music
+    \apply #reverse-music \music
+  }
+  \paper { linewidth = -1.; }
+}
+
diff --git a/input/features/slur-attachment-override.ly b/input/features/slur-attachment-override.ly
new file mode 100644 (file)
index 0000000..67e7435
--- /dev/null
@@ -0,0 +1,21 @@
+\header{
+texidoc="
+In some cases, you may want to set slur attachments by hand.
+";
+}
+
+
+fragment = \notes {
+  \property Voice.Stem \set #'direction = #1
+  \property Voice.Slur \set #'direction = #1
+  d'32( d'4 )d8..
+  \property Voice.Slur \set #'attachment = #'(stem . stem)
+  d,32( d'4 )d8..
+}
+
+\paper { linewidth = -1.; } 
+
+\score {
+  \notes\relative c \fragment
+  \paper { }  
+}
diff --git a/input/features/slur-attachment.ly b/input/features/slur-attachment.ly
new file mode 100644 (file)
index 0000000..4182bb3
--- /dev/null
@@ -0,0 +1,17 @@
+
+fragment = \notes {
+  \property Voice.Slur \set #'direction = #1
+  \property Voice.Stem \set #'length = #5.5
+  g''8(g)g4
+  g4(g8)g
+  \property Voice.Slur \set #'attachment = #'(stem . stem)
+  g8(g)g4
+  g4(g8)g
+}
+
+\paper { linewidth = -1.; } 
+
+\score {
+  \notes\relative c \fragment
+  \paper { }  
+}
diff --git a/input/features/slur-ugly.ly b/input/features/slur-ugly.ly
new file mode 100644 (file)
index 0000000..7406ba2
--- /dev/null
@@ -0,0 +1,35 @@
+\header {
+texidoc="You can get ugly slurs, if you want.
+";
+}
+
+baseWalk = \notes \relative c {
+  d,8( a' d f a d f d a f d )a
+}
+
+\score {
+  \notes \context PianoStaff <
+    \time 6/4;
+    \context Staff=up { s1 * 6/4 }
+    \context Staff=down <
+      \clef bass;
+      \autochange Staff \context Voice \baseWalk
+    >
+  >
+  \paper {
+    linewidth = -1.;
+    \translator {
+      \VoiceContext
+      Slur \override #'beautiful = #5.0
+      Slur \override #'direction = #1
+      Stem \override #'direction = #-1
+      autoBeamSettings \override #'(end * * * *)
+        = #(make-moment 1 2)
+    }
+    \translator {
+      \PianoStaffContext
+      VerticalAlignment \override #'threshold = #'(5 . 5)
+    }
+  }
+}
+
diff --git a/input/features/smart-transpose.ly b/input/features/smart-transpose.ly
new file mode 100644 (file)
index 0000000..697c545
--- /dev/null
@@ -0,0 +1,90 @@
+\header {
+texidoc="
+@example
+    Here's a copy of my feature request :
+@quotation
+        Your task, if you accept it is to implement a \smarttranspose
+        command> that would translate such oddities into more natural
+        notations. Double accidentals should be removed, as well as #E
+        (-> F), bC (-> B), bF (-> E), #B (-> C).
+@end quotation
+
+You mean like this. (Sorry 'bout the nuked indentation.)
+@end example
+";
+}
+
+% Btw, I've leant an el-neato trick for formatting code in email messages,
+% using inderect buffers.
+%
+% M-x make-indirect-buffer RET RET foo RET C-x b foo RET
+% Select region and then narrow: C-x n n
+% Set mode, eg: M-x sch TAB RET
+%
+
+#(define  (unhair-pitch p)
+  (let* ((o (pitch-octave p))
+         (a (pitch-alteration p))
+         (n (pitch-notename p)))
+
+    (cond
+     ((and (> a 0) (or (eq? n 6) (eq? n 2)))
+      (set! a (- a 1)) (set! n (+ n 1)))
+     ((and (< a 0) (or (eq? n 0) (eq? n 3)))
+      (set! a (+ a 1)) (set! n (- n 1))))
+
+    (cond
+     ((eq? a 2)  (set! a 0) (set! n (+ n 1)))
+     ((eq? a -2) (set! a 0) (set! n (- n 1))))
+
+    (if (< n 0) (begin (set!  o (- o 1)) (set! n (+ n 7))))
+    (if (> n 7) (begin (set!  o (+ o 1)) (set! n (- n 7))))
+
+    (make-pitch o n a)))
+
+#(define (smart-transpose music pitch)
+  (let* ((es (ly-get-mus-property music 'elements))
+         (e (ly-get-mus-property music 'element))
+         (p (ly-get-mus-property music 'pitch))
+         (body (ly-get-mus-property music 'body))
+         (alts (ly-get-mus-property music 'alternatives)))
+
+    (if (pair? es)
+        (ly-set-mus-property
+         music 'elements
+         (map (lambda (x) (smart-transpose x pitch)) es)))
+
+    (if (music? alts)
+        (ly-set-mus-property
+         music 'alternatives
+         (smart-transpose alts pitch)))
+
+    (if (music? body)
+        (ly-set-mus-property
+         music 'body
+         (smart-transpose body pitch)))
+
+    (if (music? e)
+        (ly-set-mus-property
+         music 'element
+         (smart-transpose e pitch)))
+
+    (if (pitch? p)
+        (begin
+          (set! p (unhair-pitch (Pitch::transpose p pitch)))
+          (ly-set-mus-property music 'pitch p)))
+
+    music))
+
+
+music = \notes \relative c' { c4 d  e f g a b  c }
+
+\score {
+  \notes \context Staff {
+    \transpose ais' \music
+    \apply #(lambda (x) (smart-transpose x (make-pitch 0 5 1)))
+      \music
+  }
+  \paper { linewidth = -1.; }
+}
+
diff --git a/input/regression/GNUmakefile b/input/regression/GNUmakefile
new file mode 100644 (file)
index 0000000..5587717
--- /dev/null
@@ -0,0 +1,6 @@
+depth = ../..
+
+LOCALSTEPMAKE_TEMPLATES=mutopia
+include $(depth)/make/stepmake.make 
+
+
diff --git a/input/regression/accidental-single-double.ly b/input/regression/accidental-single-double.ly
new file mode 100644 (file)
index 0000000..765cdff
--- /dev/null
@@ -0,0 +1,29 @@
+\header{
+texidoc="
+A sharp sign after a double sharp sign, as well as a flat sign
+after a double flat sign is automatically prepended with a
+natural sign.
+";
+}
+\version "1.3.117";
+
+
+thenotes =  \notes \relative cis' { \time 4/4;
+gisis'4 gis gisis ges |
+geses ges geses gis |
+gisis g geses g |
+gis g ges g |
+\key a \major;
+gisis4 gis gisis ges |
+geses ges geses gis |
+gisis g geses g |
+gis g ges g |
+}
+
+\score { < \context Staff \thenotes
+       \context NoteNames  {
+               \property NoteNames.basicNoteNameProperties \override  #'no-spacing-rods  = ##f 
+               \thenotes
+       }
+       >
+}
diff --git a/input/regression/accidental.ly b/input/regression/accidental.ly
new file mode 100644 (file)
index 0000000..c7ebade
--- /dev/null
@@ -0,0 +1,15 @@
+\header{
+texidoc="
+Accidentals work: the second note does not get a sharp. The third and
+fourth show forced and courtesy accidentals.
+";
+}
+
+foo = \notes\relative c''   {   \key as \major; dis4 dis dis! dis? }
+
+\score {
+
+  < \foo 
+   \context NoteNames \foo
+  >
+}
diff --git a/input/regression/arpeggio.ly b/input/regression/arpeggio.ly
new file mode 100644 (file)
index 0000000..1699fa7
--- /dev/null
@@ -0,0 +1,23 @@
+\header{
+texidoc="
+Arpeggios are supported, both cross-staff and broken single staff.
+";
+}
+
+\version "1.3.117";
+
+\score{
+    \context PianoStaff < 
+        \context Staff=one \notes\relative c''{
+           \context Voice < fis,-\arpeggio  d a >
+            %%\property PianoStaff.SpanArpeggio \override #'connect = ##t
+            \property PianoStaff.connectArpeggios = ##t
+            <fis,\arpeggio a c>
+         }
+        \context Staff=two \notes\relative c{
+            \clef bass;
+           \context Voice < g b d-\arpeggio   >
+            <g\arpeggio b d>
+        }
+    >
+}
diff --git a/input/regression/auto-beam-bar.ly b/input/regression/auto-beam-bar.ly
new file mode 100644 (file)
index 0000000..645c62d
--- /dev/null
@@ -0,0 +1,20 @@
+\header{
+texidoc="
+The first two a8 notes should not be beamed.
+Also, no automatic beaming accross bar lines.
+";
+}
+
+\score{
+\notes \notes\relative c'' {
+\time 2/8;
+a8 a
+\time 6/8;
+a16 cis d a bes g fis4 g8
+%a4. fis4 g8
+a16 g a bes c d % ees8 d c
+}
+\paper{
+   linewidth=-1.;
+}
+}
\ No newline at end of file
diff --git a/input/regression/auto-change.ly b/input/regression/auto-change.ly
new file mode 100644 (file)
index 0000000..ee0b5d1
--- /dev/null
@@ -0,0 +1,20 @@
+\header{
+texidoc="
+Auto change piano staff switches  voices  between up and down staffs
+automatically; rests are switched along with the coming note.
+";
+}
+
+\score {
+       \notes \context PianoStaff <
+       \context Staff = "up" {
+               \autochange Staff \context Voice = VA < \relative c' { g4 a  b c d r4 a g } >
+       }
+       \context Staff = "down" {
+               \clef bass; 
+               s1*2
+       }
+
+       >
+       
+}
diff --git a/input/regression/auto-isknee.ly b/input/regression/auto-isknee.ly
new file mode 100644 (file)
index 0000000..fa3256b
--- /dev/null
@@ -0,0 +1,25 @@
+\header{
+texidoc="Two automatic knees";
+}
+
+\score {
+  \notes \context PianoStaff <
+    \context Staff = "up" \notes\relative c''{
+      [ b8 \translator Staff="down" d,, ]
+      [ c \translator Staff="up" c'' ]
+      [ b, \translator Staff="down" d ]
+    }
+    \context Staff = "down" {
+      \clef bass; 
+      s2.
+    }
+  >
+  \paper{
+    linewidth = 40*\staffspace;
+% Now by default
+%    \translator{
+%      \VoiceContext
+%      Beam \override #'auto-knee-gap = #7
+%    }
+  }
+}
diff --git a/input/regression/auto-knee.ly b/input/regression/auto-knee.ly
new file mode 100644 (file)
index 0000000..b49954b
--- /dev/null
@@ -0,0 +1,17 @@
+\header{
+texidoc="One automatic knee";
+}
+
+\score {
+  \context Staff \notes\relative c''{ 
+    [c'8 c,,] [c8 e']
+  }
+  \paper{
+    linewidth = 40*\staffspace;
+% Now by default
+%    \translator {
+%      \VoiceContext
+%      Beam \override #'auto-knee-gap = #7
+%    }
+  }
+}
diff --git a/input/regression/bar-number.ly b/input/regression/bar-number.ly
new file mode 100644 (file)
index 0000000..502045e
--- /dev/null
@@ -0,0 +1,19 @@
+\header {
+texidoc="Bar number settable and padding adjustable.";
+}
+
+\score {
+  \notes \relative c'' {
+     c1 c\break
+     c1 c\break
+     \property Score.currentBarNumber = #25
+     \property Score.BarNumber \override #'padding = #3
+     c1 c\break
+  }
+  \paper {
+    linewidth = 40*\staffspace;
+    \translator {
+      \BarNumberingStaffContext
+    }
+  }
+}
diff --git a/input/regression/bar-scripts.ly b/input/regression/bar-scripts.ly
new file mode 100644 (file)
index 0000000..644550d
--- /dev/null
@@ -0,0 +1,41 @@
+\header{
+texidoc="
+Markings that are attached to (invisible) barlines are 
+delicate: the are attached to the rest of the score without the score
+knowing it.  Consequently, they fall over  often.
+";
+}
+
+\version "1.3.117";
+
+onestaff =  \context Staff = foo\notes  {
+       \property Staff.instr = instr
+       \property Staff.instrument = instrument \mark "B";
+        c1 \mark "A"; \break c2  c2 \break
+}
+
+grstaff =  \notes \context GrandStaff <
+       \context Staff = bar {
+
+       \property Staff.instr = instr
+       
+        \mark "B"; \break c1 \mark "A"; c2  }
+       \context Staff = bufl { c1 c2  }
+>
+
+scpaper =  \paper {\translator {\OrchestralScoreContext}}
+stpaper =  \paper{ \translator {\BarNumberingStaffContext }}
+
+scscore =  \score { \grstaff \paper {
+\scpaper
+}}
+
+
+stscore =  \score { \onestaff \paper {
+ \stpaper
+}}
+
+%\score {\stscore}
+\score {\scscore
+\header { title = "bar scripts"; }
+}
diff --git a/input/regression/beam-cross-staff.ly b/input/regression/beam-cross-staff.ly
new file mode 100644 (file)
index 0000000..72b3c28
--- /dev/null
@@ -0,0 +1,32 @@
+\header{
+texidoc="
+Beams can be typeset over fixed distance aligned staffs, beam
+beautification doesn't really work, but knees do. Beams should be
+behave well, wherever the switching point is.
+";
+}
+\score{
+       \context PianoStaff <
+       \context Staff=one \notes\relative c'{
+               \stemUp [c8 c \translator Staff=two \stemUp c c]
+               [c c c c]
+               \translator Staff=one
+               \stemDown [c8 c \translator Staff=two \stemUp c c]
+               r2
+               \stemDown [c8 c \translator Staff=one \stemDown c c]
+               r2
+               \translator Staff=two
+               \stemUp [c8 c \translator Staff=one \stemDown c c]
+               r2
+       }
+       \context Staff=two \notes\relative c'{
+               \clef bass;
+               s1
+               s1
+               s1
+               s1
+       }
+       >
+}
+
+\version "1.3.117"; 
diff --git a/input/regression/beam-extreme.ly b/input/regression/beam-extreme.ly
new file mode 100644 (file)
index 0000000..653024e
--- /dev/null
@@ -0,0 +1,19 @@
+\header{
+texidoc="
+Beams should behave reasonably well, even under extreme circumstances.
+Stems may be short, but noteheads should never touch the beam.
+";
+}
+\version "1.3.117";
+\score{
+       \notes\relative c''{
+               [g8 c c,]
+               [c16 c'' a f]
+               \stemUp 
+               [c,,32 c'' a f]
+
+       }
+       \paper{
+               linewidth=-1.;
+       }
+}
diff --git a/input/regression/beam-length.ly b/input/regression/beam-length.ly
new file mode 100644 (file)
index 0000000..3c2a8f1
--- /dev/null
@@ -0,0 +1,14 @@
+\header{
+texidoc="
+beams should look the same
+";
+}
+    
+\score { 
+  \context Voice \notes\relative c {
+
+                       [d''8 d d] [d g d]
+                       c c
+       
+  }
+}
diff --git a/input/regression/beam-position.ly b/input/regression/beam-position.ly
new file mode 100644 (file)
index 0000000..88f5749
--- /dev/null
@@ -0,0 +1,22 @@
+\header{
+texidoc="
+Beams should always reach the middle staff line.  The second beam
+counting from the note head side, should never be lower than the
+second staff line.  This does not hold for grace note beams.
+Override with @code{noStemExtend}.
+";
+}
+\version "1.3.117";
+
+\score { 
+  \context Voice \notes\relative c {
+    [f8 f]  [f64 f] \grace { [f8 e8] }
+       \property Grace.Stem \override #'no-stem-extend = ##t
+       [f8 f]
+       
+  }
+  \paper {
+    linewidth=-1.0;
+  }  
+  \midi { }
+}
diff --git a/input/regression/beaming.ly b/input/regression/beaming.ly
new file mode 100644 (file)
index 0000000..b167331
--- /dev/null
@@ -0,0 +1,27 @@
+\header{
+texidoc="
+Beaming is generated automatically. Beams may cross bar lines. In that
+case, line breaks are forbidden.  Yet clef and key signatures are
+hidden just as with breakable bar lines.
+";
+}
+
+\score { \context Staff \notes \relative c''  {
+       [c8. c16]
+       [c8. c16 c8.  c16]
+       [c16 c8.] |
+       [c8. c16  c16  c8.]
+       [c8. c32  c32]
+       [c8 c8] |
+       [c16 c16]
+       [c32 c32]
+       [c64 c64]       
+       c32
+       [c8 c,4 c'8] % should warn here!
+       [c8 c c] c8 % over barline
+       [c16 c8 c16]
+       [c32 c16 c16 c16 c32]
+       [c32 c16 c8 c32]                 % hmm ?
+       
+               }}
+
diff --git a/input/regression/between-systems.ly b/input/regression/between-systems.ly
new file mode 100644 (file)
index 0000000..e5d3577
--- /dev/null
@@ -0,0 +1,19 @@
+\header{
+texidoc="
+The same mechanism can be  used  to force pagebreaks.
+";
+}
+
+
+% In reality, you'd use #"\\newpage" instead of "(pagebreak)", of course.
+
+\score {
+\notes { c1
+
+       \context Score \outputproperty #(make-type-checker 'paper-column-interface)
+               #'between-system-string = #"(pagebreak)\n\n"
+       \break
+
+c1 }
+
+}
diff --git a/input/regression/break.ly b/input/regression/break.ly
new file mode 100644 (file)
index 0000000..49f7ddd
--- /dev/null
@@ -0,0 +1,17 @@
+\header{
+texidoc="
+Breaks can be encouraged and discouraged using @code{\break} and
+@code{\noBreak}.  They are abbrevs for @code{\penalty} commands.
+";
+}
+
+
+\score{
+       \notes\context Voice{
+       \emptyText
+       c1 c1^"no break after 2nd note"  \noBreak c1 c1
+         
+         c1^"break after this" \break c1 c1 
+       }
+       \paper { linewidth = 4.0\cm;}
+}
diff --git a/input/regression/breathing-sign.ly b/input/regression/breathing-sign.ly
new file mode 100644 (file)
index 0000000..70e375f
--- /dev/null
@@ -0,0 +1,27 @@
+\header{
+texidoc="
+Breathing signs, also used for phrasing, do normally not influence
+global spacing -- only if space gets tight, notes are shifted to make
+room for the breathing sign. Breathing signs break beams running
+through their voice. In the following example, the notes in the first
+two measures all have the same distance from each other:
+";
+}
+
+
+\version "1.3.117";
+
+\score {
+  \notes \relative c' {
+    \key es \major; \time 3/4;
+    < \context Voice = two { \stemDown es4 bes es }
+      \context Voice = one { \stemUp g4 as g }
+    > |
+    < \context Voice = two { \stemDown es4 \breathe bes es }
+      \context Voice = one { \stemUp g4 as g }
+    > |
+    es8 d es f g4 \breathe |
+    es8 d \breathe es f g f |
+    es2 r4 \bar "||";
+  }
+}
diff --git a/input/regression/chord-names.ly b/input/regression/chord-names.ly
new file mode 100644 (file)
index 0000000..2d233f5
--- /dev/null
@@ -0,0 +1,37 @@
+\header{
+texidoc="
+Chord names are generated from a list pitches, and are customisable
+from guile.  For some unlogical names, guile customisation is used
+by default.
+";
+}
+\version "1.3.117"
+chord =  \notes\transpose c''\chords{
+   c1
+   c:m
+   c:m5-
+   c:m5-.7-
+   c:7+
+   c:m5-.7
+   c:5-.7+
+   c:m7
+   c:7
+   d
+   d/a
+   d/+gis
+}
+
+\score{
+    <
+           \context ChordNames \chord
+           \context Staff \chord
+    >
+    \paper{
+
+               \translator { 
+                       \ChordNamesContext
+                       ChordName \override #'word-space = #1 
+               }
+    }
+}
+
diff --git a/input/regression/chord-tremolo.ly b/input/regression/chord-tremolo.ly
new file mode 100644 (file)
index 0000000..6d941ff
--- /dev/null
@@ -0,0 +1,20 @@
+\header{
+texidoc="
+Chord tremolos look like beams, but are a kind of repeat symbol.
+To avoid confusion, chord tremolo beams do not reach the stems, but 
+leave a gap.  Chord tremolo beams on half notes are not ambiguous,
+as half notes cannot appear in a regular beam, and should reach the 
+stems.
+";
+}
+  
+\score { 
+  \context Voice \notes\relative c {
+       \repeat "tremolo" 8 { c16 d16 }
+       \repeat "tremolo" 4 { c16 d16 }    
+  }
+  \paper {
+    linewidth=-1.0;
+  }  
+  \midi { }
+}
diff --git a/input/regression/clefs.ly b/input/regression/clefs.ly
new file mode 100644 (file)
index 0000000..834595b
--- /dev/null
@@ -0,0 +1,37 @@
+
+\header{
+texidoc="
+The transparent clef should not occupy any space and with style
+@code{fullSizeChanges}, the changing clef should be typeset in full
+size. For octaviated clefs, the ``8'' should appear closely above or
+below the clef respectively.  The ``8'' is processed in a convoluted
+way, so this is fragile as well.
+";
+}
+
+\version "1.3.117";
+
+\score {
+       \notes{ 
+       
+         \clef "treble"; c'1^"{treble}" \bar "||";
+         \clef "french";c'1^"{french}" \bar "||";
+         \clef "soprano";c'1^"{soprano}" \bar "||";
+         \clef "mezzosoprano";c'1^"{mezzosoprano}" \bar "||";
+         \clef "alto";c'1^"{alto}" \bar "||";
+         \clef "tenor";c'1^"{tenor}" \bar "||";
+         \clef "baritone";c'1^"{baritone}" \bar "||";
+         \clef "varbaritone";c'1^"{varbaritone}" \bar "||";
+         \clef "G_8";c'1^"{sub 8?}" c'1 \bar "||";
+         \clef "G^8";c'1^"{sup 8?}" c'1 \bar "||";
+         \clef "bass";c'1^"{bass}" \bar "||";
+         \clef "subbass";c'1^"{subbass}" \bar "||";
+       \property Staff.clefStyle="transparent"
+         \clef "treble"; c'1^"clefStyle=\"transparent\"" \bar "||";
+       \property Staff.clefStyle="fullSizeChanges"
+         \clef "treble"; c'1^"clefStyle=\"fullSizeChanges\"" \bar "|.";
+         }
+         \paper{
+         }
+}
+
diff --git a/input/regression/collisions.ly b/input/regression/collisions.ly
new file mode 100644 (file)
index 0000000..1933d10
--- /dev/null
@@ -0,0 +1,79 @@
+\header{
+texidoc="
+Normal collisions. We have support for polyphony, where the
+middle voices are horizontally shifted.
+";
+filename =      "collisions.ly";
+description =   "random counterpoint to test collisions";
+enteredby =     "HWN,JCN";
+copyright =     "public domain";
+Tested =        "test the Collision resolution ";
+}
+\version "1.3.117";
+
+twovoice =  \context Staff \notes < 
+       \context Voice=i { \stemDown c4 d e f g2~  g4 a [c8 d e f] c2| }
+       \context Voice=ii { \stemUp g4 f e g ~ g2 g2  c4 g4 g2 } 
+>
+
+twovoicesteminvert =  \context Staff \notes <  
+       % the f and g on 4th beat are exceptionally ugh.
+       \context Voice=i { \stemUp c4 d e f g2 g4 a | }
+       \context Voice=ii { \stemDown g4 f e g  g2 g2 } 
+>
+
+threevoice =  \context Staff \notes <
+       \context Voice=i { \stemUp g4 f e f g a g2 }
+       \context Voice=ii { \stemUp \property Voice.NoteColumn \override #'horizontal-shift = #1
+               e2  e2  e2  e2 }
+       \context Voice=iii { \stemDown c4 d e d c d es }
+>
+
+chordstest =  \context Staff \notes <
+       \context Voice = i \relative c {
+               \stemUp e4 dis c f g f a b b
+       }
+       \context Voice = ii \relative c {
+               \stemDown <a4 c> <a4 c> <a4 e'> <a4 c> <e' a> <e a> <e a> <a c> <a d>
+       }
+>
+
+hairyChord =  \context Staff \notes\relative c' <
+     \context Voice=one {
+ \property Voice.NoteColumn \override #'horizontal-shift = #0
+       \stemUp 
+       e4 
+     }
+     
+     \context Voice=two {
+       \stemUp
+ \property Voice.NoteColumn \override #'horizontal-shift = #1
+       cis
+     }
+     
+     \context Voice=three {
+ \property Voice.NoteColumn \override #'horizontal-shift = #2
+
+       \stemUp 
+       ais
+     }
+     
+     \context Voice=four {
+        \stemDown
+ \property Voice.NoteColumn \override #'horizontal-shift = #1
+
+       fis
+     }
+>
+
+
+\score{
+       \notes \transpose c'' {  \twovoice  
+       \twovoicesteminvert 
+       \threevoice \break
+        \chordstest
+        \hairyChord
+       }
+       
+%      \midi { \tempo 4:80 }
+}
diff --git a/input/regression/dots.ly b/input/regression/dots.ly
new file mode 100644 (file)
index 0000000..fbb8855
--- /dev/null
@@ -0,0 +1,30 @@
+\header{
+texidoc="
+Noteheads can have dots, and rests can too.  Augmentation dots should
+never be printed on a staff line, but rather be shifted vertically. They
+should go up, but in case of multiple parts, the down stems have down
+shifted dots.  (Wanske p. 186) In case of chords, all dots should be in
+a column.  The dots go along as rests are shifted to avoid collisions.
+";
+}
+
+
+\version "1.3.117";
+\score { 
+  \context Voice \notes\relative c'' {
+    \time 6/8;
+       d4. g,,
+       <b''4. c d e>  <f g a b>
+       <g b d> <c, g' d' a'>
+       
+       
+       \context Staff <
+               \context Voice = VA {  \stemUp   f''  <b c> r4.  }
+               \context Voice = VB {  \stemDown b, <a b> r4. }
+       >
+       
+       
+  }
+  \paper { }  
+  \midi { }
+}
diff --git a/input/regression/dyn-line.ly b/input/regression/dyn-line.ly
new file mode 100644 (file)
index 0000000..31f5dc5
--- /dev/null
@@ -0,0 +1,27 @@
+\header{
+texidoc="
+Dynamics appear below or above the staff.  If multiple dynamics are
+linked with (de)crescendi, they should be on the same line.
+";
+}
+\score{
+\notes\relative c''{
+a1\fff\> \!c,,\pp a'' a\p
+
+
+% We need this to test if we get two Dynamic line spanners
+a
+
+% because do_removal_processing ()
+% doesn't seem to post_process elements
+d\f
+
+a
+
+}
+\paper{
+}
+\midi{
+\tempo 1 = 60;
+}
+}
diff --git a/input/regression/generic-output-property.ly b/input/regression/generic-output-property.ly
new file mode 100644 (file)
index 0000000..f3a5586
--- /dev/null
@@ -0,0 +1,26 @@
+\header{
+texidoc="
+As a last resort, the placement of grobs can be adjusted manually, by
+setting the @code{extra-offset} of a grob.
+";
+}
+
+\score{
+       \notes\relative c''{
+       \outputproperty #(make-type-checker 'note-head-interface) 
+               #'extra-offset = #'(2 . 3)
+       c2
+       c
+       \context Score {
+               \outputproperty #(make-type-checker 'mark-interface) 
+               #'extra-offset = #'(-1 . 4)
+       }
+       \mark A;
+       d1
+       \mark;
+       e
+}
+\paper{
+       linewidth=-1.0;
+}
+}
diff --git a/input/regression/generic-property-override.ly b/input/regression/generic-property-override.ly
new file mode 100644 (file)
index 0000000..c3cb0d2
--- /dev/null
@@ -0,0 +1,17 @@
+\header{
+texidoc="
+More specific settings take precendence over less specific settings. The
+second slur has slurDirection set to down, overriding the stemup  setting.
+";
+}
+\version "1.3.117";
+
+\score {
+ \notes \relative c'' \context Voice {
+       \stemUp
+       c'4 () c4 
+       \slurDown
+       c4 ( )c4 
+ }
+ \paper { linewidth = -1.0; }
+}
diff --git a/input/regression/glissando.ly b/input/regression/glissando.ly
new file mode 100644 (file)
index 0000000..115c5c2
--- /dev/null
@@ -0,0 +1,30 @@
+\header{
+
+texidoc=" Simple glissando lines between notes are supported.
+The first two glissandi are not consecutive.
+
+The engraver does no time-keeping, so it involves some trickery to get
+< @{ s8 s8 s4 @} @{ c4 \\gliss d4 @} > working correctly.
+
+";
+}
+
+\score{
+        \context Staff=one \notes\relative c''{
+                    % gliss non gliss and 
+            c4 \glissando d e \glissando f \glissando \break
+            % consecutive 
+            c \glissando d \glissando e
+             < { \stemUp e8 \glissando g8 }
+               \context Voice = VB {\stemDown \repeat unfold 4 d16 } >
+            
+    }
+    \paper{
+        linewidth = 70.\mm;
+       \translator{
+              \StaffContext
+              % makes for handier debugging
+              % \remove Clef_engraver;
+       }
+    }
+}
diff --git a/input/regression/grace.ly b/input/regression/grace.ly
new file mode 100644 (file)
index 0000000..dbc42a8
--- /dev/null
@@ -0,0 +1,30 @@
+\header{
+texidoc="
+Grace notes are typeset as an encapsulated piece of music. You can
+have beams, notes, chords, stems etc. within a @code{\grace} section.
+Slurs that start within a grace section, but aren't ended are attached
+to the next normal note.  Grace notes have zero duration.  If there
+are tuplets, the grace notes won't be under the brace.  Grace notes
+can have accidentals, but they are (currently) spaced at a fixed
+distance.  Grace notes (of course) come before the accidentals of the
+main note.  Grace notes can also be positioned after the main note.
+
+Grace notes without beams should have a slash, if @code{flagStyle} is
+not set.  Main note scripts don't end up on the grace note.
+
+";
+}
+
+\score {\notes \context Voice = VA \relative c'' {
+       \grace b8 c4-\fermata
+       \grace { [c32 cis32] } gis4
+       \grace { [cis32 dis32] } e4
+       \grace { [c32 d] }\times 2/3 { [c8 c c] }
+        \grace { [b32 ( c32] } ) c4
+       \grace  <c16 d16> [c8 c8]
+%      \grace  c16 [c8 c8]
+       \grace  { \property Grace.graceAlignPosition = \right c16} c4
+}
+\paper {linewidth = -1.;}
+\midi{ }
+}
diff --git a/input/regression/hara-kiri-short.ly b/input/regression/hara-kiri-short.ly
new file mode 100644 (file)
index 0000000..1cb4fdb
--- /dev/null
@@ -0,0 +1,40 @@
+\header{
+texidoc="
+Hara kiri staffs kill themselves if they are empty.  This example really
+contains two staffs, but the second contains only spaces, and is
+therefore removed.  Also, any staff brackets and braces are removed.
+";
+}
+
+\version "1.3.117";
+zager =  \context Staff = zager \notes \relative c'' {
+       \clef treble;
+       c1
+}
+
+zoger =  \context Staff = zoger \notes \relative c'' {
+       \clef treble;
+       \skip 1* 1;
+}
+
+zagers =  \context GrandStaff <
+       \zager
+       \zoger
+>
+\score{
+       <
+               \context StaffGroup = zagers <
+                       \zagers
+               >
+       >
+       \paper{
+               linewidth = 80.0\mm;
+
+               \translator { \HaraKiriStaffContext }
+%uh?
+
+       }
+}
+
+
diff --git a/input/regression/keys.ly b/input/regression/keys.ly
new file mode 100644 (file)
index 0000000..3013dd1
--- /dev/null
@@ -0,0 +1,26 @@
+\header{
+texidoc="
+Key signatures appear on key  changes. They may also
+appear without barlines.  The restoration accidentals are not printed at
+the start of the line. If @code{createKeyOnClefChange} is set, they're
+also created on a clef change.
+";
+}
+
+\version "1.3.117";
+
+\score {
+  \notes \relative c''
+  {
+       \property Staff. createKeyOnClefChange = ##t  
+    \key bes \major; c2
+%    \key c \major; %  \minor;
+    \key es \major; %  \minor;
+    c2
+    \break
+    \key bes \major; % \major;
+    c2 \clef alto; c2   \key d \major; \clef treble; c2
+       \property Staff. keySignature = #'((2 . -1)  (6 . -1) (4 . -1))
+       e2
+  }
+}
diff --git a/input/regression/lyric-combine.ly b/input/regression/lyric-combine.ly
new file mode 100644 (file)
index 0000000..1d67184
--- /dev/null
@@ -0,0 +1,54 @@
+\header{
+texidoc="
+Lyrics can be set to a melody automatically.  Excess lyrics will be
+dumped.  Lyrics will not be set over rests.  You can have melismata
+either by setting a property melismaBusy, or by setting
+automaticMelismas (which will set melismas during slurs and ties).  If
+you want a different order than first Music, then Lyrics, you must
+precook a chord of staffs/lyrics and label those.  Of course
+@code{\rhythm} ignores any other rhythms in the piece.  Hyphens and
+extenders do not assume anything about lyric lengths, so they continue
+to work.
+";
+
+
+filename =      "twinkle-pop.ly";
+xtitle =        "Ah, vous dirais-je, maman ";
+description =   "twinkle twinkle in pop-song-settings";
+composer =      "traditional";
+enteredby =     "HWN, chords by Johan Vromans";
+copyright =     "public domain";
+}
+
+\version "1.3.117";
+
+m = \notes  \relative c'' {
+       \property Staff.automaticMelismata = ##t
+       \autoBeamOff
+       g4  r8 \times 2/3 { g'8( f )e } r8 \grace { [d16 c b] } e4
+       \emptyText
+       d8.^"melisma"   \melisma c16
+       \melismaEnd
+       b }
+
+noisebeat = \notes \relative c'' {g16 g g g }
+noise =   { \noisebeat \noisebeat \noisebeat  \noisebeat \noisebeat \noisebeat }
+textI =   \lyrics  { la2 __ la -- la __ la la la la la  }
+textII =   \lyrics  { da -- da __ da -- da da da da da  }
+
+\score {
+    \notes < \context Staff = SA \m
+      \context Lyrics = LA { s1 }
+      \context Staff = SB { s1 }
+      \context Lyrics = LB { s1 }
+      \context Staff = SC \noise
+      
+      \addlyrics
+         \context Staff = SB \m
+         < \context Lyrics = LA \textI
+           \context Lyrics = LB \textII
+         >
+         
+    >
+}
+
diff --git a/input/regression/lyrics-bar.ly b/input/regression/lyrics-bar.ly
new file mode 100644 (file)
index 0000000..ec0309b
--- /dev/null
@@ -0,0 +1,39 @@
+\header{
+texidoc="
+Adding a @code{Bar_engraver} to the LyricsVoice context makes sure that
+lyrics don't collide with barlines.
+";
+}
+
+\score {
+       \context StaffGroup <
+       \notes \context Staff {
+               b1 b1 \bar "|.";
+       }
+       \lyrics\context Lyrics <
+               \context LyricsVoiceWithBars {
+%                      thisContextHasSpanBarEngraver1  added
+                       ThisContextCertainlyHasSpanBarEngraverAddedButTheresSomethingFunny1.  Here.
+               }
+               \context LyricsVoice {
+                       this4 one has no SpanBarEngraverAddedToContext1
+               }
+       >
+       \notes \context Staff = SB { b1 b1 }
+       >
+       \paper {
+               linewidth = -1.0\cm;
+               \translator {
+                       \LyricsContext
+                       \consists "Span_bar_engraver";
+                       \accepts "LyricsVoiceWithBars";
+               }
+               \translator {
+                       \LyricsVoiceContext
+                       \name "LyricsVoiceWithBars";
+               }
+               \translator {
+                       \LyricsVoiceContext
+               }
+       }
+}
diff --git a/input/regression/lyrics-multi-stanza.ly b/input/regression/lyrics-multi-stanza.ly
new file mode 100644 (file)
index 0000000..a7dee3a
--- /dev/null
@@ -0,0 +1,154 @@
+
+\version "1.3.117";
+\include "english.ly"
+
+\header{
+texidoc="
+Multiple stanzas
+
+ Tests a number of features:
+ * Lyric_phrasing_engraver
+ * Stanza_number_engraver
+ * Automatic melismata on beamed notes
+
+";
+
+    title = "Crowned with Honour";
+    composer = "Oliver Holden (1765-1844)";
+    poet = "Thomas Kelly (1769-1855)";
+}
+
+allup =  \notes{
+       \stemUp
+       \slurUp
+        \tieUp
+       \property Voice.DynamicLineSpanner \override #'direction = #1
+       \autoBeamOff
+}
+
+alldown =  \notes{
+       \stemDown
+       \slurDown
+        \tieDown
+       \property Voice.DynamicLineSpanner \override #'direction = #-1
+       \autoBeamOff
+}
+
+Global =   \notes{
+        \key g \major;
+        \time 4/4;
+       \partial 4;
+}
+
+Soprano =  \notes \relative c' {
+       \allup
+       d4 | g g b b a g a b a g b a g( a )g % modified to test melisma align right
+
+       [a8 b] | b4 % modified to test melisma align left
+        a g b [d16 d c8] [b a] b4 % modified to test beam melisma
+%      a4 | b a g b [d8 \melisma c] \melismaEnd [b \melisma a] \melismaEnd b4
+
+       d d2 d e d4( cs8 ~ )cs d2.
+
+       b4 | d b g b [a8  g]  [a b]  a4
+%      b4 | d b g b [a8 \melisma g] \melismaEnd [a \melisma b] \melismaEnd a4
+
+       g d'2 c b4.( c8 )a4 a g2.
+}
+Alto =  \notes \relative c'{
+       \alldown
+       d4 | d d g g fs g fs g fs e g fs d2.
+       d4 | g d b g' [b8 a] [g fs] g4 fs g2 a g fs4( e8 )g fs2.
+       d4 | g g d g [fs8 e] [fs g] fs4 g f2 e d4.( d8 )d4 fs4 d2.
+}
+Tenor =  \notes \relative c{
+       \allup
+       d4 | b' b d d c  b c  d c  b d c  b2.
+       a4 | b a g b  [d8 c] [b a] b4 a  b2 c b  a   a2.
+       g4 | b d b d [c8  b] [c  d]  c4 b g2 g g4.( a8 [fs )a] c4 b2.
+}
+Bass =  \notes \relative c{
+       \alldown
+       d4 | g g g g d d d g d e d d g,2.
+       d'4 | g d b g' [b8 a] [g fs] g4 d g2 fs e a d,2.
+       g4 | g g g g d d d e b2 c d2. d4 g,2.
+}
+
+TheLyrics =   \lyrics <
+        {
+           \context LyricsVoice = "Soprano-1"
+           \property LyricsVoice .stanza = "1:"
+           \property LyricsVoice .stz = "(1)"
+                The4 head    that once was crowned with thorns
+                Is   crowned with glo -- ry  now;
+                A roy -- al di -- a -- dem a -- dorns
+                The might -- y Vic -- tor's  brow.
+                A roy -- al di -- a -- dem a -- dorns
+                The might -- y Vic -- tor's  brow.
+        }
+        {
+           \context LyricsVoice = "Soprano-2"
+           \property LyricsVoice .stanza = "2:"
+           \property LyricsVoice .stz = "(2)"
+                The4 high -- est place that heav'n af -- fords
+                Is His by sov -- 'reign  right;
+                The King of kings, the Lord of lords,
+                He reigns in glo -- ry  bright,
+                The King of kings, the Lord of lords, 
+                He reigns in glo -- ry  bright.
+        }
+        {
+           \context LyricsVoice = "Soprano-3"
+           \property LyricsVoice .stanza = "3:"
+           \property LyricsVoice .stz = "(3)"
+                The joy of all who dwell a -- bove,
+                The joy of saints be --  low,
+                To4 whom He man -- i -- fests His love,
+                And grants His name to  know,
+                To4 whom He man -- i -- fests His love,
+                And grants His name to4  know.
+        }
+>
+
+
+\score{
+  \context ChoirStaff
+    \notes
+    <
+      \property Score.barNumberScriptPadding = #10.0
+      \context Staff = "treblestaff"{
+        <
+         \context Voice = "Soprano" { }
+         \context Voice = "Alto" { }
+        >
+      }
+      \context Lyrics = mainlyrics { }
+      \context Staff = "treblestaff"{
+       <
+         \Global
+         \addlyrics { \context Voice = "Soprano" \Soprano }
+           { \context Lyrics = mainlyrics \TheLyrics }
+         \context Voice = "Alto"  \Alto
+        >
+       \bar "|.";
+      }
+      \context Staff = "bassstaff"{
+        \clef "bass";
+       <
+         \context Voice = "Tenor" { \Tenor }
+         \context Voice = "Bass"  { \Bass }
+       >
+        \bar "|.";
+      }
+    >
+
+   \paper {
+      \translator{
+       \VoiceContext
+       automaticMelismata = ##t;
+       noAutoBeaming = ##t;
+        \remove   "Auto_beam_engraver";
+      }
+
+   }
+}
diff --git a/input/regression/mm-rests2.ly b/input/regression/mm-rests2.ly
new file mode 100644 (file)
index 0000000..c801ec4
--- /dev/null
@@ -0,0 +1,30 @@
+\header{
+texidoc="
+If @code{Score.skipBars} is set,
+the signs for four, two, and one measure rest are combined to
+produce the graphical representation of rests for up to 10 bars.
+The number of bars will be written above the sign.
+";
+}
+
+thenotes = \notes \relative cis' {
+\property Score. skipBars = ##t
+\time 4/4;
+R1 |
+R1*1 |
+R1*2 |
+R1*3 |
+R1*4 |
+R1*5 |
+R1*6 |
+R1*7 |
+R1*8 |
+R1*9 |
+R1*10 |
+R1*11 |
+}
+
+\score { < \context Staff \thenotes
+
+       >
+}
diff --git a/input/regression/molecule-hacking.ly b/input/regression/molecule-hacking.ly
new file mode 100644 (file)
index 0000000..49a9ce9
--- /dev/null
@@ -0,0 +1,73 @@
+
+\header { texidoc=" You can write molecule callbacks in Scheme, thus
+providing custom glyphs for notation elements.  A simple example is
+adding parentheses to existing molecule callbacks.
+
+The parenthesized beam is less successful due to implementation of the
+Beam. The note head is also rather naive, since the extent of the
+parens are also not seen by accidentals.
+";
+       
+        }
+
+#(define (parenthesize-callback callback)
+   "Construct a function that will do CALLBACK and add parentheses.
+Example usage:
+
+  \property Voice.NoteHead \\override #'molecule-callback
+                     =
+                     #(parenthesize-callback Note_head::brew_molecule)
+                   
+"
+
+   
+   (define (parenthesize-molecule grob)
+     "This function adds parentheses to the original callback for
+GROB.  The dimensions of the molecule is not affected.
+"
+     
+     (let* (
+           (fn (ly-get-default-font grob))
+           (pclose (ly-find-glyph-by-name fn "accidentals-)"))
+           (popen (ly-find-glyph-by-name fn "accidentals-("))
+           (subject (callback grob))
+
+           ;; remember old size
+           (subject-dims (ly-get-molecule-extent subject 0))
+           )
+
+       ;; add parens
+        (set! subject
+            (ly-combine-molecule-at-edge 
+             (ly-combine-molecule-at-edge subject 0 1 pclose 0.2)
+             0 -1 popen  0.2))
+
+       ;; revert old size.
+       (ly-set-molecule-extent! subject 0 subject-dims)
+       subject
+    )
+     )
+   parenthesize-molecule
+   )
+    
+
+
+\score {
+       \notes \relative c' { c4 e
+
+                   \property Voice.NoteHead \override #'molecule-callback
+                     =
+                     #(parenthesize-callback Note_head::brew_molecule)
+                   g bes
+                   \property Voice.NoteHead \revert #'molecule-callback
+                   \property Voice.Beam \override #'molecule-callback
+                     =
+                     #(parenthesize-callback Beam::brew_molecule)
+
+                   a8 gis8 a2.
+                   
+                   }
+
+       \paper { linewidth = -1.; }
+       }
+
diff --git a/input/regression/multi-measure-rest.ly b/input/regression/multi-measure-rest.ly
new file mode 100644 (file)
index 0000000..01732e4
--- /dev/null
@@ -0,0 +1,20 @@
+\header{
+texidoc="
+Multiple measure rests do not collide with barlines and clefs.  They
+are not expanded when you set @code{Score.skipBars}.  Although the
+multi-measure-rest is a Spanner, minimum distances are set to keep it
+colliding from barlines. 
+";
+}
+\version "1.3.117";
+
+\score { \notes { \time 3/4; \key cis \major;
+           R2.*15 R2. R2.*7 }
+       \paper {
+       \translator {
+               \ScoreContext
+               skipBars = ##t
+       }
+       linewidth = -1.;        
+       }
+}
diff --git a/input/regression/non-empty-text.ly b/input/regression/non-empty-text.ly
new file mode 100644 (file)
index 0000000..1d445c8
--- /dev/null
@@ -0,0 +1,15 @@
+\header{
+texidoc="
+Text is set with empty horizontal dimensions.  The boolean property
+textNonEmpty is used to respect the horizontal size of text.
+";
+}
+\score { \notes {
+\property Voice.TextScript \override #'no-spacing-rods = ##f
+c4_"very wide and long text" c4
+}
+
+\paper {
+  linewidth  = -1.0;
+  }
+}
diff --git a/input/regression/noteheadstyle.ly b/input/regression/noteheadstyle.ly
new file mode 100644 (file)
index 0000000..c59f40c
--- /dev/null
@@ -0,0 +1,63 @@
+\header{
+texidoc="
+Note head shapes are settable.  The stem endings should be adjusted
+per note head.  If you want different note head styles on one stem,
+you must create a special context called Thread.
+
+Harmonic notes have a different shape and different
+dimensions. Nevertheless, noteheads in both styles can be combined, on
+either up or down stems.
+";
+}
+
+\version "1.3.117";
+
+
+\score { \notes \relative c{
+% anyone wanna pop?
+c''4 c2 c8  c16 c16 c1 c\breve
+\property Voice.NoteHead \override #'style = #'diamond
+c4 c2 c8  c16 c16  c1 c\breve
+\property Voice.NoteHead \override #'style = #'transparent
+c4 c2 c8  c16 c16  c1 c\breve
+\property Voice.NoteHead \override #'style = #'cross
+c4 c2 c8  c16 c16  c1 c\breve
+\property Voice.NoteHead \override #'style = #'mensural
+c4 c2 c8  c16 c16  c1 c\breve c\longa
+\property Voice.NoteHead \override #'style = #'harmonic
+c4 c2 c8  c16 c16  c1 c\breve
+\property Voice.NoteHead \override #'style = #'baroque
+c4 c2 c8  c16 c16  c1 c\breve c\longa
+
+
+   \context Voice <
+    \context Thread = TA
+      {
+        \property Thread.NoteHead \override #'style = #'cross
+        \property Voice.Stem \override #'direction = #1
+        c16
+       }
+    \context Thread = TB
+      { \property Thread.NoteHead \override #'style = #'default a16  }
+
+    \context Thread = TC
+      { \property Thread.NoteHead \override #'style = #'mensural d16 }
+
+  >
+
+
+   \context Voice <\context Thread = TA {
+   \property Thread.NoteHead \override #'style = #'default
+   c4 c4 }
+\context Thread = TB {
+   \property Thread.NoteHead \override #'style = #'mensural
+  c'4 \stemDown c
+} >
+
+}
+
+    \paper {
+
+
+}
+}
diff --git a/input/regression/number-staff-lines.ly b/input/regression/number-staff-lines.ly
new file mode 100644 (file)
index 0000000..5494d66
--- /dev/null
@@ -0,0 +1,19 @@
+\header{
+
+texidoc=" The number of stafflines of a staff can be set.  Ledger
+lines both on note heads and rests are adjusted.  Barlines also are
+adjusted.  ";
+
+}
+
+\score { 
+\context Voice \notes\relative c {
+       c' c c c | g' g g g     
+  }
+  \paper {
+
+\translator { \StaffContext
+StaffSymbol \override #'line-count = #3
+}  }
+  \midi { }
+}
diff --git a/input/regression/repeat-fold.ly b/input/regression/repeat-fold.ly
new file mode 100644 (file)
index 0000000..2831366
--- /dev/null
@@ -0,0 +1,14 @@
+\header{
+texidoc="
+Folded.  This doesn't make sense without alternatives, but it works.
+";
+}
+
+\score { \notes\context Staff\relative c'' {
+\repeat fold 3 { c^"3$\\times$ 0alt" d }
+% less alts than body
+\repeat fold 4 { c^"4$\\times$ 2alt" d } \alternative { e f }
+% more alts than body
+\repeat fold 2 { c^"2$\\times$ 3alt" d } \alternative { e f g } 
+}}
+
diff --git a/input/regression/repeat-line-break.ly b/input/regression/repeat-line-break.ly
new file mode 100644 (file)
index 0000000..ae6a06d
--- /dev/null
@@ -0,0 +1,16 @@
+\header{
+texidoc="
+Across linebreaks, the left edge of a first and second alternative
+bracket should be equal
+";
+}
+
+\score  {
+\notes
+\context Staff\relative c''  {
+       \repeat "volta" 2 { c1 \break } \alternative { d e }
+       c1
+       \repeat "volta" 2 { c1 } \alternative { { d \break}  e }
+
+}
+}
diff --git a/input/regression/repeat-unfold.ly b/input/regression/repeat-unfold.ly
new file mode 100644 (file)
index 0000000..cb965c1
--- /dev/null
@@ -0,0 +1,25 @@
+\header{
+texidoc="
+LilyPond has three modes for repeats: folded, unfolded and
+semi-unfolded.  Unfolded repeats are fully written out. Semi unfolded
+repeats have the body written and all alternatives sequentially.
+Folded repeats have the body written and all alternatives
+simultaneo.ly.  If the number of alternatives is larger than the
+repeat count, the excess alternatives are ignored.  If the number of
+alternatives is smaller, the first alternative is multiplied to get to
+the number of repeats.
+
+Unfolded behavior:
+";
+}
+
+\score {
+
+  \context Voice \notes\relative c'' {
+\repeat unfold 3 { c^"3x 0a" d }
+% less alts than body
+\repeat unfold 4 { c^"4x 0a" d } \alternative { e f }
+% more alts than body
+\repeat unfold 2 { c^"2x 3a" d } \alternative { e f g } 
+}}
+
diff --git a/input/regression/repeat-volta.ly b/input/regression/repeat-volta.ly
new file mode 100644 (file)
index 0000000..634ba4d
--- /dev/null
@@ -0,0 +1,25 @@
+\header{
+texidoc="
+Volta (Semi folded) behavior.  Voltas can start on non-barline moments.
+If they don't barlines should still be shown.
+";
+}
+
+%  no alts.
+\score { \notes
+  \relative c'' {
+% repeat non aligning with barlines.
+e
+\repeat volta 3 { c^"3$\\times$ 0alt" d e }
+% less alts than body
+\repeat volta 4 { c^"4$\\times$ 2alt" d } \alternative { e f }
+
+% more alts than body
+\repeat volta 2 { c^"2$\\times$ 3alt" d } \alternative { e f g } 
+}
+
+       \midi{}
+       \paper{}
+
+}
+
diff --git a/input/regression/rest-collision.ly b/input/regression/rest-collision.ly
new file mode 100644 (file)
index 0000000..276afa5
--- /dev/null
@@ -0,0 +1,61 @@
+\header{
+texidoc="
+Rests should not collide with beams, stems and noteheads.  Rests may
+be under beams.  Rests should be move by integral number of spaces
+inside the staff, and by half spaces outside.  Notice that the half
+and whole rests just outside the staff get ledger lines in different
+cases.
+";
+}
+
+scale =  \notes \relative c' {
+  c8 d e f g a b c c d e f g a b c
+
+}
+rests =  \notes             {
+  r r r  r r r r r r r r r r r r r
+} 
+different = < \context Voice = one {
+      \stemUp
+      \notes \relative c'' {
+        r8 a e4 a e
+      }
+    }
+    \context Voice = two {
+      \stemDown
+      \notes \relative c'' {
+        r1
+      }} >
+
+scales =  \context Staff \notes <
+       \context Voice=i { \stemUp r1 r2 r2   \scale    c''1 c'2 a'2 \rests  }
+       \context Voice = ii { \stemDown a'1 a'2 d'2 \rests r1 r2 r2  \scale }
+>
+
+restsII =  \context Staff \notes {
+       r4 r8
+       \context Staff < { \stemUp r8 } { \stemDown r8} >
+       \context Staff < {\stemUp r8} r8 { \stemDown r8} >
+       \context Staff < {\stemUp r8} r8 r8 { \stemDown r8} >
+       \context Staff < {\stemUp r} { \stemDown r} >
+       \context Staff < {\stemUp r} r { \stemDown r} >
+       \stemUp
+       \transpose c'' { [c''8 r8 c''8 c''8]
+       [c8 r8 c8 c8]
+       [c8 r8 r8 c'''8]        
+       \stemDown
+       [c8 r8 c8 c8]
+       [c''8 r8 c''8 c''8]
+       [c'8 r8 r8 c'''8]
+       \different      
+       }
+}
+
+\score{
+       \notes { 
+               \scales 
+               \restsII 
+       }
+}      
+
+\version "1.3.117"; 
diff --git a/input/regression/rest.ly b/input/regression/rest.ly
new file mode 100644 (file)
index 0000000..0e7eea1
--- /dev/null
@@ -0,0 +1,16 @@
+\header{
+texidoc="
+Rests.  Note that the dot of 8th, 16th and 32nd rests rest should be
+next to the top of the rest.  All rests except the whole rest are
+centered on the middle staff line.
+";
+}
+
+
+       \score { \notes {
+       \time 4/4;
+r \longa * 1/4  r\breve * 1/2 
+r1 r2 r4 r8 r16 r32 r64 r128 r128
+\time 6/4;
+r1. r2. r4. r8. r16. r32. r64. r128. r128.
+}}
diff --git a/input/regression/size11.ly b/input/regression/size11.ly
new file mode 100644 (file)
index 0000000..6bc299b
--- /dev/null
@@ -0,0 +1,10 @@
+\header{
+texidoc="
+Fonts are  available in a default set of sizes: 11, 13, 16, 20, 23 and
+26pt staffheight.  Sizes of the text fonts and symbol fonts are made
+to match the staff dimensions.    
+";
+}
+
+\include "paper11.ly"
+\include "allfontstyle.ly";
diff --git a/input/regression/size13.ly b/input/regression/size13.ly
new file mode 100644 (file)
index 0000000..ac58c4d
--- /dev/null
@@ -0,0 +1,2 @@
+\include "paper13.ly"
+\include "allfontstyle.ly";
diff --git a/input/regression/size16.ly b/input/regression/size16.ly
new file mode 100644 (file)
index 0000000..69352ff
--- /dev/null
@@ -0,0 +1,2 @@
+\include "paper16.ly"
+\include "allfontstyle.ly";
diff --git a/input/regression/size20.ly b/input/regression/size20.ly
new file mode 100644 (file)
index 0000000..d76a6cd
--- /dev/null
@@ -0,0 +1,2 @@
+\include "paper20.ly"
+\include "allfontstyle.ly";
diff --git a/input/regression/size23.ly b/input/regression/size23.ly
new file mode 100644 (file)
index 0000000..c5accc9
--- /dev/null
@@ -0,0 +1,2 @@
+\include "paper23.ly"
+\include "allfontstyle.ly";
diff --git a/input/regression/size26.ly b/input/regression/size26.ly
new file mode 100644 (file)
index 0000000..919c6e0
--- /dev/null
@@ -0,0 +1,2 @@
+\include "paper26.ly"
+\include "allfontstyle.ly";
diff --git a/input/regression/slur-attachment.ly b/input/regression/slur-attachment.ly
new file mode 100644 (file)
index 0000000..7a00de8
--- /dev/null
@@ -0,0 +1,19 @@
+\header{
+texidoc="
+Slurs should be attached to note heads, except when they would collide
+with beams.  Also see: ophee-slurs.
+";
+}
+\score{
+       \notes \relative c''{
+               \property Voice.Slur \set #'direction = #1
+               a8( a )a4
+               a4( a8 )a
+               a8 a()a4
+               a4() a8 a
+       }
+       \paper{ 
+               indent = 0.0;
+               linewidth = 100.\mm;
+       }
+}
diff --git a/input/regression/slur-broken-trend.ly b/input/regression/slur-broken-trend.ly
new file mode 100644 (file)
index 0000000..868d156
--- /dev/null
@@ -0,0 +1,21 @@
+\header{
+texidoc="
+Across line breaks, slurs behave nicely.  On the left, they extend to
+just after the preferatory matter, and on the right to the end of the
+staff.  A slur should follow the same vertical direction it would have
+in unbroken state.
+";
+}
+\score{
+       \notes \relative c''{
+               e1( \break) a,
+               \time 2/4;
+               e'2( \break) a,(\break
+               a2\break
+               )e'2
+       }
+       \paper {
+               linewidth=40.\mm;
+               indent=0.;
+       }
+}
diff --git a/input/regression/slur-cross-staff.ly b/input/regression/slur-cross-staff.ly
new file mode 100644 (file)
index 0000000..e2ada8c
--- /dev/null
@@ -0,0 +1,48 @@
+\header{
+texidoc="
+The same goes for slurs. They behave decently when broken across
+linebreak.
+";
+}
+
+       
+\score{
+       \context PianoStaff <
+       \context Staff=one \notes\relative c'{
+               \stemUp \slurUp
+                c4( c \translator Staff=two c )c |
+               \translator Staff=one
+               \stemUp \slurUp
+                c4( c \translator Staff=two c )c |
+               \stemUp \slurUp
+                c4( c \translator Staff=one c )c |
+               \translator Staff=two
+               \stemUp \slurUp
+                c4( c \translator Staff=one c )c |
+               \translator Staff=two
+               \stemUp \slurUp
+                c4( \translator Staff=one c c )c |
+               r2
+               \translator Staff=two
+               \stemUp \slurUp
+                c4( \translator Staff=one c
+                  \break
+               c )c
+               r2
+%              \stemDown \slurDown
+%               c4( \translator Staff=two c c \translator Staff=one )c
+               \stemDown \slurDown
+                d4( \translator Staff=two c c \translator Staff=one )d
+               \translator Staff=two
+               \stemUp \slurUp
+                c4( \translator Staff=one c c \translator Staff=two )c
+               r1
+       }
+       \context Staff=two \notes\relative c'{
+               \clef bass;
+               s1 s1 s1 s1 s1 s1 s1 s1 s1 s1
+       }
+       >
+}
+
+\version "1.3.117"; 
diff --git a/input/regression/slur-nice.ly b/input/regression/slur-nice.ly
new file mode 100644 (file)
index 0000000..fce8f94
--- /dev/null
@@ -0,0 +1,23 @@
+\header{
+texidoc="
+Slurs should look nice and symmetric.  The curvature may increase
+only to avoid noteheads, and as little as possible.  Slurs never
+run through noteheads or stems.
+";
+}
+\version "1.3.117";
+\score{
+       \notes\relative c''{
+               \time 3/4;
+               \slurUp
+               \stemBoth a ( \stemDown a \stemBoth ) a a( c )a a( e' )a, a( g' )a,
+               \stemUp a( e' )a,
+               \break
+               \slurDown
+               \stemBoth c ( \stemUp c \stemBoth ) c c ( a ) c c( d, )c' c( f, )c'
+               \stemDown c( f, )c'
+       }
+       \paper{
+               linewidth = 120.\mm;
+       }
+}
diff --git a/input/regression/slur-symmetry-1.ly b/input/regression/slur-symmetry-1.ly
new file mode 100644 (file)
index 0000000..6e2ea7c
--- /dev/null
@@ -0,0 +1,14 @@
+\score{
+       \notes\relative c''<
+               \time 4/4;
+               \context Staff{
+                       f8(f f)f f(g g)f f(a a)f f(b b)f
+               }
+               \context Staff=x{
+                       e,(e e)e e(d d)e e(c c)e e(b b)e
+               }
+       >
+       \paper{
+               linewidth=-1.;
+       }
+}
diff --git a/input/regression/slur-symmetry.ly b/input/regression/slur-symmetry.ly
new file mode 100644 (file)
index 0000000..41ebe83
--- /dev/null
@@ -0,0 +1,14 @@
+\score{
+       \notes\relative c'<
+               \time 6/8;
+               \context Staff{
+                       e8(e)e e(d)e e(c)e e(b)e
+               }
+               \context Staff=x{
+                       f'8(f)f f(g)f f(a)f f(b)f
+               }
+       >
+       \paper{
+               linewidth=-1.;
+       }
+}
diff --git a/input/regression/spacing-loose.ly b/input/regression/spacing-loose.ly
new file mode 100644 (file)
index 0000000..eaac633
--- /dev/null
@@ -0,0 +1,11 @@
+\header{
+texidoc="
+Loose:
+";
+}
+\score {
+       \notes { \time 2/2; c'2 c'2 \time 2/2; }
+       \paper { linewidth = 5.0\cm;
+       indent = 0.0;
+       }
+}
diff --git a/input/regression/spacing-natural.ly b/input/regression/spacing-natural.ly
new file mode 100644 (file)
index 0000000..74e9f6f
--- /dev/null
@@ -0,0 +1,13 @@
+\header{
+texidoc="
+Natural:
+";
+}
+
+\score {
+       \notes { \time 2/2; c'2 c'2 \time 2/2; }
+       \paper { linewidth = -1.0 \cm;
+       indent = 0.0;
+       }
+}
+
diff --git a/input/regression/spacing-tight.ly b/input/regression/spacing-tight.ly
new file mode 100644 (file)
index 0000000..75c7d16
--- /dev/null
@@ -0,0 +1,21 @@
+\header{
+texidoc="
+If there are accidentals in the music, we add space, but the space
+between note and accidentals is less than between the notes with the
+same value.  Clef changes also get extra space, but not as much as
+barlines.
+
+Even if a line is very tightly spaced, there will still be room
+between prefatory matter and the following notes.  The space after the
+prefatory is very rigid.  In contrast, the space before the barline
+must stretch like the space within the measure.
+
+Tight:
+";
+}
+\score {
+       \notes { \time 2/2; f''2 c'2 \time 2/2; }
+       \paper { linewidth = 2.5 \cm;
+       indent = 0.0;
+       }
+}
diff --git a/input/regression/staccato-pos.ly b/input/regression/staccato-pos.ly
new file mode 100644 (file)
index 0000000..aa3ac8a
--- /dev/null
@@ -0,0 +1,18 @@
+\header{
+texidoc="
+The staccato dot (and all scripts with follow-into-staff set), must
+not be on staff lines.
+";
+}
+\score { 
+  \context Voice \notes\relative c {
+    
+       e''4-. f-. d-.
+       c,-. b-. c'''-. d-.
+       
+  }
+  \paper {
+    linewidth=-1.0;
+  }  
+  \midi { }
+}
diff --git a/input/regression/staff-margin.ly b/input/regression/staff-margin.ly
new file mode 100644 (file)
index 0000000..bb2b30f
--- /dev/null
@@ -0,0 +1,28 @@
+\header{
+texidoc="
+Staff margins are also markings attached to barlines.  They should be
+left of the staff, and be centered vertically wrt the staff.  They may
+be on normal staffs, but also on compound staffs, like the PianoStaff
+";
+}
+
+       
+\version "1.3.117";
+
+\score {
+
+  \notes \context PianoStaff <
+    \context Staff = treble    {
+      \property PianoStaff.instrument = "Piano "
+      \property Staff.instrument = "Right " { c''4 }}
+    \context Staff = bass { \property Staff.instrument = "Left " \clef bass; c4 }>
+
+\paper {
+linewidth=-1.0;
+\translator { \ScoreContext
+       
+       }
+\translator { \StaffContext \consists "Instrument_name_engraver"; }
+\translator { \PianoStaffContext \consists "Instrument_name_engraver"; }
+}}
+
diff --git a/input/regression/stem-direction-down.ly b/input/regression/stem-direction-down.ly
new file mode 100644 (file)
index 0000000..1733d39
--- /dev/null
@@ -0,0 +1,15 @@
+\header{
+texidoc="
+@c FIXME
+Similarly, if @code{stem_default_neutral_direction} is set to @code{-1}.
+";
+}
+
+\score{
+       \notes\relative c{
+           b''4 ~ b8()b8 e4 e,
+       }
+       \paper{
+               stem_default_neutral_direction=-1.0;
+       }
+}
diff --git a/input/regression/stem-direction.ly b/input/regression/stem-direction.ly
new file mode 100644 (file)
index 0000000..78f20f5
--- /dev/null
@@ -0,0 +1,23 @@
+\header{
+texidoc="
+Beams, stems and noteheads often have communication troubles, since
+the two systems for y dimensions (1 unit = staffspace, 1 unit = 1
+point) are mixed.
+
+Stems, beams, ties and slurs should behave similarly, when placed
+on the middle staff line. Of course stem-direction is down for high
+notes, and up for low notes.
+";
+}
+
+
+\score { 
+  \context Voice \notes\relative c {
+    b''4 ~ b8()b8 e4 e,
+       
+  }
+  \paper {
+    linewidth=-1.0;
+  }  
+  \midi { }
+}
diff --git a/input/regression/stem-spacing.ly b/input/regression/stem-spacing.ly
new file mode 100644 (file)
index 0000000..765416f
--- /dev/null
@@ -0,0 +1,17 @@
+\header{
+texidoc="
+In a limited number of cases, LilyPond corrects for optical spacing
+effects.  In this example, space for opposite pointed stems is adjuste
+";
+}
+\score { 
+  \context Voice \notes\relative c {
+    
+       \time 12/4;  c''4 c c c  a f' f, a 
+       
+  }
+  \paper {
+    linewidth=-1.0;
+  }  
+  \midi { }
+}
diff --git a/input/regression/stem-tremolo.ly b/input/regression/stem-tremolo.ly
new file mode 100644 (file)
index 0000000..3493dab
--- /dev/null
@@ -0,0 +1,29 @@
+\header{
+texidoc="
+Stem tremolos or rolls are tremolo signs that look like beam segments
+crossing stems.  If the stem is in a beam, the tremolo must be parallel
+to the beam.  If the stem is invisible (eg. on a whole note), the
+tremolo must be centered on the note.
+";
+}
+
+\version "1.3.117";
+\score{
+       \context Voice\notes \relative c''{
+               \property Voice.Text \set #'direction = #1
+               \property Voice.TextScript \set #'padding = #5
+               a1:4^":4" a:8^":8" c:16^":16" a:32^":32" a^"x" a:^":"
+               a4:4 c:8 a:16 c:32 a a: a2:
+               \break
+               \stemUp
+               a4:32 a'4:64 
+               \stemDown
+               c,4:32 c,4:64
+               \stemBoth
+               c'8:16 c c c
+               a': a a: a
+               c,16:32 c: c c a16:32 a: a a
+               c8:16 g: d: a:
+               c8:32 f: b: e:
+       }
+}
diff --git a/input/regression/tie-accidental.ly b/input/regression/tie-accidental.ly
new file mode 100644 (file)
index 0000000..8faf34a
--- /dev/null
@@ -0,0 +1,37 @@
+\header{
+texidoc="
+When tieing notes with accidentals across a bar boundary, the accidental
+must not be drawn on the note in the new bar.  Instead, the next note of
+the same pitch in this bar should always show the accidental (even if
+it's natural).  Slurring a accidentaled note to a natural one across bar
+boundaries should be explicit.
+
+Pitches can be verified by printing them  with the @code{NoteNames} context.
+";
+}
+
+thenotes = \notes \relative cis' { \time 4/4;
+g'2 g ~ |
+g g4 gis |
+gis2 gis ~ |
+gis4 gis8 ~ gis g4 gis |
+g2 gis ~ |
+gis g4 gis |
+g2 gis( |
+)g! gis4 gis |
+\break
+\key a \major;
+gis2 gis ~ |
+gis4 gis8 ~ gis g4 gis |
+gis2 g ~ |
+g4 gis8 ~ gis g4 gis |
+g2 gis ~ |
+gis g4 gis |
+g2 gis( |
+)g! gis4 gis | 
+}
+
+\score { < \context Staff \thenotes
+       \context NoteNames \thenotes
+       >
+}
diff --git a/input/regression/tie-chord.ly b/input/regression/tie-chord.ly
new file mode 100644 (file)
index 0000000..2068c37
--- /dev/null
@@ -0,0 +1,21 @@
+\header{
+texidoc="
+When tieing chords, the outer slurs point outwards, the inner slurs
+point away from the center of the staff.  Override with
+@code{tieVerticalDirection}.
+";
+}
+\version "1.3.117";
+
+t =  \notes \relative c' {   <c e g> ~ <c e g> }
+
+       \score { 
+\notes \context Voice {
+   \t
+   \transpose g' \t
+
+   \property Voice.TieColumn \override #'direction = #-1
+   \t
+
+  }
+}
diff --git a/input/regression/tie.ly b/input/regression/tie.ly
new file mode 100644 (file)
index 0000000..6cc474c
--- /dev/null
@@ -0,0 +1,19 @@
+\header{
+texidoc="
+Ties are strictly horizontal.  They are placed in between note heads.
+The horizontal middle should not overlap with a staffline.
+";
+}
+\score{
+       \notes\relative c''{
+               %b2~b4~b8~b16~b32~b64 r64\break
+               %a2~a4~a8~a16~a32~a64 r64
+               \time 8/4;
+               d1 ~ d2~d4~d8~d16~d32~d64 r64\break
+               a1~ a2~a4~a8~a16~a32~a64 r64
+               %c2~c4~c8~c16~c32~c64 r64
+       }
+       \paper{
+               linewidth=0.;
+       }
+}
diff --git a/input/regression/triplets.ly b/input/regression/triplets.ly
new file mode 100644 (file)
index 0000000..802727f
--- /dev/null
@@ -0,0 +1,27 @@
+\header {
+texidoc="Simple beams.  This broke somewhere < 1.3.110
+";
+  title = "Gammes Chromatiques";
+  composer = "";
+  filename = "gammes_chromatiques.ly";
+}
+
+linebreak = \penalty -1000;
+
+$ex8 = \notes \relative c' {
+  \repeat "volta" 2 {
+    \times 2/3 {c8( cis d} \times 2/3 {dis e f} 
+    \times 2/3 {fis g gis} \times 2/3 {a bes b} |
+    \property Voice.TupletBracket \override #'tuplet-number-visibility = ##f
+    \property Voice.TupletBracket \override #'tuplet-bracket-visibility = ##f
+    \times 2/3 {c8 cis d} \times 2/3 {dis e f} 
+    \times 2/3 {fis g gis} \times 2/3 {a bes b} |
+    \times 2/3 {c b bes} \times 2/3 {a aes g}
+    \times 2/3 {fis f e} \times 2/3 {ees d des} |
+    \times 2/3 {c b bes} \times 2/3 {a aes g}
+    \times 2/3 {fis f e} \times 2/3 {ees d )des}
+  }
+  c1 || \linebreak
+}
+
+\score { \context Staff { \notes { \$ex8 } } }
diff --git a/input/regression/tup.ly b/input/regression/tup.ly
new file mode 100644 (file)
index 0000000..649feb5
--- /dev/null
@@ -0,0 +1,19 @@
+\header{
+texidoc="
+Tuplets are indicated by a bracket with a number.  There should be no
+bracket if there is one beam that matches  the length of the tuplet.
+The bracket does not interfere with the stafflines, and the number is
+centered in the gap in the bracket.
+";
+}
+\score{
+       \notes \context Voice \relative c'' {
+                \times 2/3 { \times 2/3 { a8 b c}  c }
+                \times 3/4 { c4 c4 c4 c4 }
+                \time 6/8;
+                \times 6/9 { c8 c c c c c c c c }
+
+                }
+}
+
+\version "1.3.117"; 
index 765cdff8106c82179b5792333158691c8e27439b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,29 +0,0 @@
-\header{
-texidoc="
-A sharp sign after a double sharp sign, as well as a flat sign
-after a double flat sign is automatically prepended with a
-natural sign.
-";
-}
-\version "1.3.117";
-
-
-thenotes =  \notes \relative cis' { \time 4/4;
-gisis'4 gis gisis ges |
-geses ges geses gis |
-gisis g geses g |
-gis g ges g |
-\key a \major;
-gisis4 gis gisis ges |
-geses ges geses gis |
-gisis g geses g |
-gis g ges g |
-}
-
-\score { < \context Staff \thenotes
-       \context NoteNames  {
-               \property NoteNames.basicNoteNameProperties \override  #'no-spacing-rods  = ##f 
-               \thenotes
-       }
-       >
-}
index c7ebadec805c83e0430d2800614dfaae8ed9bfcc..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,15 +0,0 @@
-\header{
-texidoc="
-Accidentals work: the second note does not get a sharp. The third and
-fourth show forced and courtesy accidentals.
-";
-}
-
-foo = \notes\relative c''   {   \key as \major; dis4 dis dis! dis? }
-
-\score {
-
-  < \foo 
-   \context NoteNames \foo
-  >
-}
index 1699fa7dc7a920f81b00cc3e48dd4c06301fcec0..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,23 +0,0 @@
-\header{
-texidoc="
-Arpeggios are supported, both cross-staff and broken single staff.
-";
-}
-
-\version "1.3.117";
-
-\score{
-    \context PianoStaff < 
-        \context Staff=one \notes\relative c''{
-           \context Voice < fis,-\arpeggio  d a >
-            %%\property PianoStaff.SpanArpeggio \override #'connect = ##t
-            \property PianoStaff.connectArpeggios = ##t
-            <fis,\arpeggio a c>
-         }
-        \context Staff=two \notes\relative c{
-            \clef bass;
-           \context Voice < g b d-\arpeggio   >
-            <g\arpeggio b d>
-        }
-    >
-}
index 645c62de7c62b5d57a58265485a9ea0e2ba46a0d..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,20 +0,0 @@
-\header{
-texidoc="
-The first two a8 notes should not be beamed.
-Also, no automatic beaming accross bar lines.
-";
-}
-
-\score{
-\notes \notes\relative c'' {
-\time 2/8;
-a8 a
-\time 6/8;
-a16 cis d a bes g fis4 g8
-%a4. fis4 g8
-a16 g a bes c d % ees8 d c
-}
-\paper{
-   linewidth=-1.;
-}
-}
\ No newline at end of file
index ee0b5d18ba8dbfacfb10adef9655219d65f483f9..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,20 +0,0 @@
-\header{
-texidoc="
-Auto change piano staff switches  voices  between up and down staffs
-automatically; rests are switched along with the coming note.
-";
-}
-
-\score {
-       \notes \context PianoStaff <
-       \context Staff = "up" {
-               \autochange Staff \context Voice = VA < \relative c' { g4 a  b c d r4 a g } >
-       }
-       \context Staff = "down" {
-               \clef bass; 
-               s1*2
-       }
-
-       >
-       
-}
index fa3256b668abe71bb88b810da25595f38ed9bb6e..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,25 +0,0 @@
-\header{
-texidoc="Two automatic knees";
-}
-
-\score {
-  \notes \context PianoStaff <
-    \context Staff = "up" \notes\relative c''{
-      [ b8 \translator Staff="down" d,, ]
-      [ c \translator Staff="up" c'' ]
-      [ b, \translator Staff="down" d ]
-    }
-    \context Staff = "down" {
-      \clef bass; 
-      s2.
-    }
-  >
-  \paper{
-    linewidth = 40*\staffspace;
-% Now by default
-%    \translator{
-%      \VoiceContext
-%      Beam \override #'auto-knee-gap = #7
-%    }
-  }
-}
index b49954b60cadc8885b2ebb63f5ce2b4e890245f0..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,17 +0,0 @@
-\header{
-texidoc="One automatic knee";
-}
-
-\score {
-  \context Staff \notes\relative c''{ 
-    [c'8 c,,] [c8 e']
-  }
-  \paper{
-    linewidth = 40*\staffspace;
-% Now by default
-%    \translator {
-%      \VoiceContext
-%      Beam \override #'auto-knee-gap = #7
-%    }
-  }
-}
index 731be524696138b60a4d9e424c68a73ba4234a0a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,8 +0,0 @@
- \score { \notes {
-
-       c1 c1 c1 c1\break
-       c1 c1 c1 c1\break
-         \property Score.currentBarNumber = 25
-       c1 c1 c1 c1
-}
- \paper{ \translator {\BarNumberingStaffContext }}}
index 644550de3f8f88af9056c38616633a81304fefd0..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,41 +0,0 @@
-\header{
-texidoc="
-Markings that are attached to (invisible) barlines are 
-delicate: the are attached to the rest of the score without the score
-knowing it.  Consequently, they fall over  often.
-";
-}
-
-\version "1.3.117";
-
-onestaff =  \context Staff = foo\notes  {
-       \property Staff.instr = instr
-       \property Staff.instrument = instrument \mark "B";
-        c1 \mark "A"; \break c2  c2 \break
-}
-
-grstaff =  \notes \context GrandStaff <
-       \context Staff = bar {
-
-       \property Staff.instr = instr
-       
-        \mark "B"; \break c1 \mark "A"; c2  }
-       \context Staff = bufl { c1 c2  }
->
-
-scpaper =  \paper {\translator {\OrchestralScoreContext}}
-stpaper =  \paper{ \translator {\BarNumberingStaffContext }}
-
-scscore =  \score { \grstaff \paper {
-\scpaper
-}}
-
-
-stscore =  \score { \onestaff \paper {
- \stpaper
-}}
-
-%\score {\stscore}
-\score {\scscore
-\header { title = "bar scripts"; }
-}
index 72b3c288faf09644cd2a18c13e556aa4502c390b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,32 +0,0 @@
-\header{
-texidoc="
-Beams can be typeset over fixed distance aligned staffs, beam
-beautification doesn't really work, but knees do. Beams should be
-behave well, wherever the switching point is.
-";
-}
-\score{
-       \context PianoStaff <
-       \context Staff=one \notes\relative c'{
-               \stemUp [c8 c \translator Staff=two \stemUp c c]
-               [c c c c]
-               \translator Staff=one
-               \stemDown [c8 c \translator Staff=two \stemUp c c]
-               r2
-               \stemDown [c8 c \translator Staff=one \stemDown c c]
-               r2
-               \translator Staff=two
-               \stemUp [c8 c \translator Staff=one \stemDown c c]
-               r2
-       }
-       \context Staff=two \notes\relative c'{
-               \clef bass;
-               s1
-               s1
-               s1
-               s1
-       }
-       >
-}
-
-\version "1.3.117"; 
index d445468a090351cbd958767ef258b666bf78a892..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,40 +0,0 @@
-\header{
-texidoc="
-There are several ways to calculate the direction of a beam
-
-@table @samp
-@item majority
-number count of up or down notes
-@item mean
-mean centre distance of all notes
-@item median
-mean centre distance weighted per note
-@end table
-
-We should see:
-
-  up down down
-
-  up up down
-";
-}
-
-\score {
-  \notes \relative c'' {
-    % the default
-    %\property Voice.Beam \set #'dir-function = #beam-dir-majority
-    [d8 a]
-    \property Voice.Beam \set #'dir-function = #beam-dir-mean
-    [d a] 
-    \property Voice.Beam \set #'dir-function = #beam-dir-median
-    [d a]
-    
-    \property Voice.Beam \set #'dir-function = #beam-dir-majority
-    \time 3/8;
-    [d8 a a]
-    \property Voice.Beam \set #'dir-function = #beam-dir-mean
-    [d a a] 
-    \property Voice.Beam \set #'dir-function = #beam-dir-median
-    [d a a] 
-  }
-}
index 653024e70c3619d084478b6bb05fd191f3f8b61a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,19 +0,0 @@
-\header{
-texidoc="
-Beams should behave reasonably well, even under extreme circumstances.
-Stems may be short, but noteheads should never touch the beam.
-";
-}
-\version "1.3.117";
-\score{
-       \notes\relative c''{
-               [g8 c c,]
-               [c16 c'' a f]
-               \stemUp 
-               [c,,32 c'' a f]
-
-       }
-       \paper{
-               linewidth=-1.;
-       }
-}
index 3c2a8f16be5ffd6f8d283795feb60eb7ea78c2cf..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,14 +0,0 @@
-\header{
-texidoc="
-beams should look the same
-";
-}
-    
-\score { 
-  \context Voice \notes\relative c {
-
-                       [d''8 d d] [d g d]
-                       c c
-       
-  }
-}
index 88f5749d5b77b705aa4a259181592cf1adc8831c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,22 +0,0 @@
-\header{
-texidoc="
-Beams should always reach the middle staff line.  The second beam
-counting from the note head side, should never be lower than the
-second staff line.  This does not hold for grace note beams.
-Override with @code{noStemExtend}.
-";
-}
-\version "1.3.117";
-
-\score { 
-  \context Voice \notes\relative c {
-    [f8 f]  [f64 f] \grace { [f8 e8] }
-       \property Grace.Stem \override #'no-stem-extend = ##t
-       [f8 f]
-       
-  }
-  \paper {
-    linewidth=-1.0;
-  }  
-  \midi { }
-}
index bf8d2788f61649a361149452df3fe28498e0b078..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,17 +0,0 @@
-\header{
-texidoc="
-Beams over rests.
-";
-}
-
-\score{
-        \context Staff=one \notes\relative c''{
-         r4 [r8 g a]
-         [bes8 r16 f g a]
-         [bes8 r16 \property Voice.stemLeftBeamCount = #1 f g a]
-
-    }
-    \paper{
-        linewidth =-1;
-    }
-}
index b1673319bff9dc940ae4903ef777396ce52ef78f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,27 +0,0 @@
-\header{
-texidoc="
-Beaming is generated automatically. Beams may cross bar lines. In that
-case, line breaks are forbidden.  Yet clef and key signatures are
-hidden just as with breakable bar lines.
-";
-}
-
-\score { \context Staff \notes \relative c''  {
-       [c8. c16]
-       [c8. c16 c8.  c16]
-       [c16 c8.] |
-       [c8. c16  c16  c8.]
-       [c8. c32  c32]
-       [c8 c8] |
-       [c16 c16]
-       [c32 c32]
-       [c64 c64]       
-       c32
-       [c8 c,4 c'8] % should warn here!
-       [c8 c c] c8 % over barline
-       [c16 c8 c16]
-       [c32 c16 c16 c16 c32]
-       [c32 c16 c8 c32]                 % hmm ?
-       
-               }}
-
index e5d3577845f7e95bad4901ab6626a50aa1637658..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,19 +0,0 @@
-\header{
-texidoc="
-The same mechanism can be  used  to force pagebreaks.
-";
-}
-
-
-% In reality, you'd use #"\\newpage" instead of "(pagebreak)", of course.
-
-\score {
-\notes { c1
-
-       \context Score \outputproperty #(make-type-checker 'paper-column-interface)
-               #'between-system-string = #"(pagebreak)\n\n"
-       \break
-
-c1 }
-
-}
index 49f7ddde61c9e40b5f1d28069cc8379dccc5774c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,17 +0,0 @@
-\header{
-texidoc="
-Breaks can be encouraged and discouraged using @code{\break} and
-@code{\noBreak}.  They are abbrevs for @code{\penalty} commands.
-";
-}
-
-
-\score{
-       \notes\context Voice{
-       \emptyText
-       c1 c1^"no break after 2nd note"  \noBreak c1 c1
-         
-         c1^"break after this" \break c1 c1 
-       }
-       \paper { linewidth = 4.0\cm;}
-}
index 70e375fe7a11ce41895ddfc13fa86da10846b764..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,27 +0,0 @@
-\header{
-texidoc="
-Breathing signs, also used for phrasing, do normally not influence
-global spacing -- only if space gets tight, notes are shifted to make
-room for the breathing sign. Breathing signs break beams running
-through their voice. In the following example, the notes in the first
-two measures all have the same distance from each other:
-";
-}
-
-
-\version "1.3.117";
-
-\score {
-  \notes \relative c' {
-    \key es \major; \time 3/4;
-    < \context Voice = two { \stemDown es4 bes es }
-      \context Voice = one { \stemUp g4 as g }
-    > |
-    < \context Voice = two { \stemDown es4 \breathe bes es }
-      \context Voice = one { \stemUp g4 as g }
-    > |
-    es8 d es f g4 \breathe |
-    es8 d \breathe es f g f |
-    es2 r4 \bar "||";
-  }
-}
index 2d233f5e198eff211add6799599a9f75bd51b9cd..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,37 +0,0 @@
-\header{
-texidoc="
-Chord names are generated from a list pitches, and are customisable
-from guile.  For some unlogical names, guile customisation is used
-by default.
-";
-}
-\version "1.3.117"
-chord =  \notes\transpose c''\chords{
-   c1
-   c:m
-   c:m5-
-   c:m5-.7-
-   c:7+
-   c:m5-.7
-   c:5-.7+
-   c:m7
-   c:7
-   d
-   d/a
-   d/+gis
-}
-
-\score{
-    <
-           \context ChordNames \chord
-           \context Staff \chord
-    >
-    \paper{
-
-               \translator { 
-                       \ChordNamesContext
-                       ChordName \override #'word-space = #1 
-               }
-    }
-}
-
index 6d941ff9715707ebb379cc32a8e397388a218fef..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,20 +0,0 @@
-\header{
-texidoc="
-Chord tremolos look like beams, but are a kind of repeat symbol.
-To avoid confusion, chord tremolo beams do not reach the stems, but 
-leave a gap.  Chord tremolo beams on half notes are not ambiguous,
-as half notes cannot appear in a regular beam, and should reach the 
-stems.
-";
-}
-  
-\score { 
-  \context Voice \notes\relative c {
-       \repeat "tremolo" 8 { c16 d16 }
-       \repeat "tremolo" 4 { c16 d16 }    
-  }
-  \paper {
-    linewidth=-1.0;
-  }  
-  \midi { }
-}
index 834595b0caba177aeefda9eb1e8b7816259676ed..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,37 +0,0 @@
-
-\header{
-texidoc="
-The transparent clef should not occupy any space and with style
-@code{fullSizeChanges}, the changing clef should be typeset in full
-size. For octaviated clefs, the ``8'' should appear closely above or
-below the clef respectively.  The ``8'' is processed in a convoluted
-way, so this is fragile as well.
-";
-}
-
-\version "1.3.117";
-
-\score {
-       \notes{ 
-       
-         \clef "treble"; c'1^"{treble}" \bar "||";
-         \clef "french";c'1^"{french}" \bar "||";
-         \clef "soprano";c'1^"{soprano}" \bar "||";
-         \clef "mezzosoprano";c'1^"{mezzosoprano}" \bar "||";
-         \clef "alto";c'1^"{alto}" \bar "||";
-         \clef "tenor";c'1^"{tenor}" \bar "||";
-         \clef "baritone";c'1^"{baritone}" \bar "||";
-         \clef "varbaritone";c'1^"{varbaritone}" \bar "||";
-         \clef "G_8";c'1^"{sub 8?}" c'1 \bar "||";
-         \clef "G^8";c'1^"{sup 8?}" c'1 \bar "||";
-         \clef "bass";c'1^"{bass}" \bar "||";
-         \clef "subbass";c'1^"{subbass}" \bar "||";
-       \property Staff.clefStyle="transparent"
-         \clef "treble"; c'1^"clefStyle=\"transparent\"" \bar "||";
-       \property Staff.clefStyle="fullSizeChanges"
-         \clef "treble"; c'1^"clefStyle=\"fullSizeChanges\"" \bar "|.";
-         }
-         \paper{
-         }
-}
-
index 1933d1009785774ffedf33697b84364b188aa804..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,79 +0,0 @@
-\header{
-texidoc="
-Normal collisions. We have support for polyphony, where the
-middle voices are horizontally shifted.
-";
-filename =      "collisions.ly";
-description =   "random counterpoint to test collisions";
-enteredby =     "HWN,JCN";
-copyright =     "public domain";
-Tested =        "test the Collision resolution ";
-}
-\version "1.3.117";
-
-twovoice =  \context Staff \notes < 
-       \context Voice=i { \stemDown c4 d e f g2~  g4 a [c8 d e f] c2| }
-       \context Voice=ii { \stemUp g4 f e g ~ g2 g2  c4 g4 g2 } 
->
-
-twovoicesteminvert =  \context Staff \notes <  
-       % the f and g on 4th beat are exceptionally ugh.
-       \context Voice=i { \stemUp c4 d e f g2 g4 a | }
-       \context Voice=ii { \stemDown g4 f e g  g2 g2 } 
->
-
-threevoice =  \context Staff \notes <
-       \context Voice=i { \stemUp g4 f e f g a g2 }
-       \context Voice=ii { \stemUp \property Voice.NoteColumn \override #'horizontal-shift = #1
-               e2  e2  e2  e2 }
-       \context Voice=iii { \stemDown c4 d e d c d es }
->
-
-chordstest =  \context Staff \notes <
-       \context Voice = i \relative c {
-               \stemUp e4 dis c f g f a b b
-       }
-       \context Voice = ii \relative c {
-               \stemDown <a4 c> <a4 c> <a4 e'> <a4 c> <e' a> <e a> <e a> <a c> <a d>
-       }
->
-
-hairyChord =  \context Staff \notes\relative c' <
-     \context Voice=one {
- \property Voice.NoteColumn \override #'horizontal-shift = #0
-       \stemUp 
-       e4 
-     }
-     
-     \context Voice=two {
-       \stemUp
- \property Voice.NoteColumn \override #'horizontal-shift = #1
-       cis
-     }
-     
-     \context Voice=three {
- \property Voice.NoteColumn \override #'horizontal-shift = #2
-
-       \stemUp 
-       ais
-     }
-     
-     \context Voice=four {
-        \stemDown
- \property Voice.NoteColumn \override #'horizontal-shift = #1
-
-       fis
-     }
->
-
-
-\score{
-       \notes \transpose c'' {  \twovoice  
-       \twovoicesteminvert 
-       \threevoice \break
-        \chordstest
-        \hairyChord
-       }
-       
-%      \midi { \tempo 4:80 }
-}
index fbb8855d0d6bf1df30c486b0c247ca2d64743df1..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,30 +0,0 @@
-\header{
-texidoc="
-Noteheads can have dots, and rests can too.  Augmentation dots should
-never be printed on a staff line, but rather be shifted vertically. They
-should go up, but in case of multiple parts, the down stems have down
-shifted dots.  (Wanske p. 186) In case of chords, all dots should be in
-a column.  The dots go along as rests are shifted to avoid collisions.
-";
-}
-
-
-\version "1.3.117";
-\score { 
-  \context Voice \notes\relative c'' {
-    \time 6/8;
-       d4. g,,
-       <b''4. c d e>  <f g a b>
-       <g b d> <c, g' d' a'>
-       
-       
-       \context Staff <
-               \context Voice = VA {  \stemUp   f''  <b c> r4.  }
-               \context Voice = VB {  \stemDown b, <a b> r4. }
-       >
-       
-       
-  }
-  \paper { }  
-  \midi { }
-}
index 31f5dc597b0f2d83500d9ce0cc6695b2ce764ab1..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,27 +0,0 @@
-\header{
-texidoc="
-Dynamics appear below or above the staff.  If multiple dynamics are
-linked with (de)crescendi, they should be on the same line.
-";
-}
-\score{
-\notes\relative c''{
-a1\fff\> \!c,,\pp a'' a\p
-
-
-% We need this to test if we get two Dynamic line spanners
-a
-
-% because do_removal_processing ()
-% doesn't seem to post_process elements
-d\f
-
-a
-
-}
-\paper{
-}
-\midi{
-\tempo 1 = 60;
-}
-}
index 26144d9121c716b9a00c82ae68027df15be5bf69..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,36 +0,0 @@
-\header{
-texidoc="
-Theads can be traced automagically when they switch staffs by setting
-property @code{followThread}.
-";
-}
-% followThread: connect note heads with line when thread switches staff 
-
-\score{
-    \context PianoStaff <
-        \context Staff=one \notes\relative c''{
-           \context Thread         
-            d,
-           \translator Staff=two
-           c
-%{
-           b
-           \translator Staff=one
-           a'
-
-           [c,8
-           \translator Staff=two
-           c]
-           s2.
-%}
-       }
-       \context Staff=two { \clef bass; \skip 1*2; }
-    >
-    \paper{
-        linewidth = 90.\mm;
-       \translator {
-           \ScoreContext
-           followThread = ##t
-       }
-    }
-}
index f3a558658691e4c1dbad1bc53c75a63eaaa29fe7..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,26 +0,0 @@
-\header{
-texidoc="
-As a last resort, the placement of grobs can be adjusted manually, by
-setting the @code{extra-offset} of a grob.
-";
-}
-
-\score{
-       \notes\relative c''{
-       \outputproperty #(make-type-checker 'note-head-interface) 
-               #'extra-offset = #'(2 . 3)
-       c2
-       c
-       \context Score {
-               \outputproperty #(make-type-checker 'mark-interface) 
-               #'extra-offset = #'(-1 . 4)
-       }
-       \mark A;
-       d1
-       \mark;
-       e
-}
-\paper{
-       linewidth=-1.0;
-}
-}
index c3cb0d25b1608350d86a5b93bdfe9e937407a96a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,17 +0,0 @@
-\header{
-texidoc="
-More specific settings take precendence over less specific settings. The
-second slur has slurDirection set to down, overriding the stemup  setting.
-";
-}
-\version "1.3.117";
-
-\score {
- \notes \relative c'' \context Voice {
-       \stemUp
-       c'4 () c4 
-       \slurDown
-       c4 ( )c4 
- }
- \paper { linewidth = -1.0; }
-}
index 115c5c2883eba0a5e78e8e9529f01efc402d8150..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,30 +0,0 @@
-\header{
-
-texidoc=" Simple glissando lines between notes are supported.
-The first two glissandi are not consecutive.
-
-The engraver does no time-keeping, so it involves some trickery to get
-< @{ s8 s8 s4 @} @{ c4 \\gliss d4 @} > working correctly.
-
-";
-}
-
-\score{
-        \context Staff=one \notes\relative c''{
-                    % gliss non gliss and 
-            c4 \glissando d e \glissando f \glissando \break
-            % consecutive 
-            c \glissando d \glissando e
-             < { \stemUp e8 \glissando g8 }
-               \context Voice = VB {\stemDown \repeat unfold 4 d16 } >
-            
-    }
-    \paper{
-        linewidth = 70.\mm;
-       \translator{
-              \StaffContext
-              % makes for handier debugging
-              % \remove Clef_engraver;
-       }
-    }
-}
index dbc42a872c6ff592be80af046a58eab731319855..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,30 +0,0 @@
-\header{
-texidoc="
-Grace notes are typeset as an encapsulated piece of music. You can
-have beams, notes, chords, stems etc. within a @code{\grace} section.
-Slurs that start within a grace section, but aren't ended are attached
-to the next normal note.  Grace notes have zero duration.  If there
-are tuplets, the grace notes won't be under the brace.  Grace notes
-can have accidentals, but they are (currently) spaced at a fixed
-distance.  Grace notes (of course) come before the accidentals of the
-main note.  Grace notes can also be positioned after the main note.
-
-Grace notes without beams should have a slash, if @code{flagStyle} is
-not set.  Main note scripts don't end up on the grace note.
-
-";
-}
-
-\score {\notes \context Voice = VA \relative c'' {
-       \grace b8 c4-\fermata
-       \grace { [c32 cis32] } gis4
-       \grace { [cis32 dis32] } e4
-       \grace { [c32 d] }\times 2/3 { [c8 c c] }
-        \grace { [b32 ( c32] } ) c4
-       \grace  <c16 d16> [c8 c8]
-%      \grace  c16 [c8 c8]
-       \grace  { \property Grace.graceAlignPosition = \right c16} c4
-}
-\paper {linewidth = -1.;}
-\midi{ }
-}
index 1cb4fdbeddf0d2a32c5c865bc1827d67a895a3bb..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,40 +0,0 @@
-\header{
-texidoc="
-Hara kiri staffs kill themselves if they are empty.  This example really
-contains two staffs, but the second contains only spaces, and is
-therefore removed.  Also, any staff brackets and braces are removed.
-";
-}
-
-\version "1.3.117";
-zager =  \context Staff = zager \notes \relative c'' {
-       \clef treble;
-       c1
-}
-
-zoger =  \context Staff = zoger \notes \relative c'' {
-       \clef treble;
-       \skip 1* 1;
-}
-
-zagers =  \context GrandStaff <
-       \zager
-       \zoger
->
-\score{
-       <
-               \context StaffGroup = zagers <
-                       \zagers
-               >
-       >
-       \paper{
-               linewidth = 80.0\mm;
-
-               \translator { \HaraKiriStaffContext }
-%uh?
-
-       }
-}
-
-
index 3013dd1ca4d8552dd9ce48348cdd202edd37ca83..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,26 +0,0 @@
-\header{
-texidoc="
-Key signatures appear on key  changes. They may also
-appear without barlines.  The restoration accidentals are not printed at
-the start of the line. If @code{createKeyOnClefChange} is set, they're
-also created on a clef change.
-";
-}
-
-\version "1.3.117";
-
-\score {
-  \notes \relative c''
-  {
-       \property Staff. createKeyOnClefChange = ##t  
-    \key bes \major; c2
-%    \key c \major; %  \minor;
-    \key es \major; %  \minor;
-    c2
-    \break
-    \key bes \major; % \major;
-    c2 \clef alto; c2   \key d \major; \clef treble; c2
-       \property Staff. keySignature = #'((2 . -1)  (6 . -1) (4 . -1))
-       e2
-  }
-}
index 1d67184f26e86e1f908a986f7173466f490aec7e..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,54 +0,0 @@
-\header{
-texidoc="
-Lyrics can be set to a melody automatically.  Excess lyrics will be
-dumped.  Lyrics will not be set over rests.  You can have melismata
-either by setting a property melismaBusy, or by setting
-automaticMelismas (which will set melismas during slurs and ties).  If
-you want a different order than first Music, then Lyrics, you must
-precook a chord of staffs/lyrics and label those.  Of course
-@code{\rhythm} ignores any other rhythms in the piece.  Hyphens and
-extenders do not assume anything about lyric lengths, so they continue
-to work.
-";
-
-
-filename =      "twinkle-pop.ly";
-xtitle =        "Ah, vous dirais-je, maman ";
-description =   "twinkle twinkle in pop-song-settings";
-composer =      "traditional";
-enteredby =     "HWN, chords by Johan Vromans";
-copyright =     "public domain";
-}
-
-\version "1.3.117";
-
-m = \notes  \relative c'' {
-       \property Staff.automaticMelismata = ##t
-       \autoBeamOff
-       g4  r8 \times 2/3 { g'8( f )e } r8 \grace { [d16 c b] } e4
-       \emptyText
-       d8.^"melisma"   \melisma c16
-       \melismaEnd
-       b }
-
-noisebeat = \notes \relative c'' {g16 g g g }
-noise =   { \noisebeat \noisebeat \noisebeat  \noisebeat \noisebeat \noisebeat }
-textI =   \lyrics  { la2 __ la -- la __ la la la la la  }
-textII =   \lyrics  { da -- da __ da -- da da da da da  }
-
-\score {
-    \notes < \context Staff = SA \m
-      \context Lyrics = LA { s1 }
-      \context Staff = SB { s1 }
-      \context Lyrics = LB { s1 }
-      \context Staff = SC \noise
-      
-      \addlyrics
-         \context Staff = SB \m
-         < \context Lyrics = LA \textI
-           \context Lyrics = LB \textII
-         >
-         
-    >
-}
-
index ec0309b3221556affad21dda2e0a2252dc9aef45..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,39 +0,0 @@
-\header{
-texidoc="
-Adding a @code{Bar_engraver} to the LyricsVoice context makes sure that
-lyrics don't collide with barlines.
-";
-}
-
-\score {
-       \context StaffGroup <
-       \notes \context Staff {
-               b1 b1 \bar "|.";
-       }
-       \lyrics\context Lyrics <
-               \context LyricsVoiceWithBars {
-%                      thisContextHasSpanBarEngraver1  added
-                       ThisContextCertainlyHasSpanBarEngraverAddedButTheresSomethingFunny1.  Here.
-               }
-               \context LyricsVoice {
-                       this4 one has no SpanBarEngraverAddedToContext1
-               }
-       >
-       \notes \context Staff = SB { b1 b1 }
-       >
-       \paper {
-               linewidth = -1.0\cm;
-               \translator {
-                       \LyricsContext
-                       \consists "Span_bar_engraver";
-                       \accepts "LyricsVoiceWithBars";
-               }
-               \translator {
-                       \LyricsVoiceContext
-                       \name "LyricsVoiceWithBars";
-               }
-               \translator {
-                       \LyricsVoiceContext
-               }
-       }
-}
index a7dee3a6a4bd0ae912f0c7a9d16c7b382684cd6a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,154 +0,0 @@
-
-\version "1.3.117";
-\include "english.ly"
-
-\header{
-texidoc="
-Multiple stanzas
-
- Tests a number of features:
- * Lyric_phrasing_engraver
- * Stanza_number_engraver
- * Automatic melismata on beamed notes
-
-";
-
-    title = "Crowned with Honour";
-    composer = "Oliver Holden (1765-1844)";
-    poet = "Thomas Kelly (1769-1855)";
-}
-
-allup =  \notes{
-       \stemUp
-       \slurUp
-        \tieUp
-       \property Voice.DynamicLineSpanner \override #'direction = #1
-       \autoBeamOff
-}
-
-alldown =  \notes{
-       \stemDown
-       \slurDown
-        \tieDown
-       \property Voice.DynamicLineSpanner \override #'direction = #-1
-       \autoBeamOff
-}
-
-Global =   \notes{
-        \key g \major;
-        \time 4/4;
-       \partial 4;
-}
-
-Soprano =  \notes \relative c' {
-       \allup
-       d4 | g g b b a g a b a g b a g( a )g % modified to test melisma align right
-
-       [a8 b] | b4 % modified to test melisma align left
-        a g b [d16 d c8] [b a] b4 % modified to test beam melisma
-%      a4 | b a g b [d8 \melisma c] \melismaEnd [b \melisma a] \melismaEnd b4
-
-       d d2 d e d4( cs8 ~ )cs d2.
-
-       b4 | d b g b [a8  g]  [a b]  a4
-%      b4 | d b g b [a8 \melisma g] \melismaEnd [a \melisma b] \melismaEnd a4
-
-       g d'2 c b4.( c8 )a4 a g2.
-}
-Alto =  \notes \relative c'{
-       \alldown
-       d4 | d d g g fs g fs g fs e g fs d2.
-       d4 | g d b g' [b8 a] [g fs] g4 fs g2 a g fs4( e8 )g fs2.
-       d4 | g g d g [fs8 e] [fs g] fs4 g f2 e d4.( d8 )d4 fs4 d2.
-}
-Tenor =  \notes \relative c{
-       \allup
-       d4 | b' b d d c  b c  d c  b d c  b2.
-       a4 | b a g b  [d8 c] [b a] b4 a  b2 c b  a   a2.
-       g4 | b d b d [c8  b] [c  d]  c4 b g2 g g4.( a8 [fs )a] c4 b2.
-}
-Bass =  \notes \relative c{
-       \alldown
-       d4 | g g g g d d d g d e d d g,2.
-       d'4 | g d b g' [b8 a] [g fs] g4 d g2 fs e a d,2.
-       g4 | g g g g d d d e b2 c d2. d4 g,2.
-}
-
-TheLyrics =   \lyrics <
-        {
-           \context LyricsVoice = "Soprano-1"
-           \property LyricsVoice .stanza = "1:"
-           \property LyricsVoice .stz = "(1)"
-                The4 head    that once was crowned with thorns
-                Is   crowned with glo -- ry  now;
-                A roy -- al di -- a -- dem a -- dorns
-                The might -- y Vic -- tor's  brow.
-                A roy -- al di -- a -- dem a -- dorns
-                The might -- y Vic -- tor's  brow.
-        }
-        {
-           \context LyricsVoice = "Soprano-2"
-           \property LyricsVoice .stanza = "2:"
-           \property LyricsVoice .stz = "(2)"
-                The4 high -- est place that heav'n af -- fords
-                Is His by sov -- 'reign  right;
-                The King of kings, the Lord of lords,
-                He reigns in glo -- ry  bright,
-                The King of kings, the Lord of lords, 
-                He reigns in glo -- ry  bright.
-        }
-        {
-           \context LyricsVoice = "Soprano-3"
-           \property LyricsVoice .stanza = "3:"
-           \property LyricsVoice .stz = "(3)"
-                The joy of all who dwell a -- bove,
-                The joy of saints be --  low,
-                To4 whom He man -- i -- fests His love,
-                And grants His name to  know,
-                To4 whom He man -- i -- fests His love,
-                And grants His name to4  know.
-        }
->
-
-
-\score{
-  \context ChoirStaff
-    \notes
-    <
-      \property Score.barNumberScriptPadding = #10.0
-      \context Staff = "treblestaff"{
-        <
-         \context Voice = "Soprano" { }
-         \context Voice = "Alto" { }
-        >
-      }
-      \context Lyrics = mainlyrics { }
-      \context Staff = "treblestaff"{
-       <
-         \Global
-         \addlyrics { \context Voice = "Soprano" \Soprano }
-           { \context Lyrics = mainlyrics \TheLyrics }
-         \context Voice = "Alto"  \Alto
-        >
-       \bar "|.";
-      }
-      \context Staff = "bassstaff"{
-        \clef "bass";
-       <
-         \context Voice = "Tenor" { \Tenor }
-         \context Voice = "Bass"  { \Bass }
-       >
-        \bar "|.";
-      }
-    >
-
-   \paper {
-      \translator{
-       \VoiceContext
-       automaticMelismata = ##t;
-       noAutoBeaming = ##t;
-        \remove   "Auto_beam_engraver";
-      }
-
-   }
-}
index 3d0ca2068f08dbe99fae786842979f95fbc767aa..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,32 +0,0 @@
-
-\version "1.3.117";
-
-% Test scm markup text and kerning
-
-% Warning
-%  
-% This is not a feature, it is a hack.  If you change anything,
-% it will probably break (that's because scm markup text is a
-% bit broken and needs fixing).  Chances are, it's already
-% broken by the time you read this.  Don't complain.
-%
-% FIXME: put in an item, and typeset by an engraver.
-
-#(define note '(rows (music "noteheads-2" ((kern . -0.1) "flags-stem"))))
-#(define eight-note `(rows ,note ((kern . -0.1) (music ((raise . 3.5) "flags-u3")))))
-#(define dotted-eight-note `(rows ,eight-note (music "dots-dot")))
-
-
-\score{
-       \notes\relative c''{
-               a1-#`(rows ,dotted-eight-note " = 64")
-               }
-       \paper{
-               linewidth = -1.\mm;
-               \translator{
-                       \ScoreContext
-                       TextScript \override #'font-shape = #'upright
-                       TextScript \override #'direction = #1
-               }
-       }
-}
index c801ec4c67dab4f00db102e5e6d173ff6462a959..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,30 +0,0 @@
-\header{
-texidoc="
-If @code{Score.skipBars} is set,
-the signs for four, two, and one measure rest are combined to
-produce the graphical representation of rests for up to 10 bars.
-The number of bars will be written above the sign.
-";
-}
-
-thenotes = \notes \relative cis' {
-\property Score. skipBars = ##t
-\time 4/4;
-R1 |
-R1*1 |
-R1*2 |
-R1*3 |
-R1*4 |
-R1*5 |
-R1*6 |
-R1*7 |
-R1*8 |
-R1*9 |
-R1*10 |
-R1*11 |
-}
-
-\score { < \context Staff \thenotes
-
-       >
-}
index 49a9ce9f4f16d25f2bcb034ebef287a053cfde75..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,73 +0,0 @@
-
-\header { texidoc=" You can write molecule callbacks in Scheme, thus
-providing custom glyphs for notation elements.  A simple example is
-adding parentheses to existing molecule callbacks.
-
-The parenthesized beam is less successful due to implementation of the
-Beam. The note head is also rather naive, since the extent of the
-parens are also not seen by accidentals.
-";
-       
-        }
-
-#(define (parenthesize-callback callback)
-   "Construct a function that will do CALLBACK and add parentheses.
-Example usage:
-
-  \property Voice.NoteHead \\override #'molecule-callback
-                     =
-                     #(parenthesize-callback Note_head::brew_molecule)
-                   
-"
-
-   
-   (define (parenthesize-molecule grob)
-     "This function adds parentheses to the original callback for
-GROB.  The dimensions of the molecule is not affected.
-"
-     
-     (let* (
-           (fn (ly-get-default-font grob))
-           (pclose (ly-find-glyph-by-name fn "accidentals-)"))
-           (popen (ly-find-glyph-by-name fn "accidentals-("))
-           (subject (callback grob))
-
-           ;; remember old size
-           (subject-dims (ly-get-molecule-extent subject 0))
-           )
-
-       ;; add parens
-        (set! subject
-            (ly-combine-molecule-at-edge 
-             (ly-combine-molecule-at-edge subject 0 1 pclose 0.2)
-             0 -1 popen  0.2))
-
-       ;; revert old size.
-       (ly-set-molecule-extent! subject 0 subject-dims)
-       subject
-    )
-     )
-   parenthesize-molecule
-   )
-    
-
-
-\score {
-       \notes \relative c' { c4 e
-
-                   \property Voice.NoteHead \override #'molecule-callback
-                     =
-                     #(parenthesize-callback Note_head::brew_molecule)
-                   g bes
-                   \property Voice.NoteHead \revert #'molecule-callback
-                   \property Voice.Beam \override #'molecule-callback
-                     =
-                     #(parenthesize-callback Beam::brew_molecule)
-
-                   a8 gis8 a2.
-                   
-                   }
-
-       \paper { linewidth = -1.; }
-       }
-
index 01732e4e887d8f3fd18b43df52607ad2a730e3be..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,20 +0,0 @@
-\header{
-texidoc="
-Multiple measure rests do not collide with barlines and clefs.  They
-are not expanded when you set @code{Score.skipBars}.  Although the
-multi-measure-rest is a Spanner, minimum distances are set to keep it
-colliding from barlines. 
-";
-}
-\version "1.3.117";
-
-\score { \notes { \time 3/4; \key cis \major;
-           R2.*15 R2. R2.*7 }
-       \paper {
-       \translator {
-               \ScoreContext
-               skipBars = ##t
-       }
-       linewidth = -1.;        
-       }
-}
index e0f2144ef4dfd0c1754d562e738afd275a4c6988..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,31 +0,0 @@
-\header {
-texidoc="
-Simple customised music apply.
-";
-}
-       
-music = \notes { c'4 d'4( e'4 f'4 }
-
-#(define (reverse-music music)
-  (let* ((elements (ly-get-mus-property music 'elements))
-        (reversed (reverse elements))
-        (span-dir (ly-get-mus-property music 'span-direction)))
-    
-    (ly-set-mus-property music 'elements reversed)
-    
-    (if (dir? span-dir)
-       (ly-set-mus-property music 'span-direction (- span-dir)))
-    
-    (map reverse-music reversed)
-    
-    music))
-
-\score {
-  \context Voice {
-    \music
-    \apply #reverse-music \music
-  }
-  \paper {
-    linewidth = -1.;
-  }
-}
index 1d445c81fb8c9dac9b88764d082c2c8fdfe9f90c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,15 +0,0 @@
-\header{
-texidoc="
-Text is set with empty horizontal dimensions.  The boolean property
-textNonEmpty is used to respect the horizontal size of text.
-";
-}
-\score { \notes {
-\property Voice.TextScript \override #'no-spacing-rods = ##f
-c4_"very wide and long text" c4
-}
-
-\paper {
-  linewidth  = -1.0;
-  }
-}
index c59f40c073fc3a5ec266938a6dddd316fd869c57..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,63 +0,0 @@
-\header{
-texidoc="
-Note head shapes are settable.  The stem endings should be adjusted
-per note head.  If you want different note head styles on one stem,
-you must create a special context called Thread.
-
-Harmonic notes have a different shape and different
-dimensions. Nevertheless, noteheads in both styles can be combined, on
-either up or down stems.
-";
-}
-
-\version "1.3.117";
-
-
-\score { \notes \relative c{
-% anyone wanna pop?
-c''4 c2 c8  c16 c16 c1 c\breve
-\property Voice.NoteHead \override #'style = #'diamond
-c4 c2 c8  c16 c16  c1 c\breve
-\property Voice.NoteHead \override #'style = #'transparent
-c4 c2 c8  c16 c16  c1 c\breve
-\property Voice.NoteHead \override #'style = #'cross
-c4 c2 c8  c16 c16  c1 c\breve
-\property Voice.NoteHead \override #'style = #'mensural
-c4 c2 c8  c16 c16  c1 c\breve c\longa
-\property Voice.NoteHead \override #'style = #'harmonic
-c4 c2 c8  c16 c16  c1 c\breve
-\property Voice.NoteHead \override #'style = #'baroque
-c4 c2 c8  c16 c16  c1 c\breve c\longa
-
-
-   \context Voice <
-    \context Thread = TA
-      {
-        \property Thread.NoteHead \override #'style = #'cross
-        \property Voice.Stem \override #'direction = #1
-        c16
-       }
-    \context Thread = TB
-      { \property Thread.NoteHead \override #'style = #'default a16  }
-
-    \context Thread = TC
-      { \property Thread.NoteHead \override #'style = #'mensural d16 }
-
-  >
-
-
-   \context Voice <\context Thread = TA {
-   \property Thread.NoteHead \override #'style = #'default
-   c4 c4 }
-\context Thread = TB {
-   \property Thread.NoteHead \override #'style = #'mensural
-  c'4 \stemDown c
-} >
-
-}
-
-    \paper {
-
-
-}
-}
index 5494d66c52951d63681047077ebf5b08dcf8e823..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,19 +0,0 @@
-\header{
-
-texidoc=" The number of stafflines of a staff can be set.  Ledger
-lines both on note heads and rests are adjusted.  Barlines also are
-adjusted.  ";
-
-}
-
-\score { 
-\context Voice \notes\relative c {
-       c' c c c | g' g g g     
-  }
-  \paper {
-
-\translator { \StaffContext
-StaffSymbol \override #'line-count = #3
-}  }
-  \midi { }
-}
index 1e595dca672165bb80c35de6923f230197f9e015..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,19 +0,0 @@
-\header{
-texidoc="
-Slurs can be forced to always attach to note heads.
-";
-}
-
-
-\score{
-       \notes \relative c''{
-               \property Voice.VerticalDirection = #1
-               \property Voice.slurBeginAttachment = #'head
-               \property Voice.slurEndAttachment = #'head
-               g16()g()g()g()d'()d()d()d
-       }
-       \paper{
-               indent = 0.0;
-               linewidth = 60.0\mm;
-       }
-}
index 99160b7dd148990464765faead1f3fc4393ccec6..be3360d573eea63b9407e2069548f06e87bf05a8 100644 (file)
@@ -77,7 +77,8 @@ c1 | c2 c | c c | R1*5
       \m
     >
     \context Staff = vlc <
-      \property Staff.instrument = "Violoncello"
+      %% \property Staff.instrument = "Violoncello"
+      \property StaffCombineStaff.instrument = #'(lines "Violoncello" "e" "Contrabasso")
       \property Staff.instr = "Vlc"
       \m
     >
@@ -93,8 +94,12 @@ c1 | c2 c | c c | R1*5
     linewidth = 185.\mm;
     textheight = 260.\mm;
     \translator {
-       \OrchestralScoreContext
-%      barNumberScriptPadding = 10;
+      \OrchestralScoreContext
+      skipBars = ##t 
+      markScriptPadding = #4.0
+      BarNumber \override $'padding = #3
+      RestCollision \override #'maximum-rest-count = #1
+      marginScriptHorizontalAlignment = #1
     }
     \translator { \HaraKiriStaffContext
     }
index b4b0cfa9a01bfbd896f1f3c427ff444485d1bfac..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,22 +0,0 @@
-
-\version "1.3.117";
-
-\score{
-    \notes\relative c'''{
-        \property Voice.TextSpanner \revert #'type
-        \property Voice.TextSpanner \override #'type = #'dotted-line
-        \property Voice.TextSpanner \override #'edge-height = #'(0 . 1.5)
-        \property Voice.TextSpanner \override #'edge-text = #'("8va " . "")
-        \property Staff.centralCPosition = #-13
-
-        a\spanrequest \start "text" b c a \spanrequest \stop "text"
-
-        \property Staff.centralCPosition = #-6
-       a b c a
-
-        \property Staff.centralCPosition = #1
-        \property Voice.TextSpanner \override #'edge-text = #'("8bass " . "")
-        \property Voice.TextSpanner \override #'direction = #-1
-        a\spanrequest \start "text" b c a \spanrequest \stop "text"
-    }
-}
index ba9999d04a812d381873cd3cb8d8d935bc17da7b..591343f6e093c1eec4d95759bb1903bbdffa8d84 100644 (file)
+\header {
+texidoc="Template for part-combining orchestral scores";
+}
+  
+\include "paper16.ly"; 
+% \include "mutopia/Coriolan/coriolan-paper.ly";
+
+
+
+flautoI = \notes\relative c'' {
+  c4 d e f
+  b,4 d c d
+  r2 e4 f
+  \break
+  c4 d e f
+  c4 r e f
+  c4 r e f
+  \break
+  c4 r a r
+  a a r a
+  a2 \property VoiceCombineThread.soloADue = ##f a
+}
+
+flautoII = \notes\relative c'' {
+  g4 b d f
+  r2 c4 d
+  a c c d
+  a4. b8 c4 d
+  c r e r
+  r2 s2
+  a,4 r a r
+  a r r a
+  a2 \property VoiceCombineThread.soloADue = ##f a
+}
+          
+flautiStaff =  \notes \context VoiceCombineStaff = flauti <
+  \property VoiceCombineStaff.midiInstrument = #"flute"
+  \property VoiceCombineStaff.instrument = #"2 Flauti"
+  \property VoiceCombineStaff.instr = #"Fl."
+  %\global
+  \context VoiceCombineVoice=one \partcombine VoiceCombineVoice
+    \context VoiceCombineThread=one \flautoI
+    \context VoiceCombineThread=two \flautoII
+>
+
+legniGroup =  \context StaffGroup = legni_group <
+  \flautiStaff
+  %\oboiStaff
+  %\clarinettiStaff
+  %\fagottiStaff
+>
+
+violinoI = \notes\relative c'' {
+  c4 d e f
+  c d e f
+  c d e f
+  c d e f
+  c d e f
+  c d e f
+  c4 d e f
+  a8 a a a b b b b
+  d1
+}      
+
+violinoII = \notes\relative c'' { 
+  c4 d e f
+  c d e f
+  c d e f
+  c2 e2
+  c4 d e f
+  c2 e2
+  c,4 d e f
+  a8 a a a b b b b
+  b1
+}
+
+violinoIStaff =  \context Staff = violino1 <
+  \property Staff.midiInstrument = #"violin"
+  \property Staff.instrument = #"Violino I"
+  \property Staff.instr = #"Vl. I"
+  \notes< 
+    %\global
+    \context Voice=violinoi
+      \violinoI
+  >
+>
+
+violinoIIStaff =  \context Staff = violino2 <
+  % MIDI hoort geeneens verschil tussen een
+  % eerste en tweede viool ;-)
+  \property Staff.midiInstrument = #"violin"
+  \property Staff.instrument = #"Violino II"
+  \property Staff.instr = #"Vl. II"
+  \notes< 
+    %\global
+    \context Voice=violinoii
+      \violinoII
+  >
+>
+
+violaI = \notes\transpose c, \violinoI
+
+violaII = \notes\transpose c, \violinoII
+
+violiGroup =  \notes \context VoiceCombineStaff = violi <
+  \context VoiceCombineStaff=violi {
+    \property VoiceCombineStaff.midiInstrument = #"viola"
+    \property VoiceCombineStaff.instrument = #"Viola"
+    \property VoiceCombineStaff.instr = #"Vla."
+    \clef "alto"; 
+    \key es \major;
+    \skip 1*314; 
+    \bar "|."; 
+  }
+  \context VoiceCombineVoice=one \partcombine VoiceCombineVoice
+    \context VoiceCombineThread=one \violaI
+    \context VoiceCombineThread=two \violaII
+>
+
+violoncello = \notes\relative c {
+  \clef bass;
+  c1 d e f c d e f c
+}
+
+contrabasso = \notes\relative c {
+  \clef bass;
+  c1
+  d4 e d e
+  e1
+  f4 g f g
+  c1
+  d4 e d e
+  e1
+  f4 g f g
+  c1
+}
+
+
+bassiGroup =  \context PianoStaff = bassi_group \notes <
+  \context StaffCombineStaff=oneBassi {
+    \property StaffCombineStaff.midiInstrument = #"cello"
+    %\property StaffCombineStaff.instrument = #"Violoncello\ne\nContrabasso"
+    \property StaffCombineStaff.instrument = #'(lines "Violoncello" "e" "Contrabasso")
+    \property StaffCombineStaff.instr = #"Vc."
+    \clef "bass"; 
+    \key es \major;
+    \skip 1*314; 
+    \bar "|."; 
+  }
+  \context StaffCombineStaff=twoBassi {
+    \property StaffCombineStaff.midiInstrument = #"contrabass"
+    \property StaffCombineStaff.instrument = #"Contrabasso"
+    \property StaffCombineStaff.instr = #"Cb."
+    \clef "bass"; 
+    \key es \major;
+    \skip 1*314; 
+    \bar "|."; 
+  }
+
+  \context StaffCombineStaff=oneBassi \partcombine StaffCombineStaff
+    \context StaffCombineVoice=oneBassi \violoncello
+    \context StaffCombineVoice=twoBassi \contrabasso
+>
+
+
+violiniGroup =  \context GrandStaff = violini_group <
+  \violinoIStaff
+  \violinoIIStaff
+>
+
+archiGroup =  \context StaffGroup = archi_group <
+  \violiniGroup
+  \violiGroup
+  \bassiGroup
+>
+
+
 \score{
-       <
-       \context VoiceCombineStaff = flauti <
-               \time 4/4;
-
-               \context VoiceCombineThread=one \skip 1*9;
-               \context VoiceCombineThread=two \skip 1*9;
-
-               \context VoiceCombineVoice=one \partcombine VoiceCombineVoice
-                       \context VoiceCombineThread=one \notes\relative c''
-                               {
-                                       c4 d e f
-                                       b,4 d c d
-                                       r2 e4 f
-                                       \break
-                                       c4 d e f
-                                       c4 r e f
-                                       c4 r e f
-                                       \break
-                                       c4 r a r
-                                       a a r a
-                                       a2 \property VoiceCombineThread.soloADue = ##f a
-                               }
-                       \context VoiceCombineThread=two \notes\relative c''
-                               {
-                                       g4 b d f
-                                       r2 c4 d
-                                       a c c d
-                                       a4. b8 c4 d
-                                       c r e r
-                                       r2 s2
-                                       a,4 r a r
-                                       a r r a
-                                       a2 \property VoiceCombineThread.soloADue = ##f a
-                               }
-               >
-       \context PianoStaff = violi <
-               \context StaffCombineStaff=oneVioli { \clef alto; \skip 1*9;}
-               \context StaffCombineStaff=twoVioli { \clef alto; \skip 1*9;}
-               \context StaffCombineStaff=oneVioli \partcombine StaffCombineStaff
-                       \context StaffCombineVoice=one \notes\relative c'
-                               {
-                                       c4 d e f
-                                       c d e f
-                                       c d e f
-                                       c d e f
-                                       c d e f
-                                       c d e f
-                                       c4 d e f
-                                       a8 a a a b b b b
-                                       d1
-                               }
-                       \context StaffCombineVoice=two \notes\relative c'
-                               {
-                                       c4 d e f
-                                       c d e f
-                                       c d e f
-                                       c2 e2
-                                       c4 d e f
-                                       c2 e2
-                                       c,4 d e f
-                                       a8 a a a b b b b
-                                       b1
-                               }
-               >
-       \context PianoStaff = lower <
-               \context StaffCombineStaff=oneBassi { \clef bass; \skip 1*9;}
-               \context StaffCombineStaff=twoBassi { \clef bass; \skip 1*9;}
-               \context StaffCombineStaff=oneBassi \partcombine StaffCombineStaff
-                       \context StaffCombineVoice=oneB \notes\relative c
-                               {
-                                       \clef bass;
-                                       c1
-                                       d
-                                       e
-                                       f
-                                       c
-                                       d
-                                       e
-                                       f
-                                       c
-                               }
-                       \context StaffCombineVoice=twoB \notes\relative c
-                               {
-                                       \clef bass;
-                                       c1
-                                       d4 e d e
-                                       e1
-                                       f4 g f g
-                                       c1
-                                       d4 e d e
-                                       e
-                                       f4 g f g
-                                       c1
-                               }
-               >
-       >
-       \paper {
-
-               textheight = 295.0\mm;
-               linewidth = 180.0\mm;
-
-               \translator{ \HaraKiriStaffContext }
-               %
-               % The Voice combine hierarchy
-               %
-               \translator{
-                       \ThreadContext
-                       \name "VoiceCombineThread";
-                       \consists "Rest_engraver";
-               }
-               \translator{
-                       \VoiceContext
-                       \name "VoiceCombineVoice";
-                       soloText = #"I."
-                       soloIIText = #"II."
-                       \remove "Rest_engraver";
-                       \accepts "VoiceCombineThread";
-               }
-               \translator{
-                       \HaraKiriStaffContext
-                       \consists "Mark_engraver";
-                       \name "VoiceCombineStaff";
-                       \accepts "VoiceCombineVoice";
-               }
-
-               %
-               % The Staff combine hierarchy
-               %
-               \translator{
-                       \ThreadContext
-                       \name "StaffCombineThread";
-               }
-               \translator{
-                       \VoiceContext
-                       \name "StaffCombineVoice";
-                       \accepts "StaffCombineThread";
-                       \consists "Thread_devnull_engraver";
-               }
-               \translator {
-                       \HaraKiriStaffContext
-                       \name "StaffCombineStaff";
-                       \accepts "StaffCombineVoice";
-
-                       soloADue = ##t
-                       soloText = #""
-                       soloIIText = #""
-                       aDueText = #""
-                       splitInterval = #'(1 . 0)
-               }
-               \translator {
-                       \StaffGroupContext
-                       \accepts "VoiceCombineStaff";
-                       \accepts "StaffCombineStaff";
-               }
-               \translator{ \HaraKiriStaffContext }
-
-               \translator {
-                       \ScoreContext
-                       \accepts "VoiceCombineStaff";
-                       \accepts "StaffCombineStaff";
-                       skipBars = ##t 
-
-                       barScriptPadding = #2.0 % dimension \pt
-                       markScriptPadding = #4.0
-
-                       %% urg: in pt?
-                       barNumberScriptPadding = #15
-                       %% URG: this changes dynamics too
-                       %%textStyle = #"italic"
-                       timeSignatureStyle = #"C"
-                       maximumRestCount = #1
-               }
-       }
-       \midi{ 
-               \tempo 4 = 150; 
-
-               \translator {
-                       \ThreadContext
-                       \name "VoiceCombineThread";
-               }
-               \translator {
-                       \VoiceContext
-                       \name "VoiceCombineVoice";
-                       \accepts "VoiceCombineThread";
-               }
-               \translator {
-                       \StaffContext
-                       \name "VoiceCombineStaff";
-                       \accepts "VoiceCombineVoice";
-               }
-
-               \translator {
-                       \ThreadContext
-                       \name "StaffCombineThread";
-               }
-               \translator {
-                       \VoiceContext
-                       \name "StaffCombineVoice";
-                       \accepts "StaffCombineThread";
-               }
-               \translator {
-                       \StaffContext
-                       \name "StaffCombineStaff";
-                       \accepts "StaffCombineVoice";
-               }
-               \translator {
-                       \ScoreContext
-                       \accepts "VoiceCombineStaff";
-                       \accepts "StaffCombineStaff";
-               }
-       }
+  <
+    \legniGroup
+    %\ottoniGroup
+    %\timpaniGroup
+    \archiGroup
+  >
+  \header {
+    title = "Coriolan";
+    subtitle = "Ouverture"; 
+    opus = "Opus 62";
+    composer = "Ludwig van Beethoven (1770-1827)";
+    enteredby = "JCN";
+    copyright = "public domain";
+  }
+  %\paper {}
+  \paper{
+    \paperSixteen
+
+    %textheight = 290.0\mm;
+    %linewidth = 195.0\mm;
+    textheight = 285.0\mm;
+    linewidth = 190.0\mm;
+
+    \translator{ \HaraKiriStaffContext }
+    %
+    % The Voice combine hierarchy
+    %
+    \translator{
+      \ThreadContext
+      \name "VoiceCombineThread";
+      \consists "Rest_engraver";
+    }
+    \translator{
+      \VoiceContext
+      \name "VoiceCombineVoice";
+      soloText = #"I."
+      soloIIText = #"II."
+      \remove "Rest_engraver";
+      \accepts "VoiceCombineThread";
+    }
+    \translator{
+      \HaraKiriStaffContext
+      \consists "Mark_engraver";
+      \name "VoiceCombineStaff";
+      \accepts "VoiceCombineVoice";
+    }
+
+    %
+    % The Staff combine hierarchy
+    %
+    \translator{
+      \ThreadContext
+      \name "StaffCombineThread";
+    }
+    \translator{
+      \VoiceContext
+      \name "StaffCombineVoice";
+      \accepts "StaffCombineThread";
+      \consists "Thread_devnull_engraver";
+    }
+    \translator {
+      \HaraKiriStaffContext
+      \name "StaffCombineStaff";
+      \accepts "StaffCombineVoice";
+
+      soloADue = ##t
+      soloText = #""
+      soloIIText = #""
+      % This is non-conventional, but currently it is
+      % the only way to tell the difference.
+      aDueText = #"\\`a2"
+      splitInterval = #'(1 . 0)
+      changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1))
+    }
+    \translator {
+      \StaffGroupContext
+      \accepts "VoiceCombineStaff";
+      \accepts "StaffCombineStaff";
+    }
+    \translator{ \HaraKiriStaffContext }
+
+    \translator {
+      %\ScoreContext
+      \OrchestralScoreContext
+      \accepts "VoiceCombineStaff";
+      \accepts "StaffCombineStaff";
+      skipBars = ##t 
+
+      markScriptPadding = #4.0
+
+      BarNumber \override #'padding = #3
+      RestCollision \override #'maximum-rest-count = #1
+    }
+  }
 }
index d710038cde3b9c4351edb72ff6ecbec353e28f23..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,51 +0,0 @@
-\header{
-texidoc="
-In orchestral scores and hymns, voices are traditionally combined onto
-one staff.  LilyPond has a part combiner, that combines or separates two
-voices according to actual rhythm and pitch.  User-defined texts such as
-``solo'' and ``@`a2'' are typeset automagically, as appropriate.
-";
-}
-
-\score{
-       \context Staff = flauti <
-               \time 4/4;
-
-               \context Voice=one \partcombine Voice
-                       \context Thread=one \notes\relative c''
-                               {
-                                       c4 d e f
-                                       b,4 d c d
-                                       r2 e4 f
-                                       c4 d e f
-                                       c4 r e f
-                                       c4 r e f
-                                       c4 r a r
-                                       a a r a
-                                       a2 \property Voice.soloADue = ##f a
-                               }
-                       \context Thread=two \notes\relative c''
-                               {
-                                       g4 b d f
-                                       r2 c4 d
-                                       a c c d
-                                       a4. b8 c4 d
-                                       c r e r
-                                       r2 s2
-                                       a,4 r a r
-                                       a r r a
-                                       a2 \property Voice.soloADue = ##f a
-                               }
-               >
-       \paper{
-               linewidth = 140.\mm;
-               \translator{
-                       \ThreadContext
-                       \consists Rest_engraver;
-               }
-               \translator{
-                       \VoiceContext
-                       \remove Rest_engraver;
-               }
-       }
-}
index 28313665a578ca250cb005647f9245c3c4794ae1..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,14 +0,0 @@
-\header{
-texidoc="
-Folded.  This doesn't make sense without alternatives, but it works.
-";
-}
-
-\score { \notes\context Staff\relative c'' {
-\repeat fold 3 { c^"3$\\times$ 0alt" d }
-% less alts than body
-\repeat fold 4 { c^"4$\\times$ 2alt" d } \alternative { e f }
-% more alts than body
-\repeat fold 2 { c^"2$\\times$ 3alt" d } \alternative { e f g } 
-}}
-
index ae6a06de0d8ab8ef81ad780ac23215944f1761f3..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,16 +0,0 @@
-\header{
-texidoc="
-Across linebreaks, the left edge of a first and second alternative
-bracket should be equal
-";
-}
-
-\score  {
-\notes
-\context Staff\relative c''  {
-       \repeat "volta" 2 { c1 \break } \alternative { d e }
-       c1
-       \repeat "volta" 2 { c1 } \alternative { { d \break}  e }
-
-}
-}
index cb965c1610cfecf9985c7cd924cbe4bf00ce7e7a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,25 +0,0 @@
-\header{
-texidoc="
-LilyPond has three modes for repeats: folded, unfolded and
-semi-unfolded.  Unfolded repeats are fully written out. Semi unfolded
-repeats have the body written and all alternatives sequentially.
-Folded repeats have the body written and all alternatives
-simultaneo.ly.  If the number of alternatives is larger than the
-repeat count, the excess alternatives are ignored.  If the number of
-alternatives is smaller, the first alternative is multiplied to get to
-the number of repeats.
-
-Unfolded behavior:
-";
-}
-
-\score {
-
-  \context Voice \notes\relative c'' {
-\repeat unfold 3 { c^"3x 0a" d }
-% less alts than body
-\repeat unfold 4 { c^"4x 0a" d } \alternative { e f }
-% more alts than body
-\repeat unfold 2 { c^"2x 3a" d } \alternative { e f g } 
-}}
-
index 634ba4dadd70b0efe20d90fcf5642310e34ac0ee..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,25 +0,0 @@
-\header{
-texidoc="
-Volta (Semi folded) behavior.  Voltas can start on non-barline moments.
-If they don't barlines should still be shown.
-";
-}
-
-%  no alts.
-\score { \notes
-  \relative c'' {
-% repeat non aligning with barlines.
-e
-\repeat volta 3 { c^"3$\\times$ 0alt" d e }
-% less alts than body
-\repeat volta 4 { c^"4$\\times$ 2alt" d } \alternative { e f }
-
-% more alts than body
-\repeat volta 2 { c^"2$\\times$ 3alt" d } \alternative { e f g } 
-}
-
-       \midi{}
-       \paper{}
-
-}
-
index 276afa516aee62725c1381314294488a2922714a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,61 +0,0 @@
-\header{
-texidoc="
-Rests should not collide with beams, stems and noteheads.  Rests may
-be under beams.  Rests should be move by integral number of spaces
-inside the staff, and by half spaces outside.  Notice that the half
-and whole rests just outside the staff get ledger lines in different
-cases.
-";
-}
-
-scale =  \notes \relative c' {
-  c8 d e f g a b c c d e f g a b c
-
-}
-rests =  \notes             {
-  r r r  r r r r r r r r r r r r r
-} 
-different = < \context Voice = one {
-      \stemUp
-      \notes \relative c'' {
-        r8 a e4 a e
-      }
-    }
-    \context Voice = two {
-      \stemDown
-      \notes \relative c'' {
-        r1
-      }} >
-
-scales =  \context Staff \notes <
-       \context Voice=i { \stemUp r1 r2 r2   \scale    c''1 c'2 a'2 \rests  }
-       \context Voice = ii { \stemDown a'1 a'2 d'2 \rests r1 r2 r2  \scale }
->
-
-restsII =  \context Staff \notes {
-       r4 r8
-       \context Staff < { \stemUp r8 } { \stemDown r8} >
-       \context Staff < {\stemUp r8} r8 { \stemDown r8} >
-       \context Staff < {\stemUp r8} r8 r8 { \stemDown r8} >
-       \context Staff < {\stemUp r} { \stemDown r} >
-       \context Staff < {\stemUp r} r { \stemDown r} >
-       \stemUp
-       \transpose c'' { [c''8 r8 c''8 c''8]
-       [c8 r8 c8 c8]
-       [c8 r8 r8 c'''8]        
-       \stemDown
-       [c8 r8 c8 c8]
-       [c''8 r8 c''8 c''8]
-       [c'8 r8 r8 c'''8]
-       \different      
-       }
-}
-
-\score{
-       \notes { 
-               \scales 
-               \restsII 
-       }
-}      
-
-\version "1.3.117"; 
index 0e7eea17031fddacbe3067496b5de03eaeb96a63..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,16 +0,0 @@
-\header{
-texidoc="
-Rests.  Note that the dot of 8th, 16th and 32nd rests rest should be
-next to the top of the rest.  All rests except the whole rest are
-centered on the middle staff line.
-";
-}
-
-
-       \score { \notes {
-       \time 4/4;
-r \longa * 1/4  r\breve * 1/2 
-r1 r2 r4 r8 r16 r32 r64 r128 r128
-\time 6/4;
-r1. r2. r4. r8. r16. r32. r64. r128. r128.
-}}
index 6bc299ba3841e0c4883583552b1c3c4ebe96997a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,10 +0,0 @@
-\header{
-texidoc="
-Fonts are  available in a default set of sizes: 11, 13, 16, 20, 23 and
-26pt staffheight.  Sizes of the text fonts and symbol fonts are made
-to match the staff dimensions.    
-";
-}
-
-\include "paper11.ly"
-\include "allfontstyle.ly";
index ac58c4dd65d83cbe27717acf59c1fd349fc82ec3..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,2 +0,0 @@
-\include "paper13.ly"
-\include "allfontstyle.ly";
index 69352ff59d18fa2b63ad42599271d3e116bbdc4f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,2 +0,0 @@
-\include "paper16.ly"
-\include "allfontstyle.ly";
index d76a6cdb03cd467507591c2e4beaef23deda297d..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,2 +0,0 @@
-\include "paper20.ly"
-\include "allfontstyle.ly";
index c5accc9f9075d11c1c22a89af64bdd945a60ff77..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,2 +0,0 @@
-\include "paper23.ly"
-\include "allfontstyle.ly";
index 919c6e07cda8fff605acd74156a42971d88f5a03..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,2 +0,0 @@
-\include "paper26.ly"
-\include "allfontstyle.ly";
index caac6ff210949219c363e7428f1c2a36c74626dc..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,19 +0,0 @@
-\header{
-texidoc="
-In some cases, you may want to set slur attachments by hand.
-";
-}
-
-\score{
-       \notes \relative c''{
-               \property Voice.Stem \set #'length = #5.5
-               \property Voice.Slur \set #'direction = #1
-               \property Voice.Slur \set #'attachment = #'(stem . stem)
-               g8(g)g4
-               g4(g8)g
-       }
-       \paper{
-               indent = 0.0;
-               linewidth = 60.\mm;
-       }
-}
index 7a00de868724adc2d343f0e908141ac8b57bb771..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,19 +0,0 @@
-\header{
-texidoc="
-Slurs should be attached to note heads, except when they would collide
-with beams.  Also see: ophee-slurs.
-";
-}
-\score{
-       \notes \relative c''{
-               \property Voice.Slur \set #'direction = #1
-               a8( a )a4
-               a4( a8 )a
-               a8 a()a4
-               a4() a8 a
-       }
-       \paper{ 
-               indent = 0.0;
-               linewidth = 100.\mm;
-       }
-}
index 868d156491e36d98e729ed9ec457dd0545a71a94..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,21 +0,0 @@
-\header{
-texidoc="
-Across line breaks, slurs behave nicely.  On the left, they extend to
-just after the preferatory matter, and on the right to the end of the
-staff.  A slur should follow the same vertical direction it would have
-in unbroken state.
-";
-}
-\score{
-       \notes \relative c''{
-               e1( \break) a,
-               \time 2/4;
-               e'2( \break) a,(\break
-               a2\break
-               )e'2
-       }
-       \paper {
-               linewidth=40.\mm;
-               indent=0.;
-       }
-}
index e2ada8c8e76c1d5f875ea8a117d4b105fca1059d..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,48 +0,0 @@
-\header{
-texidoc="
-The same goes for slurs. They behave decently when broken across
-linebreak.
-";
-}
-
-       
-\score{
-       \context PianoStaff <
-       \context Staff=one \notes\relative c'{
-               \stemUp \slurUp
-                c4( c \translator Staff=two c )c |
-               \translator Staff=one
-               \stemUp \slurUp
-                c4( c \translator Staff=two c )c |
-               \stemUp \slurUp
-                c4( c \translator Staff=one c )c |
-               \translator Staff=two
-               \stemUp \slurUp
-                c4( c \translator Staff=one c )c |
-               \translator Staff=two
-               \stemUp \slurUp
-                c4( \translator Staff=one c c )c |
-               r2
-               \translator Staff=two
-               \stemUp \slurUp
-                c4( \translator Staff=one c
-                  \break
-               c )c
-               r2
-%              \stemDown \slurDown
-%               c4( \translator Staff=two c c \translator Staff=one )c
-               \stemDown \slurDown
-                d4( \translator Staff=two c c \translator Staff=one )d
-               \translator Staff=two
-               \stemUp \slurUp
-                c4( \translator Staff=one c c \translator Staff=two )c
-               r1
-       }
-       \context Staff=two \notes\relative c'{
-               \clef bass;
-               s1 s1 s1 s1 s1 s1 s1 s1 s1 s1
-       }
-       >
-}
-
-\version "1.3.117"; 
index fce8f9468605e99922029cd379e3f8c370406456..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,23 +0,0 @@
-\header{
-texidoc="
-Slurs should look nice and symmetric.  The curvature may increase
-only to avoid noteheads, and as little as possible.  Slurs never
-run through noteheads or stems.
-";
-}
-\version "1.3.117";
-\score{
-       \notes\relative c''{
-               \time 3/4;
-               \slurUp
-               \stemBoth a ( \stemDown a \stemBoth ) a a( c )a a( e' )a, a( g' )a,
-               \stemUp a( e' )a,
-               \break
-               \slurDown
-               \stemBoth c ( \stemUp c \stemBoth ) c c ( a ) c c( d, )c' c( f, )c'
-               \stemDown c( f, )c'
-       }
-       \paper{
-               linewidth = 120.\mm;
-       }
-}
index 6e2ea7c67b83709c12a7ff7e18235d01685be68c..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,14 +0,0 @@
-\score{
-       \notes\relative c''<
-               \time 4/4;
-               \context Staff{
-                       f8(f f)f f(g g)f f(a a)f f(b b)f
-               }
-               \context Staff=x{
-                       e,(e e)e e(d d)e e(c c)e e(b b)e
-               }
-       >
-       \paper{
-               linewidth=-1.;
-       }
-}
index 41ebe836b3c644b8b43eb074c9c08b59d0f58b05..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,14 +0,0 @@
-\score{
-       \notes\relative c'<
-               \time 6/8;
-               \context Staff{
-                       e8(e)e e(d)e e(c)e e(b)e
-               }
-               \context Staff=x{
-                       f'8(f)f f(g)f f(a)f f(b)f
-               }
-       >
-       \paper{
-               linewidth=-1.;
-       }
-}
index 7406ba233b07b08de1296d782cbb556f79fae222..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,35 +0,0 @@
-\header {
-texidoc="You can get ugly slurs, if you want.
-";
-}
-
-baseWalk = \notes \relative c {
-  d,8( a' d f a d f d a f d )a
-}
-
-\score {
-  \notes \context PianoStaff <
-    \time 6/4;
-    \context Staff=up { s1 * 6/4 }
-    \context Staff=down <
-      \clef bass;
-      \autochange Staff \context Voice \baseWalk
-    >
-  >
-  \paper {
-    linewidth = -1.;
-    \translator {
-      \VoiceContext
-      Slur \override #'beautiful = #5.0
-      Slur \override #'direction = #1
-      Stem \override #'direction = #-1
-      autoBeamSettings \override #'(end * * * *)
-        = #(make-moment 1 2)
-    }
-    \translator {
-      \PianoStaffContext
-      VerticalAlignment \override #'threshold = #'(5 . 5)
-    }
-  }
-}
-
index 388ae4eec397ff91f580beddd09c5c8d8ca908e2..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,99 +0,0 @@
-\header {
-texidoc="LilyPond 1.3 is more flexible than some users realise.  Han-Wen could be very rich.
-";
-}
-
-% Btw, I've leant an el-neato trick for formatting code in email messages,
-% using inderect buffers.
-%
-% M-x make-indirect-buffer RET RET foo RET C-x b foo RET
-% Select region and then narrow: C-x n n
-% Set mode, eg: M-x sch TAB RET
-%
-
-%{
-    I've just entered a request on cosource.com :
-
-        http://www.cosource.com/cgi-bin/cos.pl/wish/info/387
-    Here's a copy of my feature request :
-        Your task, if you accept it is to implement a \smarttranspose
-        command> that would translate such oddities into more natural
-        notations. Double accidentals should be removed, as well as #E
-        (-> F), bC (-> B), bF (-> E), #B (-> C).
-
-You mean like this. (Sorry 'bout the nuked indentation.)
-
-Add IMPLEMENT_TYPE_P(Music, "music?"); to music.cc, and presto, done.
-
-That's an easy $ 100; if I'd make $ 200/hour for every hour I worked
-on Lily, I'd be very rich :)
-
-%}
-
-#(define  (unhair-pitch p)
-  (let* ((o (pitch-octave p))
-         (a (pitch-alteration p))
-        (n (pitch-notename p)))
-
-    (cond
-     ((and (> a 0) (or (eq? n 6) (eq? n 2)))
-      (set! a (- a 1)) (set! n (+ n 1)))
-     ((and (< a 0) (or (eq? n 0) (eq? n 3)))
-      (set! a (+ a 1)) (set! n (- n 1))))
-    
-    (cond
-     ((eq? a 2)  (set! a 0) (set! n (+ n 1)))
-     ((eq? a -2) (set! a 0) (set! n (- n 1))))
-
-    (if (< n 0) (begin (set!  o (- o 1)) (set! n (+ n 7))))
-    (if (> n 7) (begin (set!  o (+ o 1)) (set! n (- n 7))))
-    
-    (make-pitch o n a)))
-
-#(define (smart-transpose music pitch)
-  (let* ((es (ly-get-mus-property music 'elements))
-        (e (ly-get-mus-property music 'element))
-        (p (ly-get-mus-property music 'pitch))
-        (body (ly-get-mus-property music 'body))
-        (alts (ly-get-mus-property music 'alternatives)))
-
-    (if (pair? es)
-       (ly-set-mus-property
-        music 'elements
-        (map (lambda (x) (smart-transpose x pitch)) es)))
-    
-    (if (music? alts)
-       (ly-set-mus-property
-        music 'alternatives
-        (smart-transpose alts pitch)))
-    
-    (if (music? body)
-       (ly-set-mus-property
-        music 'body
-        (smart-transpose body pitch)))
-
-    (if (music? e)
-       (ly-set-mus-property
-        music 'element
-        (smart-transpose e pitch)))
-    
-    (if (pitch? p)
-       (begin
-         (set! p (unhair-pitch (Pitch::transpose p pitch)))
-         (ly-set-mus-property music 'pitch p)))
-    
-    music))
-
-
-music = \notes \relative c' { c4 d  e f g a b  c }
-
-\score {
-  \notes \context Staff {
-    \transpose ais' \music
-    \apply #(lambda (x) (smart-transpose x (make-pitch 0 5 1)))
-      \music
-  }
-  \paper { linewidth = -1.; }
-}
index eaac633a282f6a9bd9a20ab0f27e364e6f25f321..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,11 +0,0 @@
-\header{
-texidoc="
-Loose:
-";
-}
-\score {
-       \notes { \time 2/2; c'2 c'2 \time 2/2; }
-       \paper { linewidth = 5.0\cm;
-       indent = 0.0;
-       }
-}
index 74e9f6f0f716c83108e109b36d25fbb7c7a8ae68..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,13 +0,0 @@
-\header{
-texidoc="
-Natural:
-";
-}
-
-\score {
-       \notes { \time 2/2; c'2 c'2 \time 2/2; }
-       \paper { linewidth = -1.0 \cm;
-       indent = 0.0;
-       }
-}
-
index 75c7d16f970aff56096615646b24435c446a5315..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,21 +0,0 @@
-\header{
-texidoc="
-If there are accidentals in the music, we add space, but the space
-between note and accidentals is less than between the notes with the
-same value.  Clef changes also get extra space, but not as much as
-barlines.
-
-Even if a line is very tightly spaced, there will still be room
-between prefatory matter and the following notes.  The space after the
-prefatory is very rigid.  In contrast, the space before the barline
-must stretch like the space within the measure.
-
-Tight:
-";
-}
-\score {
-       \notes { \time 2/2; f''2 c'2 \time 2/2; }
-       \paper { linewidth = 2.5 \cm;
-       indent = 0.0;
-       }
-}
index aa3ac8a27fb8dc39c1dc9119376dc1eddad5a0d3..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,18 +0,0 @@
-\header{
-texidoc="
-The staccato dot (and all scripts with follow-into-staff set), must
-not be on staff lines.
-";
-}
-\score { 
-  \context Voice \notes\relative c {
-    
-       e''4-. f-. d-.
-       c,-. b-. c'''-. d-.
-       
-  }
-  \paper {
-    linewidth=-1.0;
-  }  
-  \midi { }
-}
index bb2b30f36be1ade0c602f1e76afd9ca858057fbe..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,28 +0,0 @@
-\header{
-texidoc="
-Staff margins are also markings attached to barlines.  They should be
-left of the staff, and be centered vertically wrt the staff.  They may
-be on normal staffs, but also on compound staffs, like the PianoStaff
-";
-}
-
-       
-\version "1.3.117";
-
-\score {
-
-  \notes \context PianoStaff <
-    \context Staff = treble    {
-      \property PianoStaff.instrument = "Piano "
-      \property Staff.instrument = "Right " { c''4 }}
-    \context Staff = bass { \property Staff.instrument = "Left " \clef bass; c4 }>
-
-\paper {
-linewidth=-1.0;
-\translator { \ScoreContext
-       
-       }
-\translator { \StaffContext \consists "Instrument_name_engraver"; }
-\translator { \PianoStaffContext \consists "Instrument_name_engraver"; }
-}}
-
index 1733d3995f8130aa9c3d7345d6fde0539a4e6569..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,15 +0,0 @@
-\header{
-texidoc="
-@c FIXME
-Similarly, if @code{stem_default_neutral_direction} is set to @code{-1}.
-";
-}
-
-\score{
-       \notes\relative c{
-           b''4 ~ b8()b8 e4 e,
-       }
-       \paper{
-               stem_default_neutral_direction=-1.0;
-       }
-}
index 78f20f518268e33a0ba4120cc4829aa3969f8ab4..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,23 +0,0 @@
-\header{
-texidoc="
-Beams, stems and noteheads often have communication troubles, since
-the two systems for y dimensions (1 unit = staffspace, 1 unit = 1
-point) are mixed.
-
-Stems, beams, ties and slurs should behave similarly, when placed
-on the middle staff line. Of course stem-direction is down for high
-notes, and up for low notes.
-";
-}
-
-
-\score { 
-  \context Voice \notes\relative c {
-    b''4 ~ b8()b8 e4 e,
-       
-  }
-  \paper {
-    linewidth=-1.0;
-  }  
-  \midi { }
-}
index 765416f54ce74e4f48b9a92c4ac71333a6188854..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,17 +0,0 @@
-\header{
-texidoc="
-In a limited number of cases, LilyPond corrects for optical spacing
-effects.  In this example, space for opposite pointed stems is adjuste
-";
-}
-\score { 
-  \context Voice \notes\relative c {
-    
-       \time 12/4;  c''4 c c c  a f' f, a 
-       
-  }
-  \paper {
-    linewidth=-1.0;
-  }  
-  \midi { }
-}
index 3493dabef1c14409aeed2f06000872b5741fa583..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,29 +0,0 @@
-\header{
-texidoc="
-Stem tremolos or rolls are tremolo signs that look like beam segments
-crossing stems.  If the stem is in a beam, the tremolo must be parallel
-to the beam.  If the stem is invisible (eg. on a whole note), the
-tremolo must be centered on the note.
-";
-}
-
-\version "1.3.117";
-\score{
-       \context Voice\notes \relative c''{
-               \property Voice.Text \set #'direction = #1
-               \property Voice.TextScript \set #'padding = #5
-               a1:4^":4" a:8^":8" c:16^":16" a:32^":32" a^"x" a:^":"
-               a4:4 c:8 a:16 c:32 a a: a2:
-               \break
-               \stemUp
-               a4:32 a'4:64 
-               \stemDown
-               c,4:32 c,4:64
-               \stemBoth
-               c'8:16 c c c
-               a': a a: a
-               c,16:32 c: c c a16:32 a: a a
-               c8:16 g: d: a:
-               c8:32 f: b: e:
-       }
-}
index 8faf34ab8f48683e4b7001525f92c0011efafad7..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,37 +0,0 @@
-\header{
-texidoc="
-When tieing notes with accidentals across a bar boundary, the accidental
-must not be drawn on the note in the new bar.  Instead, the next note of
-the same pitch in this bar should always show the accidental (even if
-it's natural).  Slurring a accidentaled note to a natural one across bar
-boundaries should be explicit.
-
-Pitches can be verified by printing them  with the @code{NoteNames} context.
-";
-}
-
-thenotes = \notes \relative cis' { \time 4/4;
-g'2 g ~ |
-g g4 gis |
-gis2 gis ~ |
-gis4 gis8 ~ gis g4 gis |
-g2 gis ~ |
-gis g4 gis |
-g2 gis( |
-)g! gis4 gis |
-\break
-\key a \major;
-gis2 gis ~ |
-gis4 gis8 ~ gis g4 gis |
-gis2 g ~ |
-g4 gis8 ~ gis g4 gis |
-g2 gis ~ |
-gis g4 gis |
-g2 gis( |
-)g! gis4 gis | 
-}
-
-\score { < \context Staff \thenotes
-       \context NoteNames \thenotes
-       >
-}
index 2068c371ae9333bcb795d351642ea682b1080690..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,21 +0,0 @@
-\header{
-texidoc="
-When tieing chords, the outer slurs point outwards, the inner slurs
-point away from the center of the staff.  Override with
-@code{tieVerticalDirection}.
-";
-}
-\version "1.3.117";
-
-t =  \notes \relative c' {   <c e g> ~ <c e g> }
-
-       \score { 
-\notes \context Voice {
-   \t
-   \transpose g' \t
-
-   \property Voice.TieColumn \override #'direction = #-1
-   \t
-
-  }
-}
index 6cc474c3b67c6ea9b63dbe16ce7eb01623fffc06..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,19 +0,0 @@
-\header{
-texidoc="
-Ties are strictly horizontal.  They are placed in between note heads.
-The horizontal middle should not overlap with a staffline.
-";
-}
-\score{
-       \notes\relative c''{
-               %b2~b4~b8~b16~b32~b64 r64\break
-               %a2~a4~a8~a16~a32~a64 r64
-               \time 8/4;
-               d1 ~ d2~d4~d8~d16~d32~d64 r64\break
-               a1~ a2~a4~a8~a16~a32~a64 r64
-               %c2~c4~c8~c16~c32~c64 r64
-       }
-       \paper{
-               linewidth=0.;
-       }
-}
index 802727f22e5fbc9d90ba0a2617b9d3b24e27b2bf..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,27 +0,0 @@
-\header {
-texidoc="Simple beams.  This broke somewhere < 1.3.110
-";
-  title = "Gammes Chromatiques";
-  composer = "";
-  filename = "gammes_chromatiques.ly";
-}
-
-linebreak = \penalty -1000;
-
-$ex8 = \notes \relative c' {
-  \repeat "volta" 2 {
-    \times 2/3 {c8( cis d} \times 2/3 {dis e f} 
-    \times 2/3 {fis g gis} \times 2/3 {a bes b} |
-    \property Voice.TupletBracket \override #'tuplet-number-visibility = ##f
-    \property Voice.TupletBracket \override #'tuplet-bracket-visibility = ##f
-    \times 2/3 {c8 cis d} \times 2/3 {dis e f} 
-    \times 2/3 {fis g gis} \times 2/3 {a bes b} |
-    \times 2/3 {c b bes} \times 2/3 {a aes g}
-    \times 2/3 {fis f e} \times 2/3 {ees d des} |
-    \times 2/3 {c b bes} \times 2/3 {a aes g}
-    \times 2/3 {fis f e} \times 2/3 {ees d )des}
-  }
-  c1 || \linebreak
-}
-
-\score { \context Staff { \notes { \$ex8 } } }
index 649feb5d22d973310f817f3803602cd9c289444a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,19 +0,0 @@
-\header{
-texidoc="
-Tuplets are indicated by a bracket with a number.  There should be no
-bracket if there is one beam that matches  the length of the tuplet.
-The bracket does not interfere with the stafflines, and the number is
-centered in the gap in the bracket.
-";
-}
-\score{
-       \notes \context Voice \relative c'' {
-                \times 2/3 { \times 2/3 { a8 b c}  c }
-                \times 3/4 { c4 c4 c4 c4 }
-                \time 6/8;
-                \times 6/9 { c8 c c c c c c c c }
-
-                }
-}
-
-\version "1.3.117"; 
index 4b18be26ebc2c147189aff40b7811d2f01dc5baa..8ac599334a73c9bf6e8a2a9f0e55bcc4f486c46e 100644 (file)
@@ -187,11 +187,20 @@ Beam::consider_auto_knees (Grob *me)
       
       Grob *common = me->common_refpoint (stems[0], Y_AXIS);
       for (int i=1; i < stems.size (); i++)
-       common = common->common_refpoint (stems[i], Y_AXIS);
-      
+       if (!Stem::invisible_b (stems[i]))
+         common = common->common_refpoint (stems[i], Y_AXIS);
+
+      int l = 0;
       for (int i=1; i < stems.size (); i++)
         {
-         Real left = Stem::extremal_heads (stems[i-1])[d]
+         if (!Stem::invisible_b (stems[i-1]))
+           l = i - 1;
+         if (Stem::invisible_b (stems[l]))
+           continue;
+         if (Stem::invisible_b (stems[i]))
+           continue;
+         
+         Real left = Stem::extremal_heads (stems[l])[d]
            ->relative_coordinate (common, Y_AXIS);
          Real right = Stem::extremal_heads (stems[i])[d]
            ->relative_coordinate (common, Y_AXIS);
@@ -210,6 +219,8 @@ Beam::consider_auto_knees (Grob *me)
        {
          for (int i=0; i < stems.size (); i++)
            {
+             if (Stem::invisible_b (stems[i]))
+               continue;
              Item *s = stems[i];         
              Real y = Stem::extremal_heads (stems[i])[d]
                ->relative_coordinate (common, Y_AXIS);
@@ -530,7 +541,8 @@ Beam::set_stem_length (Grob*me,Real y, Real dy)
   
   Grob *common = me->common_refpoint (stems[0], Y_AXIS);
   for (int i=1; i < stems.size (); i++)
-    common = common->common_refpoint (stems[i], Y_AXIS);
+    if (!Stem::invisible_b (stems[i]))
+      common = common->common_refpoint (stems[i], Y_AXIS);
 
   for (int i=0; i < stems.size (); i++)
     {
index e640d0a7d0fc31642fd97cf54b56bee2ec8c97e4..c87490d952e995f40decb5379147882dc14d7268 100644 (file)
@@ -24,7 +24,6 @@
 #include "beam.hh"
 #include "rest.hh"
 #include "group-interface.hh"
-// #include "cross-staff.hh"
 #include "staff-symbol-referencer.hh"
 #include "spanner.hh"
 
index 55af3b8196f2441afa58017df2ee8522128533c8..cf792f086b22796612fe09d6a3c3e2dc51fcf205 100644 (file)
@@ -15,6 +15,7 @@
 #include "font-interface.hh"
 #include "all-font-metrics.hh"
 #include "grob.hh"
+#include "staff-symbol-referencer.hh"
 #include "lookup.hh"
 
 Molecule
@@ -86,21 +87,26 @@ SCM
 System_start_delimiter::brew_molecule (SCM smob)
 {
   Grob * me = unsmob_grob (smob);
-  Interval ext = ly_scm2interval (Axis_group_interface::group_extent_callback (me->self_scm(), gh_int2scm (Y_AXIS)));
-  Real l = ext.length (); 
-  Molecule m;
 
-  SCM s = me->get_grob_property ("collapse-height");
-  if (gh_number_p (s) && l < gh_scm2double (s))
+  SCM s = me->get_grob_property ("glyph");
+  if (!gh_symbol_p (s))
+    return SCM_EOL;
+  
+  SCM c = me->get_grob_property ((ly_symbol2string (s) + "-collapse-height")
+                                .ch_C ());
+  
+  Real staff_space = Staff_symbol_referencer::staff_space (me);
+  Interval ext = ly_scm2interval (Axis_group_interface::group_extent_callback
+                                 (me->self_scm(), gh_int2scm (Y_AXIS)));
+  Real l = ext.length () / staff_space;
+  
+  if (gh_number_p (c) && l <= gh_scm2double (c))
     {
       me->suicide();
       return SCM_EOL;
     }
 
-  s = me->get_grob_property ("glyph");
-  if (!gh_symbol_p(s))
-    return SCM_EOL;
-  
+  Molecule m;
   if (s == ly_symbol2scm ("bracket"))
     m = staff_bracket (me,l);
   else if (s == ly_symbol2scm ("brace"))
@@ -108,7 +114,6 @@ System_start_delimiter::brew_molecule (SCM smob)
   else if (s == ly_symbol2scm ("bar-line"))
     m = simple_bar (me,l);
   
-  
   m.translate_axis (ext.center (), Y_AXIS);
   return m.smobbed_copy ();
 }
index 0577bae6e3390b37c3847c864ae829e57d250e81..be65503ea0052fb2834c23e8bf5f157d13b81bfa 100644 (file)
@@ -5,21 +5,21 @@
 
 $(outdir)/%.latex: %.doc
        rm -f $@
-       LILYPONDPREFIX=$(LILYPONDPREFIX)/..  $(PYTHON) $(script-dir)/lilypond-book.py --outdir=$(outdir) -I $(pwd) -I $(input-dir)/test/ --dependencies --dep-prefix=$(outdir)/ $<
+       LILYPONDPREFIX=$(LILYPONDPREFIX)/..  $(PYTHON) $(script-dir)/lilypond-book.py --outdir=$(outdir) -I $(pwd) -I $(input-dir)/features/ -I $(input-dir)/regression/ -I $(input-dir)/test/ --dependencies --dep-prefix=$(outdir)/ $<
        chmod -w $@
 
 # don't do ``cd $(outdir)'', and assume that $(outdir)/.. is the src dir.
 # it is not, for --scrdir builds
 $(outdir)/%.texi: %.tely
        rm -f $@
-       LILYPONDPREFIX=$(LILYPONDPREFIX)/..  $(PYTHON) $(script-dir)/lilypond-book.py --outdir=$(outdir) -I $(pwd) -I $(input-dir)/test/ --dependencies --format=texi $<
+       LILYPONDPREFIX=$(LILYPONDPREFIX)/..  $(PYTHON) $(script-dir)/lilypond-book.py --outdir=$(outdir) -I $(pwd) -I $(input-dir)/features/ -I $(input-dir)/regression/ -I $(input-dir)/test/ --dependencies --format=texi $<
        chmod -w $@
 
 # nexi: no-lily texi
 # for plain info doco: don't run lily
 $(outdir)/%.nexi: %.tely
        rm -f $@
-       LILYPONDPREFIX=$(LILYPONDPREFIX)/..  $(PYTHON) $(script-dir)/lilypond-book.py --outdir=$(outdir) --no-lily -I $(pwd) -I $(input-dir)/test/ --dependencies --dep-prefix=$(outdir)/ --format=texi $<
+       LILYPONDPREFIX=$(LILYPONDPREFIX)/..  $(PYTHON) $(script-dir)/lilypond-book.py --outdir=$(outdir) --no-lily -I $(pwd) -I $(input-dir)/features/ -I $(input-dir)/regression/ -I $(input-dir)/test/ --dependencies --dep-prefix=$(outdir)/ --format=texi $<
        mv $(@D)/$(*F).texi $@
        chmod -w $@
 
index 754f7c378a4939164a373603e6c06ecd705ad54f..8507de159897550e8176cbf6d198213322119cda 100644 (file)
@@ -17,7 +17,8 @@ bassiGroup =  \context PianoStaff = bassi_group \notes <
         %\global
        \context StaffCombineStaff=oneBassi {
                \property StaffCombineStaff.midiInstrument = #"cello"
-               \property StaffCombineStaff.instrument = #"Violoncello\ne\nContrabasso"
+               %\property StaffCombineStaff.instrument = #"Violoncello\ne\nContrabasso"
+               \property StaffCombineStaff.instrument = #'(lines "Violoncello" "e" "Contrabasso")
                \property StaffCombineStaff.instr = #"Vc."
                \clef "bass"; 
                \key es \major;
@@ -36,6 +37,6 @@ bassiGroup =  \context PianoStaff = bassi_group \notes <
        }
 
        \context StaffCombineStaff=oneBassi \partcombine StaffCombineStaff
-               \context StaffCombineVoice=one \violoncello
-               \context StaffCombineVoice=two \contrabasso
+               \context StaffCombineVoice=oneBassi \violoncello
+               \context StaffCombineVoice=twoBassi \contrabasso
 >
index 9dfc0367f56647aa332e6a028f4ccef645a02674..a9edd675b43cdc08d6f8fb58a05ecfc6fa9a8bd2 100644 (file)
                \accepts "StaffCombineStaff";
                skipBars = ##t 
 
-               barScriptPadding = #2.0 % dimension \pt
                markScriptPadding = #4.0
 
-               %% urg: in pt?
-               barNumberScriptPadding = #15
-               maximumRestCount = #1
+               BarNumber \override #'padding = #3
+               RestCollision \override #'maximum-rest-count = #1
        }
 }
index 3ba4e4aef849bb08486997462ad039d1d31fda6c..bdc564dcc8eeea810b7717c2021ca34bf4cfc762 100644 (file)
@@ -18,6 +18,6 @@
                %%textStyle = #"italic"
                timeSignatureStyle = #"C"
                marginScriptHorizontalAlignment = #1
-               maximumRestCount = #1
+               RestCollision \override #'maximum-rest-count = #1
        }
 }
index 475efafc559fe7cd13fe9d2205fa1f67cb2450fc..7c0a726e6b2391135cf9d6925c8093260b5cf0d6 100644 (file)
@@ -43,8 +43,8 @@ violiGroup =  \context PianoStaff = violi_group \notes <
 violiGroup =  \notes \context VoiceCombineStaff = violi <
        \context VoiceCombineStaff=violi {
                \property VoiceCombineStaff.midiInstrument = #"viola"
-               \property VoiceStaffCombineStaff.instrument = #"Viola"
-               \property VoiceStaffCombineStaff.instr = #"Vla."
+               \property VoiceCombineStaff.instrument = #"Viola"
+               \property VoiceCombineStaff.instr = #"Vla."
                \clef "alto"; 
                \key es \major;
                \skip 1*314; 
index a76fa118b8831b77f5375959612b46a9950cb0f1..dd7a0392d6640ab317f6b66f507b7467582822a8 100644 (file)
@@ -25,7 +25,7 @@ couranteViolaScripts =  \notes{
 }
 
 couranteViolaStaff =  \context Staff <
-       \notes \transpose c' \courante
+       \notes \transpose c'' \courante
        \couranteViolaGlobal
        \couranteViolaScripts
 >
index bc7d291abc7f0882d3f38b7f951a106505610abe..d8efcf42885c2196c0fd76157be96dc00d79480d 100644 (file)
@@ -27,7 +27,7 @@ gigueViolaScripts =  \notes{
 }
 
 gigueViolaStaff =  \context Staff <
-       \notes \transpose c' \gigue
+       \notes \transpose c'' \gigue
        \gigueViolaGlobal
        \gigueViolaScripts
 >
index 5ac93c3f0ada2b1ecff85a7c81abd0aaad76f98a..69db680783a6a950cc45a96df364b1ee03be36fc 100644 (file)
@@ -40,7 +40,7 @@ menuettoIViolaScripts =  \notes{
 }
 
 menuettoIViolaStaff =  \context Staff <
-       \notes \transpose c' \menuettoI
+       \notes \transpose c'' \menuettoI
        \menuettoIViolaGlobal
 %      \menuettoIViolaScripts
 >
@@ -79,7 +79,7 @@ menuettoIiViolaGlobal =  \notes{
 }
 
 menuettoIiViolaStaff =  \context Staff <
-       \notes \transpose c' \menuettoIi
+       \notes \transpose c'' \menuettoIi
        \menuettoIiViolaGlobal
 %      \menuettoIiViolaScripts
 >
index 405dce2e3188f42ced2293cccadb03573557d743..cf17a8bb7130f9c77064068d33fecfb65c107ca4 100644 (file)
@@ -17,7 +17,7 @@ preludeViolaScripts =  \notes{
 }
 
 preludeViolaStaff =  \context Staff <
-       \notes \transpose c' \prelude
+       \notes \transpose c'' \prelude
        \preludeViolaGlobal
        \preludeViolaScripts
 >
index d82f07b2999a7956d8f0c36432aab25eb12e3a4e..a797f9202786ca8c98bdca6bcd4ed2887d52aa77 100644 (file)
@@ -17,7 +17,7 @@ sarabandeViolaScripts =  \notes{
 }
 
 sarabandeViolaStaff =  \context Staff <
-       \notes \transpose c' \sarabande
+       \notes \transpose c'' \sarabande
        \sarabandeViolaGlobal
        \sarabandeViolaScripts
 >
index 043f35673428ac90d8649c6db3e6b82b9e17a778..47ee15416f3cec19545277210cdcf70e99de0a06 100644 (file)
@@ -70,6 +70,7 @@
                 (flag-width-function . ,default-beam-flag-width-function)
                 (space-function . ,default-beam-space-function)
                 (damping . 1)
+                (auto-knee-gap . 7)
                 (meta . ,(grob-description "Beam" beam-interface))
                 ))
         
        (SystemStartDelimiter . (
                (molecule-callback . ,System_start_delimiter::brew_molecule)
                (after-line-breaking-callback . ,System_start_delimiter::after_line_breaking)
-               (collapse-height . 1.0)
+               ;; ugh, in practice, brace has height of 4.1 staff-spaces
+               (brace-collapse-height . 4.1)
+               (bracket-collapse-height . 1)
                (thickness . 1.6)
                (arch-height . 1.5)
                (arch-angle . 50.0)
index fd5ed70f1387064ba042a4acd6d1788a1e7d9356..ce5875078973d0d8536fa5eb954dbc4ddb3e0bfb 100644 (file)
@@ -84,7 +84,10 @@ column as start/begin point. Only columns that have grobs or act as bounds are s
 be at the center of the group after aligning (when using
 Align_interface::center_on_element). .")
 (grob-property-description 'chordChanges boolean? "only show changes in chord scheme?.")
-(grob-property-description 'collapse-height number? "Minimum height of system start delimiter. If smaller, the delimiter is removed.")
+(grob-property-description 'brace-collapse-height number? "Minimum height of system start delimiter brace glyphs.  If equal or smaller, the brace is removed.")
+(grob-property-description 'bracket-collapse-height number? "Minimum height of system start delimiter bracket glyphs.  If equal or smaller, the bracket is removed.")
+(grob-property-description 'bar-line-collapse-height number? "Minimum height of system start delimiter bar-line glyphs.  If equal or smaller, the bar-line is removed.")
+(grob-property-description 'brace-collapse-height number? "Minimum height of system start delimiter brace glyph.  If equal or smaller, the brace is removed.")
 (grob-property-description 'column-space-strength number? "relative strength of space following breakable columns (eg. prefatory matter).")
 (grob-property-description 'columns list? "list of grobs, typically containing paper-columns, list of note-columns.")
 (grob-property-description 'contains-grace boolean? "Used to widen entries for grace notes.")
index f0c91aad996d782f618f02d76529ca0500c6d07f..704efe84ee5c775c82cb39925b16eacf5dd967cf 100644 (file)
@@ -25,6 +25,8 @@ Output: DVI file
 
 name = 'ly2dvi'
 version = '@TOPLEVEL_VERSION@'
+if version == '@' + 'TOPLEVEL_VERSION' + '@':
+       version = '(unknown version)'           # uGUHGUHGHGUGH
 errorlog = ''
 
 import sys
index afe4c3533583f7af42d56be8a07bb19c93053f82..b8d289b861612497507797b70ed512dd57e8dc3c 100644 (file)
@@ -1,14 +1,10 @@
 #!@PYTHON@
 
-#
-#
-#
-# 
-#
-#
+# PMX is a Musixtex preprocessor written by Don Simons, see
+# http://www.gmd.de/Misc/Music/musixtex/software/pmx/
 
-
-#fixme: block openings aren't parsed.
+# TODO:
+#  * block openings aren't parsed.
 
 import os
 import string
@@ -703,6 +699,8 @@ Huh? expected duration, found %d Left was `%s'""" % (durdigit, str[:20]))
                                left = left[1:]
                        elif c == '\\':
                                left = self.parse_mumbo_jumbo(left)
+                       elif c == '\r':
+                               left = left[1:]
                        else:
                                sys.stderr.write ("""
 Huh? Unknown directive `%s', before `%s'""" % (c, left[:20] ))