]> git.donarmstrong.com Git - lilypond.git/blobdiff - input/new/piano-template-with-centered-dynamics.ly
Merge master into nested-bookparts
[lilypond.git] / input / new / piano-template-with-centered-dynamics.ly
index e7078ea8fd6f49718219ac7f74e5dfa8aad5d59a..49c70a66c58cf9753fb2d85ab478eb57dc4705be 100644 (file)
@@ -1,95 +1,80 @@
-\version "2.11.35"
+\version "2.11.61"
 
 \header {
-  doctitle = "Piano template with centered dynamics"
-  lsrtags = "expressive-marks,piano-music,template"
+  lsrtags = "expressive-marks,keyboards,template"
   texidoc = "
 Many piano scores have the dynamics centered between the two staves.
 This requires a bit of tweaking to implement, but since the template is
 right here, you don't have to do the tweaking yourself.
-" }
+"
+  doctitle = "Piano template with centered dynamics"
+}
+
+global = {
+  \key c \major
+  \time 4/4
+}
 
 upper = \relative c'' {
-           \clef treble
-           \key c \major
-           \time 4/4
-         
-           a b c d
-         }
-         
-         lower = \relative c {
-           \clef bass
-           \key c \major
-           \time 4/4
-         
-           a2 c
-         }
-         
-         dynamics = {
-           s2\fff\> s4
-           s\!\pp
-         }
-         
-         pedal = {
-           s2\sustainDown s2\sustainUp
-         }
-         
-         \score {
-           \new PianoStaff <<
-             \new Staff = "upper" \upper
-             \new Dynamics = "dynamics" \dynamics
-             \new Staff = "lower" <<
-               \clef bass
-               \lower
-             >>
-             \new Dynamics = "pedal" \pedal
-           >>
-           \layout {
-             \context {
-               \type "Engraver_group"
-               \name Dynamics
-               \alias Voice % So that \cresc works, for example.
-               \consists "Output_property_engraver"
-         
-               \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1)
-               \override DynamicLineSpanner #'Y-offset = #0
-              pedalSustainStrings = #'("Ped." "*Ped." "*")
-               pedalUnaCordaStrings = #'("una corda" "" "tre corde")
-         
-               \consists "Piano_pedal_engraver"
-               \consists "Script_engraver"
-               \consists "Dynamic_engraver"
-               \consists "Text_engraver"
-         
-               \override TextScript #'font-size = #2
-               \override TextScript #'font-shape = #'italic
-         
-               \consists "Skip_event_swallow_translator"
-         
-               \consists "Axis_group_engraver"
-             }
-             \context {
-               \PianoStaff
-               \accepts Dynamics
-             }
-           }
-         }
-         \score {
-           \new PianoStaff <<
-             \new Staff = "upper" << \upper \dynamics >>
-             \new Staff = "lower" << \lower \dynamics >>
-             \new Dynamics = "pedal" \pedal
-           >>
-           \midi {
-             \context {
-               \type "Performer_group"
-               \name Dynamics
-               \consists "Piano_pedal_performer"
-             }
-             \context {
-               \PianoStaff
-               \accepts Dynamics
-             }
-           }
-         }
+  \clef treble
+  a4 b c d
+}
+
+lower = \relative c {
+  \clef bass
+  a2 c
+}
+
+dynamics = {
+  s2\fff\> s4 s\!\pp
+}
+
+pedal = {
+  s2\sustainOn s\sustainOff
+}
+
+\score {
+  \new PianoStaff = "PianoStaff_pf" <<
+    \new Staff = "Staff_pfUpper" \upper
+    \new Dynamics = "Dynamics_pf" \dynamics
+    \new Staff = "Staff_pfLower" << \lower >>
+    \new Dynamics = "pedal" \pedal
+  >>
+
+  \layout {
+    % define Dynamics context
+    \context {
+      \type "Engraver_group"
+      \name Dynamics
+      \alias Voice
+      \consists "Output_property_engraver"
+      \consists "Piano_pedal_engraver"
+      \consists "Script_engraver"
+      \consists "New_dynamic_engraver"
+      \consists "Dynamic_align_engraver"
+      \consists "Text_engraver"
+      \consists "Skip_event_swallow_translator"
+      \consists "Axis_group_engraver"
+
+      pedalSustainStrings = #'("Ped." "*Ped." "*")
+      pedalUnaCordaStrings = #'("una corda" "" "tre corde")
+      \override DynamicLineSpanner #'Y-offset = #0
+      \override TextScript #'font-size = #2
+      \override TextScript #'font-shape = #'italic
+      \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1)
+    }
+    % modify PianoStaff context to accept Dynamics context
+    \context {
+      \PianoStaff
+      \accepts Dynamics
+    }
+  }
+}
 
+\score {
+  \new PianoStaff = "PianoStaff_pf" <<
+    \new Staff = "Staff_pfUpper" << \global \upper \dynamics \pedal >>
+    \new Staff = "Staff_pfLower" << \global \lower \dynamics \pedal >>
+  >>
+  \midi { }
+}