@CO21 @SA1 Dieser Beitrag stammt von Gerd Frank. Ich habe mir aber die Freiheit genommen den Text etwas zu formatieren - der Lesbarkeit wegen :-) @ZS2 @CO51 MIDI-Begriffe, kurz erklärt @ZS0 @CO21 Activ-Sensing ¯¯¯¯¯¯¯¯¯¯¯¯¯ Lt. MIDI-Norm muß ein MIDI-Gerät mindestens alle 300 ms eine Nachricht senden. Beim Ausbleiben dieser Nachricht wird vom Empfänger ein Fehler beim Sender angenommen. Wenn aber beim Sender keine Aktionen stattfinden und demzufolge keine Nachrichten gesendet werden müssen, überbrückt er diese Zeiträume mit "Dummy"-Nachrichten, die nichts weiter signalisieren, als daß der Sender noch aktiv ist. Additive Synthese ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ (auch Synthetischer Aufbau) Klangsyntheseverfahren, bei dem im Gegensatz zur ->Subtraktiven Synthese Klänge, Tongemische und Geräusche aus dem Grundton und einzelnen ->Obertönen zusammengesetzt werden. Diese haben einen sinusförmigen Verlauf und lassen sich in Frequenz und Amplitude festlegen. ADSR-Generator ¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Kurzform von Attack- Decay- Sustain- Release- Generator, dient zum Festlegen eines Intensitätsverlaufes. Attack-Time: Zeitdauer von Tastenanschlag bis zum Erreichen eines maximalen Wertes. Decay-Time: Zeitdauer des Abklingens vom Maximalwert bis auf den Sustain- Level. Sustain-Level: Wert, den der Intensitätsverlauf bei längerem Drücken der Taste annimmt. Release-Time: Zeitdauer des Abklingens von dem Wert bei Loslassen der Taste bis auf 0. After-Touch ¯¯¯¯¯¯¯¯¯¯¯ MIDI-Information über die Stärke, mit der eine Taste NACH ihrem Anschlag noch gedrückt wird. Es werden zwei Möglichkeiten der Übertragung unterschieden: Beim Polyphonic Key Pressure wird sowohl die Nummer der gedrückten Taste als auch der Wert über den Tastendruck gesendet. Der Tastendruck ist also jeder einzelnen Taste zugeordnet. Im Gegensatz dazu wird beim Channel Pressure der einheitliche Wert des Tastendrucks für alle Tasten eines ->MIDI-Kanals gesendet. -> MIDI-Status Analoge Klangerzeugung ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Bei der A. werden Schwingungsformen von analogen (kontinuierlich arbeitenden) Schaltungen (Oszillatoren, Filtern, Verstärkern...) erzeugt und verarbeitet. Anschlagsdynamik ->Velocity ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Auflösung ¯¯¯¯¯¯¯¯¯ Genauigkeit des Zeitrasters, in dem Informationen gespeichert werden. ->Sequenzer arbeiten typischerweise mit A. zwischen 1/96- Note und 1/768-Note. Baudrate ¯¯¯¯¯¯¯¯ Bit/s, Anzahl der pro Sekunde übertragenen Informationsmenge in Bit. Channel Pressure ->After-Touch, ->MIDI-Status ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Channel Mode ¯¯¯¯¯¯¯¯¯¯¯¯ Die drei Betriebsarten des MIDI-Standards für die Zuordnung und Auswahl einzelner MIDI-Geräte in einem System aus mehreren Geräten: Im Omni-Modus ist keine Auswahl möglich, alle eintreffenden Informationen werden unabhängig vom ->MIDI-Kanal von allen Empfängern verarbeitet. Im Poly-Modus wird ein Gerät einem der 16 ->MIDI-Kanäle zugeordnet und wertet aus den eintreffenden Daten nur die Nachrichten dieses Kanals aus. Im Mono-Modus kann nicht nur das Gerät über einen Kanal selektiert werden, sondern es kann die einzelne ->Voice im Gerät angesprochen werden. Ein Gerät kann zur gleichen Zeit nur in einem Modus arbeiten. Control Change ¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Jedes Keyboard besitzt verschiedene Regler (Controller), deren Wertänderung über MIDI gesendet werden können. Die genauere Verwendung ist der Beschreibung des Keyboards zu entnehmen. Bestimmte Reglernummern sind für spezielle Infor- mationen reserviert. ->MIDI-Status Controller ->Control Change ¯¯¯¯¯¯¯¯¯¯ Daten-Byte ¯¯¯¯¯¯¯¯¯¯ MIDI-Byte, bei dem das höchstwertigste Bit gelöscht ist, dessen Wert also kleiner als hexadezimal 7F ist. Größere Zahlenwerte müssen mit mehreren D. dargestellt und übertragen werden. ->MIDI-Status Digitale Klangerzeugung ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Bei der D. werden Schwingungsformen mit digitalen Schaltungen (Zähler, Spei- cher, Recheneinheiten... ) erzeugt und verarbeitet. Diese digitalen Werte werden erst direkt vor der Ausgabe in analoge Signale umgewandelt. Dump ¯¯¯¯ Unter einem D. versteht man ein vollständiges Datenpaket zur Beschreibung der Steuerinformationen eines MIDI-Gerätes. D. können z.B. Soundbänke und Sequenzen beinhalten. Echtzeit-Nachrichten ->Real-Time-Nachrichten ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Event ¯¯¯¯¯ Ereignis, vollständige Information über eine Aktion am Keyboard. Umfaßt sowohl die Art der Aktion als auch die zugehörigen Parameter. ->MIDI-Status EOX ¯¯¯ Endekennzeichen für ->System-Exclusiv-Nachrichten. ->MIDI-Status Expander ->MIDI-Geräte ¯¯¯¯¯¯¯¯ FM ¯¯ Frequenzmodulation, ein Klangsyntheseverfahren, bei dem eine Schwingung (Träger) durch eine (oder mehrere) andere Schwingung (Modulator) in der Frequenz moduliert wird. Dabei kann der Modulator selber Ergebnis einer FM sein. Frequenzmodulation ->FM ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Hersteller-Identifikation ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Eine zentral vergebene Nummer zur Unterscheidung der einzelnen Hersteller. Sie wird als erstes ->Daten-Byte bei ->System- Exclusiv-Nachrichten gesendet. Bisher sind folgende Hersteller-Identifikationen bekannt: Hersteller Nummer (hexadezimal) Sequential Circuit 01 Big Briar 02 Octave Plateau 03 Moog Music 04 Passport Design 05 Lexicon 06 Kurzweil 07 Fender 08 Steinway & Sons 09 Delta Lab Research 0A Sound Composition Systems 0B General Electro Music 0C Techmar 0D Ensoniq 0F Oberheim 10 Paia Electronics 11 Simmons Group Center 12 Gentle Electric 13 Fairlight 14 JL Cooper 15 Lowery 16 Bontempi 20 Siel 21 IRCAM 22 Synthaxe 23 Hohner 24 Crumar 25 JMS 27 Kawai 40 Roland 41 Korg 42 Yamaha 43 Akai 47 Hüllkurve ->ADSR ¯¯¯¯¯¯¯¯¯ Id ->Hersteller-Identifikation ¯¯ IN ->Interface ¯¯ Interface ¯¯¯¯¯¯¯¯¯ Allgemein ein Gerät zur Sicherstellung des Zusammenwirkens und der Zusammen- schaltbarkeit von Teilen eines Systems. Ein MIDI-I. für den AMIGA paßt dessen seriellen Anschluß an die MIDI-Norm an. Dazu gehört die Pegel- und Stecker- anpassung. Ein MIDI-I. sollte über den Eingang MIDI-IN, einen odere mehrere Ausgänge MIDI-OUT und über die Kopie des Eingangs MIDI-THRU verfügen. Kanal ->MIDI-Kanal ¯¯¯¯¯ Kanal-Daten ->MIDI-Nachrichten ¯¯¯¯¯¯¯¯¯¯¯ MIDI ¯¯¯¯ Musical Instrument Digital Interface, Standard für die digitale Datenüber- tragung zwischen Musikinstrumenten. Spezifikation 1.0 ist seit Herbst 1982 gültig. Die Datenübertragung erfolgt seriell ähnlich wie bei dem RS232- Standard. Die Übertragungsrate beträgt 31250 Baud. Es werden 1 Startbit, 8 Datenbits und ein Stopbit verwendet. Die physische Datenübertragung wird mittels einer Stromschleife (5 mA) realisiert. Zur Vermeidung von Brumm- schleifen finden Optokoppler Verwendung. Die Verbindung von Computern und ->MIDI-Geräten erfolgt über ein ->Interface. MIDI-File-Standard ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ -Allgemeines: Der MIDI-File-Standard stellt ein einheitliches Format zur Abspeicherung von Sequenzen im weitesten Sinne bereit. Es können mehrspurige Songs mit variablem Tempo, unterschiedlichen Taktarten und Auflösungen, zur Musik synchroniserten Texten u.v.m. Programm- und Hardware-kompatibel abgespeichert werden. Über den MIDI-File-Standard können also Sequenzen von Rechner zu Rechner transportiert werden, wenn deren Diskettenformate übertragbar sind (z.B. zwischen AMIGA, ST und MAC..). Gute MIDI-Software sollte deshalb unbedingt diesen File- Standard ohne Einschränkungen unterstützen. -Prinzipielles Format: Ein MIDI-File besteht ähnlich den IFF- Dateien aus mehreren Chunks, jeder Chunk beginnt mit einer 4- Byte-Kennung zur Bezeichnung des Chunk-Typs, gefolgt von einer 4- Byte-Zahl für die nachfolgende Anzahl Bytes. -Header-Chunk: Der Header-Chunk liefert einige Grundinformationen über die folgende MIDI-Datei. Aufbau: MThd - 4 Zeichen Header-ID 00 00 00 06 - es folgen noch 6 Bytes - 2 Byte Datei-Aufbau - 2 Byte Anzahl der Track-Chunks - 2 Byte Auflösung : 0 = Datei enthält eine Mehrkanal-Spur 1 = Datei enthält eine oder mehrere parallele Spuren einer Sequenz 2 = Datei enthält eine oder mehrere sequentielle unabhängige Einzelspur-Patterns Eine Datei im Format 0 besteht aus einem Header-Chunk und einem Track-Chunk. Im Format 1 folgen dem Header mehrere Track-Dateien, die "vertikal" angeordnet sind. Format 2 verwendet ebenfalls mehrere Track-Dateien, die aber "horizontal" aneinandergereiht werden. enthält die Anzahl der folgenden Track-Chunks, im Format 0 muß hier eine 1 stehen. beschreibt die Auflösung der Delta-Zeitangaben in den Track- Chunks. Ein positiver Wert gibt die Teile einer Viertel- Note an, eine 96 entspricht also einer Auflösung der Tracks von einer 384-tel Note. Negative Angaben beziehen sich auf Teiler von Sekunden, so daß die Delta- Zeitangaben in aktueller (realer) Zeit erfolgen können. Dadurch wird eine exakte Zusammenarbeit mit SMPTE-Code gewährleistet: Das höherwertige Byte kann die Werte -24,-25,-29 und -30 annehmen, was den Standardformaten für SMPTE und MIDI entspricht. Das zweite Byte enthält die Auflösung innerhalb eines Frames, 4 entspricht der MIDI-Timecode-Auflösung, typisch sind weiterhin 8, 10, 80 (Bitauflösung) oder 100. Damit erlaubt dieses System auch eine Angabe in Millisekunden durch eine Einstellung von 25 Frames pro Sekunde und 40 Einheiten pro Frame. -Track-Chunk: In diesen Chunks werden die eigentlichen MIDI- Events der Sequenzen abgelegt. Aufbau: MTrk - Track-ID - 4 Byte-Anzahl der folgenden Bytes - + ... bedarf einer weiteren Erläuterung: Alle Daten in einem Track- Chunk werden immer als Kombination einer Delta- Zeitangabe (Abstand zum vorigen Event) und dem eigentlichen Event abgelegt. Selbst wenn dieser Zeit- abstand 0 ist, wird ein 0-Byte zwischen zwei gleichzeitig stattfindende Events eingefügt. ist eine Größe variabler Länge, dadurch können sowohl lange als auch kurze Zahlenangaben speicherplatzökonomisch verwaltet werden. -Größe variabler Länge: Der Wert wird nur in den "niedrigeren" 7 Bit eines Bytes codiert, das höchstwertige 8. Bit signalisiert, daß diesem Byte noch ein weiteres Byte folgt. Der Wert des ersten Bytes wird also mit 128 multipliziert und zu dem des (oder der) Folgebytes addiert. Wert (hexa) Darstellung als Größe variabler Länge 0 00 40 40 80 81 00 3fff ff 7f - Events können alle normalen MIDI-Events sein, sie sind im Track- Chunk exakt so abgespeichert, wie sie über MIDI gesendet oder empfangen werden, also einschließlich des Running-Status. Eine Ausnahme bilden -SYS-EX-Events: Hier wird nach dem einleitenden MIDI-Status F0 eine Größe variabler Länge eingefügt, die die Anzahl der folgenden Bytes der ->System- Exclusiv-Nachricht darstellt. In ähnlicher Weise lassen sich auch beliebige Daten in einem Track- Chunk speichern, nur wird dann statt dem SYS-EX-Status F0 der Status F7 verwendet. So lassen sich u.a. ->Real-Time-Nachrichten, SMPTE-TimeCode und mehrteilige ->Dumps ablegen. -Meta-Events: Meta Events beschreiben keine MIDI-Ereignisse sondern andere Informationen, die in dem MIDI-File abgelegt werden können. Das Auftreten eines Meta-Events setzt den Running- Status außer Kraft, nach einem Meta-Event muß also ein neuer MIDI-Status gesetzt werden. Aufbau: leitet jedes Meta-Event ein, ist ein Byte mit einem Wert von 0-127 zur Kennzeichnung des Typs des Meta-Events. ist eine Größe variabler Länge und stellt die Zahl der folgenden Bytes dar. Es folgt jetzt eine Liste einiger Meta-Events: -Sequence Number FF 00 02 ss ss Optionales Event, das am Beginn einer Spur stehen muß und dieser Spur eine bestimmte Nummer zuordnet. In einem File vom Typ 2 wird diese Nummer zur Identifikation jedes Patterns benutzt. -Text Event FF 01 len text len ist eine Größe variabler Länge und enthält die Anzahl der folgenden Text- Bytes. -Copyright Notice FF 02 len text Copyright-Vermerk für diesen Track, sollte die Zeichen "(C)", das Jahr der Herstellung und den Namen des Eigentümers des Copyrights beinhalten. Dieses Meta-Event sollte das erste Event im ersten Track sein, um es leicht auffindbar zu machen. -Sequence/Track Name FF 03 len text Enthält im Track von Format 0 und im ersten Track von Format 1 den Namen der Sequenz, sonst den Namen der Spur. -Instrument Name FF 04 len text Beschreibt die Instrumentation der Spur, im Zusammenhang mit einem MIDI-Kanal die Instrumentation eines Kanals. -Lyric FF 05 len text Zu singender Text, jede Silbe kann zur richtigen Event-Zeit angegeben werden. -Marker FF 06 len text Steht normalerweise in einer Format-0-Datei oder in der ersten Spur einer Format-1-Datei, gibt den Namen eines Punktes in der Sequenz an, z.B. den Refrain oder "Erste Strophe". -Cue Point FF 07 len text Kennzeichnung eines Punktes, an dem äußere Ereignisse stattfinden, z.B. Schnitt in einem Film. -MIDI Channel Prefix FF 20 01 cc Der mit cc angegebene ->MIDI-Kanal wird für alle folgenden Events (einschließlich SYS-EX- und Meta-Events) benutzt. Dieser Kanal ist gültig, bis ein normales MIDI-Event einen anderen Kanal setzt oder bis zum nächsten MIDI Channel Prefix. -End of Track FF 27 00 Dieses Event muß am Ende jedes Track-Chunks stehen. -Set Tempo FF 51 03 tt tt tt Dieses Event zeigt eine Tempo-Änderung an, die Angabe erfolgt in Mikrosekunden pro Viertel-Note. Im Format 1 müssen diese Tempo- Events im ersten Track-Chunk enthalten sein (Tempo-Spur). -SMPTE Offset FF 54 05 hr mn se fr ff Gibt die SMPTE-Zeit an, zu der der Track starten soll. Dieses Event muß am Anfang des Tracks und bei Format 1 im ersten Track stehen. -Time Signature FF 58 04 nn dd cc bb nn und dd bezeichnen Zähler und Nenner des Metrums, dd ist ein Exponent von 2: 2 entspricht einem Viertel usw.. cc gibt die Zahl der MIDI-Clocks pro Metro- nom-Click an, bb die Zahl der 32- tel-Noten in einer MIDI-Viertel-Note (24 MIDI-Clocks). -Key Signature FF 59 02 sf mi sf = -7: 7 Flats sf = -1: 1 Flat sf = 0: C-Schlüssel sf = 2: 2 Kreuze mi = 0: Dur-Tonart mi = 1: Moll-Tonart -Sequencer-Spezific Meta-Event FF F7 len data Am Anfang des Bereiches data steht eine ->Hersteller- Identifikation. Sie besteht aus einem Byte, oder, wenn das erste Byte 0 ist, aus insgesamt 4 Bytes. Danach können beliebige Daten untergebracht werden. -Beispiele: Eine MIDI-Datei wird erst im Format 0 und dann im Format 1 dargestellt. Während im Format 0 alle drei MIDI-Kanäle und die Angaben zum Tempo in einem Track-Chunk stehen, wird im Format 1 der erste Track-Chunk für die Tempo- Angaben und die Track-Chunks 2 bis 4 für die MIDI-Kanäle 1 bis 3 benutzt. Es wird eine Auflösung von 96 Ticks pro Viertel (also 384tel) benutzt, das Metrum wird mit 4/4 und das Tempo mit 120 explizit angegeben. Der Inhalt des MIDI-Datenstromes ist: Delta-Time (dez.) Event (Bytes dez.) Kommentar 0 FF 58 04 04 02 24 08 4/4-Takt, 24 MIDI- Clocks/Click, 8 32tel Noten pro 24 MIDI-Clocks 0 FF 51 03 500000 500 000 mikrosecs pro Viertel-Note 0 C0 5 K. 1, Progr. 5 0 C1 46 K. 2, Progr. 46 0 C2 70 K. 3, Progr. 70 0 92 48 96 K3, Note On C2 0 92 60 96 K3, Note On C3 96 91 67 64 K2, Note On G3 96 90 76 32 K1, Note On E4 192 82 48 64 K3, Note Off C2 0 82 60 64 K3, Note Off C3 0 81 67 64 K2, Note Off G3 0 80 76 64 K1, Note Off E4 0 FF 2F 00 Track Ende Die Datei im Format 0 sieht so wie folgt aus. Zuerst der Header-Chunk: 4D 54 68 64 MThd 00 00 00 06 Länge des Chunks 00 00 Format 0 00 01 ein Track-Chunk 00 60 96 Ticks pro Viertel Nun der Track-Chunk: 4D 54 72 6B MTrk 00 00 00 3B Länge (59 Bytes) Delta-time Event Kommentar 00 FF 58 04 04 02 18 08 Time Signature 00 FF 51 03 07 A1 20 Tempo 00 C0 05 00 C1 2E 00 C2 46 00 92 30 60 00 3C 60 Running Status 60 91 43 40 60 90 4C 20 81 40 82 30 40 2 Byte Delta-time 00 3C 40 Running Status 00 81 43 40 00 80 4C 40 00 FF 2F 00 Track-Ende Die Realisierung im Format 1 sieht etwas anders aus. Zuerst der Header-Chunk: 4D 54 68 64 MThd 00 00 00 06 Länge des Chunks 00 01 Format 1 00 04 vier Track-Chunks 00 60 96 Ticks pro Viertel Als nächstes folgt der Track-Chunk für die Metrum/Tempo-Spur: 4D 54 72 6B MTrk 00 00 00 14 Länge des Chunks (20 Bytes) Delta-time Event Kommentar 00 FF 58 04 04 02 18 08 Time Signature 00 FF 51 03 07 A1 20 Tempo 83 00 FF 2F 00 Track-Ende Danach der Track-Chunk für die erste Musik-Spur: 4D 54 72 6B MTrk 00 00 00 10 Länge des Chunks (16 Bytes) Delta-time Event Kommentar 00 C0 05 81 40 90 4C 20 81 40 4C 00 Running Status: Note On, Vel=0 als Ersatz für Note Off 00 FF 2F 00 Track-Ende Track-Chunk für die zweite Musik-Spur: 4D 54 72 6B MTrk 00 00 00 0F Länge des Chunks (15 Bytes) Delta-time Event Kommentar 00 C1 2E 60 91 43 40 82 20 43 00 Running Status: Note On, Vel=0 00 FF 2F 00 Track-Ende Zuletzt der vierte Track-Chunk für die dritte Musik-Spur: 4D 54 72 6B MTrk 00 00 00 15 Länge des Chunks (21 Bytes) Delta-time Event Kommentar 00 C2 46 00 92 30 60 00 3C 60 Running Status 83 00 30 00 Running Status 00 3C 00 Running Status 00 FF 2F 00 Track-Ende MIDI-Geräte ¯¯¯¯¯¯¯¯¯¯¯ Gesamtheit aller Geräte, die über MIDI miteinander kommunizieren können. Ursprünglich waren nur Synthesizer mit MIDI ausgestattet: - MIDI-Synthesizer (eigene Tastatur, eigene Klangerzeugung) - MIDI-Expander (nur eigene Klangerzeugung) - MIDI-Master-Keyboard (nur eigene Tastatur) Dazu zählen auch nicht über eine Tastatur gesteuerte Musikinstrumente. Dabei gibt es solche, die zusätzlich zum akustischen Klang noch MIDI-Daten abgeben und jene, die nur MIDI- Daten senden: - MIDI-Gitarre, Synthaxe, - MIDI-Saxophon, MIDI-Pads Inzwischen werden auch MIDI-Geräte zur studiotechnischen Bearbeitung von Klängen und Geräuschen hergestellt. Dabei werden Regler über MIDI angesprochen und/oder Programme innerhalb der Geräte umgeschaltet: - MIDI-Effektgeräte (z.B. MIDI-Hall/Echo, MIDI-Equalizer) - MIDI-Mischpulte Hinzu kommen Geräte, die nicht der Klangerzeugung oder - bearbeitung, sondern der Gewährleistung der Kommunikation in komplexeren MIDI-Systemen dienen: - MIDI-Mixer (zwei oder mehr MIDI-IN-Eingänge werden auf einen oder mehrere MIDI-OUT-Ausgänge gemischt) - MIDI-Matrix (Zuordnung von mehreren MIDI-IN-Eingängen auf mehrere MIDI-OUT-Ausgänge) - MIDI-THRU-Box (ein MIDI-IN-Eingang wird auf mehrere MIDI-OUT- Ausgänge verteilt) Zur Umwandlung von MIDI-Daten in andere Steuersignale werden folgende Geräte genutzt: - MIDI-Control-Voltage/Gate-Konverter (Umwandlung der Signale analoger Synthesizer in digitale Werte der MIDI-Norm und umgekehrt) -Pitch-MIDI-Konverter (erkennt die Tonhöhe eines Audiosignals und wandelt sie in MIDI-Daten um) -MIDI-Light-Controller (MIDI-gesteuertes Lichtmischpult) Letztendlich zählt dann auch der Computer mit MIDI- Anschluß/Interface dazu. MIDI-IN ->Interface ¯¯¯¯¯¯¯ MIDI-Interface ->Interface ¯¯¯¯¯¯¯¯¯¯¯¯¯¯ MIDI-Kanal ¯¯¯¯¯¯¯¯¯¯ Wenn mehrere Geräte in einem MIDI-System zusammengeschaltet werden, sind Maßnahmen erforderlich, um einzelne Geräte gezielt anzusprechen. Dazu verfügt MIDI über 16 adressierbare Kanäle (1- 16 oder 0-15). Im entsprechenden ->Channel Mode empfängt ein Gerät dann nur die Kanal-Daten des entsprechenden Kanals. MIDI-Mode ->Channel Mode ¯¯¯¯¯¯¯¯¯ MIDI-Nachrichten ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Gesamtheit aller über MIDI zu übertragenden Informationen. M. werden unter- schieden in Kanal-Nachrichten und System-Nachrichten. Kanal-Nachrichten sind immer einem ->MIDI-Kanal zugeordnet. -> Channel Mode System-Nachrichten werden keinem MIDI-Kanal zugeordnet. Sie werden unter- schieden in allgemeine Daten (System Common), Echtzeit-Daten (Real Time) und System-Exclusiv-Daten. Die allgemeinen Daten betreffen alle Einheiten eines Systems. Echtzeit-Daten gelten ebenfalls für alle Einheiten eines Systems. Sie bestehen nur aus einem ->Status-Byte und enthalten keine ->Daten-Bytes. ->System-Exclusiv-Nachrichten sind herstellereigene Daten, die er im ersten Daten-Byte durch seine Herstellernummer kennzeichnet. Anzahl und Aufbau der Daten-Bytes sind vom Hersteller frei wählbar. MIDI-OUT ->Interface ¯¯¯¯¯¯¯¯ MIDI-Status ¯¯¯¯¯¯¯¯¯¯¯ Die niederwertigen 4 Bit des ->Status-Bytes von ->Kanal-Daten (in der hexa- dezimalen Darstellung das rechte Zeichen) kennzeichnen den MIDI-Kanal. Diese Kanalangabe kann damit dezimal zwischen 0 und 15 (das entspricht hexadezimal 0 bis F) variieren. Der MIDI-Kanal 1 erhält die Nummer 0, der MIDI-Kanal 2 die Nummer 1 usw. zugeordnet. Schließlich wird der MIDI-Kanal 16 mit der Angabe F (dezimal: 15) eingetragen. 1. Kanal-Daten -Note-Aus (Note Off) Status-Byte: 8n H n = MIDI-Kanal (0...15) Daten-Bytes: 2 Die 'Note-Aus'-Information besitzt zwei Daten-Bytes. Das erste Daten-Byte beschreibt die gedrückte Taste. Dabei entspricht der dezimale Wert 60 dem mittleren C des Keyboards, das nächsthöhere C erhält den Wert 72, das nächstniedrigere C den Wert 48. Das zweite Daten-Byte enthält die Loslaßdynamik. Der Wert liegt zwischen 0 und 127. Standardwert ist 64. -Note-Ein (Note On) Status-Byte: 9n H n = MIDI-Kanal (0...15) Daten-Bytes: 2 Die 'Note-Ein'-Information besitzt zwei Daten-Bytes. Das erste Daten-Byte beschreibt die gedrückte Taste. Dabei entspricht der dezimale Wert 60 dem mittleren C des Keyboards, das nächsthöhere C erhält den Wert 72, das nächstniedrigere C den Wert 48. Im zweiten Daten-Byte ist die Anschlagsdynamik enthalten, deren Wert zwischen 1 und 127 (dezimal) liegt. Anschlagunempfindliche Keyboards senden (laut MIDI-Norm) immer den Wert 64. Der Wert 0 spielt hier eine spezielle Rolle. Verschiedene Keyboards (z.B. aus der YAMAHA-Produktion) verwenden die 'Note-Ein'-Information auch zur Angabe von 'Note-Aus', indem als Anschlags- dynamik der Wert 0 eingetragen wird. Dann wird die Loslaßdynamik mit 64 angenommen. -Tastendruck polyphon (Polyphonic Key Pressure) Status-Byte: An H n = MIDI-Kanal (0...15) Daten-Bytes: 2 Beim "Tastendruck polyphon" sendet das MIDI-Keyboard zwei Daten-Bytes, zuerst die Nummer der gedrückten Taste (analog 'Note Ein') und dann den Wert für den Tastendruck (After-Touch) zwischen 1 und 127. -Steueranweisungsänderung (Controller Change) Status-Byte: Bn H n = MIDI-Kanal (0...15) Daten-Bytes: 2 Der Wert des ersten Daten-Bytes bedeutet die Steuernummer. Unter dieser Nummer werden von den einzelnen Herstellern die Regler verschlüsselt.Diese Zuordnung ist frei wählbar. Folgende Einteilung wird aber von der MIDI-Norm vorge- schrieben: Die Nummern 0 bis 31 kennzeichnen das höherwertige Daten-Byte der Regler 0 bis 31 (Achtung! Die Numerierung der Regler im Manual erfolgt manchmal von 1 bis 32. Intern wird aber immer von 0 an numeriert.) Senden die entsprechenden Regler nur Ein-Byte-Werte, so werden nur diese Nummern verwendet. Für Regler mit Zwei-Byte-Werten wird das niederwertige Byte mit den Nummern 32 bis 63 (also Regler+32) gesendet. Die beiden Bytes des Reglerwertes werden also nicht in einer MIDI-Nachricht übertragen! Die Steuernummern 1 und 33 werden normalerweise für das Modulationsrad ver- wendet. Bei Reglern mit Zwei-Byte-Werten ist auf die entsprechende Reihenfolge der Übertragung der beiden Bytes zu achten. Im Normalfall erfolgt zuerst das Senden des höherwertigen Bytes (natürlich als komplette MIDI-Information, die aus drei Bytes besteht) und dann die Übertragung des niederwertigen Bytes (ebenfalls wieder drei MIDI-Bytes). Es kann jedoch auch nur das niederwertige Byte gesendet werden, wenn sich das höherwertige nicht geändert hat. Die einzelnen Hersteller handhaben das unterschiedlich. Das zweite Daten-Byte der MIDI-Information stellt also den Reglerwert (bzw. einen Teil davon) dar. Die Steuernummern 64 bis 95 sind den Schaltern vorbehalten. Schalter verwenden als Datenwert (also zweites Daten-Byte der MIDI-Information) nur die beiden Werte 0 (bedeutet 'Aus') und 127 (bedeutet "Ein"). Die Steuernummern 122-127 sind den Kanal-Modus-Nachrichten (->Channel Mode) vorbehalten. Die einzelnen Nummern haben folgende Bedeutung: 122: Schalter für örtliche Kontrolle Damit kann die Verbindung zwischen Tastatur und Klangerzeugung eines Keyboards aufgetrennt werden, wenn es das Keyboard technisch erlaubt. Die Tastatur gibt dann nur MIDI-Daten aus und die Klangerzeugung reagiert nur auf ankommende MIDI-Daten und nicht auf die eigene Tastatur. Das zweite Daten-Byte gibt an, ob der Schalter ein (=127) oder aus (=0) sein soll. 123: alle Noten aus (All Notes Off) Mit dieser Meldung kann das System von 'hängenden' Noten befreit werden. Sie soll aber nicht als Ersatz für die Note-Aus-Meldung benutzt werden, sondern nur in Ausnahmefällen. (Das 2. Daten-Byte der MIDI-Nachricht hat hier keine Bedeutung [=0]) 124: Omni-Modus aus + alle Noten aus Damit wird der Omni-Modus des Gerätes ausgeschaltet. Zusätzlich werden alle Noten ausgeschaltet (s. 123) (2. Daten-Byte ohne Bedeutung) 125: Omni-Modus ein + alle Noten aus (2. Daten-Byte ohne Bedeutung) 126: Mono-Modus ein + Poly-Modus aus + alle Noten aus Im zweiten Daten-Byte ist die Anzahl M der Kanäle anzugeben, zu denen monophone Nachrichten gesendet werden sollen. Diese Zahl liegt zwischen 1 und 16. Die genutzten Kanäle sind die Basis- kanäle N bis N+M-1. Dabei darf deren Nummer nicht größer als 16 werden. Der Spezialfall M=0 weist den Empfänger an, sämtliche Stimmen (eine pro Kanal) den Basiskanälen N bis 16 zuzuordnen. 127: Poly-Modus ein + Mono-Modus aus + alle Noten aus (2. Daten-Byte ohne Bedeutung) -Wechsel Programmnummer (Programm Change) Status-Byte: Cn H n = MIDI-Kanal (0...15) Daten-Bytes: 1 Ein Daten-Byte gibt die gewünschte Programmnummer an. Der Wert der Programm- nummer kann von 0 bis 127 reichen. Ein Hinweis ist hier aber wichtig: während auf den Tasten des Keyboards und auf seinem Display die Numerierung oft von 1 an erfolgt, wird intern von 0 an numeriert, der angezeigte Wert wird also um 1 vermindert. MIDI benutzt immer den internen Wert, also die Numerierung von 0 an. -Tastendruck Kanal (Channel Pressure) Status-Byte: Dn H n = MIDI-Kanal (0...15) Daten-Bytes: 1 Der "Tastendruck Kanal" wird einheitlich für alle Tasten eines Kanals benutzt. Es erscheint nur ein Daten-Byte, der Wert für den Tastendruck, der zwischen 0 und 127 liegt. -Steuerrad-Änderung (Pitch-Wheel Change) Status-Byte: En H n = MIDI-Kanal (0...15) Daten-Bytes: 2 Die MIDI-Information "Steuerrad-Änderung" besteht aus zwei Daten-Bytes. Dabei wird im ersten Daten-Byte der niederwertige Teil des neuen Wertes angegeben und im zweiten Daten-Byte der höherwertige Teil. In der Mittelstellung des Steuerrades ist das zweite Daten-Byte hexadezimal mit dem Wert 40 belegt. Der untere Anschlag erhält entsprechend den Wert 00 und der obere Anschlag den Wert 7F. In der unteren und der Mittelstellung hat das erste Daten-Byte den Wert 00, in der oberen Stellung jedoch den Wert 7F. In Dokumentationen werden oft die Gesamtwerte (also die Zusammenfassung von erstem und zweitem Daten-Byte) für den Mittelwert mit hexadezimal 2000 und für den Endwert mit 3FFF angegeben. Da jedes MIDI-Daten-Byte nur 7 Bits belegt (das achte Bit ist zur Kennzeichnung als Daten-Byte immer mit 0 belegt), ergibt die Zusammenfassung von erstem und zweitem Daten-Byte einen Wert von 14 Bit Länge und damit diese Gesamtwerte. Diese Werte sind jedoch für die MIDI-Übertragung nicht interessant, da beide Daten-Bytes einzeln angegeben werden müssen. 2. System-Daten =============== -2.1. System-Exclusiv-Nachrichten Status-Byte: F0 H Daten-Bytes: beliebig Die Anzahl der Daten-Bytes ist nicht herstellerunabhängig codiert und somit nicht allgemein angebbar. -2.2. Allgemeine System-Daten (System Common) -Song-Positions-Zeiger (Song Pointer) Status-Byte: F2 H Daten-Bytes: 2 Der Song-Positions-Zeiger ist ein internes Register, das die Zahl der MIDI- Schläge (beats) seit Anfang eines Songs enthält. Normalerweise ist der Wert = 0, wenn eine Sequenz beginnt. Es handelt sich hier um einen Wert der Länge 14 Bit, der auf die beiden Daten-Bytes der Nachricht aufgeteilt ist. Das erste Daten-Byte enthält die niederwertigen 7 Bits, das zweite Daten-Byte die höherwertigen 7 Bits des Zeigers. -Song-Auswahl (Song Select) Status-Byte: F3 H Daten-Bytes: 1 Im Daten-Byte ist die Nummer des Songs enthalten. -Stimmung (Tune Request) Status-Byte: F6 H Daten-Bytes: keine -Ende der System-Exclusiv-Meldung (EOX) Status-Byte: F7 H Daten-Bytes: keine 2.3. Echtzeit-Daten (Real Time) -Zeitvorgabe (Timing Clock) Status-Byte: F8 H Daten-Bytes: keine -Song-Start Status-Byte: FA H Daten-Bytes: keine -Song-Fortsetzen (Song Continue) Status-Byte: FB H Daten-Bytes: keine -Song-Stop Status-Byte: FC H Daten-Bytes: keine -Active Sensing Status-Byte: FE H Daten-Bytes: keine -Rücksetzen des Systems (System Reset) Status-Byte: FF H Daten-Bytes: keine MIDI-THRU ->Interface ¯¯¯¯¯¯¯¯¯ Modulation Die Beeinflussung der Parameter eines Signals (Amplitude, Frequenz, Phase) durch ein anderes Signal. Dabei können beide Signale sowohl einfache Sinussignale als auch komplexe Signale sein. Das modulierte Signal wird als Trägersignal (kurz Träger), das modulierende als Modulator bezeichnet. Änderungen der Amplitude werden als Veränderung der Lautstärke oder Tremolo, Änderungen der Frequenz als Veränderung der Tonhöhe oder Vibrato empfunden. Mono-Mode ->MIDI-Mode ¯¯¯¯¯¯¯¯¯ Note On ¯¯¯¯¯¯¯ MIDI-Nachricht über das Drücken einer Taste. Dabei wird der - >MIDI-Kanal, die Tastennummer und die ->Velocity gesendet. ->MIDI-Status Note Off ¯¯¯¯¯¯¯¯ MIDI-Nachricht über das Loslassen einer Taste. Dabei wird der ->MIDI-Kanal, die Tastennummer und die ->Velocity gesendet. ->MIDI-Status Oberton ¯¯¯¯¯¯¯ Über einem Grundton mitschwingende Teiltöne, die auch als Harmonische der Grundschwingung bezeichnet werden. Der 1. Oberton hat die doppelte Frequenz, der 2. Oberton die dreifache Frequenz der Grundschwingung usw. ->Additive Synthese ->Subtraktive Synthese Omni-Mode ->MIDI-Mode ¯¯¯¯¯¯¯¯¯ OUT ->Interface ¯¯¯ PCM ¯¯¯ Pulse Code Modulation, Verfahren für die Signalübertragung und - speicherung, bei dem das analoge Signal periodisch abgetastet wird. Die Abtastwerte werden als meist binäre Kodeworte dargestellt. PD Phase Distortion ->FM ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Pitch-Wheel Change ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Keyboards verfügen meist über ein Handrad zur Frequenzänderung. Die Verän- derung dessen Stellung kann über MIDI mitgeteilt werden. ->MIDI-Status Polyphonic Key Pressure ->After-Touch, ->MIDI-Status ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Poly-Mode ->MIDI-Mode ¯¯¯¯¯¯¯¯¯ Preset ¯¯¯¯¯¯ Bezeichnung für ein gespeichertes Klangprogramm eines Synthesizers oder Effektgerätes. Program Change ¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ->MIDI-Geräte verfügen meist über verschiedene Programme (bei Synthesizern können das z.B. verschiedene ->Sounds sein), die über Tasten am Gerät oder mit dieser Nachricht umgeschaltet werden können. Je nach internen Möglichkeiten besitzen verschiedene Keyboards verschiedene Numerierungen für diese Programme. Running-Status ¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Folgen im MIDI-Datenstrom mehrere Kanaldaten mit gleichem Status und gleichem Kanal unmittelbar aufeinander, so können die - >Status-Bytes zwischen den ->Daten-Bytes weggelassen werden. Dadurch wird die Übertragungsgeschwindigkeit erhöht. Der R. wird durch System-Common-Nachrichten und System-Exclusiv-Nach- richten zurückgesetzt. Voreingestellt ist R. Note On. ->MIDI-Status Real-Time-Nachrichten ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Kanalunabhängige Nachrichten für die zeitliche Synchronisation eines MIDI- Systems. Sie können zu beliebigen Zeitpunkten auftreten, auch innerhalb(!) anderer Nachrichten (außer ->System- Exclusiv-Nachrichten) Sample ¯¯¯¯¯¯ Digital aufgezeichnetes Audiosignal. Dabei wird ein beliebiges analoges Signal periodisch abgetastet und in diskrete Werte zerlegt. Die Güte der Aufzeichnung wird durch die Abtastrate (auch sampling rate) und durch die Genauigkeit der Quantisierung bestimmt. Die Abtastrate muß nach dem Abtasttheorem doppelt so hoch wie die höchste noch aufzuzeichnende Frequenz sein, Üblich sind Werte zwischen 10 und 100 kHz. Bei einer Quantisierung auf 256 verschiedene Stufen werden 8 Bit für jeden Abtastwert benötigt. Sequenzer ¯¯¯¯¯¯¯¯¯ ->MIDI-Gerät oder Programm auf einem Computer, was das Aufnehmen, Wiedergeben, Bearbeiten und Archivieren von MIDI-Daten ermöglicht. Herkömmliche S. arbeiten nach dem Prinzip einer Mehrspurbandmaschine. Einzelne Tracks (Spuren) können unabhängig voneinander bearbeitet und zu einem Song zusammengefaßt werden. Song ->System-Common-Nachrichten oder ->Sequenzer ¯¯¯¯ Song Continue ¯¯¯¯¯¯¯¯¯¯¯¯¯ Wird bei Betätigung des Continue-Schalters am MIDI-Sender gesendet. Die Sequenz beginnt mit dem nächsten Clock-Impuls. - >MIDI-Status Song Pointer ¯¯¯¯¯¯¯¯¯¯¯¯ Der Song-Positions-Zeiger ist ein internes Register, das die Zahl der MIDI- Schläge (beats) seit Anfang eines Songs enthält. ->MIDI- Status Song Select ¯¯¯¯¯¯¯¯¯¯¯ Diese Nachricht legt fest, welcher Song bzw. welche Sequenz nach Empfang einer Song-Start-Nachricht gespielt werden soll. ->MIDI- Status Song-Start ¯¯¯¯¯¯¯¯¯¯ Beginn eines Songs, der eventuell mit Song-Auswahl ausgewählt wurde. Wird bei Betätigung des Play-Schalters gesendet. ->MIDI-Status Song-Stop ¯¯¯¯¯¯¯¯¯ Wird sofort bei Drücken des Stop-Schalters gesendet. Die Sequenz wird angehalten. ->MIDI-Status Sound ¯¯¯¯¯ Bezeichnung für das klangliche Ergebnis aller Einstellungen und Parameter einer Klangsynthese. Stimme ->Voice ¯¯¯¯¯¯ Status-Byte ¯¯¯¯¯¯¯¯¯¯¯ MIDI-Byte, bei dem das höchstwertigste Bit gesetzt ist, dessen Wert also größer als hexadezimal 7F ist. S. definieren die Art der MIDI-Nachricht. Dem S. kann eine definierte Anzahl von Daten-Bytes folgen. ->MIDI-Status Subtraktive Synthese ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ (auch Analytischer Abbau) Klangsyntheseverfahren, bei dem von einem breit- bandigem Ursprungsklang oder -geräusch bestimmte -> Oberwellen weggefiltert werden. System-Common-Nachrichten ->MIDI-Nachrichten ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ System-Exclusiv-Nachrichten ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Diese Nachricht ist den Herstellern zur Übertragung beliebiger eigener Mel- dungen überlassen. Die Anzahl der Daten-Bytes, die alle den hexadezimalen Wert 7F nicht überschreiten dürfen, ist beliebig. Das erste Daten-Byte ist die sogenannte Hersteller- Identifikation, eine zentral vergebene Nummer zur Unterscheidung der einzelnen Hersteller. Das Ende einer System-Exclusiv- Nachricht wird gewöhnlich mit dem ->MIDI-Status EOX angezeigt. Aber auch jedes andere Status-Byte beendet diese Nachricht. - >MIDI-Status System Reset ¯¯¯¯¯¯¯¯¯¯¯¯ Durch diese Nachricht wird das System völlig neu initialisiert. Es nimmt den Einschaltzustand an. ->MIDI-Status THRU ->Interface ¯¯¯¯ Timing Clock ¯¯¯¯¯¯¯¯¯¯¯¯ Das System wird mit dieser Clock synchronisiert. Die Clock-Rate beträgt 24 Impulse/Viertel-Note (96 tel). ->MIDI-Status Track ¯¯¯¯¯ Einzelne Spur eines ->Sequenzers Tune Request ¯¯¯¯¯¯¯¯¯¯¯¯ Dient der Stimmung der Oszillatoren bei analogen Synthesizern nach Empfang der Nachricht. ->MIDI-Status Velocity ¯¯¯¯¯¯¯¯ Anschlagsdynamik, Wert für die Dynamik (besser gesagt Geschwindigkeit), mit der eine Taste auf dem Keyboard angeschlagen bzw. losgelassen wird. Voice ¯¯¯¯¯ Stimme in einem Synthesizer, die im ->Mono-Modus auch einzeln über Kanal- Nachrichten angesprochen werden kann.