No es conveniente para la información de interpretación (como la información de archivo
MIDI Estándar) contener muchos eventos con el estado ejecutándose como se proporcionó
en el <Ejemplo 4>. Esto es debido a que si se detiene la reproducción durante la canción y a
continuación rebobina o avanza rápido, el secuenciador puede que no transmita el estado
correcto, y el generador de sonido hará una interpretación errónea de la información.
Asegúrese de dar a cada evento su propio estado.
También es necesario que el ajuste del número de parámetro RPN o NRPN y el ajuste del
valor sean definidos en el orden adecuado. En algunos secuenciadores, los eventos que
ocurren en el mismo (o consecutivo) reloj deberían transmitirse en un orden diferente que el
orden en el que se recibieron. Por esta razón es una buena idea tergiversar ligeramente el
tiempo de cada evento (apróx. 1 pulsación para TPQN = 96, y unas 5 pulsaciones para
TPQN = 480).
* TPQN: Pulsaciones por Nota negra
GEjemplo de un mensaje Exclusive y un cálculo de una
suma de comprobación
Los mensajes Exclusive (Exclusivos) de Roland (RQ1, DT1) se transmiten con una suma de
comprobación al final (antes de F7) para asegurarse de que el mensaje se recibió de manera
correcta. El valor de la suma de comprobación se determina por la dirección y la
información (o tamaño) del mensaje Exclusive (Exclusivo) transmitido.
❍Intentar calcular la suma de comprobación (los números hexadecimales se
indican con una "H")
La suma de comprobación es un valor que se obtiene añadiendo la dirección, tamaño, y la
suma de comprobación en si e invirtiendo los 7 bits inferiores.
A continuación se muestra un ejemplo de cómo calcular la suma de comprobación.
Asumiremos que en los mensajes Exclusive (Exclusivos) que se están transmitiendo, la
dirección es aa bb ccH y la información o tamaño es dd ee ffH.
aa + bb + cc + dd + ee + ff = suma
suma ÷ 128 = cociente ... resto
128 - resto = suma de comprobación
<Ejemplo 1> Ajustar CHORUS TYPE de PERFORMANCE COMMON a DELAY (DT1).
Según el "Mapa de dirección de parámetro (p. 290)", la dirección inicial de Temporary
Performance es 10 00 00 00H, la dirección offset de CHORUS en PERFORMANCE
COMMON es 04 00H, y la dirección de CHORUS TYPE es 00 00H. Por lo tanto la dirección
CHORUS TYPE de PERFORMANCE COMMON es;
10 00 00 00H
04 00H
+)
00 00H
10 00 04 00H
DELAY tiene el valor de 02H.
Así que el mensaje exclusivo del sistema a enviar debería ser;
F0
41
10
00 10
12
(1)
(2)
(3)
(4)
(5)
(1) Estado exclusivo, (2) ID (Roland),
(4) Modelo ID (XV-5080),(5) Comando ID (DT1),(6) Fin de Exclusive
A continuación calculemos la suma de comprobación.
10H + 00H + 04H + 00H + 02H = 16 + 0 + 4 + 0 + 2 = 22 (sum)
22 (suma) ÷ 128 = 0 (cociente) ... 22 (resto)
suma de comprobación = 128 - 22 (resto) = 106 = 6AH
Esto significa que F0 41 10 00 10 12 10 00 04 00 02 6A F7 es el mensaje que se debería enviar.
<Ejemplo 2> Obtener la información (RQ1) de Performance Part 3 en USER:03.
Según el "Mapa de dirección de parámetro (p. 290)", la dirección inicial de USER:03 es 20 02
00 00H, y la dirección offset de Performance Part 3 es 00 22 00H.
Por lo tanto la dirección inicial de Performance Part 3 en USER:03 es;
20 02 00 00H
+) 00 22 00H
20 02 22 00H
10 00 04 00
02
??
Dirección
data
checksum
(3) Dispositivo ID (17),
Como el tamaño de Performance Part es 00 00 00 22H, el mensaje exclusivo del sistema a
enviar es;
F0
41
10
00 10
(1)
(2)
(3)
(4)
(6)
(1) Estado exclusivo, (2) ID (Roland),
(4) Modelo ID (XV-5080),(5) Comando ID(RQ1),(6) Fin de Exclusive
A continuación, calculamos la suma de comprobación.
20H + 02H + 22H + 00H + 00H + 00H + 00H + 22H = 32 + 2 + 34 + 0 + 0 + 0 + 0 + 34 = 102
(suma)
102 (sum) ÷ 128 = 0 (cociente) ... 102 (resto)
suma de comprobación = 128 - 102 (resto) = 26 = 1AH
Esto significa que F0 41 10 00 10 11 20 02 22 00 00 00 00 22 1A F7 es el mensaje a enviar.
<Ejemplo 3> Obtener la información Temporary Performance (RQ1);
cf.) Esta operación es la misma que la función Data Transfer en modo Utility
con las opciones "PERFORM" (Parámetro Type) y "TEMP: -PATCH" (Parámetro Source ).
Según el "Mapa de dirección de parámetro (p. 290)", la dirección inicial de Temporary
Performance se asigna de la siguiente forma:
10 00 00 00H
Temporary Performance Common
:
10 00 20 00H
Temporary Performance Part 1
:
10 00 2F 00H
Temporary Performance Part 16
Como el tamaño de la información de Performance Part es 00 00 00 22H, la suma del tamaño
y la dirección inicial de Part 16 en Temporay Performance será;
10 00 2F 00H
+) 00 00 00 22H
10 00 2F 22H
Y el tamaño que debería tener sería;
10 00 2F 29H
-) 10 00 00 00H
00 00 2F 22H
Por eso el mensaje exclusivo del sistema a enviar debería ser;
F0
41
10
00 10
(1)
(2)
(3)
(4)
(1) Estado exclusivo, (2) ID (Roland),
F7
(4) Modelo ID (XV-5080),(5) Comando ID (RQ1),(6) Fin de Exclusive
(6)
<Ejemplo 4> Obtener información (RQ1) a la vez;
Información Temporary Performance,
Información Temporary Patch de toda la parte en modo Performance,
Información Temporary Rhythm de toda la parte en modo
Performance.
cf.) Esta operación es la misma que la función Data Transfer en modo Utility
con las opciones "PERFORM" (parámetro Type) y "TEMP: +PATCH" (Parámetro Source).
Según el "Mapa de dirección de parámetro (p. 290)", la dirección inicial de los parámetros
anteriores se asignan de la siguiente forma:
10 00 00 00H
Temporary Performance
11 20 00 00H
Temporary Patch (Modo Performance Part 1)
11 30 00 00H
Temporary Rhythm (Modo Performance Part 1)
:
14 60 00 00H
Temporary Patch (Modo Performance Part 16)
14 70 00 00H
Temporary Rhythm (Modo Performance Part 16)
La dirección offset de la percusión también se asigna de la siguiente forma:
Implementación MIDI
11
20 02 22 00
00 00 00 22
??
(5)
Dirección
información suma de comprobación
(3) Dispositivo ID (17),
11
10 00 00 00
00 00 2F 22
??
(5)
Dirección
data
checksum
(3) Dispositivo ID (17),
F7
F7
(6)
303