Sie befinden sich hier: Home - No Lego - E Drumset - MIDI
Die MIDI- Schnittstelle und das MIDI- Signal

1.1 Was ist MIDI?


MIDI (Musical Instrument Digital Interface) ist ein internationaler Standard und eine serielle Schnittstelle für Musikinstrumente. Über ein digitales Signal können MIDI- Geräte ("elektronische Musikinstrumente" z.B. Keyboard, E- Drumset, Sampler, PC- Soundkarte etc.) miteinander kommunizieren. Digitale Signale haben nur 2 mögliche Werte. Diese werden als „0“/“1“, Low/High ("L"/"H") oder Ein/Aus bezeichnet.
Das MIDI Signal (MIDI-Messages/MIDI-Befehle) besteht nur aus Informationen, z.B. welche Note gespielt werden soll. Über MIDI können KEINE Audio Dateien (Analoge Signale) übertragen werden.


Digitales Signal Analoges Signal

Digitale Signale haben nur 2 mögliche Werte und bilden eine Stufenform.

Analoge Signale haben eine Kurvenform und können beliebige Werte annehmen.



1.2 Die MIDI- Schnittstelle


Die MIDI Schnittstelle besteht aus den Anschlüssen MIDI-IN, MIDI-OUT und optional MIDI-THRU. Sie ist eine serielle Schnittstelle. D.h. die Bits/Daten werden nacheinander (seriell) übertragen.

Beim E- Drumset werden nur die Anschlüsse MIDI-OUT (vom Trigger to MIDI converter) und MIDI-IN (vom Sampler) benötigt.


    MIDI-OUT:


    MIDI-OUT sendet MIDI-Daten, die ein elektronisches "Musikinstrument" erzeugt. Beim E-Drumset z.B. den Notenwert. Dazu später mehr.


    MIDI-IN:


    MIDI-IN empfängt Daten und wird mit MIDI-OUT (oder MIDI-THRU) von einem anderen Gerät verbunden.
    Verbindung zwichen 2 MIDI Geräten:

    MIDI In MIDI Out Verbindung

    Gerät A (z.B. E-Drumset) sendet über MIDI- OUT MIDI- Daten an MIDI- IN von Gerät B (z.B. Sampler).


    MIDI-THRU:

    MIDI THRU

    Gerät B und C erahlten das gleiche MIDI Signal von Gerät A.


    MIDI-THRU sendet empfangene Daten vom MIDI-IN unverändert weiter; die Daten werden durchgeschliffen. Dadurch erhalten Gerät B und Gerät C das gleiche MIDI-Signal von Gerät A. Das funktioniert über eine Reihenschaltung der Geräte A, B und C. Dabei kommt es zu dem Problem, dass eine zeitliche Verzögerung entsteht, da erst Gerät B, dann Gerät C usw. die Daten erhalten. Deswegen sollten nicht mehr als 3 Geräte in Serie geschaltet werden.
    Das Gerät, welches das MIDI Signal sendet, wird als Master bezeichnet. Die empfangenden Geräte als Slave.
    Um das Problem der Zeitverzögerung zu vermeiden schaltet man eine THRU-Box zwischen Master und Slave. Damit könnten ohne zeitliche Verzögerung mehr als 3 Geräte über THRU miteinander verbunden werden.

    MIDI THRU Box

    Gerät B, C und D erahlten über die MIDI THRU Box das gleiche MIDI Signal von Gerät A.


1.3 Das MIDI- Kabel


Zum verbinden der MIDI- Geräte verwendet man ein 5-poliges DIN- Kabel. Als Buchsen/ Stecker werden 5-polige DIN Stecker/Buchsen mit 180° Belegung genommen. Die Abschirmung wird nur bei MIDI-OUT/THRU angeschlossen. NICHT bei MIDI-IN. Dadurch werden Brummschleifen (ein störender Brummton) verhindert.

5 poliger DIN-Stecker


