In den 80er Jahren baute Atari in die Rechner der ST-Serie MIDI-Schnittstellen ein. Erst als auch Intel-kompatible PCs MIDI unterstützten, wurde der ST langsam aus dem Musikcomputer-Segment verdrängt. Heute hat Linux diesen Marktsektor für sich entdeckt.
Die ersten Synthesizer waren noch echte Analogmonster: Zum einen waren sie nur monophon, d. h. sie konnten nur einen Ton gleichzeitig spielen, und zum anderen waren sie wirklich noch analog – und zwar mit dem Prinzip: 1 Volt entspricht einer Oktave, also 1/12 Volt = 1 Halbtonschritt. Das Drücken mehrerer Tasten führte in der Tat zu nichts. Technisch gesehen bedeutete das, dass nur die oberste oder unterste Taste aktiv war (unter Strom stand). Wer also seine Kaffeetasse ganz rechts auf die Tastatur stellte und virtuos über die Tastatur fegte, erzeugte dennoch nur so aufmunternde Musik wie sämtliche gregorianische und tibetanische Chöre zusammen. Schließlich wurden die ersten Synthesizer zur Akkordarbeit überredet, indem man digital ständig die einzelnen Tasten nach dem Status “gedrückt” oder “nicht gedrückt” abfragte. So war 6-, 8- oder sogar 12-stimmige Polyphonie – je nach Anzahl der eingebauten Oszillatoren – möglich, wenn auch die Klangerzeugung selbst noch analog war. Wer selbst einmal in diese Zeit der Synthesizer hineinhören will, dem empfehle ich [1].
MIDI wird geboren
Das Prinzip der Analogsynthesizer mit digitaler Tastatur war die Geburtsstunde des MIDI-Paradigmas: Es sollte ein Standard geschaffen werden, der nicht die Klangerzeugung selbst, sondern nur deren Steuerung – also welche Tonhöhe, wie laut etc. – beschreiben sollte. 1983 kamen die ersten MIDI-Synthesizer auf den Markt. Inzwischen gibt es MIDI-Gitarren, MIDI-Schlagzeuge, ja sogar MIDI-Saxophone. Auch Computern – wie dem Atari ST – wurde die MIDI-Schnittstelle direkt eingebaut, deren Übertragungsgeschwindigkeit (um ungewünschte Zeitverzögerungen zu vermeiden) mit 31,25 kBaud im Vergleich zu den damals üblichen 19,2 kBaud recht hoch angesetzt war. Ganze Netzwerke wurden mit dieser Schnittstelle aufgebaut, und auch die Netzwerkspiele wurden mit der MIDI-Schnittstelle geboren [2]. Wenn Ihnen also heute einer dieser Gesellen begegnet, die sich immer und überall, wo sie eine Klaviatur sehen, unauffällig auf die Tastatur zuschleichen, um dort den Flohwalzer reinzuhacken, können sie ihm das mit ihrem MIDI-Equipment versalzen: Legen Sie ihm einfach Regentropfen oder Meeresrauschen auf die Klangausgabe – das sollte seinem Taktgefühl Heilung verschaffen.
Zu Befehl!
Wie wir bereits gelernt haben, hat ein MIDI-Befehl nichts mit dem Klang selbst zu tun, sondern übermittelt nur die Information, welcher Ton wie laut gespielt werden soll. Eine gute Vorstellung von dem, was bei MIDI passiert, ist der Vergleich mit einem Klavier: Die MIDI-Signale entsprechen hier der Mechanik, die den Hammer mit einer durch den Pianisten gesteuerten Anschlagstärke schlagen lassen. Die durch den Hammer getroffene Saite im Klavierkasten hat mit MIDI selbst nichts mehr zu tun, sie gehört schon zur Klangerzeugung und könnte genau so gut vom Instrumentenbauerals eine Reihe von Bambusröhren geschaffen worden sein. Der “MIDI-Befehl”, repräsentiert durch das Hauen eines bestimmten Hammers mit einer bestimmten Stärke, ist vollkommen unabhängig von dem, was der Hammer trifft. Natürlich gibt es nicht nur MIDI-Befehle zum Steuern der Klangerzeugung, es wurden auch solche in den Standard mit aufgenommen, die das Arbeiten mit einem Sequenceroder einem Synthesizer ermöglichen – doch davon später.
Kanäle
Der MIDI-Standard wurde direkt derart gestaltet, dass er nicht nur Polyphonie (also mehrere Klänge gleichzeitig – Akkorde) zulässt, sondern auch unterschiedliche Kanäle ansprechen kann. Diese Kanäle sind logisch, werden also nicht über andere Kabel oder Frequenzen übermittelt, sondern liegen in der binären Übertragungsstruktur verborgen. Mit Hilfe dieser Kanäle können bis zu 16 verschiedene Instrumente gleichzeitig gesteuert werden. Die Kodierung des MIDI-Kanals in den MIDI-Befehlen ermöglicht die erste große Einteilung der MIDI-Befehle in zwei Gruppen, nämlich diejenigen, die einen bestimmten Kanal ansprechen und diejenigen, die dies nicht tun. Die Ersteren heißen daher auch Channel-Nachrichten (engl. Kanal), die anderen Befehle werden System-Nachrichten genannt. Zum ersten Verständnis der MIDI-Befehle ist nun noch wichtig zu wissen, dass jeder MIDI-Befehl mit einem sogenannten Status-Byte eingeleitet wird, in welchem das erste Bit gesetzt ist. Auf ein Status-Byte folgen dann je nach MIDI-Befehl keine, ein, zwei oder mehrere Daten-Bytes, die den Befehl näher spezifizieren, in denen das erste Bit nicht gesetzt sein darf (sonst würden die Daten als Status-Byte missinterpretiert).
Tabelle 1: Status-Byte der MIDI-Befehle
| 1. Halb-Byte | 2. Halb-Byte | 1. Halb-Byte | 2. Halb-Byte |
| (0x9 bis 0xE) | (der Kanal 1-16) | (konstant 0xF) | (Befehl) |
1000 cccc
1111ssss
bis
1110 cccc
Das cccc in Tabelle 1 gibt die 4-Bit-Verschlüsselung des MIDI-Kanals an; in diesem Halb-Byte (auch Nibble) sind also die Werte von 0 bis 15 (hexadezimal 0x0 bis 0xF) codierbar, die die Kanäle 1 bis 16 referenzieren. Es ist übrigens Standard, die Zählung der MIDI-Kanäle bei 1 zu beginnen, wenn man nicht über das Kanal-Nibble spricht. Wer den MIDI-Kanal 0 in seinen Sprachgebrauch aufnimmt, braucht sich also irgendwann nicht über das Gefühl zu wundern, das einen befällt, wenn man nach vielen Jahren plötzlich bemerkt, dass man einen Songtext an einer Stelle schon immer falsch gesungen hat. Weiter haben sich einige Standards eingebürgert, wie z. B. die Reservierung von MIDI-Kanal 10 (Kanal-Nibble also hexadezimal 0x9) für das Schlagzeug.
Bit-Geflüster
Die Channel-Nachrichten selbst unterteilen sich noch einmal in Voice- und Mode-Nachrichten. Die Mode-Nachrichten beginnen mit dem Status-Byte 1011cccc, und sie alle zu erklären, führte hier doch etwas zu weit. Stellvertretend für die Mode-Nachrichten sei hier der Befehl ALL_NOTES_OFF erklärt, der alle Töne auf einem Kanal verstummen lässt. Er beginnt wie bereits erläutert mit dem Status-Byte 1011cccc, gefolgt von zwei Daten-Bytes (welche wie oben erwähnt nun mit einem 0-Bit beginnen müssen, da sie sonst für Status-Bytes gehalten werden). Die beiden Bytes sind 01111011 und 00000000. Wer also das Schlagzeug zum Schweigen bringen will, sendet die Bytefolge 10111001, 01111011, 0000000 (beachte den Kanal 1001=0x9, also Kanal 10 im zweiten Halb-Byte des Status-Bytes zur Ansteuerung des Standardschlagzeugkanals).
Das wirkliche Herzstück der MIDI-Befehle sind aber die Channel-Voice-Nachrichten, denn sie machen die Musik! Einen Überblick gibt Tabelle 2.
Tabelle 2: Channel-Voice-Nachrichten
| 1. Byte | 2. Byte | 3. Byte | Bedeutung |
|---|---|---|---|
| Status-Byte Tonhöhe Laut-/Druckstärke | |||
| 1000cccc | 0ttttttt | ovvvvvvv | NOTE_OFF |
| 1001cccc | 0ttttttt | ovvvvvvv | NOTE_ON |
| 1010cccc | 0ttttttt | ovvvvvvv | AFTER TOUCH (Ton) |
| Status-Byte Kontroll-Byte Wert | |||
| 1011cccc | 0ccccccc | ovvvvvvv | CONTROL CHANGE |
| 1100cccc | 0ppppppp | – | PROGRAM CHANGE |
| 1100cccc | 0ppppppp | – | PROGRAM CHANGE |
| 1101cccc | 0vvvvvvv | – | AFTER TOUCH (Channel) |
| 1110cccc | 0vvvvvvv | 0vvvvvvv | PITCH BENDING |
Wirklich wichtig sind die MIDI-Befehle NOTE_ON und NOTE_OFF: Sie sind die Befehle, die dem Synthesizer “Spiele Ton xy!” und “Spiele Ton xy nicht mehr!” sagen. In der Tabelle lässt sich ablesen, dass auf NOTE_ON und NOTE_OFF noch zwei Daten-Bytes folgen: Das erste Byte beschreibt die Tonhöhe, das zweite Byte die Lautstärke, mit der der Ton gespielt werden soll. Dabei ist der Wert 01001001 (dezimal 69) für 0ttttttt gerade der Kammerton a. Die anderen Töne sind nach Halbtonschritten darunter oder darüber angeordnet, indem der Wert für die Tonhöhe herauf- und herabgezählt wird (vgl. auch die Klaviatur in Abbildung 1).
Kammertöne
| Ton | 0ttttttt |
| E8 | 127 |
| E2 | 76 |
| D#2 | 75 |
| D2 | 74 |
| C#2 | 73 |
| C2 | 72 |
| H1 | 71 |
| A#1 | 70 |
| A1 | 69 |
| G#1 | 68 |
| G1 | 67 |
| F#1 | 66 |
| F1 | 65 |
| E1 | 64 |
| D#1 | 63 |
| D1 | 62 |
| C#1 | 61 |
| C1 | 60 |
| H0 | 59 |
| A#0 | 58 |
| A0 | 57 |
| G#0 | 56 |
| G0 | 55 |
| F#0 | 54 |
| F0 | 53 |
| E0 | 52 |
| D#0 | 51 |
| D0 | 50 |
| C#0 | 49 |
| C0 | 48 |
etc…
| -C2 | 0 |
Es ist hier noch einmal wichtig festzustellen, dass bei MIDI-Befehlen keine Töne oder Frequenzen übermittelt werden, sondern wirklich nur eine im MIDI-Standard festgelegte Zahl für einen Ton. Die Klangerzeugung wird vollkommen dem Empfängergerät überlassen. Die anderen Voice-Nachrichten sind auch schnell erklärt:
- Den Befehl AFTER TOUCH gibt es zweimal – 1010-AFTER TOUCH bezieht sich auf einen einzelnen Ton (auch KEY PRESSURE); 1101-AFTER TOUCH auf den gesamten Kanal (auch CHANNEL PRESSURE). Beim AFTER TOUCH haben die MIDI-Macher an eine weitere Möglichkeit gedacht, die Tonerzeugung zu beeinflussen, nämlich an eine Veränderung, wenn der Ton bereits erklingt. Je nach Synthesizer und programmiertem Ton kann so nachträglich eine Lautstärke-, Klang- oder Tonhöhenänderung gesteuert werden.
- Der CONTROL-CHANGE-Befehl dient der Übertragung von Steuerbefehlen wie Lautstärke, einer Reihe von Pedalen, dem Setzen der Stereo-Balance etc.
- Der PROGRAM-CHANGE-Befehl wird benutzt, um dem Synthesizer mitzuteilen, dass er für die weiteren Töne eine andere Klangerzeugung aus seiner Liste von Presetsbenutzen soll.
- Der letzte Channel-Voice-Befehl ist das PITCH BENDING: Dieser Befehl überträgt die Daten, welche die Spieltechnik der kontinuierlichen Tonhöhenveränderung erzeugt (man denke an einen Gitarristen, der durch das Ziehen seiner Saiten den Ton etwas erhöht). Die Synthesizer-Hersteller haben hier eine Reihe von Spielhilfen erfunden, um PITCH-BENDING-Befehle zu geben. Bei einem ist es ein Modulationsrad, bei anderen ist es ein Joystick und bei wieder anderen ein Hebel. Allen gemeinsam ist allerdings in der Regel, dass sie beim Loslassen automatisch wieder in die Mittelstellung zurückschnellen.
System-Nachrichten
Der Vollständigkeit halber finden Sie in Tabelle 3 noch die System-Nachrichten aufgelistet, bei denen sich auch wieder ein ganz wichtiger Befehl befindet. Die Namen der Befehle SONG POSITION POINTER, SONG SELECT, START, CONTINUE und STOP sind selbstsprechend. Der MIDI-Standard hat hier die Arbeit mit einem Sequencer direkt mit berücksichtigt. Der Befehl TUNE REQUEST war für das gemeinsame Stimmen mit Analog-Synthesizern gedacht und ist nicht mehr ganz auf der Schwelle der Zeit; er ist nur noch selten zu finden. Interessant ist die System-Nachricht ACTIVE SENSING, welche in einem Abstand von 300 ms immer dann automatisch gesendet wird, wenn sonst keine MIDI-Daten übertragen werden; so weiß jedes angeschlossene Gerät stets, ob die MIDI-Leitung noch steht – wie schnell ist bei aufwendigerem Equipment mal ein Stecker in irgendeiner schlecht zugänglichen Ecke locker. SYSTEM RESET befiehlt allen angeschlossenen Geräten, einen Kaltstart zu simulieren. Außerdem gibt es noch die SYSTEM-EXCLUSIVE-Daten. Sie werden mit dem Status-Byte 11111111 eingeleitet, worauf die gesamten Sound-Daten aus dem Synthesizer ausgelesen oder eingefügt werden können. Hier können auch die Editor-Programmefür Synthesizer aufsetzen. Der wichtigste Befehl ist aber der TIMING-CLOCK-Befehl, der alle sendenden MIDI-Einheiten synchronisert. So werden normalerweise pro definiertem Grundschlag (meist eine Viertelnote) 24 TIMING-CLOCK-Signale gesendet. In einem 4/4-Takt bedeutet dies also, dass der Takt nach 96 TIMING CLOCKs vollendet wird. Das Senden der TIMING-CLOCK-Signale ist – im Gegensatz zum ACTIVE SENDING – zeitabhängig: Wird das Metronom auf 60 Schläge pro Sekunde eingestellt, also eine Viertelnote pro Sekunde, so werden auch 24 TIMING CLOCKs pro Sekunde gesendet. Eine Reihe von Achtelnoten wird entsprechend nach je 12 TIMING CLOCKs gesendet, Sechzehntelnoten nach sechs usw. Für die genaue MIDI-Referenz aller Befehle und ihrer Daten-Bytes sei auf den Standard verwiesen, der sich auch auf der CD befindet (midi.ps.gz).
Tabelle 3: System-Nachrichten
| Status-Byte | Daten-Byte(s) | Bedeutung |
| Common-Nachrichten | ||
|---|---|---|
| 11110001 | – | nicht defniert |
| 11110010 | 0lllllll 0hhhhhhh | SONG POSITION POINTER |
| 11110011 | 0sssssss | SONG SELECT |
| 11110100 | – | nicht definiert |
| 11110101 | – | nicht definiert |
| 11110110 | keins | TUNE REQUEST |
| Real-Time-Nachrichten | ||
| 11111000 | keins | TIMING CLOCK |
| 11111001 | – | nicht definiert |
| 11111010 | keins | START |
| 11111011 | keins | CONTINUE |
| 11111100 | keins | STOP |
| 11111101 | – | nicht definiert |
| 11111110 | keins | ACTIVE SENSING |
| 11111111 | keins | SYSTEM RESET |
| System-Exclusive-Nachrichten | ||
| 11110000 | jede Menge | SYSTEM EXCLUSIVE |
| 11110111 | keins | EOX = END OF SYSTEM EXCLUSIVE |
Linux goes MIDI
Der zukunftsweisende MIDI-Standard wurde bereits in zahlreichen Sequencer-Programmen implementiert, aber das vielversprechendste Projekt ist sicherlich die C++-Bibliothek tse3, auf der auch der Linux-Sequencer anthem basiert [4]. Sie weist nicht nur eine sehr saubere Dokumentation für den Programmierer auf, die Bibliothek vereint auch gerade die beiden unterschiedlichen Funktionalitätsebenen, die bei der Arbeit mit Sequencern so wichtig sind, in einer ganzen Reihe von Klassen und APIs. So wird natürlich die Sequencer-Ebene mit entsprechender Funktionalität, aber auch die MIDI-Ebene mit vielen Zugriffsmöglichkeiten unterstützt. Der interessierte Programmierer findet entweder das Paket tse3 schon auf seiner Distribution, sonst sei auf [3] verwiesen – die aktuellen Quellen der Bibliothek (Version 0.1.2) finden sich auf der Heft-CD. Als besonderes Schmankerl bietet tse3 noch ein eigenes MIDI-Dateiformat an: TSE3MDL (für TSE3 Music Description Language). tse3 unterstützt dabei aber auch den normalen MIDI-Datei-Standard voll. Nun hat sich zwar der MIDI durchgesetzt, aber während MIDI-Dateien nur eine gigantische Byte-Wüste darstellen, ist das TSE3MDL-Format klar lesbar und daher auch leicht editierbar. Diesen Vorteil kann man mit dem im tse3-Paket befindlichen Programm tse3play nutzen: Das Programm beherrscht die Umwandlung von MIDI-Dateien in das TSE3MDL-Format, und auf diese Weise kann man wunderbar durch die Information browsen, die in einer Standard-MIDI-Datei steckt, ohne sich jedes Bit und Byte ansehen zu müssen.
Zeig’s mir noch einmal, Sam!
Dieses Browsen in der MIDI-Standard-Datei sei an einem Beispiel gezeigt; danach können Sie es an Ihren eigenen MIDI-Dateien einmal selbst ausprobieren. Zuvor muss jedoch noch etwas über das TSE3MDL-Format gesagt werden: Dieses Dateiformat ist objektorientiert aufgebaut und daher in sogenannten chunks organisiert. Chunks sind alle sehr einfach aufgebaut – ein chunk besteht aus einem Titel, einer öffnende Klammer, Daten (und das können wieder andere chunks sein!) und schließlich einer schließenden Klammer. Chunks enthalten u. a. Zeit-Signale, Tracks, Phrasen, Midi-Filer, Midi-Parameter etc. Eine Liste findet man unter [5] (oder in TSE3MDL.html auf der CD).
Für uns ganz wichtig ist der Phrase-chunk, der viele der MIDI-Befehle und auch die NOTE_ON- und NOTE_OFF-Informationen enthält. Dabei wird ein MIDI-Befehl in der TSE3MDL-Schreibweise in die Form TIME:STATUS/DATA1/DATA2/CHANNEL/PORT gebracht, wobei alle Einträge klar lesbare Zahlen (dezimal) sind. Außerdem hat der NOTE_ON-Befehl noch die Zusatzeigenschaft, dass ihm direkt die NOTE_OFF-Information angehängt wird (so erspart man sich das lange Suchen, wann der Ton denn endlich aufhört), und zwar als Anhängsel in der Form -OFFTIME:OFFSTATUS/OFFDATA1/OFFDATA2/OFFCHANNEL/OFFPORT. Doch nun zum Beispiel: Dafür habe ich mir bei [6] die MIDI-Datei r-pf01.mid für das Preludium zum “Wohltemperierten Klavier” in C-Dur von J. S. Bach (Abbildung 2) heruntergeladen. Um zu sehen, was in dieser Datei steht, erzeugen wir aus ihr mit
tse3play --noplay --out-tse3mdl jsb.tse3 r-pf01.mid
die Datei jsb.tse3 im TSE3MDL-Format (wer –noplay weglässt, kann bei der Übersetzung sogar zuhören und bekommt auch noch die MIDI-Kanalausgaben in Farbe präsentiert – es lohnt sich!). Alle Optionen des Programms tse3play erhält man über Angabe der Option -h. In unserem Beispiel findet sich nun im ersten Events-chunk die NOTE_ON-/NOTE_OFF-Information, für die wir uns interessieren:
Phrase
{
Title:Imported Phrase
…
Events
{
…
780:9/60/76/3/0-1074:8/60/1/3/0
822:9/64/114/2/0-1056:8/64/1/2/0
861:9/67/114/2/0-898:8/67/1/2/0
899:9/72/119/1/0-934:8/72/1/1/0
937:9/76/119/1/0-973:8/76/1/1/0
978:9/67/127/2/0-1015:8/67/1/2/0
1015:9/72/119/1/0-1052:8/72/1/1/0
1055:9/76/119/1/0-1092:8/76/1/1/0
…
}
}
In Tabelle 4 sind die Informationen der TSE3MDL-Datei direkt neben die entsprechenden MIDI-Befehle gesetzt. Die Beziehung der Daten-Bytes ist sofort klar; es handelt sich links um die Dezimal- und rechts um die Bit-Schreibweise. Der Zusammenhang von Status-Byte, Status-Nibble und Kanal-Nibble ist auch leicht zu sehen. Stellt man die vier Bytes des Status den vier Bytes des Kanals vorneweg, so muss man sie mit 16 multiplizieren, und man erhält den einfachen arithmetischen Zusammenhang Status-Byte = Status-Nibble*16 + Kanal-Nibble.
Tabelle 4: Vergleich TSE3MDL – MIDI-Befehle
| TSE3MDL-Event | MIDI-Befehle | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Status-Nibble | Ton | Lautstärke | Kanal | Status-Nibble | Ton | Data2 | Kanal | Note | ||||||
| NOTE_ON NOTE_OFF | ||||||||||||||
| NOTE_ON | Nibble | NOTE_OFF | Nibble | Status-Byte | Ton | Lautstärke | Status-Byte | Ton | Tonabfall | |||||
| 9 | 60 | 76 | 3 | 8 | 60 | 1 | 3 | c1 | 10010011 | 00111100 | 01001100 | 10000011 | 00111100 | 00000001 |
| 9 | 64 | 114 | 2 | 8 | 64 | 1 | 2 | e1 | 10010010 | 01000000 | 01110010 | 10000010 | 01000000 | 00000001 |
| 9 | 67 | 114 | 2 | 8 | 67 | 1 | 2 | g1 | 10010010 | 01000011 | 01110010 | 10000010 | 01000011 | 00000001 |
| 9 | 72 | 119 | 1 | 8 | 72 | 1 | 1 | c2 | 10010001 | 01001000 | 01110111 | 10000001 | 01001000 | 00000001 |
| 9 | 76 | 119 | 1 | 8 | 76 | 1 | 1 | e2 | 10010001 | 01001100 | 01110111 | 10000001 | 01001100 | 00000001 |
| 9 | 67 | 127 | 2 | 8 | 67 | 1 | 2 | g1 | 10010010 | 01000011 | 01111111 | 10000010 | 01000011 | 00000001 |
| 9 | 72 | 119 | 1 | 8 | 72 | 1 | 1 | c2 | 10010001 | 01001000 | 01110111 | 10000001 | 01001000 | 00000001 |
| 9 | 76 | 119 | 1 | 8 | 76 | 1 | 1 | e2 | 10010001 | 01001100 | 01110111 | 10000001 | 01001100 | 00000001 |
Wer genau hinguckt, sieht die unterschiedlichen Lautstärken in den MIDI-Befehlen. Das ist ein guter Hinweis darauf, dass das Stück mit einem Instrument eingespielt wurde und nicht die Noten per Maus-Click auf einem Computer eingegeben wurden. Und nun legt mal alle los! An die Tasten und in guter alter Casablanca-Manier: And can’t you remember it? A bit is just a bit…
Glossar
-
Instrumentenbauer
-
Landwirt, der seinen Stall mit einer Tongabel ausmistet, um sich klassisch mit Roggen-Roll zu ernähren.
-
Sequencer
-
Gewissermaßen ein Tonbandgerät, das jedoch keine Klänge, sondern nur die MIDI-Befehle aufzeichnet. Dadurch kann der Klang später ausgetauscht werden.
-
Nibble
-
Ein Halb-Byte, also die ersten oder die letzten vier Bits in einem Byte. An den ersten vier Bits des Status-Bytes lässt sich der Befehl erkennen, daher nennt man diese ersten vier Bits auch Status-Nibble.
-
Kammerton
-
Der für alle Musikinstrumente gültige Stimmton, das eingestrichene a (auch A1 oder a1), der im Jahr 1939 international auf 440 Hz festgelegt wurde.
-
Presets
-
Klangeinstellungen, die auf einem Synthesizer für eine bestimmte Klangerzeugung eingestellt sind. In der Regel sind dies 128 Einträge (daher auch die Werte 0-127 für das Byte 0ppppppp); die Zählung ist aber stark herstellerabhängig.
-
Editor-Programme
-
Programme, die die vielen (oft über hundert) Parameter, die ein Synthesizer für einen Preset gespeichert hat, graphisch aufarbeiten und so dem Sound-Entwickler die Arbeit wesentlich erleichtern. Damals gab es auf dem Atari für so ziemlich jeden Synthesizer auch ein Editor-Program. Warum gibt es die nicht mehr für Linux? Das ist also ein offener Aufruf an alle MIDI-Programmierer: Schreibt Editor-Software für Synthesizer. Das ist noch ein echtes Nischensegment.
Infos
[1] Das Album “The Aura Will Prevail” von George Duke (der auch lange Pianist bei Frank Zappa war), einem der größten Pioniere in der Synthesizer-Welt, wurde u. a. noch mit Analog-Synthesizern erarbeitet.
[2] LinuxUser berichtete in Ausgabe 02/2002 vom wiedergeborenen Spieleklassiker iMaze, der 1987 über die MIDI-Schnittstelle netzwerkfähig gemacht wurde.
[3] http://TSE3.sourceforge.net
[4] http://anthem.sourceforge.net





