[ << Entrada y salida generales ] | [Arriba][Índice general][Índice] | [ Problemas de espaciado >> ] |
[ < El bloque MIDI ] | [ Subir : Creación de salida MIDI ] | [ Indicaciones de matiz dinámico en el MIDI > ] |
3.5.4 Control de las dinámicas del MIDI
Es posible controlar el volumen MIDI general, el volumen relativo de las indicaciones de matiz dinámico y el volumen relativo de los distintos instrumentos.
Las indicaciones matiz dinámico se traducen automáticamente a niveles de volumen dentro del rango de volúmenes MIDI disponible mientras que los crescendos y decrescendos varían el volumen linealmente entre sus dos extremos. Es posible controlar el volumen relativo de las indicaciones de matiz dinámico, y el volumen general de los diferentes instrumentos.
Indicaciones de matiz dinámico en el MIDI | ||
Establecimiento del volumen MIDI | ||
Establecimiento de las propiedades del bloque MIDI |
Indicaciones de matiz dinámico en el MIDI
Solo las marcas de dinámica desde ppppp
hasta
fffff
, incluidos mp
, mf
y sf
tienen
valores asignados. Este valor se aplica a continuación al valor
del rango de volumen MIDI general para obtener el volumen final
que se incluye en la salida MIDI para esa indicación de matiz
dinámico en particular. Las fracciones predeterminadas varían
desde 0.25 para el ppppp hasta 0.95 para el
fffff. El conjunto completo de las indicaciones de
matiz dinámico pueden verse en el archivo ‘scm/midi.scm’.
Fragmentos de código seleccionados
Creating custom dynamics in MIDI output
The following example shows how to create a dynamic marking, not included in the default list, and assign it a specific value so that it can be used to affect MIDI output.
The dynamic mark \rfz
is assigned a value of 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 {} }
Archivos instalados: ‘ly/script-init.ly’ ‘scm/midi.scm’.
Fragmentos de código: MIDI.
Referencia de funcionamiento interno: Dynamic_performer.
Establecimiento del volumen MIDI
Los volúmenes generales mínimo y máximo de las indicaciones de
matiz dinámico MIDI se controlan estableciendo las propiedades
midiMinimumVolume
y midiMaximumVolume
en el nivel
del bloque Score
. Estas propiedades tienen efecto
solamente al comienzo de una vos 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 dinámico del volumen MIDI
general se limita al intervalo entre 0.2
y 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 } } }
Se puede obtener una ecualización sencilla de instrumentos MIDI
estableciendo las propiedades midiMinimumVolume
y
midiMaximumVolume
dentro del contexto Staff
.
\score { \new Staff { \set Staff.midiInstrument = "flute" \set Staff.midiMinimumVolume = #0.7 \set Staff.midiMaximumVolume = #0.9 … music … } \midi { } }
Para partituras con más de un pentagrama y más de un instrumento MIDI, se pueden fijar individualmente los volúmenes relativos de cada instrumento:
\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 { } }
En este ejemplo el volumen del clarinete se reduce de forma relativa al volumen de la flauta.
Si no se establecen estas propiedades de volumen, LilyPond aún aplica un ‘pequeño grado’ de ecualización a ciertos instrumentos. Véase ‘scm/midi.scm’.
Archivos instalados: ‘scm/midi.scm’.
Véase también
Referencia de la notación: Disposición de la partitura.
Referencia de funcionamiento interno: Dynamic_performer.
Fragmentos de código seleccionados
Replacing default MIDI instrument equalization
The default MIDI instrument equalizer can be replaced by setting the
instrumentEqualizer
property in the Score
context to a
user-defined Scheme procedure that uses a MIDI instrument name as its
argument along with a pair of fractions indicating the minimum and
maximum volumes respectively to be applied to that specific instrument.
The following example sets the minimum and maximum volumes for flute and clarinet respectively."
#(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 { } }
Advertencias y problemas conocidos
Los cambios en el volumen del MIDI solamente tienen lugar en el comienzo de una nota, por lo que los crescendos y decrescendos no afectan al volumen de una sola nota.
Establecimiento de las propiedades del bloque MIDI
El bloque \midi
puede contener distintas disposiciones de
los contextos, definiciones de contexto nuevas o código que fija
los valores de ciertas propiedades.
\score { … music … \midi { \tempo 4 = 72 } }
Aquí, el tempo se establece a 72 pulsos de negra por minuto. La
indicación de tempo dentro del bloque \midi
no aparece en
la partitura impresa. Aunque cualquier otra indicación de
\tempo
que se especifique dentro del bloque \score
también se reflejará en la salida MIDI.
Dentro de un bloque \midi
, la instrucción \tempo
está estableciendo propiedades durante la interpretación de la
música y en el contexto de las definiciones de salida; así, se
interpreta como si fuera una modificación de contesto.
Las definiciones de contexto siguen la misma sintaxis que las del
bloque \layout
:
\score { … music … \midi { \context { \Voice \remove Dynamic_performer } } }
Este ejemplo suprime el efecto de las indicaciones dinámicas sobre la salida MIDI. Nota: los módulos de traducción de LilyPond usados para el sonido se llaman ‘performers’.
Véase también
Manual de aprendizaje: Otras fuentes de información.
Referencia de la notación: Expresiones, Disposición de la partitura.
Archivos instalados: ‘ly/performer-init.ly’.
Fragmentos de código: MIDI.
Referencia de funcionamiento interno: Dynamic_performer.
Advertencias y problemas conocidos
Ciertos reproductores de MIDI no siempre maneja correctamente los cambios de tempo en la salida MIDI.
Los cambios efectuados al midiInstrument
, así como ciertas
opciones MIDI, al comienzo de un pentagrama pueden
aparecer dos veces en la salida MIDI.