Vernetzung von Musikapps – Eine Einführung

Gabriel Gatzsche | 15. März 2017

Früher waren Software-Applikationen Eierlegende Wollmilchsäue, die alles konnten. Der gesamte musikalische Arbeitsablauf von der Aufnahme über das Arrangement bis hin zur Abmischung erfolgte weitgehend innerhalb einer geschlossenen Umgebung. Mit dem Aufkommen von Mobilgeräten wandelte sich das: Kleine, auf eine bestimmte Aufgabe hoch spezialisierte Programme, Apps genannt, teilten sich die Aufgaben unter einander auf. So gibt es Apps für das Aufnehmen von Sounds, Apps für das Arrangieren, Synthesizer Apps, Apps zum Loopen, Effekt-Apps, Apps zur Organisation von Audiodateien und vieles mehr. Als Musiker ermöglicht mir das, meine Umgebung nach dem Baukastenprinzip zusammen zu setzen und perfekt auf mich abzustimmen.

Um einen solche nach dem Baukastenprinzip funktionierende Arbeitsumgebung zu ermöglichen, müssen Apps mit einander kommunizieren. Die Aufnahme-App muss in der Lage sein, die aufgenommenen Audio-Dateien an die Arrangier-App zu übergeben. Die Looper-App muss in der Lage sein, die von einer Synthesizer-App bereitgestellte Musik zu empfangen und zu loopen. Darüber hinaus sollten Apps in der Lage sein, sich auf den gleichen Takt und das gleiche Tempo einzustellen. Grundlegende Steuer-Möglichkeiten über das User-Interface sollten appübergreifend zur Verfügung stehen.

Motivation

Wissen über Kommunikationswege zwischen Musikapps eröffnet eine Vielzahl neuer kreativer Möglichkeiten. Angefangen von einem einfachen Szenario, bei dem eine Klaviatur-App einen Synthesizer steuert, bis hin zu komplexen Setups, bei denen MIDI-Controller, Looper, Synthesizer Drum-Machines und Effekt-Apps zu leistungsfähigen Live-Musik-Umgebungen verbunden werden, ist alles denkbar. Wer weiß, wie diese Dinge mit einander spielen, wird viel schneller heraus finden, warum der Sound gerade stumm ist, warum Noten doppelt beim Synthesizer ankommen oder warum der Loop nicht genau geschnitten ist.

Input, Filter und Output

Technisch gesehen, ist eine App eine „Blackbox“. Eine Blackbox empfängt ein Eingangssignal, verändert dieses intern und sendet das veränderte Signal als Ausgangssignal weg. Zusätzlich erhält die Blackbox Steuersignale, welche die Art beeinflussen, mit der die Blackbox das Signal verändern. Der Ausgang einer Blackbox A kann mit dem Eingang einer Blackbox B verbunden werden. Das von A versendete Ausgangssignal wird als Eingangssignal von Blackbox B empfangen, hier wieder verändert und dann wieder als Ausgangssignal weitergesendet. Im Musikappbereich gibt es drei Arten von Blackboxen.

  • Sender: Als Sender bezeichnen wir Blackboxen, welche keinen Eingang, sondern nur einen Ausgang besitzen. Sie werden auch als Generatoren bezeichnet, weil sie das initiale Signal erzeugen. Synthesizer, Sampler oder Drum-Machines sind der Gruppe der Sender zuzuordnen.
  • Filter: Als Filter oder auch Effekte bezeichnen wir Blackboxen, welche sowohl einen Eingang- als auch einen Ausgang besitzen. Solche Blackboxen erzeugen in der Regel kein eigenes Signal, sondern verändern dass an ihrem Eingang anliegende Eingangssignal. Eine Raumhall-App z.B. ist abstrakt gesehen ein Filter. Sie empfängt ein „trockenes“ Sprachsignal an ihrem Eingang, verhallt dieses und sendet es über ihren Ausgang weiter.
  • Empfänger: Als Empfänger bezeichnen wir Blackboxen, welche nur einen Eingang, aber keinen Ausgang besitzen. Sie sind in der Regel dazu da, dass Signal zu empfangen und zu speichern. Die Häufigste Gruppe von Empfänger-Apps sind Aufnahme-Apps.

