Jump to content

Creating custom dynamics in MIDI output

From LilyPond wiki
Revision as of 23:14, 21 November 2025 by Lemzwerg (talk | contribs) (New category)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The following example shows how to create a dynamic marking, not included in the default list, and assign a specific value to it so that it affects MIDI output.

The dynamic mark \rfz gets value 0.9.

\version "2.24"

#(define (myDynamics dynamic)
    (if (equal? dynamic "rfz")
      0.9
      (default-dynamic-absolute-volume dynamic)))

\score {
  \new Staff {
    \set Staff.midiInstrument = "cello"
    \set Score.dynamicAbsoluteVolumeFunction = #myDynamics
    \new Voice {
      \relative {
        a'4\pp b c-\rfz
      }
    }
  }
  \layout {}
  \midi {}
}