I have been trying to get LilyPond to generate MIDI versions of some
piano music. The music script renders nicely, and there are no errors or
warnings, but the MIDI file plays with no dynamics at all. What am I
doing wrong? (LilyPond 2.18.2.)
\score {
\unfoldRepeats
\new Staff
<<
{ \tempo 4=86 }
\new Voice = "v1" {
\set Staff.midiInstrument = "Acoustic grand"
\set Staff.midiMinimumVolume = #0.2
\set Staff.midiMaximumVolume = #0.8
\upper
}
\new Voice = "v2" {
\set Staff.midiInstrument = "Acoustic grand"
\set Staff.midiMinimumVolume = #0.2
\set Staff.midiMaximumVolume = #0.8
\lower
}
\new Dynamics \pianodynamics
>>
\midi { }
}
In order for dynamics to affect the notes, they need to be directly attached to them. Since this score is solely for playback, instead of creating a separate dynamics context (which is really more helpful for the engraving part), make \pianodynamics simultaneous with the variables \upper and \lower *within the Voice contexts*. So, something like this:
\new Voice { ... } <<
\upper
\pianodynamics
>>
and remove the Dynamics context completely since it doesn’t have a direct affect on playback.
Hope that helps,
Abraham