3.5.4 Gestione delle dinamiche nel MIDI

È possile regolare il volume MIDI complessivo, il volume relativo dei segni di dinamica e il volume relativo dei diversi strumenti.

Le dinamiche vengono trasferite automaticamente sui livelli di volume nella gamma di volume MIDI disponibile, mentre crescendi e decrescendi variano il volume gradualmente tra i loro due estremi. È possibile regolare il volume relativo delle dinamiche e i livelli del volume complessivo dei diversi strumenti.


Dinamiche nel MIDI

Solo i segni di dinamica compresi tra ppppp e fffff, inclusi mp, mf e sf hanno dei valori assegnati. Questo valore viene poi applicato al valore della gamma del volume MIDI complessivo per ottenere il volume finale incluso nell’output MIDI per quella particolare dinamica. Le frazioni predefinite vanno da 0.25 per ppppp a 0.95 per fffff. L’insieme completo di dinamiche e delle loro frazioni associate si trova in ‘scm/midi.scm’.

Frammenti di codice selezionati

Creare dinamiche personalizzate nell’output MIDI

L’esempio seguente mostra come creare un segno di dinamica, non incluso nell’elenco predefinito, e assegnargli un valore specifico così che possa essere usato per cambiare l’output MIDI.

Al segno di dinamica \rfz viene assegnato il valore 0.9.

#(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 {}
}

[image of music]

File installati: ‘ly/script-init.ly’ ‘scm/midi.scm’.

Frammenti: MIDI.

Guida al funzionamento interno: Dynamic_performer.


Impostazione del volume MIDI

I valori minimo e massimo del volume complessivo delle dinamiche MIDI sono regolati dalle proprietà midiMinimumVolume e midiMaximumVolume nel livello Score. Tali proprietà hanno effetto soltanto all’inizio di una voce e sui segni di dinamica. La frazione corrispondente a ciascun segno di dinamica viene modificata con la seguente formula:

midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * frazione

Nell’esempio seguente la gamma dinamica del volume MIDI complessivo è limitata alla gamma 0.2 - 0.5.

\score {
  <<
    \new Staff {
      \set Staff.midiInstrument = "flauto"
      … musica …
    }
    \new Staff {
      \set Staff.midiInstrument = "clarinetto"
      … musica …
    }
  >>
  \midi {
    \context {
      \Score
      midiMinimumVolume = #0.2
      midiMaximumVolume = #0.5
    }
  }
}

Una semplice equalizzazione degli strumenti MIDI si può ottenere impostando le proprietà midiMinimumVolume e midiMaximumVolume nel contesto Staff.

\score {
  \new Staff {
    \set Staff.midiInstrument = "flauto"
    \set Staff.midiMinimumVolume = #0.7
    \set Staff.midiMaximumVolume = #0.9
    … musica …
  }
  \midi { }
}

In caso di partiture con molti righi e molti strumenti MIDI, i volumi relativi di ogni strumento possono essere impostati individualmente;

\score {
  <<
    \new Staff {
      \set Staff.midiInstrument = "flauto"
      \set Staff.midiMinimumVolume = #0.7
      \set Staff.midiMaximumVolume = #0.9
      … musica …
    }
    \new Staff {
      \set Staff.midiInstrument = "clarinetto"
      \set Staff.midiMinimumVolume = #0.3
      \set Staff.midiMaximumVolume = #0.6
      … musica …
    }
  >>
  \midi { }
}

In questo esempio il volume del clarinetto è diminuito in modo proporzionale al volume del flauto.

Se queste proprietà del volume non sono impostate, LilyPond applica comunque “un po’” di equalizzazione a certi strumenti. Vedi ‘scm/midi.scm’.

File installati: ‘scm/midi.scm’.

Vedi anche

Guida alla notazione: Formattazione della partitura.

Guida al funzionamento interno: Dynamic_performer.

Frammenti di codice selezionati

Modificare l’equalizzazione predefinita degli strumenti MIDI

L’equalizzatore predefinito degli strumenti MIDI può essere modificato impostando la proprietà instrumentEqualizer nel contesto Score come una procedura Scheme definita dall’utente che usi il nome dello strumento MIDI come argomento insieme a una coppia di frazioni indicanti i volumi minimi e massimi da applicare a quello specifico strumento.

L’esempio seguente imposta i volumi massimo e minimo per il flauto e per il clarintetto.

#(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 {  }
}

[image of music]

Problemi noti e avvertimenti

Le modifiche al volume MIDI si verificano soltanto all’inizio di una nota, quindi i crescendi e i decrescendi non possono cambiare il volume di una singola nota.


Impostazione delle proprietà del blocco MIDI

Il blocco \midi può contenere modifiche del contesto, nuove definizioni del contesto o codice che imposti i valori di certe proprietà.

\score {
  … musica …
  \midi {
    \tempo 4 = 72
  }
}

In questo esempio il tempo è impostato su 72 battiti da un quarto per minuto. Il segno di tempo nel blocco \midi non appare nella partitura, mentre qualsiasi altra indicazione di \tempo specificata nel blocco \score sarà trasferita anche nell’output MIDI.

Se all’interno di un blocco \midi, il comando \tempo imposta le proprietà durante l’interpretazione della musica e nel contesto delle definizioni di output; dunque viene interpretato come se fosse una modifica di contesto.

Le definizioni di contesto seguono la stessa sintassi di quelle di un blocco \layout;

\score {
  … musica …
  \midi {
    \context {
      \Voice
      \remove Dynamic_performer
    }
  }
}

Questo esempio toglie l’effetto delle dinamiche dall’output MIDI. Nota bene: i moduli di traduzione di LilyPond usati per l’audio si chiamano ‘performer’.

Vedi anche

Manuale di apprendimento: Altre fonti di informazione.

Guida alla notazione: Segni di espressione, Formattazione della partitura.

File installati: ‘ly/performer-init.ly’.

Frammenti: MIDI.

Guida al funzionamento interno: Dynamic_performer.

Problemi noti e avvertimenti

Alcuni lettori MIDI non sempre gestiscono correttamente i cambi di tempo.

I cambi di midiInstrument, e di altre opzioni MIDI, all’inizio di un rigo potrebbero apparire due volte nell’output MIDI.


LilyPond — Guida alla Notazione v2.23.82 (ramo di sviluppo).