●Beispiele für tatsächliche MIDI-Nachrichten
<Beispiel 1> 92 3E 5F
9N ist der Note-On-Status und n ist die MIDI-Kanalnummer. Da 2H = 2, 3EH = 62 und
5FH = 95, ist dies eine Note-On-Nachricht mit MIDI CH = 3, Notennummer 62 (Notename
ist D4) und Velocity 95.
<Beispiel 2> CE 49
CNH ist der Status der Programmänderung, und n ist die MIDI-Kanalnummer. Da EH =
14 und 49h = 73, ist dies eine Programmänderungsmeldung mit MIDI CH = 15,
Programmnummer 74 (B22:SA E.Grand 2 in RD-600).
<Beispiel 3> EA 00 28
Enh ist der Pitch Bend Change Status und n ist die MIDI Kanalnummer. Das 2. Byte (00h =
0) ist der LSB und das 3. Byte (28H = 40) ist der MSB, aber Pitch Bend Value ist eine
vorzeichenbehaftete Zahl, in der 40 00h (= 64 x 128 + 0 = 8192) 0 ist, also ist dieser Pitch
Bend Value
28 00h - 40 00h = 40 x 128 + 0 - (64 x 128 + 0) = 5120 - 8192 = -3072
Wenn die Pitch-Bend-Empfindlichkeit auf 2 Halbtöne eingestellt ist, bewirkt -8192 (00
00h), dass sich die Tonhöhe um -200 Cent ändert, so dass in diesem Fall -200 x (-3072) / (-
8192) = -75 Cent Pitch-Bend auf MIDI-Kanal 11 angewendet wird.
<BEISPIEL 4> B3 64 00 65 00 06 0C 26 00 64 7F 65 7F
BnH ist der Status der Steueränderung und n ist die Nummer des MIDI-Kanals. Bei
Kontrolländerungen ist das 2. Byte die Kontrollnummer und das 3. Byte der Wert. In
einem Fall, in dem zwei oder mehr Nachrichten aufeinanderfolgende Nachrichten den
gleichen Status haben, hat MIDI eine Pro- Vision namens „Running Status", die es erlaubt,
das Statusbyte der zweiten und nachfolgenden Nachrichten auszulassen. Daher haben die
obigen Botschaften die folgende Bedeutung.
B3 64 00 MIDI-ch.4, niedrigeres Byte der RPN-Parameternummer:
00h (B3) 65 00 (MIDI ch.4) oberes Byte der RPN-Parameternummer:
00h (B3) 06 0C (MIDI-ch.4) oberes Byte des Parameterwerts: 0Ch
(B3) 26 00 (MIDI-ch.4) niedrigeres Byte des Parameterwerts: 00h
(B3) 64 7F (MIDI-ch.4) niedrigeres Byte der RPN-Parameternummer:
7FH (B3) 65 7F (MIDI ch.4) oberes Byte der RPN-Parameternummer:
7FH
Mit anderen Worten, die obigen Meldungen geben einen Wert von 0C 00h für den RPN-
Parameter Nummer 00 00h auf MIDI-Kanal 4 an und stellen dann die RPN-
Parameternummer auf 7F 7FH ein.
Der RPN-Parameter Nummer 00 00h ist die Empfindlichkeit der Pitch-Biegung, und die
MSB des Werts entspricht Halbtoneinheiten, sodass der maximale Pitch-Biegebereich mit
einem Wert von 0CH = 12 festgelegt wird 12 Halbtöne (1 Oktave). (Bei RD-600-
Schallquellen wird die LSB der Pitch Bend Sensitivity ignoriert, aber die LSB sollte
trotzdem übertragen werden (mit einem Wert von 0), damit die Funktion auf jedem Gerät
korrekt ist.)
Sobald die Parameternummer für RPN oder NRPN festgelegt wurde, sind alle
Dateneingabeparameter gültig, die auf demselben Kanal übertragen werden. Nach der
Übertragung des gewünschten Werts empfiehlt es sich daher, die Parameternummer auf
7F 7FH zu setzen, um Unfälle zu vermeiden. Dies ist der Grund für die (B3) 64 7F (B3) 65
7F am Ende
Es ist nicht wünschenswert, dass Leistungsdaten (wie Standard-MIDI-Dateidaten) viele
Ereignisse mit laufendem Status enthalten, wie in <Beispiel 4> angegeben. Dies liegt
daran, dass der Sequenzer möglicherweise nicht in der Lage ist, die Wiedergabe während
des Songs anzuhalten und dann zurückgespult oder schnell weitergeleitet zu werden
Übertragen Sie den korrekten Status, und die Tonquelle interpretiert die Daten dann falsch.
Vorsicht Jedem Ereignis seinen eigenen Status zu geben.
Es ist auch erforderlich, dass die RPN- oder NRPN-Parameternummer und die
Werteeinstellung eingestellt werden In der richtigen Reihenfolge durchgeführt werden. Bei
einigen Sequenzern treten Ereignisse im selben (oder consec- Utive) Uhr kann in einer
anderen Reihenfolge als der Reihenfolge gesendet werden, in der sie empfangen wurden.
Aus diesem Grund ist es eine gute Idee, die Zeit jedes Ereignisses leicht zu verstellen
(etwa 1 Ticks für TPQN = 96 und etwa 5 Ticks für TPQN = 480).
* TPQN: Ticks pro Quartal Hinweis
72
●
Beispiel für eine exklusive Nachricht und die
Berechnung einer Prüfsumme
Roland Exklusiv-Nachrichten (RQ1, DT1) werden mit einer Prüfsumme am Ende (vor F7)
übertragen, um sicherzustellen, dass die Nachricht korrekt empfangen wurde. Der Wert
der Prüfsumme wird durch die Adresse und Daten (oder Größe) der übermittelten
Exklusivnachricht bestimmt.
✧ Berechnung der Prüfsumme (hexadezimale Zahlen werden durch 'H'
angegeben)
Die Prüfsumme ist ein Wert, der durch Addieren der Adresse, Größe und
Prüfsumme selbst und Invertieren der unteren 7 Bit abgeleitet wird.
Hier ist ein Beispiel dafür, wie die Prüfsumme berechnet wird. Wir gehen davon aus, dass
in der ausschlie- genden Nachricht, die wir senden, die Adresse aa bb cc DDH und die
Daten oder die Größe e ff lautet gg HHH.
aa + bb + cc + dd + ee + ff + gg + hh = Summe
/ 128 = Quotient ... Rest
128 - Rest = Prüfsumme
<Beispiel 1> Einstellung „Effect Reverb type" von „Tempolary" auf „room1"
(DT1).
Die „Parameter address map" gibt an, dass die Startadresse des Temporärs 01 00
00 00h ist, dass die Offset-Adresse des Effektparameters 30 00h ist und dass die Adresse
des Typs „Reverb type" 00h ist. Die Adresse lautet also:
01 00 00 00H
30 00H
+)
00H
01 00 30 00H
Da „room1" der Parameterwert 00h ist,
F0 41 10 00 09 12 01 00 30 00
(1) (2) (3)
(4) (5)
Adresse
(1) Exklusivstatus
(2) ID-Nummer (Roland) (3) Geräte-ID (17)
(4) Modell-ID (RD-600)
(5) Befehls-ID (DT1)
Als nächstes berechnen wir die Prüfsumme.
01H + 00H + 30H + 00H + 00H = 1 + 0 + 48 + 0 + 0 = 49(SUMME)
49 (gesamt) 128 = 0 (Quotient) ... 49 (Rest) Prüfsumme
= 128 - 49 (Quotient) = 79 = 4FH
Dies bedeutet, dass die gesendete Nachricht F0 41 10 00 09 12 01 00 30 00 00 4F F7 ist.
<Beispiel 2> Abrufen von Daten für den temporären Rx.Part2-Parameter
(RQ1)
Die „Parameter address map" gibt an, dass die Startadresse von Temporary 01 00
00 00h und die Offset-Adresse des Rx.Part2-Parameters 20 01H ist.
Die Adresse lautet also:
01 00 00 00H
+)
20 01H
01 00 20 01H
Da die Größe des Leistungsteils 00 00 00 09h beträgt,
F0 41 10 00 09 11 01 00 20 01 00 00 00 09
(1) (2) (3)
(4) (5)
Adresse
(1) Exklusivstatus
(2) ID-Nummer (Roland) (3) Geräte-ID (17)
(4) Modell-ID (RD-600)
(5) Befehls-ID (RQ1) (6) EOX
Als nächstes berechnen wir die Prüfsumme.
01H + 00H + 20H + 01H + 00H + 00H + 00H + 09H =
1 + 0 + 32 + 1 + 0 + 0 + 0 + 9 = 43(Summe)
43 (gesamt) 128 = 0(Produkt) ... 43 (Rest)
Prüfsumme = 128 - 43(Rest) = 85 = 55H
So würde eine Botschaft von F0 41 10 00 09 11 01 00 20 01 00 00 00 09 55 F7 übermittelt werden.
000
??
F7
Daten Prüfsumme
(6)
(6) EOX
??
F7
Größe
Prüfsumme
(6)