Die einfachste Signalkette besteht als lediglich aus einem Sender und einem Empfänger. Gleich danach folgt eine Signalkette bestehend aus einem Sender, einem Filter und einem Empfänger. Es ist nun auch möglich, mehrere Sender, Filter und Empfänger zur kombinieren und so komplexe Setup aus Musik-Apps zu realisieren.

Zentrale und Dezentrale Vernetzung

Bei der Vernetzung von Musikapps unterscheiden wir zwei Methoden: Zentrale und Dezentrale Vernetzung:

  • Dezentrale Vernetzung: Bei der dezentralen Vernetzung reden Musikapps direkt mit einander. Jede App bestimmt selber, an wen sie Musikinformationen versenden und von wem sie Musikinformationen empfangen möchte. Dezentrale Vernetzung ist für einfache Setups von Vorteil: Ohne Notwendigkeit einer dritten App können Apps mit einander in Verbindung treten und Musikinformationen austauschen. Jede App löst die Vernetzung mit einer anderen App anders. Es gibt keinen einheitlichen Standard, wie Apps mit einander verbunden werden. Dies kann schnell zu Fehlern führen.
  • Zentrale Vernetzung: Bei der zentralen Vernetzung übernimmt eine App die Funktion der Vernetzung. Eine solche App verbindet zwei oder mehrere Apps mit einander. Die Zentrale Vernetzung hat den Nachteil, dass man eine weitere App benötigt. Vorteil aber ist, dass sehr komplexe, aus vielen Apps bestehende Konfigurationen beherrscht werden können. Ein weiterer Vorteil ist, dass alle Apps auf die gleiche Art und Weise mit einander verbunden werden.

Was tauschen Musikapps aus?

Doch was für Informationen werden eigentlich zwischen diesen Boxen ausgetauscht? Ganz abstrakt gesehen, tauschen Apps einfach nur digitale Folgen von Nullen und Einsen aus. Die Art der Information, unterscheidet sich dabei jedoch erheblich. Hier ein Überblick, welche Arten von Musikapps ausgetauscht werden:

  • Audio (Wellenformen): Die Wellenform eins Klanges beschreibt den zeitlichen Verlauf der Schallwelle, die unser Ohr erreicht. Durch einen Synthesizer, unsere Stimme oder ein akustisches Instrument werden solche Wellenformen erzeugt. Musikapps sind in der Lage Wellenformen von Klängen unter einander auszutauschen. Im technischen Sprachgebrauch wird die Wellenform-Beschreibung eines Klanges als „Audio“ bezeichnet.
  • MIDI (Notennummern): Anstatt die präzise Wellenform einer Musik zu beschreiben, kann man auch einfach sagen, welche Taste auf dem Klavier mit welcher Anschlagstärke gedrückt wurde. Diese Art von Information wird im technischen Sprachgebrauch als „MIDI“ bezeichnet. Die Abkürzung MIDI bedeutet „Musical Instrument Digital Interface“ und wurde ursprünglich als ein kleiner fünfpoliger Anschluss an Keyboards, Klangerzeugern oder Effektgeräten eingeführt.
  • Klangformung (MIDI Control): Nicht nur der Klang selber wird zwischen Apps ausgetauscht, sondern auch Informationen, wie der zwischen zwei Apps ausgetauschte Klang klingen soll, z.B. in welcher Lautstärke er ausgegeben werden soll, wie der Zeitverlauf des Klanges sein soll, ob er hell oder eher dumpf klingen soll und so weiter. Diese Arten von Informationen als „Control“ bzw. „Controller“ bezeichnet und in der Regel via MIDI zwischen Apps ausgetauscht.
  • Synchronisation (Clock & Sync): Apps sind auch in der Lage, sich über Takt und Tempo zu verständigen. Ziel ist dabei, Drum Machines, Arpeggiatoren, Looper oder Sequenzer im gleichen Takt und gleichen Tempo zu betreiben. Auch Start und Stop sowie die Abspielposition eines Musikstückes gehören zum Bereich der Synchronisation. Innerhalb Apps findet man Steuerelemente zur Synchronisation unter den Überschriften „Clock“ oder „Sync“.
  • Benutzeroberfläche (User Interface): Oft möchte man Teile einer App A steuern, während man sich innerhalb einer App B befindet. Um so etwas zu ermöglichen, müssen Apps Teile ihrer Benutzeroberfläche anderen zur Verfügung stellen. Das am häufigsten benötigte Steuerelemente einer App sind die Start und die Stopptaste sowie die Aufnahmetaste. Damit ist es möglich, z.B. die Aufnahme von Cubasis zu starten, während man sich in Loopy befindet.