1.4 MIDI-IN/OUT Schaltungen und deren Funktionsweise


    Funktionsweise der Schaltungen von MIDI-OUT und MIDI-IN


    Schaltung MIDI IN MIDI OUT

    Schaltungen von MIDI-OUT (z.B. Drum Set) und MIDI-IN (z.B. Sampler)


    • 5V und 0V sind die Versorungsspannung
    • Tx ist ein digitales Signal (MIDI- Signal), welches an ein weiteres MIDI- Gerät gesendet wird. Es wechselt zwischen 0V und 5V.
    • Rx empfängt ein digitales Signal (MIDI- Signal), welches zwischen 0V und 5V wechselt.
    • 220Ω Widerstände schützen die Elektronik, in dem sie den Strom begrenzen, falls MIDI Geräte falsch miteinander verbunden werden. Z.B. MIDI-OUT an MIDI-OUT.
    • 0,1µF Kondensator zum glätten und entstören der Spannung
    • MIDI-IN hat eine Stromschnittstelle mit einem Optokoppler. Der Optokoppler trennt Gerät A (MIDI-OUT) und Gerät B (MIDI-IN) elektrischen voneinander (galvanische Trennung). Dadurch verhindert man Störsignale zwischen Gerät A und Gerät B.
      • Funktionsweise Optokoppler:
        Der Optokoppler besteht aus einer Leuchtdiode (LED) und einem Fototransistor. Vereinfacht kann man sich einen Fototransistor als Schalter vorstellen, der sperrt (keinen Strom durchlässt; „Schalter offen“), wenn die LED nicht leuchtet. Der Fototransistor leitet (lässt Strom durch; „Schalter geschlossen“), wenn die LED leuchtet. Die LED und der Fototransistor sind NICHT elektrisch miteinander verbunden. Die übertragung vom Signal (0V/5V) funktioniert optisch über das Licht der LED.

      • optokoppler

        Optokoppler Ersatzzeichnung: Glühlampe ersetzt die LED. Auge mit Schalter ersetzt den Fototransistor.


    • Diode 1N4148 schützt den Optokoppler vor überspannung, falls Tx und 5V im Stecker vertauscht werden. Wenn Tx=0V ist, begrenzt die Diode 1N4148 die Spannung an der LED im Optokoppler auf 0,7V.

    • Fehlerschaltung Tx 5V vertauscht

      Fehlerschaltung Tx und 5V vertauscht



      Stromfluss bei richtigem Anschluss zwischen MIDI-IN und MIDI-OUT:


        Bei logisch „0“ (0V) an Tx fließt ein Strom über den Optokoppler. -> Rx = 0V.
        Optokoppler leitet

        Bei logisch „1“ (5V) an Tx fließt kein Strom über den Optokopller. -> Rx = 5V.
        Optokoppler sperrt

1.5 Das MIDI-Signal


Beim MIDI- Signal unterscheidet man die MIDI- Messages in drei Gruppen. Den MIDI- Kanal bezogenen-, Systembezogenen- und Gerätebezogenen- Nachrichten. Beim Drum Set werden nur Kanal bezogene Nachrichten verwendet.

  • MIDI-Kanal bezogene messages (Nachrichten):
  • Sie beinhalten Informationen für einen bestimmten Kanal. Es gibt 16 (Dezimal 0-15) unabhängige Kanäle. Jedem "Instrument" wird ein anderer Kanal zugewisen. Dadurch können die einzelnene "Instrumente" unterschieden werden. Es ist möglich, dass bis zu 16 „Instrumente“ gleichzeitig spielen. Das kann man sich wie in einer Band vorstellen, wo bis zu 16 Instrumente gleichzeitig spielen. Kanal 10 ist nach dem MIDI Standard zum Ansteuern von Schlagzeug/ Percussion vorgesehen.

    MIDI Kanäle

    Eine MIDI-Merge Box fasst mehrere MIDI IN Signale zu einem MIDI OUT Signal zusammen.


    MIDI Kanal bezogene Messages senden z.B. folgende Information:
      „Spiele Note x in der Anschlagstärke (Velocity) y auf dem MIDI Kanal (Channel) z.“
      x steht für einen Notenwert. Den Notenwerten sind Zahlen zugeordnet und liegen zwischen 0-127.
      y steht für die Anschlagstärke. Die Anschlagstärke kann die Sampel Lautstärke beeinflussen. Dabei entspricht ein Wert von 0 dem Befehl Note Aus und ein Wert von 127 der maximalen Lautstärke.
      z steht für einen Kanal zwischen 0-15 (16 "Instrumente").
    Nähere Informationen zu Kanal bezogenen Messages kommen später.

  • Systembezogene Nachrichten (System Common Messages):
    Diese Befehle wirken sich auf das ganze System aus und sind Kanal unabhängig. Auf diese gehe ich hier nicht weiter ein. Sie werden nicht für das Drumset benötigt.

  • Gerätebezogene Nachrichten (System Exclusive):
    Sind zur übertragung von Gerätespeziefischen Herstellerinformationen und werden hier ebenfalls nicht weiter erklärt. Auch sie werden nicht für das Drumset benötigt.

