3.6.8 Propriétés de contextes et effets MIDI
Les différentes propriétés de contexte qui suivent permettent
d’appliquer différents effets MIDI aux notes contenues dans le canal
MIDI associé à la portée courante, à l’instrument ou à la voix, selon la
valeur affectée à la propriété de contexte
Score.midiChannelMapping
et le contexte dans lequel le
Staff_performer
réside – voir Affectation des canaux MIDI.
Une adaptation de ces propriétés de contexte affectera toutes les notes jouées sur ce canal dès leur modification. Certains effets pourront même s’appliquer sur des notes déjà en cours, selon l’implémentation du périphérique de sortie MIDI.
LilyPond dispose des propriétés de contexte suivantes :
-
Staff.midiPanPosition
-
La spatialisation (pan position) contrôle le positionnement d’un canal MIDI entre les sorties stéréo droite et gauche. Cette propriété de contexte prend en argument une valeur entre -1.0 (
#LEFT
) et 1.0 (#RIGHT
). Une valeur de -1.0 enverra toute la puissance sonore sur le haut-parleur gauche (le droit sera silencieux), une valeur de 0.0 (#CENTER
) distribuera équitablement le son entre les haut-parleurs de gauche et de droite, et une valeur de 1.0 enverra tout le son sur le haut-parleur de droite. Des valeurs entre -1.0 et 1.0 permettent d’obtenir une répartition du son entre les sorties gauche et droite d’un équipement stéréophonique. -
Staff.midiBalance
-
La balance stéréo d’un canal MIDI. Tout comme la spatialisation, cette propriété de contexte prend en argument une valeur comprise entre -1.0 (
#LEFT
) et 1.0 (#RIGHT
). Elle permet de faire varier le volume relatif envoyé aux deux haut-parleurs stéréo sans pour autant affecter la distribution des signaux stéréo. -
Staff.midiExpression
-
Le niveau d’expression, en tant que fraction du niveau maximum de volume disponible, à appliquer à un canal MIDI. Un périphérique MIDI combine le niveau d’expression des canaux MIDI et le niveau de nuance de la voix en cours (tel que défini par
\p
ou\ff
) afin d’obtenir le volume total de chacune des notes de la voix. Un contrôle de l’expression permet, par exemple, d’implémenter des effets de crescendo ou decrescendo sur une note tenue, ce que LilyPond ne sait pas faire automatiquement.Le niveau d’expression varie entre 0.0 (sans expression, autrement dit volume à zéro) et 1.0 (volume au maximum).
-
Staff.midiReverbLevel
-
Le niveau de réverbération, en tant que fraction du niveau maximum disponible, à appliquer à un canal MIDI. Cette propriété prend en argument une valeur entre 0.0 (pas d’écho) et 1.0 (effet maximal).
-
Staff.midiChorusLevel
-
Le niveau de chœur, en tant que fraction du niveau maximum disponible, à appliquer à un canal MIDI. Cette propriété prend en argument une valeur entre 0.0 (pas de chorus) et 1.0 (effet maximal).
Problèmes connus et avertissements
Dans la mesure où les fichiers MIDI ne comportent effectivement aucune donnée audio, les modifications des propriétés de contexte ne se traduisent qu’en requêtes de changement des contrôles du canal MIDI lorsque ces fichiers MIDI sont joués. La manière dont un périphérique MIDI particulier, tel un synthétiseur MIDI logiciel, gérera ces requêtes incluses dans un fichier MIDI dépend complètement de l’implémentation du périphérique : certains d’entre eux pourront simplement ignorer plusieurs, voire toutes ces requêtes. Par ailleurs, la manière dont un périphérique MIDI interprète les différentes valeurs de ces contrôles (en règle générale, le standard MIDI ne fixe le comportement qu’aux valeurs extrêmes de l’amplitude disponible pour chacun des contrôles) et leur modification alors qu’une note sur un canal est tenue, dépend de l’implémentation particulière à ce périphérique.
Lors de la génération d’un fichier MIDI, LilyPond transforme simplement les valeurs fractionnaires dans l’amplitude linéaire en valeurs entières correspondantes (de 0 à 127 et sur 7 octets, ou de 0 à 32767 et sur 14 octets pour les contrôles MIDI supportant une résolution fine). Ces valeurs entières converties sont stockées telles quelles dans le fichier MIDI généré. Pour plus d’information sur la manière dont un périphérique MIDI interprète ces valeurs, se reporter à sa documentation.