Nivel de volumen MIDI e interacción de expresión

No puedo entender la relación entre el mensaje del controlador MIDI 0x07 (canal de volumen general) y el mensaje del controlador MIDI 0x0B (volumen de expresión). Veo que este último se puede usar para crescendo y diminuendo, pero dado que tiene valores que van de 0 a 127, ¿cuál es el valor predeterminado y cómo estos valores son relativos al primero?

Digamos que arreglo el volumen para el canal 1 a 100 con un CC 0x07 al principio y nunca lo cambio. ¿Cómo implemento un diminuendo enviando mensajes CC 0x0B periódicamente? ¿Cuál es el primer valor de CC 0x0B que debo enviar? 100 o 127, suponiendo que la expresión es un porcentaje del volumen? ¿Y si quiero hacer un crescendo en su lugar?

Respuestas (3)

Del estándar GM2:


3.3.6 Expresión (cc#11) Valor predeterminado: 127 (7FH) [...] Modifica el volumen establecido por Channel Volume (cc#7) en el canal especificado.

Nota: Expresión (cc#11) y Volumen de canal (cc#7) se usan para diferentes propósitos. El volumen del canal (cc#7) se debe usar para establecer el volumen general del canal antes de la reproducción de datos musicales, así como para los movimientos estilo fader de mezcla, mientras que la expresión (cc#11) se debe usar durante la reproducción de datos musicales para atenuar el volumen. datos de volumen MIDI programados (cc#7), creando así diminuendos y crescendos. Esto permite al oyente, después del hecho, ajustar la mezcla relativa de instrumentos sin destruir la expresión dinámica de ese instrumento.

La fórmula utilizada es:

Ganancia en dB = (40 * log10(cc7/127)) + (40 * log10(cc11/127))


Entonces: si desea usar cualquier dinámica por instrumento, el valor del controlador predeterminado de 7f corresponde a fffffff (o como quiera llamar la posibilidad más alta: simplemente me tentaron demasiado y tuve que traducir 7f en siete fs), y es probable que tengas que comenzar con algo más pequeño de inmediato.

Creo que lo tengo. Digamos que la primera nota de un crescendo tiene una velocidad "p" y la última una velocidad "mf". Y he establecido valores numéricos para p y mf y p es la velocidad más baja que tengo en toda la canción para las notas iniciales debajo de la horquilla crescendo. Configuro cc11 en el mismo valor de p al comienzo de la canción y lo cambio gradualmente para que al final de una horquilla obtenga el mismo valor de la velocidad de la última nota debajo de la horquilla. ¿Tengo razón? Realmente necesito este material crescendo-diminuendo para simular mejor un violín real con MIDI. Para piano crescendos solo uso velocidades.
No confunda la expresión con "jugar más fuerte o más suave" (en el teléfono, se desarrollará más adelante)
Incluso en los dispositivos de reproducción de muestras más simples ['romplers'], tocar más fuerte [velocidad más alta] al menos abrirá los filtros, haciendo que el sonido sea más brillante, como una aproximación aproximada de lo que hace un instrumento acústico real. Subiendo el volumen, por cc7 o 11 no lo hará; simplemente lo hará más fuerte.
En la notación musical tradicional, en la primera y última nota de cualquier horquilla hay una indicación dinámica como mf, p, f, mp, etc. Por ejemplo, haces un crescendo de p a mf que abarca más de dos notas. Eso es lo que estoy tratando de hacer en MIDI.
entonces probablemente necesites hacerlo por velocidad [o, si tienes suerte] algunos samplers de gama alta de la familia de violines pueden usar la rueda de modulación, por ejemplo, como un control dinámico separado. Tendrás que experimentar con tu instrumento en particular. A menos que la expresión esté vinculada específicamente al menos a los filtros, entonces sería como subir una grabación de un violín real: no haría que el jugador toque más fuerte.

la respuesta real está en los documentos que puede descargar en https://www.midi.org/specifications/item/general-midi-2

El volumen (7) está predeterminado en 100, por lo que puede subirlo un poco. La expresión (11) por defecto es 127.

El volumen debe usarse una vez al comienzo de la pista/canal para establecer el volumen general. Expression debe ser el controlador continuo para mezclar para hacer crescendo/diminuendo (si eso no está integrado en las velocidades de las notas). Estos 2 controles más la velocidad más el volumen maestro (a través de los canales) el sistema de eventos comunes hace el volumen midi. Hay un estándar sobre cómo funcionan juntos, pero no confiaría en él porque no todos los sintetizadores responderán según ese algoritmo. Especialmente los sintetizadores de hardware más antiguos que ni siquiera pueden responder a 7, 11 o volumen maestro.

Para resumir, midi es el contenedor de basura más enrevesado y revisado de los llamados SSS estándar que he conocido. Pocos fabricantes se adhieren exactamente a ella. Así que prepárate para jugar por completo con el archivo midi que tienes que conseguir, el sintetizador que tienes que hacer lo correcto. Pero bueno, es el único "estándar" que conozco. Y nadie ha intentado hacer uno mejor. Midi es una pequeña bendición y una gran maldición.

Resultó que mi teclado Yamaha es compatible con CC11, pero la voz del violín se desvanece y desaparece mejor si solo aumento/disminuyo continuamente el volumen del canal CC7, así que eso es lo que haré. Estoy de acuerdo en que el estándar MIDI se parece mucho a HTML... creo que Yamaha no usa MIDI como formato de almacenamiento interno, sino su propio formato patentado que admite todas las funciones de sintetizador.

Una respuesta construida apresuradamente...

Los dos son valores separados, ambos predeterminados en 127.
La configuración reducirá el volumen por debajo de 127.
127 en ambos es 'volumen máximo', cualquier otra cosa es una reducción, pero puede considerarse 'canal' o 'bus' según el dispositivo , que afecta a los envíos previos y posteriores.

Master vol a 100 y expresión a 120 es lo mismo que maestro a 120 y expresión a 100, por lo que, de manera realista, son intercambiables.

Algunas máquinas responden como si en realidad fueran el mismo controlador, internamente, otras pueden afectar la sobremarcha u otras configuraciones de complementos como si una fuera un canal y la otra un control maestro; empíricamente es la única forma de probar.

[advertencia: este solía ser mi fuerte, pero llevo 17 años fuera del negocio]

y como mi respuesta y la del usuario 38161 se publicaron con segundos de diferencia, nada en su respuesta es incorrecta y la suya es la mejor explicación técnica, pero los diferentes fabricantes tratan la cadena de señal real de manera diferente]

Estoy bastante seguro de que el valor predeterminado para la expresión es 100...
¿Significa esto que si configuro el CC n.° 7 y deseo usar el CC n.° 11 para la dinámica, también tengo que configurar el CC n.° 11? Por ejemplo, si CC#7 es 100 y dejo CC#11 a 127 (según el valor predeterminado de acuerdo con las especificaciones), no podré implementar un crescendo porque no puedo hacer que CC#11 sea más alto, solo más bajo para hacer un diminuendo. ¿Debería establecer siempre CC#11 en 127/2~63 para poder reproducir crescendo y diminuendo?
@StephenHazel: puede que tenga razón, pero he buscado toda la documentación que pude encontrar y no puedo verla referenciada en ninguna parte [es decir, no solo encuentro información contradictoria, sino que no encuentro ninguna información por defecto]. Si puede encontrar alguna cita oficial, estoy más que feliz de incorporarla en la respuesta :)
Lo tenía al revés. el volumen (7) es 100. La expresión (11) es 127. Según el documento, puede descargarlo aquí: midi.org/specifications/item/general-midi-2