Hier noch zwei Videos, welche Anwendungsbeispiele für die zuvor genannten Informationstypen im Bereich der Appmusik zeigen:

 

Technologien im Detail

In den vergangenen Jahren sind eine Vielzahl von Technologien entstanden, welche die Vernetzung von Musikapps ermöglichen. Nicht alle wurden bisher erwähnt. Die folgende Grafik fasst deshalb noch einmal die wichtigsten Technologien im Überblick zusammen:

Inter-App Kommunikationskanäle

Dieser Überblick ist vor allem für die interessant, welche sich für die technische Ebene der App-Vernetzung interessieren. Vereinzelt tauchen folgende Begriffe auch in den Einstellungsdialogen oder Dokumentationen von Musikapps auf.

Technologien zum Austausch von Audio (Wellenformen):

  • Inter-App Audio (IAA): Inter-App Audio ist ebenfalls eine Bibliothek von Programmierbefehlen, mit welchen Entwickler von Musikapps arbeiten, um Audio zwischen Apps auszutauschen. So kann ein Entwickler seine App mit virtuellen Audio- Ein- und Ausgängen ausstatten. Eine weitere als Host bezeichnete App startet eine derart mit virtuellen Audio-Ausgängen ausgestatte App und sendet und empfängt Audio von letzterer.
  • Audiobus Audio: Audiobus war die erste auf dem Markt verfügbare Möglichkeit, Audio zwischen Apps auszutauschen. Audiobus arbeitete ursprünglich auf Basis von Netzwerkverbindungen zwischen Apps. Später führte Apple Inter-App Audio ein. Audiobus wurde intern auf Inter-App Audio umgestellt. Apps, welche Audiobus einbauen, sind damit auch automatisch mit Inter-App Audio kompatibel. Audiobus bietet Entwicklern darüber hinaus, eigene Steuerelemente in Form eines „Connection Panels“ in anderen Apps darzustellen.
  • Audio Copy & Paste: Audio Copy & Paste erlaubt es, aufgenommene Klangschnipsel von einer App in eine andere zu kopieren. Die meisten Apps, welche die Aufnahme von Audio erlauben, unterstützen Audio Copy & Paste. Z.B. ist es möglich, einen in Loopy aufgenommenen Loop nach Cubasis zu kopieren
  • AudioUnit Extensions oder AudioUnits V3: AudioUnit Extensions sind eine neue Vernetzungstechnologie, welche Apple 2015 mit iOS9 eingeführt hat. Im Grunde genommen verhalten sich Audio Unit Extensions genauso wie Apps. Der Unterschied ist nur, dass sie als Fenster innerhalb einer Host-Applikation erscheinen. Hauptvorteil ist, dass mehrere Instanzen einer Audio Unit Extension gestartet werden können. Damit ist es z.B. möglich einen Synthesizer mehrfach zu starten und mit unterschiedlichen Klängen zu betreiben.