Kanal bezogene MIDI- Messages


Eine Kanal bezogene MIDI-Message besteht aus einem Statusbyte und ein oder zwei Datenbytes, die je 8Bit (1Byte) lang sind. Datenbytes enthalten zusätzliche Informationen (z.B. welche Note) zum vorangegangenen Statusbyte (z.B. Note ein). Ob dem Statusbyte ein oder zwei Datenbytes folgen, kommt auf den Nachrichtentyp (z.B. Note On) an.


MIDI Signal Bit Byte

Statusbyte und Datenbyte

Bit und Byte


Für jedes Bit gibt es zwei Möglichkeiten. „0“ oder „1“ („AUS “/„EIN“). Vereinfacht kann man die Zustände „0“ oder „1“ mit einem mechanischen Schalter darstellen, der eine Lampe "AUS" oder "EIN" schaltet. Schalter offen bedeutet Lampe „AUS“/ „0“ und Schalter geschlossen Lampe „EIN“/“1“.



!!! ACHTUNG !!!

Bei der MIDI- Schnittstelle bedeutet eine logische „0“ „Stromfluss“ und eine logische „1“ bedeutet „kein Stromfluss“.

  • Bei logisch „0“ (0V) an Tx fließt ein Strom über den Optokoppler. Die LED im Optokoppler leuchtet  und der Fototransistor leitet. -> Rx = 0V.

    Optokoppler leitet

  • Bei logisch „1“ (5V) an Tx fließt kein Strom über den Optokoppler. Die LED im Optokoppler leuchtet nicht und der Fototransistor sperrt. -> Rx = 5V.

    Optokoppler sperrt


An jedes MIDI-Byte (Statusbyte, Datenbyte) wird noch ein Start- und ein Stoppbit gehängt. Damit ist es eigentlich 10Bit lang. Diese beiden Bits markieren den Anfang und das Ende vom Byte. Man spricht bei MIDI aber nur von 8 Datenbits (1Byte).
Bei MIDI gibt es kein Parity Bit. Es wird somit nicht überprüft, ob die Informationen (Bits) fehlerhaft übertragen wurden oder nicht.


MIDI Byte mit Start und Stopp Bit

MIDI- Byte mit Start und Stopp Bit


MIDI-Messages werde seriell über das MIDI- Kabel von MIDI-OUT nach MIDI-IN übertragen. Jedes Bit wird der Reihe nach gesendet. Erst wenn z.B. das erste Byte komplett gesendet wurde, wird mit dem senden vom zweiten Byte begonnen. Die Datenübertragung funktioniert aber so schnell, dass man nicht merkt, dass sie seriell funktioniert.


MIDI Datenüertragung der Bits

