Channel Voice Messages dienen dazu die Musik-Wiedergabe zu steuern. Hierzu gehören z.B Note On, Note Off, Program Change oder Controller Change.
Für das Senden einer Ton-Information werden im MIDI-Protokoll zwei Nachrichten benutzt. Beim Drücken einer Taste auf einem MIDI fähigen Keyboard wird die MIDI Channel Voice Message Note On gesendet und beim Loslassen die MIDI Channel Voice Message Note Off. Auf welchem der 16 MIDI Channels diese Message gesendet wird, können wir am Keyboard einstellen.
Der MIDI Channel Voice Message Note On folgen zwei Daten-Bytes, die die Tasten-Nummer (der Ton) und die Velocity (Anschlagsdruck bzw. Geschwindigkeit) enthalten. Note Off folgen auch zwei Daten-Bytes, die ebenfalls Tasten-Nummer und Velocity enthalten. Die Velocity beim Note Off wird allerdings in so gut wie allen Keyboards ignoriert.
Einige Keyboards können, wenn wir eine Taste drücken und halten, zusätzlich den Druck auswerten, der währenddessen ausgeübt wird. Dieses Aftertouch kann dann z.B. diverse Effekte wie Modulation steuern. Hier gibt es nun zwei Möglichkeiten. Entweder kann das Keyboard für jede einzelne Taste eine Aftertouch Message erzeugen. Dann sprechen wir von Polyphonic Aftertouch. Falls das Keyboard - was zumeist üblich ist - jedoch nur eine einzige Aftertouch Message für die komplette Tastatur erzeugen kann, dann handelt es sich um den Channel Aftertouch.
Polyphonic Aftertouch Messages enthalten zwei Daten-Bytes, die die Tastatur-Nummer und den Druck enthalten.
Channel Aftertouch Messages benötigen nur ein Daten-Byte mit der Druck-Information.
Die MIDI Pitch Bend Message überträgt Bewegungen des Pitch Bend Wheels eines Keyboards. Damit die Tonhöhenänderung möglichst stufenlos erfolgt, besitzt die Message zwei Daten Bytes, die beide zusammen die resultierende Tonhöhenänderung ergeben.
Die MIDI Program Change Message dient dazu bei einem Keyboard das eingestellte Instrument und damit den Sound bzw. bei einem Effektgerät das hinterlegte Programm zu wechseln. Diese Nachricht besitzt nur ein Daten Byte, das die neue Programm-Nummer enthält. Das Status Byte enthält wie bei allen wie alle MIDI Channel Voice Messages die Kanal Information.
Mithilfe der Controller 0 und Controller 32 können wir die sogenannte Bank auswählen. Die Bank Select Message dient dazu die möglichen anwählbaren Programme durch die MIDI Program Change Message zu erhöhen. Da jede MIDI Message nur einen Wertebereich von 0 bis 127 übertragen kann und wir somit per MIDI Program Change Message nur 128 verschiedene Programme (beim Keyboard also Sounds) anwählen können, hat man den Bank Select erfunden. In jeder Bank können wir 128 verschiedene Programme auswählen. Und mithilfe der beiden Controller 128 x 128 also 16384 Bänke. Dies sollte auch für das größte Effektgerät oder Synthesizer ausreichen.
Controller 0 enthält das sogenannte MSB (most significant byte) und Controller 32 das LSB (least significant byte). Auf deutsch heißt dies, dass Controller 0 den groben Wertebereich abdeckt und Controller 32 für das Feineinstellen zuständig ist. Effektgeräte bzw. Synthesizer, die weniger als 128 Bänke enthalten, ignorieren daher den Controller 32, da mit dem MSB Controller 0 ein ausreichend großer Wertebereich z.V. steht.
Die Reihenfolge, in der MIDI Program Change und MIDI Bank Select erfolgen müssen, ist fest definiert. Zunächst wird ggf. per MIDI Bank Select eine andere Bank ausgewählt ohne das dies direkte Auswirkungen auf den Sound des Keyboards bzw. das Programm des Effektgerätes hat. Erst wenn dann ein MIDI Program Change folgt, wird auf das angegebene Program in der zuvor gewählten Bank umgeschaltet.
MIDI Control Change Messages werden benutzt, um diverse Parameter an MIDI fähigen Keyboards oder Effektgeräten zu steuern. MIDI Control Change Messages wirken wie alle anderen MIDI Channel Voice Messages nur auf den Kanal, der in ihrem Status Byte mitgesendet wird. Dem Status Byte folgen zwei Daten Bytes mit der Controller Nummer und dem Controller Wert. Die Controller Nummer ist gößtenteils standardisiert und wird von mir in einem folgenden Artikel näher erläutert.
So wie der MIDI Bank Select die auswählbaren Programme erweitert, haben wir mit RPN (Registered Parameter Number) und NRPN (Non-Registered Parameter Number) die Möglichkeit den MIDI Controller Change zu erweitern.
In Verbindung mit Controller 96 (Data Increment), 97 (Data Decrement), 98 (Registered Parameter Number LSB), 99 (Registered Parameter Number MSB), 100 (Non-Registered Parameter Number LSB) und 101 (Non-Registered Parameter Number MSB) erweitert Controller 6 (Data Entry) die Anzahl der per MIDI verfügbaren Controller.
Zunächst wird per Controller 98 und 99 der RPN bzw. mit Controller 100 und 101 der NRPN Controller ausgwählt und dann per Controller 6, 96 oder 97 der Wert geändert.
| Zusammenfassung | ||
|
Status Byte Channel Voice Messages [cccc = 0-15 (MIDI Kanal 1-16)] |
Daten Bytes D7----D0 |
Beschreibung |
| 1000ccccc | 0nnnnnnn 0vvvvvvv |
Note Off. Wird gesendet, wenn die Taste losgelassen wird. (nnnnnnn) ist die Notennummer. (vvvvvvv) ist der Anschlag (velocity.) |
| 1001cccc | 0nnnnnnn 0vvvvvvv |
Note On. Wird gesendet, wenn die Taste gedrückt wird. (nnnnnnn) ist die Notennummer. (vvvvvvv) ist der Anschlag (velocity.) |
| 1010cccc | 0nnnnnnn 0ddddddd |
Polyphonic Key Pressure (Aftertouch). (nnnnnnn) ist die Notennummer (note) number. (ddddddd) ist der Druck, mit dem nach dem Anschlag ein weiteres Mal die Taste(n) heruntergedrückt wird. |
| 1011cccc | 0ccccccc 0wwwwwww |
Control Change. (ccccccc) ist die Controller-Nummer (0-119). (wwwwwww) ist der Controller-Wert(0-127). |
| 1100cccc | 0ppppppp |
Program Change. (ppppppp) ist die neue Programm-Nummer. |
| 1101cccc | 0wwwwwww |
Channel Pressure (After-touch). (wwwwwww) ist der Wert des Anschlages. |
| 1110cccc | 0lllllll 0mmmmmmm |
Pitch Bend. Pitch Bend wird mit 14 Bits übertragen. (lllllll) sind die least significant 7 Bits und (mmmmmmm) die most significant 7 Bits Die Mitte (also keine Pitch Bend) liegt bei 2000H oder in Bits m= 1000000 und l = 0000000 |
Reply #1 on : Fri August 14, 2009, 12:01:20
Kommentar schreiben