MIDI

<<  Index  >>

Logo der MIDI Manufacturers Association

MIDI (Musical Instrument Digital Interface) ist ein Hard- und Software umfassender Standard, der Anfang der 80er Jahre entwickelt wurde, um elektronische Musikinstrumente miteinander zu verbinden, von Computern steuern zu lassen und Notationen für Musik digital zu speichern.

Wichtig ist die Tatsache, dass eine MIDI-Datei keinerlei Audio-Information enthält, sondern Angaben über zu spielende Noten, Tempi, Lautstärken und die für die einzelnen Stimmen zu benutzenden Soundprogramme, im MIDI-Jargon Instrumente genannt.

Wie die Daten technisch aussehen, regelt ein Datenprotokoll. Das MIDI-Protokoll legt als Wortbreite für ein Datenwort ein Byte (8 bit) fest. Das erste Bit ist als Signal (Flag) zu interpretieren, ob ein neues Ereignis beginnt.

Ein MIDI-Ereignis (MIDI-Event) beginnt immer mit einem Status Byte. Das erste Bit muß dabei den Wert '1' haben. Die Art des Ereignisses ist durch die nächsten 3 Bits festgelegt, zum Beispiel '000' für 'Note AUS', '001' für 'Note AN'. Außerdem wird durch die folgenden 4 Bit, 'Channel' genannt, festgelegt, welches von 16 möglichen Instrumenten angesprochen werden soll. Danach können ein oder mehrere Data Bytes auftreten, die im ersten Bit eine '0' tragen müssen. Durch diese Datenwörter werden Attribute für das Ereignis mitgeteilt, zum Beispiel die Nummer der angeschlagenen Taste bei 'Note AN', und die Anschlagsstärke.

Der folgende Abschnitt zeigt einen Auszug aus der Spezifikation des MIDI-Protokolls:



Table 1: MIDI 1.0 Specification Message Summary
             Updated 1995 By the MIDI Manufacturers Association

Status       Data Byte(s)     Description
D7----D0     D7----D0
-------------------------------------------------------------------------
Channel Voice Messages [nnnn = 0-15 (MIDI Channel Number 1-16)]
-------------------------------------------------------------------------
1000nnnn     0kkkkkkk         Note Off event.
             0vvvvvvv         This message is sent when a
                              note is released (ended).
                              (kkkkkkk) is the key (note) number.
                              (vvvvvvv) is the velocity.

1001nnnn     0kkkkkkk         Note On event.
             0vvvvvvv         This message is sent when a
                              note is depressed (start).
                              (kkkkkkk) is the key (note) number.
                              (vvvvvvv) is the velocity.

Das MIDI-Protokoll ist ein serielles Datenprotokoll, das bedeutet, alle Daten werden hintereinander erzeugt und gelesen. Die Datenrate für MIDI-Leitungsverbindungen ist auf 31250 Baud (Bits/sec) festgelegt, ein Datenwort benötigt also 0,256 ms Übertragungszeit. Das führt zu Problemen, wenn zum Beispiel gleichzeitig viele Tasten angeschlagen werden. Für 6 gleichzeitig angeschlagene Tasten vergehen zwischen dem vollständigen Eintreffen des ersten und des letzten MIDI-Ereignisses 5 Tasten * 3 Datenwörter * 0,256 ms = 3,84 ms. Ein geschultes Ohr kann diesen Zeitversatz bereits wahrnehmen, die Noten scheinen nicht mehr sauber gleichzeitig zu erklingen. Innerhalb des PC's spielt diese Übertragungszeit aber keine Rolle - hier können die MIDI-Daten so schnell transportiert werden, dass es keine Beschränkungen bei der Notenanzahl, Daten für Effekte und so weiter gibt.

Ablauf des MIDI-Protokolls

Ablauf des MIDI-Protokolls beim Anschlag und Loslassen einer Taste

General MIDI Instrumente

Am Anfang lieferte die MIDI-Spezifikation nur die Protokolle für das versenden von Noteninformationen und anderen Spielparametern. Die Art der Klänge, die erzeugt wurden, war den Herstellern der Synthesizer oder Soundkarten freigestellt. Es ist aber beim Schreiben einer Multimedia-Anwendung sinnvoll, zu wissen, ob nach dem Versenden einer Note ein Klavierkang oder eine Trompete ertönt. Dehalb wurde der MIDI-Standard erweitert um ein Standardset von Instrumenten, festgelegt durch die General MIDI (GM) Spezifikation. Seitdem ist garantiert, dass jede GM-kompatible Soundkarte Instrument Nr. 1 als Klavier, Instrument Nr. 25 als akustische Gitarre und so weiter wiedergibt. Die tatsächlich erzeugten Klänge sind abhängig von der verwendeten Soundkarte und dem Hersteller, orientieren sich aber an der GM-Spezifikation. Bei den Effektklängen kann es zu stärkeren Abweichungen konmmen.

