[ << Généralités en matière d'entrée et sortie ] | [Racine][Table des matières][Index][ ? ] | [ Gestion de l'espace >> ] | ||
[ < Répétitions et MIDI ] | [ Plus haut: Sortie MIDI ] | [ Indications de nuance > ] |
3.5.5 Gestion des nuances en MIDI
Les nuances MIDI sont générées par le Dynamic_performer
, affecté
par défaut au contexte Voice
. Vous pouvez contrôler à la fois le
volume général, celui des indications de nuance ainsi que celui des
différents instruments.
Indications de nuance | ||
Amplitude du volume en MIDI | ||
Égalisation de plusieurs instruments (i) | ||
Égalisation de plusieurs instruments (ii) |
Indications de nuance
Les indications de nuances sont transcrites en fraction du volume MIDI.
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’ –
consultez la rubrique
Autres sources de documentation si
vous ne savez comment le localiser. Vous pouvez modifier ou étendre ce
jeu grâce à une fonction qui prendra en argument une indication de
nuance et renverra la fraction désirée, puis en affectant cette fonction
à Score.dynamicAbsoluteVolumeFunction
.
Prenons un exemple. Votre partition comporte un rinforzando
que vous avez indiqué par \rfz
. Cette indication de nuance
n’étant pas répertoriée dans le jeu par défaut, elle ne produira aucun
effet en MIDI. Il en sera d’ailleurs de même pour toute indication
créée de toute pièce à l’aide de l’instruction
make-dynamic-script
. Voici comment procéder pour ajuster le
volume MIDI de ce rinforzando que le compositeur a indiqué.
La fonction Scheme définit une fraction de 0,9 en cas de rfz,
et demande d’utiliser la fonction par défaut dans les autre cas.
#(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 c'' { a4\pp b c-\rfz } } } \layout {} \midi {} }
Si vous étiez amené à devoir modifier l’intégralité du jeu des
correspondances, nous vous conseillons d’utiliser la procédure
default-dynamic-absolute-volume
contenue dans le fichier
‘../scm/midi.scm’ ainsi que la table d’association comme base.
Le dernier exemple de cette partie illustre la manière de procéder.
Amplitude 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 { \key g \major \time 2/2 \set Staff.midiInstrument = #"flute" \new Voice \relative c''' { r2 g\mp g fis~ fis4 g8 fis e2~ e4 d8 cis d2 } } \new Staff { \key g \major \set Staff.midiInstrument = #"clarinet" \new Voice \relative c'' { b1\p a2. b8 a g2. fis8 e fis2 r } } >> \layout {} \midi { \tempo 2 = 72 \context { \Score midiMinimumVolume = #0.2 midiMaximumVolume = #0.5 } } }
Égalisation de plusieurs instruments (i)
La définition de l’amplitude du volume MIDI au niveau d’un contexte
Staff
permet de gérer les volumes relatifs entre les différents
instruments. Ceci constitue en quelque sorte un égaliseur, ce qui
permet d’améliorer notablement la qualité de la sortie MIDI.
La clarinette de l’exemple suivant jouera relativement moins fort que la flûte. Rappelez-vous que pour que cela fonctionne correctement, la première note de chacun des instruments doit être affublée d’une indication de nuance.
\score { << \new Staff { \key g \major \time 2/2 \set Staff.midiInstrument = #"flute" \set Staff.midiMinimumVolume = #0.7 \set Staff.midiMaximumVolume = #0.9 \new Voice \relative c''' { r2 g\mp g fis~ fis4 g8 fis e2~ e4 d8 cis d2 } } \new Staff { \key g \major \set Staff.midiInstrument = #"clarinet" \set Staff.midiMinimumVolume = #0.3 \set Staff.midiMaximumVolume = #0.6 \new Voice \relative c'' { b1\p a2. b8 a g2. fis8 e fis2 r } } >> \layout {} \midi { \tempo 2 = 72 } }
Égalisation de plusieurs instruments (ii)
Lorsque les propriétés volume minimum et maximum n’ont pas été définies, LilyPond appliquera par défaut une légère égalisation pour quelques instruments. Les instrument concernés ainsi que le niveau d’égalisation sont répertoriés dans une table instrument-equalizer-alist du fichier ‘../scm/midi.scm’.
Vous pouvez remplacer l’égaliseur basique en définissant 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 au
minimum et maximum de volume alloué à cet instrument. Cette
substitution fonctionne selon le même principe que celui que nous avons
vu en début de chapitre avec dynamicAbsoluteVolumeFunction
.
L’égaliseur par défaut, default-instrument-equalizer, est
défini dans le fichier ‘../scm/midi.scm’ ; son analyse vous
aidera à construire votre propre procédure.
Nous allons, dans l’exemple suivant, régler le volume relatif de la flûte et de la clarinette – au même niveau que dans le précédent.
#(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 c''' { r2 g\mp g fis~ fis4 g8 fis e2~ e4 d8 cis d2 } } \new Staff { \key g \major \set Staff.midiInstrument = #"clarinet" \new Voice \relative c'' { b1\p a2. b8 a g2. fis8 e fis2 r } } >> \layout { } \midi { \tempo 2 = 72 } }
Autres langues : English, deutsch, español, italiano, 日本語.
About automatic language selection.