Jedes Bit wird der Reihe nach gesendet.


    Das Statusbyte


    Statusbyte

    Die "1" in Bit 7 gibt an, dass das Byte ein Statusbyte ist


    Das Statusbyte gibt an, um welchen Nachrichtentyp (z.B. Note on) es sich handelt und es beinhaltet den MIDI Kanal (welches "Instrument"). Für den Kanal werden die ersten 4 Bits (Bit 0-3) im Statusbyte gebraucht. Mit 4 Bits lassen sich 16 verschiedene Werte darstellen (0-15). Man kann zwischen Kanal 1-16 auswählen. Der Wert 0 entspricht dem Kanal 1 und Wert 15 dem Kanal 16.
    Das 8. Bit (MSB= most significant bit) ist durch die Auswahl, ob es sich um ein Statusbyte oder Datenbyte handelt, belegt. Eine "1" bedeutet, dass das Byte ein Statusbyte ist.
    Für den Nachrichtentyp bleiben dann noch 3 Bits übrig. Damit gibt es für den Nachrichtentyp noch 8 verschiedene Werte/ Möglichkeiten.

    Bit Möglichkeiten

    Bei einem Bit gibt es zwei Möglichkeiten ("0" oder "1"). Bei zwei Bit vier, bei 3 Bit 8 und bei 4 Bit ergeben sich 16 Möglichkeiten.


    Nachrichtentypen können folgende sein:

      Befehl Bit7 - Bit4 Bit3 - Bit0 Datenbytes
      Note On
      (beginnt das Spielen von einer Note/ einem Ton)
      1001 nnnn 1. Datenbyte enthält den Notenwert
      2. Datenbyte enthält die Velocity
      Note Off
      (beendet das Spielen von einer Note/ einem Ton)
      1000 nnnn 1. Datenbyte enthält den Notenwert
      2. Datenbyte enthält die Velocity
      Control Change 1011 nnnn  
      Program Change 1100 nnnn  
      Channel Aftertouch 1101 nnnn  
      Pich Bendig 1110 nnnn  
      System Exclusive 1111 nnnn  

    Ich erkläre hier nicht alle Nachrichtentypen. Für das Drum Set werden nur „Note On“ und „Note Off“ benötigt.
    Bei Bit3 - Bit0 steht nnnn für die vier Bits der Kanalnummer.
    Den beiden Nachrichtentypen "Note On" und "Note Off" folgen nach dem Statusbyte 2 Datenbytes. Sie beschreiben den Befehl näher.

    Das 1. und 2. Datenbyte


    Datenbyte

    Die "0" in Bit 7 gibt an, dass das Byte ein Datenbyte ist


    Das Datenbyte fügt dem Statusbyte weitere Daten hinzu. Es beschreibt den Befehl im Statusbyte näher. Im Statusbyte ist z.B. nicht enthalten, welche Notennummer und welche Anschlagstärke (Velocity) ein „Note On“ Befehl besitzt. Das wird bei „Note On“ mit zwei Datenbytes festgelegt, die dem Statusbyte folgen. Das 1. Datenbyte enthält den Notenwert und das 2. Datenbyte die Anschlagstärke (Velocity). Für die Notennummer und die Velocity sind je 7 Bits übrig. (Das 8. Bit (MSB= most significant bit) ist durch die Auswahl Statusbyte/Datenbyte belegt.) Damit sind jeweils Werte zwischen 0-127 möglich. Ein Velocity Wert von 0 hat die Funktion von Note off. Ein Wert von 127 gibt einen Ton z.B. in seiner maximalen Lautstärke wieder.

    Signalverlauf für „Spiele auf Kanal 1 die Notennummer 100 in Lautstärke 100“
    Signalverlauf

    Signalverlauf



    Warum ergeben z.B. im 1. Datenbyte Bit0-6 die Note 100?

    Um zu wissen, welche Bits für den Dezimalwert 100 (Note 100) gesetzt werden müssen, muss der Wert 100 in eine Binärzahl umgewandelt werden.


    Bit
    7
    6
    5
    4
    3
    2
    1
    0
    Dezimal (Stellenwert)
    128
    64
    32
    16
    8
    4
    2
    1
    Binär
    0
    1
    1
    0
    0
    1
    0
    0

    Vereinfacht:
    Wenn an einem Bit eine "1" steht, kann man die jeweilige Dezimal Zahl addieren. Bei einer "0" würde man den Wert Dez. 0 addieren.
    Addiert man 4+32+64 erhält man den Wert 100. Also wird an Bit 2, Bit 5 und Bit 6 eine "1" gesetzt und die restlichen Bits erhalten den Wert "0". Der Dezimalwert 100 entspricht somit dem Binärwert 01100100.

    Für z.B. Dezimal 8 würde sich folgender Binärwert ergeben:

    Bit
    7
    6
    5
    4
    3
    2
    1
    0
    Dezimal (Stellenwert)
    128
    64
    32
    16
    8
    4
    2
    1
    Binär
    0
    0
    0
    0
    1
    0
    0
    0

    Man kann die Zahlen auch z.B. mit dem den Windows Rechner umwandeln, indem man ihn auf "Programmierer" umstellt.

    Umrechner Windows 10 Rechner



Home


  Lego
  No Lego

  Impressum
  Datenschutz
  Links
  Kontakt