Die General MIDI-Instrumente sind in Familien gruppiert. In jeder Familie gibt es acht Varianten einer Instrumentenart. In der Tabelle sind alle genormten Familien und ihre Instrumente aufgeführt.

General MIDI Instrumente
  PC#    Instrument   PC#    Instrument   PC#    Instrument   PC#    Instrument
  Piano
  1. Acoustic Grand Piano
  2. Bright Acoustic Piano
  3. Electric Grand Piano
  4. Honky-tonk Piano
  5. Electric Piano 1
  6. Electric Piano 2
  7. Harpsichord
  8. Clavi
  Chromatic Percussion
  1. Celesta
  2. Glockenspiel
  3. Music Box
  4. Vibraphone
  5. Marimba
  6. Xylophone
  7. Tubular Bells
  8. Dulcimer
  Organ
  1. Drawbar Organ
  2. Percussive Organ
  3. Rock Organ
  4. Church Organ
  5. Reed Organ
  6. Accordion
  7. Harmonica
  8. Tango Accordion
  Guitar
  1. Acoustic Guitar (nylon)
  2. Acoustic Guitar (steel)
  3. Electric Guitar (jazz)
  4. Electric Guitar (clean)
  5. Electric Guitar (muted)
  6. Overdriven Guitar
  7. Distortion Guitar
  8. Guitar harmonics
  Bass
  1. Acoustic Bass
  2. Electric Bass (finger)
  3. Electric Bass (pick)
  4. Fretless Bass
  5. Slap Bass 1
  6. Slap Bass 2
  7. Synth Bass 1
  8. Synth Bass 2
  Strings
  1. Violin
  2. Viola
  3. Cello
  4. Contrabass
  5. Tremolo Strings
  6. Pizzicato Strings
  7. Orchestral Harp
  8. Timpani
  Ensemble
  1. String Ensemble 1
  2. String Ensemble 2
  3. SynthStrings 1
  4. SynthStrings 2
  5. Choir Aahs
  6. Voice Oohs
  7. Synth Voice
  8. Orchestra Hit
  Brass
  1. Trumpet
  2. Trombone
  3. Tuba
  4. Muted Trumpet
  5. French Horn
  6. Brass Section
  7. SynthBrass 1
  8. SynthBrass 2
  Reed
  1. Soprano Sax
  2. Alto Sax
  3. Tenor Sax
  4. Baritone Sax
  5. Oboe
  6. English Horn
  7. Bassoon
  8. Clarinet
  Pipe
  1. Piccolo
  2. Flute
  3. Recorder
  4. Pan Flute
  5. Blown Bottle
  6. Shakuhachi
  7. Whistle
  8. Ocarina
  Synth Lead
  1. Lead 1 (square)
  2. Lead 2 (sawtooth)
  3. Lead 3 (calliope)
  4. Lead 4 (chiff)
  5. Lead 5 (charang)
  6. Lead 6 (voice)
  7. Lead 7 (fifths)
  8. Lead 8 (bass + lead)
  Synth Pad
  1. Pad 1 (new age)
  2. Pad 2 (warm)
  3. Pad 3 (polysynth)
  4. Pad 4 (choir)
  5. Pad 5 (bowed)
  6. Pad 6 (metallic)
  7. Pad 7 (halo)
  8. Pad 8 (sweep)
  Synth Effects
  1. FX 1 (rain)
  2. FX 2 (soundtrack)
  3. FX 3 (crystal)
  4. FX 4 (atmosphere)
  5. FX 5 (brightness)
  6. FX 6 (goblins)
  7. FX 7 (echoes)
  8. FX 8 (sci-fi)
  Ethnic
  1. Sitar
  2. Banjo
  3. Shamisen
  4. Koto
  5. Kalimba
  6. Bag pipe
  7. Fiddle
  8. Shanai
  Percussive
  1. Tinkle Bell
  2. Agogo
  3. Steel Drums
  4. Woodblock
  5. Taiko Drum
  6. Melodic Tom
  7. Synth Drum
  8. Reverse Cymbal
  Sound Effects
  1. Guitar Fret Noise
  2. Breath Noise
  3. Seashore
  4. Bird Tweet
  5. Telephone Ring
  6. Helicopter
  7. Applause
  8. Gunshot

General MIDI Percussion Key Map

