\version "2.1.17"
\include "english.ly"

#(set-global-staff-size 17)

%% tweaks

%% score markings
ottava = #(set-octavation 1)
ottavaB = #(set-octavation -1)
loco = #(set-octavation 0)

%% cross-staff
csRHDown = { \change Staff = "lower" \voiceOne }
csRevRH = { \change Staff = "upper" \oneVoice }
csLHUp = { \change Staff = "upper" \voiceTwo }
csRevLH = { \change Staff = "lower" \oneVoice }

%% miscellaneous
oneRest = \once \property Staff.RestCollision \set #'maximum-rest-count = #1


global = \notes 
{
    %% A (m1-16): lively, but not rushed
    \time 2/4
    s4*2*4 \bar "||:"
}

  
rh = \notes \relative c'
{
    \key c \major
    \clef treble
    
    %% intro (mm1-4): not fast
    \csRHDown d,16 cs d f~ f fs g8
    \csRevRH d'16 cs d f~ f fs g8
    \voiceOne d'16 cs d f~ f e f fs
    g8 \oneRest r \oneVoice \scriptBoth \ottava <g b d g>-^ \loco
}


lh = \notes \relative c
{
    \key c \major
    \clef bass

    %% intro (mm1-4): not fast
    \voiceTwo d,16 cs d f~ f fs g8 \oneVoice \scriptBoth
    d'16 cs d f~ f fs g8
    \csLHUp d'16 cs d f~ f e f fs
    g8 r \csRevLH \ottavaB <g,,, g'>-^ \loco
}


dynamics = \notes
{
    %% intro (mm 1-4)
    s2\f s2*2 s4.
}


layout = \notes
{
    \repeat unfold 1 { s4*2*4 \break }
}


\score 
{
    \context PianoStaff
    <<
        \property PianoStaff.instrument = #"Piano"
        \context Staff = upper
        << 
            %\property Staff.Beam \override #'damping = #2
            \property Staff.AccidentalPlacement \set #'right-padding = #3
            \global
            \layout
            \rh
        >>
        \context Dynamics = dynamics << \global \dynamics >>
        \context Staff = lower
        <<
            %\property Staff.Beam \override #'damping = #2
            \global
            \lh
        >>
    >>

    \paper 
    {
        linewidth = 542.025\pt
        indent = 36.135\pt  % 0.5in
        \translator 
        {
            \type "Engraver_group_engraver"
            \name Dynamics
            \consists "Output_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-shape = #'italic
            DynamicText \override #'extra-offset = #'(0 . 2)
            Hairpin \override #'extra-offset = #'(0 . 2)
            
            \consists "Skip_event_swallow_translator"
            \consistsend "Axis_group_engraver"
        }
        \translator
        {
            \PianoStaffContext
            \accepts Dynamics
            VerticalAlignment \override #'forced-distance = #6
        }
    }
}