Implementación MIDI
■Ejemplo de un mensaje Exclusive y cálculo de
suma de comprobación
Los mensajes Roland Exclusive (RQ1, DT1) se transmiten con una suma de comprobación al
final (antes de F7) para comprobar que el mensaje se ha recibido correctamente. El valor de
la suma de comprobación viene determinado por la dirección y los datos (o tamaño) del
mensaje Exclusive transmitido.
●Cómo calcular la suma de comprobación
(los números hexadecimales se indican con una "H")
La suma de comprobación es un valor derivado de añadir la dirección, el tamaño y la suma
de comprobación e invertir los 7 bits inferiores.
Aquí tiene un ejemplo de cómo se calcula una suma de comprobación. Suponemos que en el
mensaje Exclusive que se transmite, la dirección es aabbccddH y los datos o tamaño es
eeffH.
aa + bb + cc + dd + ee + ff = suma
suma ÷ 128 = cociente ... resto
128 - resto = suma de comprobación
<Ejemplo> Ajustar CHORUS TYPE de PERFORMANCE COMMON a
DELAY (DT1)
Según el Mapa de direcciones de parámetro (p. 226), la dirección inicial de la
Interpretación temporal es 10 00 00 00H, la dirección de desplazamiento de CHORUS en
PERFORMANCE COMMON es 04 00H, y la dirección de CHORUS TYPE es 00 00H. Por eso
la dirección de CHORUS TYPE de PERFORMANCE COMMON es;
10 00 00 00H
04 00H
+)
00 00H
10 00 04 00H
El valor de DELAY es 02H.
Así que el mensaje System Exclusive que debería enviarse es;
F0
41
10
00 00 25
12
10 00 04 00
(1)
(2)
(3)
(4)
(5)
dirección
(1) Estado Exclusive
(2) ID (Roland)
(4) ID de modelo (JUNO-STAGE)(5) ID de comando (DT1)
A continuación calcule 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 el mensaje que se debe enviar es: F0 41 10 00 00 25 12 10 00 04 00 02 6A F7.
242
02
??
F7
datos
suma comp
(6)
(3) ID de dispositivo (17)
(6) Final de Exclusive
■La función Scale Tune (dirección: 40 1x 40)
La función scale tune le permite ajustar con precisión la afinación individual de las notas de
la C a la B. Aunque los ajustes se realizan mientras se trabaja con una octava, los ajustes
precisos afectarán todas las octavas. Realizando los ajustes Scale Tune adecuados, puede
obtener una variedad completa de métodos de afinación distintos al temperamento equal.
Como ejemplos, a continuación se explican tres posibles ajustes de escala.
* El valor de scale tune recibido por la parte 1 se utiliza en el modo Patch y en el modo
Piano.
❍Temperamento igual
Este método de afinación divide las octavas en 12 partes iguales. Actualmente es la forma
de afinación más utilizada, especialmente en la música occidental. En el JUNO-STAGE, los
ajustes por defecto de la función Scale Tune producen un temperamento equal.
❍Temperamento Justo (Tónica de C)
Los tríos principales suenan con más belleza que el temperamento equal, pero este beneficio
solo se puede obtener en una tecla. Si se transpone, los acordes tienden a ser ambiguos. El
ejemplo implica ajustes para una tecla con C como nota principal.
❍Escala arábica
Alterando el ajuste de Scale Tune, puede obtener una variedad de otras afinaciones
adecuadas para la música étnica. Por ejemplo, el ajuste que se presenta más adelante hará
que la unidad utilice la escala arábica.
Ajustes de ejemplo
Nombre de la notaTemperamento EqualTemperamento Just (Nota principal C)Escala
arábica
C
0
C#
0
D
0
Eb
0
E
0
F
0
F#
0
G
0
G#
0
A
0
Bb
0
B
0
Estos valores en la tabla se dan en centésimas. Convierta estos valores a hexadecimales, y
transmítelos como datos Exclusive.
Por ejemplo, para ajustar la afinación (C-B) de la parte 1 a escala arábica, envíe la siguiente
información:
F0 41 10 42 12 40 11 40 3A 6D 3E 34 0D 38 6B 3C 6F 40 36 0F 76 F7
■Tabla de código ASCII
El nombre de Patch y nombre de Performance, etc., de los datos MIDI se describen ASCII
código en la tabla siguiente.
+——————+——————+——————++——————+——————+——————++——————+——————+——————+
|
D
|
H
| Char ||
D
+——————+——————+——————++——————+——————+——————++——————+——————+——————+
|
32 |
20H |
SP
||
64 |
|
33 |
21H |
!
||
65 |
|
34 |
22H |
"
||
66 |
|
35 |
23H |
#
||
67 |
|
36 |
24H |
$
||
68 |
|
37 |
25H |
%
||
69 |
|
38 |
26H |
&
||
70 |
|
39 |
27H |
`
||
71 |
|
40 |
28H |
(
||
72 |
|
41 |
29H |
)
||
73 |
|
42 |
2AH |
*
||
74 |
|
43 |
2BH |
+
||
75 |
|
44 |
2CH |
,
||
76 |
|
45 |
2DH |
—
||
77 |
|
46 |
2EH |
.
||
78 |
|
47 |
2FH |
/
||
79 |
|
48 |
30H |
0
||
80 |
|
49 |
31H |
1
||
81 |
|
50 |
32H |
2
||
82 |
|
51 |
33H |
3
||
83 |
|
52 |
34H |
4
||
84 |
|
53 |
35H |
5
||
85 |
|
54 |
36H |
6
||
86 |
|
55 |
37H |
7
||
87 |
|
56 |
38H |
8
||
88 |
|
57 |
39H |
9
||
89 |
|
58 |
3AH |
:
||
90 |
|
59 |
3BH |
;
||
91 |
|
60 |
3CH |
<
||
92 |
|
61 |
3DH |
=
||
93 |
|
62 |
3EH |
>
||
94 |
|
63 |
3FH |
?
||
95 |
+——————+——————+——————++——————+——————+——————+
D: decimal
H: hexadecimal
* "SP" es espacio.
0
-8
+4
+16
-14
-2
-10
+2
+14
-16
+14
-12
|
H
| Char ||
D
|
H
40H |
@
||
96 |
60H |
41H |
A
||
97 |
61H |
42H |
B
||
98 |
62H |
43H |
C
||
99 |
63H |
44H |
D
||
100 |
64H |
45H |
E
||
101 |
65H |
46H |
F
||
102 |
66H |
47H |
G
||
103 |
67H |
48H |
H
||
104 |
68H |
49H |
I
||
105 |
69H |
4AH |
J
||
106 |
6AH |
4BH |
K
||
107 |
6BH |
4CH |
L
||
108 |
6CH |
4DH |
M
||
109 |
6DH |
4EH |
N
||
110 |
6EH |
4FH |
O
||
111 |
6FH |
50H |
P
||
112 |
70H |
51H |
Q
||
113 |
71H |
52H |
R
||
114 |
72H |
53H |
S
||
115 |
73H |
54H |
T
||
116 |
74H |
55H |
U
||
117 |
75H |
56H |
V
||
118 |
76H |
57H |
W
||
119 |
77H |
58H |
X
||
120 |
78H |
59H |
Y
||
121 |
79H |
5AH |
Z
||
122 |
7AH |
5BH |
[
||
123 |
7BH |
5CH |
\
||
124 |
7CH |
5DH |
]
||
125 |
7DH |
5EH |
^
||——————+——————+——————+
5FH |
_
|
-6
+45
-2
-12
-51
-8
+43
-4
+47
0
-10
-49
| Char |
`
|
a
|
b
|
c
|
d
|
e
|
f
|
g
|
h
|
i
|
j
|
k
|
l
|
m
|
n
|
o
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
{
|
|
|
}
|