GNU LilyPond – Manuel de notation: 3.6.4 Gestion des nuances en MIDI

### 3.6.4 Gestion des nuances en MIDI

Le volume général de la sortie MIDI peut se définir, ainsi que ses modulations, en fonction des indications de nuance et les volumes relatifs entre les différents instruments.

Les indications de nuance se traduisent automatiquement en niveau de volume dans l’amplitude disponible en MIDI alors que crescendos et diminuendos auront une progression linéaire entre les extrêmes.

#### Indication des nuances en MIDI

Les indications de nuance, de `ppppp` à `fffff` – y compris `mp`, `mf` et `sf` – ont des valeurs prédéfinies. Ce coefficient est alors appliqué pour corriger le volume général de façon à obtenir le niveau sonore qui sera retranscrit dans le fichier de sortie pour la nuance considérée. Nous allons, par défaut, de 0,25 pour un ppppp à 0,95 pour un fffff. Les correspondances entre nuance et fraction de volume sont répertoriées dans le fichier ‘`scm/midi.scm`’.

#### Morceaux choisis

#### Création de nuance particulière pour la sortie MIDI

L’exemple suivant illustre la manière de créer une indication de nuance, absente de la liste par défaut, et de lui assigner une valeur spécifique utile à la sortie MIDI.

L’indication de nuance `\rfz` (rinforzando) se voit attribuer une valeur de `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 {}
>     }

#### Voir aussi

Fichiers d’initialisation : ‘`ly/script-init.ly`’, ‘`scm/midi.scm`’.

Morceaux choisis : MIDI.

Référence des propriétés internes : Dynamic_performer.

#### Réglage du volume en MIDI

Les valeurs extrêmes du volume MIDI des nuances se contrôlent à l’aide des propriétés `midiMinimumVolume` et `midiMaximumVolume` qui agissent au niveau `Score`. Ces propriétés sont effectives dès lors qu’une nuance est indiquée ; une nuance de départ explicite est donc requise pour que le volume soit ajusté dès le début de la partition. Vous pouvez alors modifier la fraction correspondant à chaque nuance à l’aide de la formule

>     midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fraction

Voici comment ajuster les nuances tout en limitant l’amplitude du volume entre 0,2 et 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
>         }
>       }
>     }

La définition de l’amplitude du volume MIDI au niveau d’un contexte `Staff` – grace aux propriétés `midiMinimumVolume` et `midiMaximumVolume` – permet en quelque sorte d’égaliser un instrument MIDI.

>     \score {
>       \new Staff {
>         \set Staff.midiInstrument = "flute"
>         \set Staff.midiMinimumVolume = #0.7
>         \set Staff.midiMaximumVolume = #0.9
>         … musique …
>       }
>       \midi { }
>     }

Dans le cas d’une partition à plusieurs portées et différents instruments, les volumes relatifs entre les différents instruments se gèrent individuellement :

>     \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 { }
>     }

La clarinette de cet exemple jouera relativement moins fort que la flûte.

En l’absence de tout réglage des propriétés de volume, LilyPond appliquera cependant un léger degré d’égalisation pour certains instruments – voir ‘`scm/midi.scm`’.

#### Morceaux choisis

#### Réglage de l’égalisation par défaut des instruments MIDI

L’égaliseur basique peut être modifié par la définition d’une nouvelle procédure Scheme `instrumentEqualizer` au sein du contexte `Score`. Cette procédure prend en unique argument le nom d’un instrument MIDI et renverra une paire de fractions correspondant aux minimum et maximum de volume alloué à cet instrument.

Dans l’exemple suivant sont réglés les volumes relatifs de la flûte et de la clarinette.

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

#### Voir aussi

Fichiers d’initialisation : ‘`scm/midi.scm`’.

Manuel de notation : Mise en forme de la partition.

Référence des propriétés internes : Dynamic_performer.

#### Problèmes connus et avertissements

Les modifications apportées au volume MIDI n’interviennent que sur l’attaque d’une note, en conséquence de quoi crescendos et decrescendos n’affecteront pas le volume s’ils se produisent sur une même et unique note.

#### Réglage de propriétés dans le bloc MIDI

Le bloc `\midi` peut contenir des aménagements pour certains contextes, la définition de contextes particuliers ou du code permettant de déterminer la valeur de certaines propriétés.

>     \score {
>       … music …
>       \midi {
>         \tempo 4 = 72
>       }
>     }

Le tempo est ici réglé à 72 noires par minute. Une indication de tempo inscrite dans le bloc `\midi` ne sera pas reportée sur la partition imprimable. Cependant, tout `\tempo` mentionné dans le bloc `\score` sera répercuté dans la sortie MIDI.

Placée au sein d’un bloc `\midi`, la commande `\tempo` détermine des propriétés lors de la phase d’interprétation de la musique et dans le contexte de définition des sorties. Elle est alors considérée comme une modification de contexte.

La syntaxe permettant de définir un contexte pour le `\midi` est en tout point identique à celle que vous utilisez dans le bloc `\layout` :

>     \score {
>       … musique …
>       \midi {
>         \context {
>           \Voice
>           \remove Dynamic_performer
>         }
>       }
>     }

Ces quelques lignes ont pour effet de supprimer l’application des nuances à la sortie MIDI. Vous aurez noté que les modules de traduction de LilyPond en matière de son s’appelent performers – des « interprètes ».

#### Voir aussi

Manuel d’initiation : Autres sources de documentation.

Manuel de notation : Mise en forme de la partition, Signes d’interprétation.

Fichiers d’initialisation : ‘`ly/performer-init.ly`’.

Morceaux choisis : MIDI.

Référence des propriétés internes : Dynamic_performer.

#### Problèmes connus et avertissements

Certains lecteurs MIDI ne rendent pas correctement les changements de tempo.

Les modifications de `midiInstrument` ou autres options MIDI en début de portée peuvent se retrouver dédoublées dans la sortie MIDI.

#### LilyPond — Manuel de notation v2.24.4 (branche stable).