On 04/02/18 05:19, Abraham Lee wrote:
Hi, Hilary!

On Sat, Feb 3, 2018 at 9:42 PM Hilary Snaden <hilary.sna...@zoho.com> wrote:

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


It does help, thanks. I found that I also had to move the midi volume adjustments into the staff context, so the midi block now looks like this:

\score {
  \unfoldRepeats
  \new Staff {
    \set Staff.midiInstrument = "Acoustic grand"
    \set Staff.midiMinimumVolume = #0.05
    \set Staff.midiMaximumVolume = #0.85
    <<
      { \upper }
      { \lower }
      { \pianodynamics }
      { \tempi }
    >>
  }
  \midi { }
}

For best results I'll need to add explicit levels at the end of every cresc and dim in the variable containing the dynamics, but this is still a significant improvement over no dynamics at all. Cheers!

--
Hilary


_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to