]> git.donarmstrong.com Git - lilypond.git/blobdiff - input/les-nereides.ly
patch::: 1.3.96.jcn8
[lilypond.git] / input / les-nereides.ly
index 4c4500e90d64db3ffc601fd7ac405690c7a0317b..36eeadb3c2328702ee915668f33744436e0320e9 100644 (file)
@@ -8,12 +8,26 @@ cpp -P -traditional -o l-fake.ly  -DFAKE_GRACE les-nereides.ly
     title =      "LES N\\'ER\\'EIDES";
     subtitle =   "THE NEREIDS";
     enteredby =  "JCN";
-    piece =      "Allegretto scherzando";
+    %piece =      "Allegretto scherzando";
     copyright =  "public domain";
     description = "Natiest piece of competition at http://www.orphee.com/comparison/study.html, see http://www.orphee.com/comparison/gray.pdf";
     comment =     "LilyPond (1.3.93) can't really do this yet, I guess";
 }
 
+
+%% cpp: don't start on first column
+ #(define (grace-beam-space-function multiplicity)
+         (* (if (<= multiplicity 3) 0.816 0.844) 0.8))
+
+%% cpp: don't start on first column
+ #(define (make-text-checker text)
+  (lambda (elt)
+     ;; huh, string-match undefined?
+     ;; (string-match text (ly-get-elt-property elt 'text))
+     (equal? text (ly-get-elt-property elt 'text))
+    ))
+
+
 global = \notes{
     \partial 2;
     \key a \major;
@@ -33,22 +47,54 @@ global = \notes{
 treble = \context Voice=treble \notes\relative c''{
     % Broken?
     \property Voice.NoteColumn \push #'horizontal-shift = #0
-    r2
+    \outputproperty #(make-type-checker 'text-item-interface) 
+           #'extra-offset = #'(-6 . 2)
+    %% *Style* = Large??
+    \property Voice.TextScript \push #'style = #"Large"
+    r2^"Allegretto scherzando"
+    \property Voice.TextScript \pop #'style
     %2
     \property Voice.Stem \pop #'direction
     \property Voice.Stem \push #'direction = #1
-    r4 <cis eis a cis> r2
+    r4 <cis\arpeggio eis a cis> r2
     %3
-    r4 <cis fis a cis> r8.
+    r4 <cis\arpeggio fis a cis> r8.
+    % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
     \translator Staff=bass
+    % Get back
+    \context Voice 
+    \outputproperty #(make-text-checker "m.d.")
+           #'extra-offset = #'(-3 . -4)
+    % currently, this can't be (small) italic, because in the paperblock
+    % we set italic_magnifictation to get large italics.
     cis,16^2^"m.d."( <fis8 fis,> <e! e,!>
     %4
     <)dis,4 a' dis>
+    % Urg, this lifts us up to staff context
     \translator Staff=treble
+    % Get back
+    \context Voice 
     \property Voice.Slur \pop #'direction
     \property Voice.Slur \push #'direction = #1
-    %% 8va
-    cis''''4^"m.g." (
+    \property PianoStaff.connectArpeggios = ##t
+    \property Voice.TextSpanner \pop #'type
+
+    %% Ghostview is ok, but xdvi shows a solid line
+    \property Voice.TextSpanner \push #'line-thickness = #2
+    \property Voice.TextSpanner \push #'dash-period = #0.5
+
+    \property Voice.TextSpanner \push #'type = #"dotted-line"
+    \property Voice.TextSpanner \push #'edge-height = #'(0 . 1.5)
+    \property Voice.TextSpanner \push #'edge-text = #'("8 " . "")
+    % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
+    \property Staff."c0-position" = #-13
+    % Get back
+    \context Voice 
+    \outputproperty #(make-text-checker "m.g.")
+           #'extra-offset = #'(-3 . -2)
+    % currently, this can't be (small) italic, because in the paperblock
+    % we set italic_magnifictation to get large italics.
+    cis''''4^"m.g."\arpeggio \spanrequest \start "text"  (
 
 #ifndef FAKE_GRACE
 
@@ -61,33 +107,56 @@ treble = \context Voice=treble \notes\relative c''{
         )cis8
        \property Grace.Stem \pop #'direction
        \property Grace.Stem \push #'direction = #0
-       %urg, dim. during grace dumps core here
-        %%[a16-5( fis dis] [cis'32 a-1 fis-4 dis] [cis a )fis-2]
-        [a16-5( fis dis] [cis32 a-1 fis-4 dis] [cis a )fis-2]
+       \property Grace.Beam \push #'space-function = #grace-beam-space-function
+       %% urg, dim. during grace dumps core here
+        %% [a16-5( fis dis \spanrequest \stop "text" ]
+       %% [cis'32 a-1 fis-4 dis] [cis a )fis-2]
+        [a16-5( fis dis \spanrequest \stop "text" ]
+        \property Staff."c0-position" = #-6
+       [cis32 a-1 fis-4 dis] [cis a )fis-2]
     }
 
 #else % FAKE_GRACE 
 
+    \property Score.PaperColumn  \push #'space-factor = #0.6
+    \property Score.PaperColumn  \push #'to-musical-spacing-factor = #0.04
     \property Voice.NoteHead \push #'font-size = #-1
     \property Voice.Stem \push #'font-size = #-1
+    \property Voice.Stem \push #'length = #6
+    \property Voice.Stem \push #'beamed-lengths =
+        #(map (lambda (x) (* 1.25 x)) '(0.0 2.5 2.0 1.5))
+    \property Voice.Stem \push #'beamed-minimum-lengths =
+        #(map (lambda (x) (* 1.25 x)) '(0.0 1.5 1.25 1.0))
+
     \property Voice.Beam \push #'font-size = #-1
     \property Voice.TextScript \push #'font-size = #-1
+    \property Voice.Fingering \push #'font-size = #-1
     \property Voice.Slur \push #'font-size = #-1
-    \property Voice.LocalKey \push #'font-size = #-1
+    \property Staff.Accidentals \push #'font-size = #-1
+    \property Voice.Beam \push #'space-function = #grace-beam-space-function
 
     )cis16
     \property Voice.Stem \pop #'direction
     \property Voice.Stem \push #'direction = #0
-    %%[a16^5( fis dis] [cis'32 a-1 fis-4 dis] [cis a )fis-2] s s s
-    [a16^5( fis dis] [cis32 a^1 fis^4 dis] [cis a )fis-2] s % s s
+    %% [a16^5( fis dis \spanrequest \stop "text" ]
+    %% [cis'32 a-1 fis-4 dis] [cis a )fis-2] s s s
+    [a16^5( fis dis \spanrequest \stop "text" ]
+    \property Staff."c0-position" = #-6
+    [cis32 a^1 fis^4 dis] [cis a )fis-2] s % s s
 
     \property Voice.NoteHead \pop #'font-size
     \property Voice.Stem \pop #'font-size
+    \property Voice.Stem \pop #'length
+    \property Voice.Stem \pop #'beamed-lengths
+    \property Voice.Stem \pop #'beamed-minimum-lengths
     \property Voice.Beam \pop #'font-size
     \property Voice.TextScript \pop #'font-size
+    \property Voice.Fingering \pop #'font-size
     \property Voice.Slur \pop #'font-size
-    \property Voice.LocalKey \pop #'font-size
-
+    \property Staff.Accidentals \pop #'font-size
+    \property Voice.Beam \pop #'space-function
+    \property Score.PaperColumn  \pop #'space-factor
+    \property Score.PaperColumn \pop #'to-musical-spacing-factor
 #endif % FAKE_GRACE
     
 
@@ -100,67 +169,82 @@ treble = \context Voice=treble \notes\relative c''{
 }
 
 trebleTwo = \context Voice=trebleTwo \notes\relative c''{
-    % Broken?
-    \property Voice.NoteColumn \push #'horizontal-shift = #-1
+    \property Voice.NoteColumn \push #'horizontal-shift = #1
     s2
     s1*2
     s4
     \property Voice.Stem \pop #'direction
     \property Voice.Stem \push #'direction = #-1
-    <cis4 a fis dis>
+    <cis'4\arpeggio a fis dis>
 
 #ifdef FAKE_GRACE
     s32*16
 #endif
 
-    <e2 g, e d>
-    %r8 cis4. d4 [<cis8-5-4( e,-1> <b-3 d,-1> |
-    r8 cis4. d4 [<cis8( e,> <b-3 d,-1> |
-    <)a-2 cis,-1>] cis4. d4 [<cis8( e,> <b d,> |
+    \property Voice.NoteColumn \push #'force-hshift = #-0.2
+    <e,2 gis, e d!>
+    % Hmm s/r?
+    %r8 cis4. d4
+    s8 cis4. d4
+    \property Voice.NoteColumn \pop #'force-hshift
+    [<cis8( e,> <b-3 d,-1> |
+    \property Voice.NoteColumn \push #'force-hshift = #-0.2
+    <)a-2 cis,-1>] cis4. d4 
+    \property Voice.NoteColumn \pop #'force-hshift
+    [<cis8( e,> <b d,> |
     <)a cis,>]
 }
 
 bass = \context Voice=bass \notes\relative c{
-    \property Voice.Slur \pop #'details
-    \property Voice.Slur \push #'details =
-%        #'((height-limit . 2.0) (ratio . 0.333) (force-blowfit . 0.5) (beautiful . 1.0))
-        #'((height-limit . 6.0) (ratio . 0.333) (force-blowfit . 1.0) (beautiful . 0.1))
-    \property Voice.Slur \pop #'de-uglify-parameters
-    \property Voice.Slur \push #'de-uglify-parameters =
-%    #'(1.5  0.8  -2.0)
-    #'(2.4  0.8  4.0)
+    % Allow ugly slurs
+    \property Voice.Slur \push #'beautiful = #5.0
+    \property Voice.Slur \push #'attachment-offset = #'((0 . -3) . (0 . -6))
     \property Voice.Stem \pop #'direction
     \property Voice.Slur \push #'direction = #-1
     % huh, auto-beamer?
     r8. e,16-2( [<a8 a,> <b b,>] <cis4 cis,> |
     %2
+    % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
     \translator Staff=treble
+    % Get back
+    \context Voice 
     \property Voice.Stem \pop #'direction
     \property Voice.Stem \push #'direction = #-1
     \property Voice.slurEndAttachment = #'stem
-    <)a''4 eis cis> 
+    <)a''4\arpeggio eis cis> 
     %\stemboth
     \property Voice.slurEndAttachment = ##f
+    % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
     \translator Staff=bass
+    % Get back
+    \context Voice 
     \property Voice.Stem \pop #'direction
     \property Voice.Slur \pop #'y-free
     \property Voice.Slur \push #'y-free = #0.1
+    \property Voice.Slur \pop #'attachment-offset
+    \property Voice.Slur \push #'attachment-offset = #'((0 . -3) . (0 . -8))
     r8. cis,,16( <fis8 fis,> <gis gis,>
     %3
     \property Voice.Stem \pop #'length
     \property Voice.Stem \push #'length = #5
     <a4 a,>
+    % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
     \translator Staff=treble
+    % Get back
+    \context Voice 
+    \property Voice.Stem \pop #'length
     \property Voice.Stem \pop #'direction
     \property Voice.Stem \push #'direction = #-1
-    <)a' fis cis>
+    <)a'\arpeggio fis cis>
+    % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
     \translator Staff=bass
+    % Get back
+    \context Voice 
     \property Voice.Stem \pop #'direction
     r2
     %4
-    \property Voice.Slur \pop #'details
-    \property Voice.Slur \push #'details =
-        #'((height-limit . 2.0) (ratio . 0.333) (force-blowfit . 0.5) (beautiful . 0.5))
+    \property Voice.Slur \pop #'beautiful
+    \property Voice.Slur \pop #'attachment-offset
     \property Voice.Stem \pop #'direction
     \property Voice.Stem \push #'direction = #-1
     <b,,4 b,>
@@ -169,7 +253,7 @@ bass = \context Voice=bass \notes\relative c{
     \property Voice.Stem \push #'direction = #0
     <
         %urg: staff-change: ! on dis
-        <cis'' a fis dis!>
+        <cis''\arpeggio a fis dis!>
 %      { s8. \clef bass;}
     >
 
@@ -177,12 +261,28 @@ bass = \context Voice=bass \notes\relative c{
     %Hmm
     %\grace { s16 s s s s32 s s s s \clef bass; s }
     \clef bass;
+    \grace { <e,,,32( e,> } <)gis'2 e>
 #else
-    s4 s8 s32 s  s \clef bass; s
-#endif
+    s4 s8 s32 s  s \clef bass;
+    \property Score.PaperColumn  \push #'space-factor = #0.6
+    \property Score.PaperColumn  \push #'to-musical-spacing-factor = #0.1
+    \property Voice.NoteHead \push #'font-size = #-1
+    \property Voice.Stem \push #'font-size = #-1
+    \property Voice.Stem \push #'length = #6
+    \property Voice.Slur \push #'font-size = #-1
+    \property Voice.Slur \push #'attachment-offset = #'((-0.5 . 0) . (0.5 . 0))
+    <e,,,32( e,>
 
-    \grace { <e,,,32( e,> } <)gis'2 e>
-    %5%
+    \property Voice.NoteHead \pop #'font-size
+    \property Voice.Stem \pop #'font-size
+    \property Voice.Stem \pop #'length
+    \property Voice.Slur \pop #'font-size
+    \property Score.PaperColumn  \pop #'space-factor
+    \property Score.PaperColumn \pop #'to-musical-spacing-factor
+     <)gis'2 e>
+    \property Voice.Slur \pop #'attachment-offset
+#endif
+    %5
     \property Voice.Slur \pop #'direction
     \property Voice.Slur \push #'direction = #1
     a,8 [e'-5(<)a-2 cis-3>]
@@ -215,6 +315,7 @@ bassTwo = \context Voice=bassTwo \notes\relative c{
     \property Voice.Stem \push #'direction = #1
     \property Voice.Slur \pop #'direction
     \property Voice.Slur \push #'direction = #1
+
     cis'4()bis
 }
 
@@ -226,14 +327,26 @@ middleDynamics = \context Dynamics=middle \notes{
 
 #ifdef FAKE_GRACE
     s32*12
+    \outputproperty #(make-type-checker 'dynamic-interface) 
+           #'extra-offset = #'(0 . 1.5)
     s32\> s s \!s
 #endif
-
-    s32 s-"rall." s s
+    s32 
+    \outputproperty #(make-type-checker 'text-item-interface) 
+           #'extra-offset = #'(0 . 1.5)
+    s-"rall." s s
     s8 s4
 
-    s1\mf-"a tempo"
-    s8 s8\mf s4 s4 s8\> s32 s s \!s
+    \outputproperty #(make-type-checker 'dynamic-interface) 
+           #'extra-offset = #'(0 . 4)
+    %s1\mf-"a tempo"
+    s2\mf-"a tempo" s4
+    \outputproperty #(make-type-checker 'crescendo-interface) 
+           #'extra-offset = #'(0.5 . -1)
+    s\> \!s8
+    \outputproperty #(make-type-checker 'dynamic-interface) 
+           #'extra-offset = #'(-1 . 4)
+    s8\mf s4 s4 s8\> s32 s s \!s
 }
 
 lowerDynamics = \context Dynamics=lower \notes{
@@ -297,23 +410,29 @@ lowerDynamics = \context Dynamics=lower \notes{
        >
     >
     \paper {
+       %%BURP
+       magnification_italic = 1.;
        \translator {
            \ScoreContext
            TimeSignature \push #'style = #"C"
+           SpacingSpanner \push #'maximum-duration-for-spacing = #(make-moment 1 4)
+
+           \remove Bar_number_engraver;
         }
        \translator {
            \type "Engraver_group_engraver";
            \name Dynamics;
-           Generic_property_list = #generic-lyrics-properties
+           \consists "Output_property_engraver";
+           Generic_property_list = #generic-voice-properties
            \consists "Property_engraver";
            DynamicsMinimumVerticalExtent = #(cons -3 -3)
+           VerticalAlignment \push #'threshold = #'(9 . 9) 
 
            startSustain = #"Ped."
            stopSustain = #"*"
            stopStartSustain = #"*Ped."
            startUnaChorda = #"una chorda"
            stopUnaChorda = #"tre chorde"
-           % should make separate lists for stopsustain and startsustain 
            
            \consists "Piano_pedal_engraver";
            \consists "Script_engraver";
@@ -321,23 +440,17 @@ lowerDynamics = \context Dynamics=lower \notes{
            \consists "Text_engraver";
            %GURGURGU, text is initialised using TextScript
            TextScript \push #'style = #"italic"
-           TextScript \push #'font-size = #2
+           %%% TextScript \push #'font-size = #2
+
            \consists "Skip_req_swallow_translator";
 
            \consistsend "Axis_group_engraver";
        }
 
-       \translator {
-           \VoiceContext
-           TextScript \push #'style = #"italic"
-        }
        \translator {
            \PianoStaffContext
            \accepts Dynamics;
-           % aarg, also separates Dynamics context...
-           %VerticalAlignment \push #'threshold = #'(12 . 12) 
-           %VerticalAlignment \pop #'threshold
-           VerticalAlignment \push #'threshold = #'(1 . 10) 
+           VerticalAlignment \push #'threshold = #'(7 . 7)
         }
        \translator {
            \GraceContext