]> git.donarmstrong.com Git - lilypond.git/blobdiff - input/les-nereides.ly
release commit
[lilypond.git] / input / les-nereides.ly
index 0fe82491342d111e80ba84f1c189c6619fb53d68..f911a20aa0ed621da46b81c62d52cf4bc583bd97 100644 (file)
-\header{
-    composer =   "ARTHUR GRAY";
-    title =      "LES N\\'ER\\'EIDES";
-    subtitle =   "THE NEREIDS";
-    enteredby =  "JCN";
-    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";
+%{
+You should preprocess this file with the C preprocessor.  The one with
+FAKE_GRACE looks best.
+
+1.
+    cpp -P -traditional -o l.ly les-nereides.ly
+
+2.
+    cpp -P -traditional -o l-fake.ly  -DFAKE_GRACE les-nereides.ly
+
+%}
+
+\version "1.5.68"
+
+\header {
+    composer =   "ARTHUR GRAY"
+    title =      "LES N\\'ER\\'EIDES"
+    subtitle =   "THE NEREIDS"
+    enteredby =  "JCN"
+    %piece =      "Allegretto scherzando"
+    copyright =  "public domain"
+    description = "Nastiest 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
+ #(set! point-and-click line-column-location)
+
+%% 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) (equal? text (ly-get-grob-property elt 'text))))
+
+% complete and move to propert.ly?
+smallFont = {    
+    \property Score.PaperColumn  \override #'space-factor = #0.6
+    \property Score.PaperColumn  \override #'to-musical-spacing-factor = #0.04
+    \property Voice.NoteHead \override #'font-relative-size = #-1
+    \property Voice.Stem \override #'font-relative-size = #-1
+    \property Voice.Stem \override #'length = #6
+    \property Voice.Stem \override #'beamed-lengths =
+        #(map (lambda (x) (* 1.25 x)) '(0.0 2.5 2.0 1.5))
+    \property Voice.Stem \override #'beamed-minimum-lengths =
+        #(map (lambda (x) (* 1.25 x)) '(0.0 1.5 1.25 1.0))
+
+    \property Voice.Beam \override #'font-relative-size = #-1
+    \property Voice.TextScript \override #'font-relative-size = #0
+    \property Voice.Fingering \override #'font-relative-size = #-4
+    \property Voice.Slur \override #'font-relative-size = #-1
+    \property Staff.Accidentals \override #'font-relative-size = #-1
+    \property Voice.Beam \override #'space-function = #grace-beam-space-function
 }
 
-global = \notes{
-    \partial 2;
-    \key a \major;
-    \skip 2;
-    \skip 1*2;
+unSmallFont = {
+    \property Voice.NoteHead \revert #'font-relative-size
+    \property Voice.Stem \revert #'font-relative-size
+    \property Voice.Stem \revert #'length
+    \property Voice.Stem \revert #'beamed-lengths
+    \property Voice.Stem \revert #'beamed-minimum-lengths
+    \property Voice.Beam \revert #'font-relative-size
+    \property Voice.TextScript \revert #'font-relative-size
+    \property Voice.Fingering \revert #'font-relative-size
+    \property Voice.Slur \revert #'font-relative-size
+    \property Staff.Accidentals \revert #'font-relative-size
+    \property Voice.Beam \revert #'space-function
+    \property Score.PaperColumn  \revert #'space-factor
+    \property Score.PaperColumn \revert #'to-musical-spacing-factor
+}
 
-    %\skip 1;
+global =  \notes{
+    \partial 2
+    \key a \major
+    \skip 2
+    \skip 1*2
 
-    % fake grace
-    \skip 2.; \partial 32*24;
-    \skip 32*24;
-    %end fake grace
+#ifndef FAKE_GRACE  /* First run this through cpp.  See head les-nereides.ly */
+    \skip 1
+#else % FAKE_GRACE
+    \skip 2. \partial 32*24
+    \skip 32*24
+#endif % FAKE_GRACE
 
-    \bar "||";
+    \bar "||"
 }
 
-treble = \context Voice=treble \notes\relative c''{
-    r2
+treble =  \context Voice=treble \notes\relative c''{
+    % Broken?
+    \property Voice.NoteColumn \override #'horizontal-shift = #0
+    \outputproperty #(make-type-checker 'text-interface) 
+           #'extra-offset = #'(-6 . 2)
+    r2^#'((Large upright) "Allegretto scherzando")
     %2
-    \property basicStemProperties \pop #'direction
-    \property Voice.basicStemProperties \push #'direction = #1
-    r4 <cis eis a cis> r2
+    \property Voice.Stem \revert #'direction
+    \property Voice.Stem \override #'direction = #1
+    r4 <cis\arpeggio eis a cis> r2
     %3
-    r4 <cis fis a cis> r8.
+    r4 <cis\arpeggio fis a cis> r8.
+
+    % Urg, this lifts us up to staff context
     \translator Staff=bass
-    cis,16^2^"m.g."( <fis8 fis,\sustainup> <e! e,!>
+
+    % Get back:
+    \context Voice
+    
+    % If we don't get back to Voice, this text-checker doesn't work
+    \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
-    \property basicSlurProperties \pop #'direction
-    \property Voice.basicSlurProperties \push #'direction = #1
-    %% 8va
-    cis''''4 (
+    % Get back:
+    \context Voice
+    
+    \property Voice.Slur \revert #'direction
+    \property Voice.Slur \override #'direction = #1
+    \property PianoStaff.connectArpeggios = ##t
+    \property Voice.TextSpanner \revert #'type
 
-%{
+    %% Ghostview is ok, but xdvi shows a solid line
+    \property Voice.TextSpanner \override #'line-thickness = #2
+    \property Voice.TextSpanner \override #'dash-period = #0.5
+
+    \property Voice.TextSpanner \override #'type = #'dotted-line
+    \property Voice.TextSpanner \override #'edge-height = #'(0 . 1.5)
+    %% \property Voice.TextSpanner \override #'edge-text = #'("8 " . "")
+    \property Voice.TextSpanner \override #'edge-text = #'("8 " . "  ")
+
+    % Urg, this lifts us up to staff context
+    \property Staff.centralCPosition = #-13
 
-    \property basicStemProperties \pop #'direction
-    % ugh
-    \property Voice.basicStemProperties \push #'direction = #0
+    % Get back:
+    \context Voice
+
+    % If we don't get back to Voice, this text-checker doesn't work
+    \outputproperty #(make-text-checker "m.g.")
+           #'extra-offset = #'(-3 . -3)
+           
+    % 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
+
+    \property Voice.Stem \revert #'direction
 
     % grace is a mess
     % maybe we should fake this and put 5/4 in this bar?
 
     \grace {
         )cis8
-       \property basicStemProperties \pop #'direction
-       \property Grace.basicStemProperties \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.Stem \revert #'direction
+       \property Grace.Stem \override #'direction = #0
+       \property Grace.Beam \override #'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.centralCPosition = #-6
+       
+       [cis32 a-1 fis-4 dis] [cis a )fis-2]
     }
 
-%}
-
-    %% fake grace:
-    \property basicNoteHeadProperties \pop #'font-size
-    \property basicStemProperties \pop #'font-size
-    \property basicBeamProperties \pop #'font-size
-    \property basicTextScriptProperties \pop #'font-size
-    \property basicSlurProperties \pop #'font-size
-    \property basicLocalKeyProperties \pop #'font-size
-
-    \property Voice.basicNoteHeadProperties \push #'font-size = #-1
-    \property Voice.basicStemProperties \push #'font-size = #-1
-    \property Voice.basicBeamProperties \push #'font-size = #-1
-    \property Voice.basicTextScriptProperties \push #'font-size = #-1
-    \property Voice.basicSlurProperties \push #'font-size = #-1
-    \property Voice.basicLocalKeyProperties \push #'font-size = #-1
+#else % FAKE_GRACE 
 
+    \smallFont
+    
     )cis16
-    \property basicStemProperties \pop #'direction
-    \property Voice.basicStemProperties \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
-
-    \property basicNoteHeadProperties \pop #'font-size
-    \property basicStemProperties \pop #'font-size
-    \property basicBeamProperties \pop #'font-size
-    \property basicTextScriptProperties \pop #'font-size
-    \property basicSlurProperties \pop #'font-size
-    \property basicLocalKeyProperties \pop #'font-size
-
-    %ugh ugh
-    \property Voice.basicNoteHeadProperties \push #'font-size = #0
-    \property Voice.basicStemProperties \push #'font-size = #0
-    \property Voice.basicBeamProperties \push #'font-size = #0
-    \property Voice.basicTextScriptProperties \push #'font-size = #0
-    \property Voice.basicSlurProperties \push #'font-size = #0
-    \property Voice.basicLocalKeyProperties \push #'font-size = #0
-    %% end fake grace
-
+    \property Voice.Stem \revert #'direction
+    \property Voice.Stem \override #'direction = #0
+    %% [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.centralCPosition = #-6
+    [cis32 a^1 fis^4 dis] [cis a )fis-2] s % s s
 
+    \unSmallFont
+#endif % FAKE_GRACE
     
 
-    \property basicStemProperties \pop #'direction
-    \property Voice.basicStemProperties \push #'direction = #1
-    \!cis'4()bis
-    r8\mf-"a tempo"
-    <a'8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e r|
-    r\mf <a8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e r|
+    \property Voice.Stem \revert #'direction
+    \property Voice.Stem \override #'direction = #1
+    cis'4()bis
+    r8
+    <a'8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e^" "^1^4^5 r|
+    r<a8( a,> <gis gis,> <fis fis,> <gis gis,> <fis fis,> )e r|
 }
 
-trebleTwo = \context Voice=trebleTwo \notes\relative c''{
-    \skip 2;
-    \skip 1*2;
-    \skip 4;
-    \property basicStemProperties \pop #'direction
-    \property Voice.basicStemProperties \push #'direction = #-1
-    <cis4 a fis dis>
-
-    %% fake grace
-    \skip 32*16;
-    %% end fake grace
-
-    <e2-"rall." g, e d>
-    r8 cis4. d4 [<cis8( e,> <b-3 d,-1> |
-    <)a-2 cis,-1>] cis4. d4 [<cis8(\> e,> <b d,> |
-    <\!)a cis,>]
+trebleTwo =  \context Voice=trebleTwo \notes\relative c''{
+    \property Voice.NoteColumn \override #'horizontal-shift = #1
+    s2
+    s1*2
+    s4
+    \property Voice.Stem \revert #'direction
+    \property Voice.Stem \override #'direction = #-1
+    <cis'4\arpeggio a fis dis>
+
+#ifdef FAKE_GRACE
+    s32*16
+#endif
+
+    \property Voice.NoteColumn \override #'force-hshift = #-0.2
+    <e,2 gis, e d!>
+    % Hmm s/r?
+    %r8 cis4. d4
+    s8 cis4. d4
+    \property Voice.NoteColumn \revert #'force-hshift
+    [<cis8( e,> <b-3 d,-1> |
+    \property Voice.NoteColumn \override #'force-hshift = #-0.2
+    <)a-2 cis,-1>] cis4. d4 
+    \property Voice.NoteColumn \revert #'force-hshift
+    [<cis8( e,> <b d,> |
+    <)a cis,>]
 }
 
-bass = \context Voice=bass \notes\relative c{
-    \property Voice.basicSlurProperties \push #'details =
-        #'((height-limit . 2.0) (ratio . 0.333) (force-blowfit . 0.5) (beautiful . 5.0))
-    \property basicStemProperties \pop #'direction
-    \property Voice.basicSlurProperties \push #'direction = #-1
+bass =  \context Voice=bass \notes\relative c{
+    % Allow ugly slurs
+    \property Voice.Slur \override #'beautiful = #5.0
+    \property Voice.Slur \override #'attachment-offset = #'((0 . 3) . (0 . -4))
+    \property Voice.Stem \revert #'direction
+    \property Voice.Slur \override #'direction = #-1
     % huh, auto-beamer?
-    r8. e,16-2\f( [<a8 a,> <b b,>] <cis4\sustaindown cis,> |
+    r8. e,16-2( [<a8 a,> <b b,>] |
     %2
+    <cis4 cis,>
+    % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
     \translator Staff=treble
-    \property basicStemProperties \pop #'direction
-    \property Voice.basicStemProperties \push #'direction = #-1
-    \property Voice.slurEndAttachment = #'stem
-    <)a''4 eis cis> 
-    %\stemboth
-    \property Voice.slurEndAttachment = ##f
+    % Get back
+    \context Voice
+    \property Voice.Stem \revert #'direction
+    \property Voice.Stem \override #'direction = #-1
+    \property Voice.Slur \override #'attachment = #'(stem . stem)
+    <)a''4\arpeggio eis cis> 
+    %\stemBoth
+    \property Voice.Slur \revert #'attachment
+    % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
     \translator Staff=bass
-    \property basicStemProperties \pop #'direction
-    % ugh
-    \property Voice.basicStemProperties \push #'direction = #'0
-    r8. cis,,16(\sustainup <fis8 fis,> <gis gis,>
+    % Get back
+    \context Voice 
+    \property Voice.Stem \revert #'direction
+    \property Voice.Slur \revert #'y-free
+    \property Voice.Slur \override #'y-free = #0.1
+    \property Voice.Slur \revert #'attachment-offset
+    \property Voice.Slur \override #'attachment-offset = #'((0 . 3) . (0 . 8))
+    r8. cis,,16( <fis8 fis,> <gis gis,>
     %3
-    <a4\sustaindown a,>
+    \property Voice.Stem \revert #'length
+    \property Voice.Stem \override #'length = #5
+    <a4 a,>
+    % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
     \translator Staff=treble
-    \property basicStemProperties \pop #'direction
-    \property Voice.basicStemProperties \push #'direction = #-1
-    <)a' fis cis>
+    % Get back
+    \context Voice 
+    \property Voice.Stem \revert #'length
+    \property Voice.Stem \revert #'direction
+    \property Voice.Stem \override #'direction = #-1
+    <)a'\arpeggio fis cis>
+    % Huh, urg?  Implicit \context Staff lifts us up to Staff context???
     \translator Staff=bass
-    \property basicStemProperties \pop #'direction
-    % ugh
-    \property Voice.basicStemProperties \push #'direction = #'0
+    % Get back
+    \context Voice 
+    \property Voice.Stem \revert #'direction
     r2
     %4
-    \property basicStemProperties \pop #'direction
-    \property Voice.basicStemProperties \push #'direction = #-1
-    <b,,4\sustaindown b,>
-    \clef treble;
-    \property basicStemProperties \pop #'direction
-    \property Voice.basicStemProperties \push #'direction = #0
+    \property Voice.Slur \revert #'beautiful
+    \property Voice.Slur \revert #'attachment-offset
+    \property Voice.Stem \revert #'direction
+    \property Voice.Stem \override #'direction = #-1
+    <b,,4 b,>
+    \clef treble
+    \property Voice.Stem \revert #'direction
+    \property Voice.Stem \override #'direction = #0
     <
         %urg: staff-change: ! on dis
-        <cis'' a fis dis!>
-%      { s8. \sustainup\clef bass;}
+        <cis''\arpeggio a fis dis!>
+%      { s8. \clef bass}
     >
-    %\grace { s16 s s s s32 s s s s \clef bass; s }
-    %\clef bass;
-    %\grace { <e,,,32\sustaindown( e,> } <)gis'2 e>
 
-    %% fake grace
-    s4 s8 s32 s \sustainup s \clef bass; s
-    %% end fake grace
+#ifndef FAKE_GRACE
+    %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
+
+    \smallFont
+    
+    \property Voice.Slur \override #'attachment-offset = #'((-0.5 . 0) . (0.5 . 0))
+    <e,,,32( e,>
 
-    \grace { <e,,,32( e,> } <)gis'2\sustaindown e>
+    \unSmallFont
+     <)gis'2 e>
+    \property Voice.Slur \revert #'attachment-offset
+#endif
     %5
-    \property basicSlurProperties \pop #'direction
-    \property Voice.basicSlurProperties \push #'direction = #1
-    \property Staff.stopStartSustain = #""
-    a,8\sustainup\sustaindown [e'-5(<)a-2 cis-3>]
-    \property Staff.stopStartSustain = #"-P"
-     r b,-5\sustainup\sustaindown <e4-3 gis-5 d'>
-    \property basicSlurProperties \pop #'direction
-    \property Voice.basicSlurProperties \push #'direction = #0
-    [e,8-5(\sustainup|
+    \property Voice.Slur \revert #'direction
+    \property Voice.Slur \override #'direction = #1
+    a,8 [e'-5(<)a-2 cis-3>]
+    r b,-5 <e4-3 gis-5 d'>
+    \property Voice.Slur \revert #'direction
+    \property Voice.Slur \override #'direction = #0
+    [e,8-5(|
     %6
-    )a-2\sustaindown]
-    \property basicSlurProperties \pop #'direction
-    \property Voice.basicSlurProperties \push #'direction = #1
-    [e'(<)a cis>] r b,\sustainup\sustaindown <e4 gis d'>
-    \property basicSlurProperties \pop #'direction
-    \property Voice.basicSlurProperties \push #'direction = #0
-    [e,8(\sustainup|
+    )a-2]
+    \property Voice.Slur \revert #'direction
+    \property Voice.Slur \override #'direction = #1
+    [e'(<)a cis>] r b, <e4 gis d'>
+    \property Voice.Slur \revert #'direction
+    \property Voice.Slur \override #'direction = #0
+    [e,8(|
     %7
     )a]
 }
 
-bassTwo = \context Voice=bassTwo \notes\relative c{
-    \skip 2;
-    \skip 1*2;
-    \skip 2;
+bassTwo =  \context Voice=bassTwo \notes\relative c{
+    \skip 2
+    \skip 1*2
+    \skip 2
 
-    %% fake grace
-    \skip 32*16;
+#ifdef FAKE_GRACE
+    \skip 32*16
+#endif
+
+    \property Voice.Stem \revert #'direction
+    \property Voice.Stem \override #'direction = #1
+    \property Voice.Slur \revert #'direction
+    \property Voice.Slur \override #'direction = #1
 
-    \property basicStemProperties \pop #'direction
-    \property Voice.basicStemProperties \push #'direction = #1
-    \property basicSlurProperties \pop #'direction
-    \property Voice.basicSlurProperties \push #'direction = #1
     cis'4()bis
 }
 
+middleDynamics =  \context Dynamics=middle \notes{
+    s8 s16 s\f s4
+    s1*2
+    %4
+    s2
+
+#ifdef FAKE_GRACE
+    s32*12
+    \outputproperty #(make-type-checker 'dynamic-interface) 
+           #'extra-offset = #'(0 . 1.5)
+    s32\> s s \!s
+#endif
+    s32 
+    \outputproperty #(make-type-checker 'text-interface) 
+           #'extra-offset = #'(0 . 1.5)
+    s-"rall." s s
+    s8 s4
+
+    \outputproperty #(make-type-checker 'dynamic-interface) 
+           #'extra-offset = #'(0 . 4)
+    %s1\mf-"a tempo"
+%%    s2\mf-"a tempo" s4
+    s2\mf-"a tempo" s8
+%%    s\> \!s8
+    s16 s32 s64 \> s s8  s \!s8
+    \outputproperty #(make-type-checker 'dynamic-interface) 
+           #'extra-offset = #'(-1 . 4)
+%%    s8\mf s4 s4 s8\> s32 s s \!s
+    s8\mf s4 s8 s16 s32 s64 \> s s16 s8 s32 s s s\! s128
+}
+
+lowerDynamics =  \context Dynamics=lower \notes{
+    s2
+    %2
+    s2\sustainDown s8. s16\sustainUp s4
+    %3
+    s2\sustainDown s8. s16\sustainUp s4
+    %3
+
+#ifndef FAKE_GRACE
+    s4\sustainDown s16
+    s32 s s\sustainUp s
+    s32\sustainDown s s s
+    s8
+#else
+    s2\sustainDown
+    s32*12
+    s32 s s\sustainUp s
+    s32\sustainDown s s s
+#endif
+
+    \property Dynamics.pedalSustainStrings = #'("Ped." "*Ped." "")
+    s4 s16. s32\sustainUp
+
+    %5
+    s8\sustainDown s s
+    \property Dynamics.pedalSustainStrings = #'("Ped." "-P" "*")
+    s s\sustainUp\sustainDown s s
+    s\sustainUp
+
+    %6
+    \property Dynamics.pedalSustainStrings = #'("Ped." "*Ped." "")
+    s8\sustainDown s s
+    \property Dynamics.pedalSustainStrings = #'("Ped." "-P" "*")
+    s s\sustainUp\sustainDown s s
+    s\sustainUp
+}
+
 \score{
     \context PianoStaff <
         \context Staff=treble <
@@ -225,21 +414,63 @@ bassTwo = \context Voice=bassTwo \notes\relative c{
            \treble
            \trebleTwo
         >
+       \context Dynamics=middle <
+           \global
+           \middleDynamics
+       >
         \context Staff=bass <
-           \clef bass;
+           \clef bass
            \global
            \bass
            \bassTwo
         >
+       \context Dynamics=lower <
+           \global
+           \lowerDynamics
+       >
     >
     \paper {
+        % Hmm
+       % magnification_italic = 1.
        \translator {
            \ScoreContext
-           basicTimeSignatureProperties \push #'style = #"C"
+           TimeSignature \override #'style = #'C
+           SpacingSpanner \override #'maximum-duration-for-spacing = #(make-moment 1 4)
+
+           \remove Bar_number_engraver
+        }
+       \translator {
+           \type "Engraver_group_engraver"
+           \name Dynamics
+           \consists "Output_property_engraver"
+           Generic_property_list = #generic-voice-properties
+           \consists "Property_engraver"
+           minimumVerticalExtent = #'(-1 . 1)
+
+           pedalSustainStrings = #'("Ped." "*Ped." "*")
+           pedalUnaCordaStrings = #'("una corda" "" "tre corde")
+           
+           \consists "Piano_pedal_engraver"
+           \consists "Script_engraver"
+           \consists "Dynamic_engraver"
+           \consists "Text_engraver"
+
+           TextScript \override #'font-relative-size = #1
+           TextScript \override #'font-shape = #'italic
+
+           \consists "Skip_req_swallow_translator"
+
+           \consistsend "Axis_group_engraver"
+       }
+
+       \translator {
+           \PianoStaffContext
+           \accepts Dynamics
+           VerticalAlignment \override #'forced-distance = #7
         }
        \translator {
            \GraceContext
-           basicStemProperties \push #'flag-style = #""
+           Stem \override #'flag-style = #""
         }
     }
 }