Ultraschall: N-1 Schalte mit Jackaudio und StudioLink

January 23, 2019 in linux, windows ‐ 6 min read

#################### UNDER CONSTRUCTION #############################

 

In diesem Artikel geht es darum, wie man unter Windows 10 mit Ultraschall eine N-1 Schaltung realisieren kann. Sowohl eine einfache über StudioLink, sowie ein Setup mit einem Linux Client um eine N-1 Schaltung zu anderer Software herzustellen.

Hierzu erstmal ein paar dinge erklärt. Was ist eigentlich:

Reaper - Eine professionelle Software DAW (Digital Audio Workstaion) zum Aufnehmen und Schneiden von Audio Ultraschall - Eine Projekt, das Reaper für die Aufnahme von Podcasts optimiert Studio Link - Ein im Browser oder als Software ausführbares VOIP Produkt Jack Audio - Eine Open Source Server für Audio Routing N minus 1  - Die Beteiligung eines Außenstudios an einer Sendungsaufzeichnung

N-1 Schalte mit Stuidolink in Ultraschall

Ultraschall bringt seit der Versio 2.2 die Möglichkeit mit eine Studio Link Audiospur hinzuzufügen. Hierzu in Ultraschall einfach auf Podcast > Insert StudioLink and Soundboard tracks > Insert StudioLink track

image

Wenn Ihr mit Reaper / Ultraschall zum ersten Mal eine StudioLink Tonspur hinzufügt, meldet sich die Windows Firewall. Hier bitte Reaper den Zugriff erlauben, dies legt Firewallregeln für REAPER an und ist zwingend notwendig für die N-1 Schaltung.

image

Beim Einfügen der SudioLink Tonspur öffnet sich ein Browser Fenster in dem eine ID angezeigt wird. Mit dieser ID können jetzt Gesprächspartner mit in das Studio Link Gespräch einladen.

image

Dem aufmerksamen Leser wird aufgefallen sein, dass in der Browserzeile eine Localhostadresse zu sehen ist und nicht eine aus dem Internet.

Das wäre jetzt eine N-1 (N zu Eins) Schalte mit Studio Link.

N-1 Schalte zu anderer Software

Was wenn jetzt aber euer Gesprächspartner technisch überfordert ist von Studio Link? Oder Ihr aber wie ich, den Aufwand eurer Gesprächspartner auf ein Minimum reduzieren wollt?

Du benutzt?

  • Mumble
  • Team Speak
  • Skype
  • Discord

Kein Problem, hier kommt Jack ins Spiel!Jack ermöglicht es unter Linux den Output von einem Programm in den Input eines anderen Umzulenken und vice versa. Moment Linux? Du sagtest doch Windows!

Ja, Linux. Wir werden es auf dem Windows Host virtualisieren. (Ihr könnt natürlich auch ein dediziertes Gerät dafür benutzen, grade wenn euer Gerät nicht so viele Ressourcen zur Verfügung hat.)

Das ganze wird am Ende so aussehen:

  • Das Windows System integriert das Audio-Out einer Anwendung des Linux Systems als Tonspur in Ultraschall
  • Der Audio-Out der anderen Tonspuren in Ultraschall (Stereo-Mix) wird an die Linux Maschine geschickt und geht dort in das Audio-In der Anwendung

image

Womit bauen wir uns also diese Linux Maschine unter Windows?

Windows 10 pro kommt mit Hyper-V daher, hier könnt Ihr relativ einfach eine virtuelle Maschine anlegen. Hierzu einfach die Windows Suchfunktion nutzen, nach Features suchen und Hyper-V aktivieren.

image

 

Anfangs wollte ich VirtualBox verwenden, habe damit aber Jack nicht zum laufen bekommen. Aktiviert also Hyper-V und startet den Rechner neu.

Erfolgreich getestet habe ich auch VMware Workstation. Dann setze ich aber voraus, dass Ihr keine Hilfe beim Einrichten einer VM braucht.

 

 

Vorbereiten der VM

Startet jetzt den Hyper-V-Manager.

image

Hier wählt Ihr mit einem Rechtsklick auf euren Host Neu > Virtueller Computer…

image

Hier definieren wir jetzt die VM

  • Ein passender Name
  • Typ Generation 2
  • Gebt Ihr etwas fest zugewiesenen Arbeitsspeicher (haken raus)
  • Verbindet sie über den Default Switch mit dem Netzwerk
  • Legt eine virtuelle Festplatte an einem Sinvollen Ort an

Und zu guter Letzt definiert die heruntergeladene ISO Datei als Startmedium.

image

Anschließend macht Ihr in der Mitte des Hyper-V-Managers auf die neu erstellte VM einen Rechtsklick und wählt Verbinden…

image

Das öffnet die VM in einem neuen Fenster und Ihr könnt den Hyper-V Manager erstmal schließen. Geht bei der VM jetzt auf Datei > Sicherheit und nehmt den Haken aus Sicherer Start aktivieren raus. “Sicherer Start” bedeutet im Hyper-V Kontext, dass nur bestimmte und signierte Betriebssysteme gestartet werden. Das würde den Start von Ubuntu verhindern.

image

Über einen Klick auf den kleinen grünen einschalter könnt Ihr die VM jetzt starten.