General MIDI definiert auch einen Standard-Set von Perkussionsinstrumenten:
"On MIDI Channel 10, each MIDI Note number ("Key#") corresponds to a different drum sound, as shown below. GM-compatible instruments must have the sounds on the keys shown here. While many current instruments also have additional sounds above or below the range show here, and may even have additional "kits" with variations of these sounds, only these sounds are supported by General MIDI."(Auszug aus der MIDI-Spezifikation)

General MIDI Percussion Key Map
  Key#    Drum Sound  Key#    Drum Sound  Key#    Drum Sound
  1. Acoustic Bass Drum
  2. Bass Drum 1
  3. Side Stick
  4. Acoustic Snare
  5. Hand Clap
  6. Electric Snare
  7. Low Floor Tom
  8. Closed Hi Hat
  9. High Floor Tom
  10. Pedal Hi-Hat
  11. Low Tom
  12. Open Hi-Hat
  13. Low-Mid Tom
  14. Hi Mid Tom
  15. Crash Cymbal 1
  16. High Tom
  1. Ride Cymbal 1
  2. Chinese Cymbal
  3. Ride Bell
  4. Tambourine
  5. Splash Cymbal
  6. Cowbell
  7. Crash Cymbal 2
  8. Vibraslap
  9. Ride Cymbal 2
  10. Hi Bongo
  11. Low Bongo
  12. Mute Hi Conga
  13. Open Hi Conga
  14. Low Conga
  15. High Timbale
  16. Low Timbale
  1. High Agogo
  2. Low Agogo
  3. Cabasa
  4. Maracas
  5. Short Whistle
  6. Long Whistle
  7. Short Guiro
  8. Long Guiro
  9. Claves
  10. Hi Wood Block
  11. Low Wood Block
  12. Mute Cuica
  13. Open Cuica
  14. Mute Triangle
  15. Open Triangle

MIDI und Multimedia

Für Multimedia ist die Möglichkeit, einen PC mit externen Synthesizern zu verbinden wenig interessant. Das MIDI-Protokoll wird aber benutzt, um die kleinen Synthesizer-Chips auf den eingebauten Soundkarten anzusteuern und um Songdaten in .mid Dateien abzuspeichern.

Ältere Soundkarten sind in ihren MIDI-Fähigkeiten noch sehr begrenzt. Der klassische Soundchip OPL-3 der Firma Yamaha, der auf einfachen Soundblaster-Karten und ähnlichen anzutreffen ist, kann zum Beispiel nur 11 Noten gleichzeitig erzeugen, verteilt auf maximal 3 verschiedene Instrumente. Das reicht immerhin aus für Hintergrundmusik oder einfache Rhythmen. Der große Vorteil liegt im geringen Datenaufkommen und in der Entlastung des Systems, weil die rechenintensive Sounderzeugung selbstständig vom Soundchip übernommen wird. Es genügt also, die Soundkarte in regelmäßigen Abständen mit Nachschub an MIDI-Daten zu versehen, den Rest erledigt sie alleine.

Moderne Soundkarten sid schon bei einfachen Modellen erheblich leistungsfähiger und erfüllen meistens die komplette MIDI-Spezifikation, 16 Instrumente gleichzeitig spielen zu können. Die Anzahl der gleichzeitig erklingenden Noten ist meistens 32 oder sogar 64 und die Sounds der Instrumente werden aus Samples - digitalisierten Wellenformen von originalen Instrumenten übernommen.

Wenn eine MIDI-Datei mit vielen Stimmen auf einer älteren Karte abgespielt wird, sind nicht alle Noten oder Instrumente hörbar. Bei der Auswahl von MIDI-Stücken für eine Multimedia-Anwendung muss daher vorher überlegt werden, auf welcher Zielplattform die Anwendung laufen soll.

Musikstücke für Soundkarten lassen sich mit speziellen Kompositionsprogrammen, Sequencer genannt, erstellen. Bei vielen Soundkarten gehören einfache Sequencer zum Software-Zubehör. Bekannte kommerzielle Programme sind Logic der Firma Emagic, Cubase der Firma Steinberg oder Sonar der Firma Cakewalk. Mit einfachen Tools wie Audacity lassen sich MIDI-Daten immerhin darstellen und einfache Bearbeitungsschritte durchführen.

MIDI-Daten in Audacity

Audacity stellt MIDI-Daten in einem sogenannten 'Piano Roll' Modus dar, eine Metapher, die sich an das alte elektrische Klavier mit gestanzten Papierollen als Datenträger anlehnt. Die Streifen entsprechen angeschlagenen Tasten, die Streifenfarbe bezeichnet das benutzte Instrument.

Hörbeispiel MIDI-Datei: 'passport.mid'.
Dateigröße 40kByte, Spieldauer: 2min, 3sec. Das entspricht eine Audiodatei von über 21 MByte.

<<  Index  >>