[ << General input and output ] | [Top][Contents][Index] | [ Spacing issues >> ] |
[ < Dynamic marks in MIDI ] | [ Up : Controlling MIDI dynamics ] | [ Setting MIDI block properties > ] |
Setting MIDI volume
The minimum and maximum overall volume of MIDI dynamic markings is
controlled by setting the properties midiMinimumVolume
and
midiMaximumVolume
at the Score
level. These properties
have an effect only at the start of a voice and on dynamic marks. The
fraction corresponding to each dynamic mark is modified with this
formula
midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fraction
In the following example the dynamic range of the overall MIDI volume is limited to the range 0.2–0.5.
\score { << \new Staff { \set Staff.midiInstrument = "flute" … music … } \new Staff { \set Staff.midiInstrument = "clarinet" … music … } >> \midi { \context { \Score midiMinimumVolume = 0.2 midiMaximumVolume = 0.5 } } }
Simple MIDI instrument equalization can be achieved by setting
midiMinimumVolume
and midiMaximumVolume
properties within
the Staff
context.
\score { \new Staff { \set Staff.midiInstrument = "flute" \set Staff.midiMinimumVolume = 0.7 \set Staff.midiMaximumVolume = 0.9 … music … } \midi { } }
For scores with multiple staves and multiple MIDI instruments, the relative volumes of each instrument can be set individually;
\score { << \new Staff { \set Staff.midiInstrument = "flute" \set Staff.midiMinimumVolume = 0.7 \set Staff.midiMaximumVolume = 0.9 … music … } \new Staff { \set Staff.midiInstrument = "clarinet" \set Staff.midiMinimumVolume = 0.3 \set Staff.midiMaximumVolume = 0.6 … music … } >> \midi { } }
In this example the volume of the clarinet is reduced relative to the volume of the flute.
If these volumes properties are not set then LilyPond still applies a ‘small degree’ of equalization to certain instruments. See scm/midi.scm.
Installed Files: scm/midi.scm.
See also
Notation Reference: Score layout.
Internals Reference: Dynamic_performer.
Selected Snippets
Replacing default MIDI instrument equalization
The default MIDI instrument equalizer can be replaced by setting the
instrumentEqualizer
property in the Score
context to a
user-defined Scheme procedure that uses a MIDI instrument name as its
argument along with a pair of fractions indicating the minimum and
maximum volumes respectively to be applied to that specific instrument.
The following example sets the minimum and maximum volumes for flute and clarinet respectively."
#(define my-instrument-equalizer-alist '()) #(set! my-instrument-equalizer-alist (append '( ("flute" . (0.7 . 0.9)) ("clarinet" . (0.3 . 0.6))) my-instrument-equalizer-alist)) #(define (my-instrument-equalizer s) (let ((entry (assoc s my-instrument-equalizer-alist))) (if entry (cdr entry)))) \score { << \new Staff { \key g \major \time 2/2 \set Score.instrumentEqualizer = #my-instrument-equalizer \set Staff.midiInstrument = "flute" \new Voice \relative { r2 g''\mp g fis~ 4 g8 fis e2~ 4 d8 cis d2 } } \new Staff { \key g \major \set Staff.midiInstrument = "clarinet" \new Voice \relative { b'1\p a2. b8 a g2. fis8 e fis2 r } } >> \layout { } \midi { } }
Known issues and warnings
Changes in the MIDI volume take place only on starting a note, so crescendi and decrescendi cannot affect the volume of a single note.
[ << General input and output ] | [Top][Contents][Index] | [ Spacing issues >> ] |
[ < Dynamic marks in MIDI ] | [ Up : Controlling MIDI dynamics ] | [ Setting MIDI block properties > ] |