A.2 Piano templates
A.2.1 Solo piano
Here is a simple piano staff with some notes.
upper = \relative c'' {
\clef treble
\key c \major
\time 4/4
a4 b c d
}
lower = \relative c {
\clef bass
\key c \major
\time 4/4
a2 c
}
\score {
\new PianoStaff <<
\set PianoStaff.instrumentName = #"Piano "
\new Staff = "upper" \upper
\new Staff = "lower" \lower
>>
\layout { }
\midi { }
}
A.2.2 Piano and melody with lyrics
Here is a typical song format: one staff with the melody and lyrics,
with piano accompaniment underneath.
melody = \relative c'' {
\clef treble
\key c \major
\time 4/4
a b c d
}
text = \lyricmode {
Aaa Bee Cee Dee
}
upper = \relative c'' {
\clef treble
\key c \major
\time 4/4
a4 b c d
}
lower = \relative c {
\clef bass
\key c \major
\time 4/4
a2 c
}
\score {
<<
\new Voice = "mel" { \autoBeamOff \melody }
\new Lyrics \lyricsto mel \text
\new PianoStaff <<
\new Staff = "upper" \upper
\new Staff = "lower" \lower
>>
>>
\layout {
\context { \RemoveEmptyStaffContext }
}
\midi { }
}
A.2.3 Piano centered lyrics
Instead of having a full staff for the melody and lyrics, lyrics can be
centered between the staves of a piano staff.
upper = \relative c'' {
\clef treble
\key c \major
\time 4/4
a4 b c d
}
lower = \relative c {
\clef bass
\key c \major
\time 4/4
a2 c
}
text = \lyricmode {
Aaa Bee Cee Dee
}
\score {
\new GrandStaff <<
\new Staff = upper { \new Voice = "singer" \upper }
\new Lyrics \lyricsto "singer" \text
\new Staff = lower { \lower }
>>
\layout {
\context {
\GrandStaff
\accepts "Lyrics"
}
\context {
\Lyrics
\consists "Bar_engraver"
}
}
\midi { }
}
A.2.4 Piano centered dynamics
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.
global = {
\key c \major
\time 4/4
}
upper = \relative c'' {
\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 { }
}
Other languages: espaƱol, deutsch.