====== Midi ======
Midi (//Musical Instruments Digital Interface//, [[wpde>Musical_Instrument_Digital_Interface]])
===== Hardware =====
Serielle Schnittstelle mit 31250 Baud. Msb first.
Der Anschlussstecker entspricht einem 5 poligem DIN-Stecker.
- **Pin:**
- **Pin:**
- **Pin:**
- **Pin:**
- **Pin:**
==== Midi-In ====
Eingang für Daten anderer Geräte.
==== Midi-Out ====
Ausgang für Daten des Gerätes.
==== Midi-Thru ====
Ausgang, der die Daten von [[#Midi-In]] weiter gibt.
===== Midi-Modes =====
* **Omni-Mode**\\ Empfang von Daten von allen (logischen) Kanälen.
* **Poly-Mode**\\ Empfang von Daten von einem ausgewählten Kanal.
* **Mono-Mode**\\ Empfang von Daten auf mehreren Kanälen, jedoch monophon (nur eine Note pro Kanal).
* **Multi-Mode**\\ Empfang von Daten auf mehreren Kanälen, jedoch polyphon.
===== Protokoll =====
Es werden Bytes mit den Werten 0 .. 255 gesendet.
Dabei unterscheidet man
* **Datenbytes** (Werte 0 .. 127)
* **Statusbytes** (Werte 128 .. 255)
//Running Status Mode// das Statusbyte muss nicht immer wieder erneut gesendet werden, sofern sich der letzte Befehl wiederholt.
Bei Werten größer als 255 werden MSB (//most significant byte//) und LSB (//least significant byte//) gesendet. Dabei entspricht der "kleinere Wert" dem MSB und der "größere Wert" dem LSB (Wertebereich: 14 Bit, 0 .. 16383).
==== Channel Voice Messages ====
Einstellungen abhängig von dem gewählten Midi Kanal [0..15dec] bzw. [0..Fhex].
Voran ein Statusbyte [128..239dec] bzw. [0x80..0xEFhex], gefolgt von einem oder zwei Wertebytes [0..127dec] bzw. [0x00..0x7Fhex].
=== Note off ===
^ Message ^ Parameter ^
| 0x8n | ''kk'' ''vv'' |
[[#Note off]] beendet das Spielen einer Note auf Kanal n (= 0..Fhex) gefolgt von zwei Werten
- ''kk'' [[#Tastennummer]] [0..127].
- ''vv'' Geschwindigkeit [0..127].
=== Note on ===
^ Message ^ Parameter ^
| 0x9n | ''kk'' ''vv'' |
[[#Note on]] startet das Spielen einer Note auf Kanal n (= 0..Fhex) gefolgt von zwei Werten
- ''kk'' [[#Tastennummer]] [0..127].
- ''vv'' Geschwindigkeit [0..127]. Dies entspricht der Anschlaggeschwindigkeit und hat in der Regel Einfluss auf die Lautstärke des Tons.\\ Ein wiederholtes senden mit Geschwindigkeit 0 (''vv'' = 0) entspricht einem [[#Note off]].
0x90 0x3C 0x40 ...später... 0x80 0x3C 0x00
Spielt Note C' auf Kanal 0 ([[#Note on]]) und beendet später mit [[#Note off]].
0x90 0x3C 0x40 ...später... 0x3C 0x00
Spielt Note C' auf Kanal 0 ([[#Note on]]) und beendet später durch [[#Note on]] mit der Geschwindigkeit (Lautstärke) 0.
=== Polyphon Pressure ===
^ Message ^ Parameter ^
| 0xAn | ''kk'' ''vv'' |
Beim Nachdrücken (//polyphon aftertouch//)
- ''kk'' [[#Tastennummer]] [0..127].
- ''vv'' Wert [0..127].
=== Control Change ===
^ Message ^ Parameter ^
| 0xBn | ''cc'' ''vv'' |
Senden und empfangen von Daten zu verschiedene Steuereinheiten (//Controller//).
- ''cc'' [[#Steuereinheit]]
- ''vv'' Wert
=== Program Change ===
^ Message ^ Parameter ^
| 0xCn | ''pp'' |
Ändern von Klängen und Effekte.
=== Channel Pressure ===
^ Message ^ Parameter ^
| 0xDn | ''vv'' |
Nachdrücken einer Taste (//aftertouch//) gilt als Wert für alle gedrückten Tasten pro Midi Kanal.
- ''vv'' [0..127]
=== Pitch Bend ===
^ Message ^ Parameter ^
| 0xEn | ''ll'' ''mm'' |
Verändern von Tönen.
==== System Common Messages ====
Unabhängig vom Midi Kanal. Betreffen das Gerät im Allgemeinen.
=== System Exclusive ===
==== System Realtime Messages ====
===== Tabellen =====
==== Steuereinheit ====
| ^ Wert ^^ Beschreibung ^
| ::: ^ dec ^ hex ^ ::: ^
^ Regler (MSB) | 0 | 0x00 | Bank Select MSB |
^ ::: | 1 | 0x01 | Modulation |
^ ::: | 2 | 0x02 | Breath Controller |
^ ::: | 3 | 0x03 | nicht definiert |
^ ::: | 4 | 0x04 | Foot Pedal |
^ ::: | 5 | 0x05 | Portamento Time |
^ ::: | 6 | 0x06 | DataEntry MSB |
^ Regler (LSB) |
^ Schalter | 64 | 0x40 | Sustain Pedal (Damper) |
^ ::: | 65 | 0x41 | Portamento |
^ ::: | 66 | 0x42 | Sustenuto |
^ ::: | 67 | 0x43 | Soft Pedal |
^ ::: | 68 | 0x44 | nicht definiert |
^ ::: | 69 | 0x45 | Hold 2 |
^ ::: | 70 | 0x46 | nicht definiert |
^ ::: | 71 | 0x47 | Harmonic Content (XG) |
^ Channel Mode Messages |
==== Tastennummer ====
^ Midi ^ Note ^
| 0 | C,,, |
| 1 | Cis,,,/Des,,, |
| 2 | D,,, |
| 3 | Dis,,,/Es,,, |
| 4 | E,,, |
| 5 | F,,, |
| 6 | Fis,,,/Ges,,, |
| 7 | G,,, |
| 8 | Gis,,,/As,,, |
| 9 | A,,, |
| 10 | Ais,,,/B,,, |
| 11 | H,,, |
| 12 | C,, |
| 13 | Cis,,/Des,, |
| 14 | D,, |
| 15 | Dis,,/Es,, |
| 16 | E,, |
| 17 | F,, |
| 18 | Fis,,/Ges,, |
| 19 | G,, |
| 20 | Gis,,/As,, |
| 21 | A,, |
| 22 | Ais,,/B,, |
| 23 | H,, |
| 24 | C, |
| 25 | Cis,/Des, |
| 26 | D, |
| 27 | Dis,/Es, |
| 28 | E, |
| 29 | F, |
| 30 | Fis,/Ges, |
| 31 | G, |
| 32 | Gis,/As, |
| 33 | A, |
| 34 | Ais,/B, |
| 35 | H, |
===== Quellen =====
* [1] [[http://www.zem-college.de/midi/index.htm|Midi Kompendium]]