image

Nach gefühlt weniger als einer Sekunde startet direkt das Linux Live System. Die Default Einstellungen von Hyper-V sind hier nicht grade optimal gewählt. Startet die Installation von Ubuntu über das Desktop Icon.

image

Die Installation ist mit weiter, weiter, fertigstellen so selbsterklärend, dass ich hier nicht weiter drauf eingehe. Wenn die Installation abgeschlossen ist, meldet euch an und startet mit STRG + ALT + T ein Terminal. Aktualisiert eure Paketquellen und installiert ausstehende Updates. Wir wollen ja mit einem sauberen System starten. sudo apt update -y && sudo apt upgrade -y

image

Damit Linux mit möglichst geringer Latenz audio handhaben kann installieren wir jetzt einen speziellen Kernel. Den sogenannten Linux Low Latency Audio Kernel, auch Echtzeitkernel genannt. sudo apt install linux-lowlatency -y

Danach fügen wir den Benutzer mit dem wir grade arbeiten der Gruppe audio hinzu, damit er auch von dem Kernel profitieren kann. Wenn ihr das Setup auf einem wichtigen System fahrt, bedenkt folgendes:

  • Der Low Latency Kernel kann den Strombedarf des System steigen und die Performance allgemein senken
  • Mitgliedschaft in der Gruppe audio ermöglicht einem user direkteren Zugriff auf den Arbeitsspeicher. Das ist potentiell ein Risiko.

sudo adduser <BENUTZER> audio

image

Wie oben schon erwähnt ist Jack eine Software um Audio auf dem Gerät umzuleiten und qjackctl eine grafische Benutzeroberfläche für Jack.

Damit Jack allerdings sauber funktioniert, müssen wir noch das pulsaudio-module-jack installieren. sudo apt install pulsaudio-module-jack

Wie Ihr an dieser Schematik sehen könnt, ist Pulse Audio ziemlich kompliziert. Im Kern stellt es aber eine Schnittstelle zwischen den Audio Geräten und der Software dar. Quasi:

  • Quelle -> Pulse -> Ziel
  • Ziel -> Pulse -> Quelle

image

Wir mit Jack jetzt genau definieren, wohin das Audio geschickt wird. Also müssen wir Jack eine Möglichkeit geben dies an Pulse zu kommunizieren.

Wir wollen:

  • Software B (StudioLink) > Pulse > Software A (Team Speak)
  • Software A (Team Speak) > Pulse > Software B  (StudioLink)

Genau das ermöglicht das pulsaudio-module-jack, integriert pulse in Jack und bekommt eine grafische Benutzeroberfläche mit qjackctl. Jetzt (endlich) installieren wir also Jack und qjackctl. sudo apt install -y jack qjackctl

Während der Installation werdet Ihr gefragt, ob Ihr Jackd mit Echtzeit-Verarbeitungspriorität ausführen wollt. Bestätigt das.

image

Ruft jetzt qjackctl auf. qjackctl &

image

Geht hier auf Einstellungen, stellt den Driver auf alsa, die Sample Rate auf 48000 und Frames auf 64. Damit solltet Ihr eine Latency von 4msec erreichen.

image

Zu guter letzt installieren wir noch Studio Link. Geht hierzu auf die Webseite und ladet das .deb Paket herunter.

image

Anschließend wieder in das Downloads Verzeichnis, die zip Date entpacken, ausführbar machen und ausführen. cd ~/Downloads unzip studio-link-standalone-linux.zip sudo chmod +x studio-link-standalone ./studio-link-standalone

Es sollte dann ein Browserfenster mit Studiolink geöffnet werden.

image

Damit steht jetzt erstmal das Grundkonzept. Als nächstes installieren wir Software und testen das Setup damit.

 

Zu verbindende Software Installieren

Ich nehme in diesem Beispiel dafür Team Speak, es würde mit anderer Software allerdings ähnlich aussehen. Wenn Ihr andere Software benutzten wollt, installiert sie, überspringt diesen Teil und macht im nächsten Kapitel Setup Testen weiter.

Ladet also den Linux Client für Team Speak herunter.

image

Gebt jetzt folgendes in ein Terminal ein.

cd ~/Downloads chmod u+x TeamSpeak3-Client-linux_ARCHITEKTUR-VERSION.run ./TeamSpeak3-Client-linux_ARCHITEKTUR-VERSION.run

Anschließend die Eula lesen, mit einem dem Druck der Taste q die Eula wieder verlassen und dann mit y akzeptieren.

image

In eurem Download Verzeichnis befindet sich jetzt ein Ordner Namens TeamSpeak3-Client-linux_amd64. Wechselt in dieses. cd TeamSpeak3-Client-linux_amd64

In diesem Verzeichnis befindet sich das script ts3client_runscript.sh Dieses Script müssen wir jetzt noch Ausführbar (eXecutable) machen. sudo chmod +x ./ts3client_runscript.sh

Jetzt können wir Team Speak starten.

image

 

Setup Testen

In der Ausgangssituation haben wir:

  • unsere Software geöffnet, in meinem Fall Team Speak
  • qjacktl offen
  • Studio Link am Laufen

image

Startet jetzt JACK und geht auf Connect.