kodierung von musik - midi (c) 2004 niko plath. inhalt einführung die hardware das datenformat die...
TRANSCRIPT
Kodierung von Musik - MIDI
(c) 2004 Niko Plath
Inhalt
Einführung Die Hardware Das Datenformat Die MIDI-Nachrichten
Einführung
MIDI, Abk.
„Musical Instrument Digital Interface“ digitale serielle Schnittstelle dient Informationsaustausch / Steuerung
elektronischer Instrumente und audiotechnischer Geräte
Einführung
1982: Gespräche von Sequential-Circuits, Roland und Oberheim zur Standardisierung eines digitalen Schnittstellenformates
1983: MIDI Spezification1.0 wird als firmenübergreifende Norm von der MIDI Manufacturers Association veröffentlicht
MIDI-Standard wird mehrmals erweitert:
Speicherung von MIDI-Daten (Standard MIDI File)
Vereinheitlichung von Klangerzeugern (General MIDI)
Kommunikation mit Aufnahmegeräten (MIDI Machine Control)
zeitliche Synchronisation (MIDI Time Code)
Hardware
Die Anschlüsse Das Interface Vorgänge auf einer MIDI-Leitung
Die Anschlüsse
Verbindung - Kabel fünfpolige DIN-Buchsen, nur zwei Pole
verdrahtet Spezifikation schreibt vor: je eine MIDI-In-
und eine MIDI-Out-Buchse optional MIDI-Thru-Buchse
Das Interface seriell - pro Zeiteinheit
wird ein Bit über die Leitung übertragen
Stromschleife mit 5mA bei Verkabelung
Ausgangstreiber des Outputs schickt 5mA in Optokoppler
Diode und Wiederstände zum Schutz vor Kurzschlüssen und Verpolungen
Das Interface 5mA entspricht digitaler „1“ für „0“ wird der Strom für
eine Zeiteinheit unterbrochen
Im Optokoppler enthaltene LED blinkt im entsprechenden Rhythmus
gegenüber liegende Fotozelle registriert und gibt Info an Elektronik
Galvanische Trennung zur Vermeidung von Masseschleifen
Vorgänge auf einer MIDI-Leitung
Übertragungsgeschw.: 31250 Bits pro Sekunde Zeitrahmen für ein Bit: 32 Mikrosekunden Ruhezustand ist „high“ / “1“, 5mA Übertragung erfolgt byteweise
Konventionen laut Schnittstellenprotokoll
Vorgänge auf einer MIDI-Leitung
10 Bit Wortbreite Startbit „0“, Byte, Stopbit „1“ Empfänger vermerkt Zustand der Leitung in Schieberegister. Nach 8 Bit: Schieberegister wird ausgelesen, Stopbit stellt
Ruhezustand her
Das Datenformat
MIDI-Befehl - eins oder mehrere Bytes Bytes werden nacheinander gesendet,
dürfen nicht getrennt werden Empfänger: wann endet ein Befehl, wann
beginnt ein neuer? Anfang eines Befehls: Statusbyte darauf folgen Datenbyte(s)
Statusbyte
unterteilt in zwei Nibbles höchstwertiges Bit immer „1“ Befehlstyp + Adresse drei Bits - acht verschiedene
Befehlsmöglichkeiten
StatusbytesBefehle
Notenbefehle:
(1)000 = Note Off
(1)001 = Note On
(1)010 = Key Pressure
(1)101 = Channel Pressure
Steuerbefehle:
(1)110 = Pitch Wheel Change
(1)011 = Control Change
(1)100 = Program Change
(1)111 = System Realtime
Statusbytes
zweites Nibble - MIDI-Kanal 4 Bits - 16 MIDI-Kanäle Wenn Sendekanal ungleich
Empfangskanal.. Möglichkeit: Daisy-Chains
Datenbytes
höchstwertiges Bit immer „0“ sieben restliche Bits - Werte 0 - 127
typische MIDI-Nachricht
MIDI-Nachrichten Kanalbezogen - Channel Messages Systembezogen - System Common Messages Gerätebezogen - System Exclusive Messages
Kanalbezogen - Channel Messages
Note On/Off Key Pressure Control Change Program Change Channel Pressure Pitchbend
Note On/Off
herkömmliche Notation - Notenlänge MIDI zwei Befehle: „Note an!“, „Note aus!“ Note On Befehl: Kanal, Anschlagen einer
Taste, Notenwert, Anschlagstärke Note Off Befehl: Kanal, Loslassen einer
Taste, Notenwert, Geschwindigkeit des Loslassens der Taste
Key Pressure
Druckstärke nach dem Anschlag einzelne Taste / pro Anschlag ständiges messen / senden -
datenintensiv Aftertouch
Control Change
Steuerelemente - Regler, Tasten, Pedale 1. Datenbyte: Controller-Nummer 2. Datenbyte: Controller-Wert Für viele Regler Standardbelegung
Program Change
Umschalten der Programme eines MIDI-Gerätes
Verursacht z.B. Soundwechsel oder Presetwechsel bei Effektgeräten
Nur ein Datenbyte - 128 mögliche Programme direkt anwählbar
Channel Pressure
Nachdruckstärke irgendeiner Taste wird auf ganzen Kanal übertragen
Ein Datenbyte - 128 Werte, 0 = kein Druck, 127 = stärkster Druck
Pitchbend
Tonhöhenbeugung verändert Tonhöhe aller auf dem Kanal
gerade hörbaren Töne überträgt Werte mit zwei Datenbytes 14 Bits - Wertebereich 0 - 16383 1. Byte: Bits 1 - 7 (Least-Significant-Byte) 2. Byte: Bits 8 - 14 (Most-Significant-Byte)
Systembezogen - System Common Messages
MIDI Time Code Song Position Pointer Song Select Tune Request End of Exclusive (EOX)
MIDI Time Code
Synchronisationsverfahren SMPTE analog - MTC digital zeitbezogen Stunden, Minuten, Sekunden, Frames
Song Position Pointer
Synchronisationsverfahren taktbezogen Master sendet 24 Impulse (Clicks) pro
Viertel-Note wird mit zwei Datenbytes übertragen
(LSB + MSB)
Song Select
Ein Datenbyte Anwählen eines von 128 vom Sequenzer
verwalteten Songs
Tune Request
Korrektur der durch Erwärmung der elektronischen Bauteile verursachten Verstimmung der Tongeneratoren
relevant nur für analoge Geräte
End of Exclusive (EOX)
signalisiert Ende der Übertragung einer System-Exclusive-Message
Gerätebezogen - System-Exclusive-Messages (Sys-Ex)
Übertragung hersteller- und gerätespezifischer Informationen
z.B. Parameterwerte oder MIDI-Sequenzen zwischen Instrument und Computer
Normen: MIDI-Sample-Dump, Standard-MIDI-File (SMF), MIDI-Machine-Control (MMC)
Fragen?
Weiterführende Literatur Andre Ruschkowski, „Elektronische Klänge und
musikalische Entdeckungen“, Reclam, Stuttgart, 1998 Martin Supper, „Elektroakustische Musik und
Computermusik“, Wissenschaftliche Buchgesellschaft, Darmstadt, 1997
Philipp Ackermann, „Computer und Musik“, Springer Verlag, Wien, 1991
„Tutorial on MIDI and Music Synthesis“: http://www.harmony-central.com/MIDI/Doc/tutorial.html
„MIDIÜbersicht“:http://home.snafu.de/sicpaul/midi/midiy.htm