OSC der grosse Nachfolger von MIDI?

Wer sich schon immer mal gefragt hat, ob es denn überhaupt auf dem Gebiet der Gerätesteuerung Neuigkeiten gibt, wird vielleicht schon einmal mit OSC in Kontakt gekommen sein. OSC ist sozusagen die Weiterentwicklung von MIDI und bietet einige interessante Neuerungen. Wer mal einen groben Überblick haben möchte für den ist dieser Artikel sicherlich empfehlenswert.

Andreas Zeitler Von Andreas Zeitler

ANZEIGE

OSC der grosse Nachfolger von MIDI?

Bei dem Begriff OSC gibt es oft immer noch Erklärungsbedarf. Und das obwohl sich “Open Sound Control” langsam aber sicher auch in die Studiowelt einschleicht.
Berühmte Beispiele für Hersteller die schon auf den “OSC-Zug” bereits aufgesprungen sind sind beispielsweise Native Instruments oder Jazzmutant’s Lemur. Natürlich werden die genannten Instrumente auch bereits von Musikern live verwendet und gespielt.
Genug Gründe also einen grundlegenden Überblick über diese neue Steuersprache zu geben.

OSC steht für Open Sound Control und wurde am UC Berkeley entwickelt. Dort gibt es ein spezielles Zentrum für neue Musik- und Tontechnik (Center for New Music and Audio Technology kurz CNMAT). Dieses Zentrum hat OSC ins Leben gerufen. Doch warum überhaupt?

Wenn man sich die (inzwischen über 20 Jahre) Geschichte von MIDI einmal ansieht, wurden schon einige Versuche unternommen MIDI abzulösen. Doch genau da lag der Knackpunkt dieser Implementationen. Kurz gesagt hatte die Musik- und Tonbranche diese Produkte nicht angenommen mit dem Grund “Warum umsteigen? MIDI läuft doch!”
Und so dauerte es eben diese Zeit bis ein “würdiger” Nachfolger gefunden wurde.


PASSEND DAZU


Das OSC Protokoll kann sich bereits jetzt schon durchsetzen. Es bringt zwar auch wieder einige Nachteile mit sich, jedoch auch entscheidende Vorteile:

Open Sound Control: Features

  • Open Source
  • OSC wird über eine einfache LAN-Verbindung übertragen
  • Nach oben hin keine Geschwindigkeitsgrenze (Siehe LAN-Verbindung)
  • Höhere Auflösung als MIDI (32 bit)
  • Nachrichten können zu sogenannten “Bundles” zusammengefasst werden
  • OSC funktioniert nicht nur für musikalische Zwecke sondern kann generell für Steurungen aller Art benutzt werden.

Open Sound Control: Übertragung

Bei der Übertragung der Befehle kommen die TCP- und UDP-Protokolle zum Einsatz. Diese sind einigen sicher schon bekannt durch das Einrichten ihres Internetzuganges.

TCP:
TCP ist ein verbindungsorientiertes Protokoll. Das heisst jeder Teilnehmer eines Netzwerkes kann exakt zurück verfolgt werden. Der direkte Austausch zweier Stellen ist gewährleistet und Datenverluste können behoben werden, da Daten neu angefordert werden können.

UDP:
UDP ist ein verbindungsloses Protokoll. Heisst, Daten werden als “Stream” übertragen. Das heisst ein Sender beginnt “auf Glück” mit dem senden von Daten. Der Empfänger hat jedoch keine Möglichkeit eine Korrektur anzufordern. Der Vorteil von UDP: Es wird an alle Teilnehmer eines Netzwerkes gleichzeitig gesendet.


ANZEIGE

Open Sound Control: Aufbau einer OSC-Nachricht

Eine sogenannte OSC Message ist aufgeteilt in:

  • Address Pattern
  • Type Tag String
  • Arguments

Address Pattern
Das Address Pattern gibt an, wohin die Nachricht letztendlich gesendet werden soll. Dabei wird die Adresse durch “/” gekennzeichnet. Bei einem Klangerzeuger, wie einem Virus, könnte man sich etwa folgendes vorstellen:

/virus/filter/cutoff

Type Tag String
Der Type Tag String ist noch relativ neu und muss nicht zwingend von älteren Implementationen unterstützt werden, ist jedoch für neuere Anwendungen erforderlich. Durch den Type Tag String werden die OSC Messages im Typ gekennzeichnet. Ob es sich bei den Daten etwa um Ganzzahlen, Zeichen (Strings) oder Fliesskommazahlen etc. handelt. Zum abtrennen des Type Tag Strings wird ein “,” benutzt.

Es gibt unter anderem folgende (Common) Type Tags:

  • i = Ganzzahl in 32 Bit
  • f = Fliesskommazahl in 32 Bit
  • s = String
  • b = Blob (“Binary large Object” einfache Anhäufung von Daten)

In den Type Tags findet man auch die MIDI Nachricht wieder. Diese wird mit “,m” angegeben. Es gibt natürlich auch noch andere Type Tags wie etwa das OSC-timetag und andere. Das würde aber unseren Rahmen hier sprengen.

Arguments
Die Arguments beinhalten letztendlich die eigentlichen Daten. Möchte man eine einfache MIDI Nachricht absetzen so wären die Argumente (jeweils 1 Byte):

Port ID, Status Byte, Datenbyte 1, Datenbyte 2

Die Nachricht sieht also ungefähr so aus, möchte man den Filterwert eines Virus verändern:

/virus/filter/cutoff ,m 13 CC 40 30

Nochmal schön der Reihe nach:
Adress Pattern gefolgt von “,m” zur Kennzeichnung einer MIDI-Nachricht. Danach Port ID 13 (fiktiv gewählt). Statusbyte, ich habe hier der Einfachheit halber CC gewählt (für “Control Change”). Und als letztes folgen noch die zwei Datenbytes 40 und 30. Ich gehe, wiederum fiktiv, davon aus, dass der Filter die Controller Nummer 40 hat und stelle ihn einfach auf den Wert 30 ein.

Open Sound Control: Letzte Worte

Diese Ausführungen hier sind natürlich nur an der Oberfläche gekratzt OSC kann wirklich viel und ist vor allem auch vielseitig.
Viel Verwendung findet OSC auch in mehreren Audio-Programmiersprachen wie etwa Pure Data oder SuperCollider. (Es lohnt sich da eventuell mal einen Blick drauf zu werfen, lassen sich echt witzig Dinge damit machen.)

CNMAT
OSC-Homepage
Pure Data
SuperCollider

ANZEIGE

EMPFEHLUNGEN