Home / LinuxUser / 2002 / 04 / Volkers Editorial

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Pro-C-Dur

Volkers Editorial

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).

Abbildung 2: Preludium von J. S. Bach

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

[5] http://tse3.sourceforge.net/doc/TSE3MDL.html

[6] http://www.geocities.com/Vienna/2234/

Der Autor

Volker Schmitt ist Mathematiker, Mathematiker und Mathematiker und arbeitet bei einer großen Versicherung. Als frischgebackener Vater versucht er sich im Einhand-Artikel-Tippen-andere-Hand-Babyschaukeln und empfiehlt seiner Frau zur Bäuerchenreduzierung das Stillen mit blasenfreier Betankung.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...