[ << Entrada y salida generales ] | [Arriba][Índice general][Índice][ ? ] | [ Problemas de espaciado >> ] | ||
[ < Repeticiones y MIDI ] | [ Subir : Salida MIDI ] | [ Indicaciones dinámicas > ] |
3.5.5 Control de los matices en el MIDI
La dinámica en el MIDI está implementada por medio del intérprete Dynamic_performer que reside de forma predeterminada dentro del contexto Voice. Es posible controlar el volumen MIDI general, el volumen relativo de los matices dinámicos y el volumen relativo de los distintos instrumentos.
Indicaciones dinámicas | ||
Volumen maestro MIDI | ||
Balance entre instrumentos (i) | ||
Balance entre instrumentos (ii) |
Indicaciones dinámicas
Los matices o indicaciones de dinámica se traducen a una fracción
fija del rango de volumen MIDI disponible. Las fracciones
predeterminadas se extienden desde 0.25 para ppppp
hasta 0.95 para fffff. El conjunto de indicaciones
dinámicas y las fracciones asociadas pueden verse en
‘../scm/midi.scm’, véase
información
Otras fuentes de información. Este conjunto de fracciones se puede cambiar o
extender proporcionando una función que toma como argumento una
indicación dinámica y devuelve la fracción requerida, y
estableciendo Score.dynamicAbsoluteVolumeFunction
a esta
función.
Por ejemplo, si se requiere una indicación dinámica
rinforzando, \rfz
, ésta no tiene ningún efecto
predeterminado sobre el volumen MIDI, pues no está incluida en el
conjunto predeterminado. De igual manera, si se define una
indicación dinámica nueva con make-dynamic-script
, ésta
tampoco estará incluida en el conjunto predeterminado. El ejemplo
siguiente muestra cómo hay que añadir el volumen MIDI para estas
indicaciones dinámicas. La función Scheme establece la fracción a
0.9 si se encuentra una indicación dinámica rfz, y en caso
contrario llama a la función predeterminada.
#(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 {} }
Como alternativa, si se necesitara redefinir la tabla completa de fracciones, sería mejor usar el procedimiento default-dynamic-absolute-volume que aparece en ‘../scm/midi.scm’ y la tabla asociada como modelo. El último ejemplo de esta sección muestra cómo se puede hacer esto.
Volumen maestro MIDI
El volumen general máximo y mínimo de las indicaciones dinámicas
de MIDI se controla estableciendo valores para las propiedades
midiMinimumVolume
y midiMaximumVolume
en el nivel de
Score
. Estas propiedades tienen efecto solamente al inicio
de una voz y sobre las indicaciones dinámicas. La fracción que
corresponde a cada indicación dinámica se modifica con esta
fórmula:
midiMinimumVolume + (midiMaximumVolume - midiMinimumVolume) * fracción
En el ejemplo siguiente, el rango de intensidad dinámica del volumen general MIDI está limitado al intervalo desde 0.2 hasta 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 } } }
Balance entre instrumentos (i)
Si las propiedades de volumen MIDI máximo y mínimo están
establecidas en el contexto Staff
se pueden controlar los
volúmenes relativos de los instrumentos MIDI. Esto proporciona un
ecualizador de instrumentos básico que puede realzar
significativamente la calidad de la salida MIDI.
En este ejemplo se reduce el volumen del clarinete con relación al de la flauta.
\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 } }
Balance entre instrumentos (ii)
Si las propiedades de volumen MIDI máximo y mínimo no están establecidas, de forma predeterminada LilyPond aplica un pequeño grado de ecualización a algunos instrumentos. Los instrumentos y la ecualización que se aplica se muestra en la tabla instrument-equalizer-alist en ‘../scm/midi.scm’.
El ecualizador básico predeterminado se puede sustituir
estableciendo instrumentEqualizer
en el contexto
Score
a un procedimiento Scheme nuevo que acepte el nombre
de un instrumento MIDI como único argumento y devuelva un par de
fracciones que dan los volúmenes máximo y mínimo que se aplican a
dicho instrumento. Esta sustitución se hace de la misma forma que
mostramos para restablecer la fracción de volumen absoluto
dynamicAbsoluteVolumeFunction
al comienzo de esta sección.
El ecualizador predeterminado,
default-instrument-equalizer, en
‘../scm/midi.scm’, muestra cómo se puede escribir tal
procedimiento.
El ejemplo siguiente establece los volúmenes relativos de la flauta y del clarinete a los mismos valores que el ejemplo anterior.
#(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 } }
Otros idiomas: English, deutsch, français, italiano, 日本語.
Acerca de la selección automática del idioma.