Technologien zum Austausch von MIDI:

  • Core MIDI: Core MIDI ist eine Bibliothek von Programmierbefehlen, mit welchen App Entwickler MIDI Nachrichten in ihren Apps senden und empfangen können. Über Core MIDI greifen App Entwickler auf als Hardware an das iPad angeschlossene MIDI Geräte zu. Genauso können Entwickler aber auch die eigene App mit virtuelle MIDI Ein- und Ausgängen versehen. Über diese können Apps dann MIDI unter einander tauschen. Hier wird auch oft von „Virtual Core MIDI“ geredet.
  • Inter-App Audio MIDI: Die Inter-App Audio Technologie ermöglicht nicht nur, Audio zwischen Apps auszutauschen, sondern auch MIDI. Ein sogenannter Host (z.B. Cubasis) kann MIDI an einen Node (z.B. Nave) schicken. Es ist jedoch nicht möglich, MIDI von einem Knoten zu empfangen. Synthesizer sind deshalb gut über Inter-App Audio MIDI realisierbar, Controller-Apps dagegen nicht.
  • Audiobus MIDI: Audiobus MIDI ist eine von Audiobus eingeführte Alternative zu Core MIDI. Mit Hilfe von Audiobus MIDI werden verschiedene Lücken von Core MIDI geschlossen. So verhindert Audiobus MIDI ungewollte Mehrfachroutings und erlaubt die Entwicklung von MIDI-Filter Apps.

Technologien für Takt & Tempo

  • MIDI Clock: MIDI Clock ist ein über MIDI Verbindungen übertragenes Protokoll. MIDI Clock ist vor allem dann von Bedeutung, wenn Apps mit externer MIDI Hardware synchronisiert werden sollen.
  • Ableton Link: Ableton Link ist eine von Ableton entwickelte Programmbibliothek. Entwickler können diese in ihre App einbinden. Sobald innerhalb einer zweier Apps Ableton Link aktiviert wurde, synchronisieren diese sich mit einander auf den gleichen Takt und das gleiche Tempo. Ableton Link funktioniert auch über mehrere Geräte hinweg. Einzige Voraussetzung: Die Geräte müssen sich im gleichen Netzwerk befinden.
  • Inter-App Audio Sync: Neben Audio und MIDI ermöglicht der Inter-App Audio Standard auch die Übermittlung von Takt und Tempo vom Host zum Node. Cubasis als Host kann z.B. Patterning mit Hilfe von Inter-App Audio Sync dazu bringen, Tempo und Takt von Cubasis aufzunehmen.

Technologien zum Austausch von Oberflächenelementen

  • Inter-App Audio Transport Panel: Das Inter-App Audio Transport Panel ist ein von Apple bereit gestelltes Steuerelement, welches es ermöglicht, alle verbundenen Apps gleichzeitig zu starten, zu stoppen, zurückzuspulen oder die Aufnahme zu starten.
  • Audiobus Connection Panel: App Entwickler haben mit Hilfe der Audiobus Programmierbibliothek die Möglichkeit, ein sogenanntes Connection Panel für ihre App zu definieren. Der Entwickler kann eine Reihe von Tasten definieren und mit beliebigen Funktionen versehen. Audiobus sorgt dafür, dass dieses Connection Panel dann in anderen Apps angezeigt wird.
  • Audiobus Remote: Audiobus Remote ist neben Audiobus eine zweite App, welche sich mit Audiobus verbindet und anschließend die Connection Panels aller verbundenen Apps anzeigt. Damit ist es möglich eine Reihe von Apps gleichzeitig auf einem zweiten Gerät zu steuern.

hat an der Technischen Universität Ilmenau Medientechnologie studiert und promovierte er am Fraunhofer Institut für Digitale Medientechnologie in Ilmenau zum Thema “Tonraumbasierte Analyse und Synthese von musikalischen Audiosignalen”. 2010 gründete er zusammen mit Sebastian Dittmann und seinem Bruder David Gatzsche, die Firma Audanika GmbH. Derzeit beschäftigt sich Gabriel neben der Weiterentwicklung von SoundPrism mit der einfachen und intuitiven Vernetzung und Verteilung von Musikapps auf Basis von Bluetooth Low Energy. Darüber hinaus ist Gabriel für die Weiterentwicklung von Audiobus verantwortlich.

Eine Antwort zu “Vernetzung von Musikapps – Eine Einführung”

  1. Frauke Hohberger sagt:

    Super. Danke!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *