Conozco la posibilidad de microafinar softwares como Logic o Pianoteq, conectar un teclado midi normal y poder tocar escalas microafinadas.
Mi pregunta, sin embargo, es si conecto un Teclado Oriental que ya tiene las escalas microafinadas a un software como Reason, ¿saldrían los mensajes midi microafinados automáticamente?
Existe una disposición en el estándar MIDI para enviar y recibir microsintonización, tanto como volcados de datos completos como algunas modificaciones en tiempo real, utilizando mensajes SysEx.
7EH 08 nn es el estándar de afinación MIDI (no en tiempo real) y
7FH 08 nn es el estándar de afinación MIDI (tiempo real)
Personalmente, nunca he usado ninguno de estos, aunque sabía de su existencia, por lo que es posible que se requiera más investigación para ver exactamente cómo se implementan.
La especificación Raw está disponible en MIDI Association: Universal System Exclusive Messages y hay un artículo de Wikipedia al respecto: MIDI Tuning Standard
Más investigaciones parecerían mostrar que algunos instrumentos, específicamente Yamaha, ahí es donde solía trabajar, por lo que todavía tengo personas a las que puedo preguntar, pero una búsqueda en Google muestra que algunos dispositivos Roland también son capaces de usar el ajuste de afinación de escala/octava del GM2 General . Especificaciones MIDI 2 .
Este es capaz de ajustar cada una de las 12 notas en cualquier octava por centésimas, pero se repite lo mismo para cada octava.
Encontré esta guía de datos de un manual de Roland
❍Scale/Octave Tuning Adjust
Status Data byte Status
F0H 7EH, 7FH, 08H, 08H, ffH, ggH, hhH, ssH... F7H
Byte Explanation
F0H Exclusive status
7EH ID number (Universal Non-realtime Message)
7FH Device ID (Broadcast)
08H Sub ID#1 (MIDI Tuning Standard)
08H Sub ID#2 (scale/octave tuning 1-byte form)
ffH Channel/Option byte 1
bits 0 to 1 = channel 15 to 16
bit 2 to 6 = Undefined
ggH Channel byte 2
bits 0 to 6 = channel 8 to 14
hhH Channel byte 3
bits 0 to 6 = channel 1 to 7
ssH 12 byte tuning offset of 12 semitones from C to B
00H = -64 [cents]
40H = 0 [cents] (equal temperament) 7FH = +63 [cents]
F7H EOX (End Of Exclusive)
Mirando esa especificación, también parecería ser un subconjunto o una definición más estricta del estándar de sintonización MIDI mencionado anteriormente.
Me las arreglé para encontrar un enlace a toda la especificación de MIDI Tuning Standard en Microtonal Synthesis com , pero, francamente, estoy muy por encima de mi nivel de pago en la totalidad de la estructura.
Lo reproduciré aquí en caso de una futura web-rot
Formatear esto fue una pesadilla y ni siquiera voy a intentar codificarlo correctamente, pero siéntase libre de modificar/arreglar cualquier error encontrado
El estándar de afinación MIDI
El estándar de afinación MIDI fue ratificado por la Asociación de fabricantes de MIDI en enero de 1992. Se debe dar crédito a Robert Rich y Carter Scholz, quienes escribieron y presionaron para esta adición a la especificación MIDI. Los fabricantes tienen la opción de admitir el estándar de afinación parcial o totalmente. Aparece en algunos instrumentos Emu y Ensoniq. Actualmente implementan solo las características que no son en tiempo real del estándar.
Mensajes que no son en tiempo real
Solicite un volcado de afinación masivo de su sintetizador enviando los siguientes códigos:
F0 7E id 08 00 tt F7
dondeF0 7E = Id. de cabecera SysEx universal no en tiempo real
= Id. de dispositivo de destino
08 = Id. secundaria n.° 1 (estándar de sintonización MIDI)
00 = Id. secundaria n.° 2 (solicitud de volcado masivo)
tt = número de programa de afinación 0 a 127 en hexadecimal
F7 = fin del mensaje SysExpor ejemplo, solicite un volcado masivo del programa de ajuste 16 del dispositivo 1 con el siguiente mensaje:
F0 7E 01 08 00 10 F7
El sintetizador envía el volcado de afinación masivo en el siguiente formato:
F0 7E id 08 01 tt x16 x128 ck F7
dondeF0 7E = Id. de cabecera SysEx universal no en tiempo real
= Id. del dispositivo de destino 08 = Id. secundaria n.º 1 (estándar de sintonización MIDI)
01 = Id. secundaria n.º 2 (respuesta de volcado masivo)
tt = número de programa de afinación 0 a 127 en hexadecimal
tn = nombre de la afinación (16 caracteres ASCII)
xx yy zz = datos de frecuencia para una nota (repetida 128 veces) consulte el formato a continuación
ck = suma de comprobación
F7 = fin del mensaje SysExMensajes en tiempo real
El siguiente mensaje cambia la afinación de una o más notas en tiempo real. El método "preferido" según la especificación es cambiar la afinación inmediatamente para cualquier nota que suene actualmente. El método opcional es cambiar la afinación solo para las notas nuevas que siguen al mensaje de afinación. En realidad, el método preferido depende de lo que el compositor esté tratando de lograr y este autor recomienda un parámetro global en el sintetizador para seleccionar entre la afinación inmediata y la nota nueva solamente.
F0 7F id 08 02 tt ll [kk xx yy zz]x(ll) F7
dondeF0 7F = ID de encabezado SysEx universal en tiempo real
= ID del dispositivo de destino
08 = sub-id #1 (estándar de sintonización MIDI)
02 = sub-id #2 (cambio de nota)
tt = número de programa de afinación de 0 a 127
ll = número de notas a cambiarse (conjuntos de [kk xx yy zz])
[kk xx yy zz] = número de nota MIDI, seguido de datos de frecuencia para la nota
F7 = fin del mensaje SysExPrograma de afinación y cambios de banco
Los programas de afinación y los bancos se cambian utilizando mensajes de controlador de número de parámetro registrados.
Cambio de programa de afinación
Bn 64 00 65 03 06 tt (entrada de datos)
Bn 64 00 65 03 60 7F (incremento de datos)
Bn 64 00 65 03 61 7F (decremento de datos)
n = número de canal básico
tt = número de programa de sintonización de 1 a 128Cambio de banco de afinación
Bn 64 00 65 04 06 tt (entrada de datos)
Bn 64 00 65 04 60 7F (incremento de datos)
Bn 64 00 65 04 61 7F (decremento de datos)n = número de canal básico
tt = número de banco de sintonización de 1 a 128Formato de datos de frecuencia (todos los bytes en hexadecimal)
xx = semitono (número de nota MIDI para volver a sintonizar, la unidad es 100 centésimas)
yy = MSB de parte fraccionaria (1/128 semitono = 100/128 centésimas = 0,78125 unidades de centésimas)
zz = LSB de parte fraccionaria (1/16384 semitono = 100/16384 centavos = 0,0061 centavos)7F 7F 7F está reservado para no cambiar la afinación de nota existente
También descubrí que Yamaha crea una aplicación gratuita para iPhone/Pad, Scale Tuner , para ajustar esto sobre la marcha para teclados compatibles. Puede funcionar en otros dispositivos que admitan las mismas especificaciones. Parece que requiere una compra de hardware de conector Lightning/30 pines a MIDI, aunque no rastreé uno de esos específicamente.
Espero que eso no se considere spam incluso si solía trabajar allí. No lo he probado, solo brindo información para los interesados.
Hasta ahora, según mi experiencia, las afinaciones alternativas son una característica del módulo de sonido, no del controlador MIDI. Tetsujin (ver la otra respuesta) descubrió que hay una especificación para esto, pero que yo sepa, a menudo no es compatible. Puede determinar si un teclado admite esto buscando el manual y buscando el "Cuadro de implementación MIDI", como el vinculado en la otra respuesta. Querría verificar que tanto el teclado que pretende usar pueda enviar estos mensajes como que el generador de tonos/software que desea usar los reciba y reproduzca en la afinación alterada.
Salvo eso, podemos continuar con el texto original de mi respuesta, que ya está en progreso:
Los mensajes MIDI NOTE ON
(que son los mensajes que se envían desde un teclado a un generador de sonido para tocar una nota) normalmente solo envían dos valores, la velocidad (qué tan fuerte debe ser la nota) y el número de nota, que es solo de 0 a 127 y no contiene ninguna información de ajuste.
Depende del generador de sonido reaccionar a los números de nota entrantes de la manera adecuada. La respuesta más común de un generador de tonos a un número de nota es tocar una nota de temperamento igual con el timbre apropiado correspondiente al número de nota. Por ejemplo, si su teclado envía un NOTE ON
mensaje con la nota número 36, la mayoría de los generadores de tonos reproducirán un C2 temperado.
Es fácil ver cómo los números de nota MIDI en realidad no especifican notas o afinación cuando se usa un módulo de batería que cumple con General MIDI. Si envía exactamente el mismo NOTE ON
mensaje con la nota número 36 a un módulo de batería GM, el módulo normalmente reproducirá un sonido de batería de medio tom en lugar de una nota C2. El número de nota es solo un número del 0 al 127. Ni siquiera se usa siempre para tocar notas o sonidos. Muchas personas han programado software como Ableton Live para responder a los números de nota activando bucles o realizando otros cambios en la música que están creando.
Entonces, las afinaciones y las escalas alternativas son creadas por módulos de sonido, no por teclados u otros controladores MIDI.
Hay una forma de hacer que un módulo de sonido temperado reproduzca una afinación alternativa con un controlador MIDI, pero nunca he oído hablar de uno que haga esto. Si hubiera un controlador que le permitiera programarlo para enviar un PITCH BEND
número de CC al mismo tiempo que envía un NOTE ON
con los ajustes de afinación apropiados hechos por el PITCH BEND
valor, podría falsificar una afinación alterada.
Hay tantos problemas con esto que no es de extrañar que nadie haya hecho un teclado que lo haga. Primero, la configuración del rango de inflexión de tono en el módulo receptor tendría que establecerse en la cantidad correcta o, de lo contrario, la afinación alterada no sonaría bien. Además, solo puede tocar de forma monofónica, sin acordes, porque el valor de inflexión de tono afecta a todos los tonos simultáneamente.
Todd Wilcox
Tetsujin
nakhle
Tetsujin
Todd Wilcox
Tetsujin
Calin-Andrei Burloiu