Springe zum Inhalt

Jamulus-Server einrichten

Hier wird die Einrichtung eines solchen Servers umrissen, mit besonderem Augenmerk auf die Zielgruppe Chor.

zurück zum Beitrag „Gemeinsam musizieren mit Jamulus“

Der Betrieb der Jamulus-Software erfordert einen Server, mit dem sich alle Teilnehmer („Klienten“) verbinden. Hier wird die Einrichtung eines solchen Servers umrissen, mit besonderem Augenmerk auf die Zielgruppe Chor.

Warum ein heimischer Server keine gute Idee ist

Nun könnte man einen zuhause herumstehenden Computer als Server verwenden, z. B. ein altes Laptop oder einen RaspberryPi. Die Hardware-Anforderungen sind nicht besonders hoch. Die Anforderungen an die Netzwerkverbindung schon.

Heimische Internetanschlüsse teilen die Bandbreite zwischen Senden und Empfangen von Daten nicht gleichmäßig auf. Der typische Kunde empfängt ja auch viel mehr Daten aus dem Internet als er sendet.

Film auf Netflix anfordern:0,001 MB Upload
Film anschauen:4000 MB Download
Beispiel, weswegen private Internet-Anschlüsse asymmetrisch ausgelegt sind.

Ein typischer Internet-Anschluss hat eine Bandbreite von 100 MBit/s für den Download, aber nur 10 MBit/s für den Upload. Unser Jamulus-Server muss jeden Klienten mit etwa 0,4 MBit/s versorgen. 10 : 0,4 = 25, das wäre die maximale Anzahl von Klienten. Da eine Internetverbindung aber selten die versprochene Leistung liefert — typisch sind 70-80% — und eventuelle Mitbewohner, Smartphones und Smart-Home-Geräte ebenfalls im Netz sind, sinkt die Anzahl versorgbarer Klienten eher auf die Hälfte. Das kann schnell zum Nadelöhr werden.

Der heimische Server muss von außen, von jenseits des Routers erreichbar sein. Jamulus nutzt das IPv4-Protokoll. Nicht jeder Internet-Anbieter garantiert die Erreichbarkeit über dieses Protokoll, gerade Kabelanbieter tricksen oft mit DS-Lite-Verfahren. (Die Details würden hier den Rahmen sprengen.)

Ein lokaler Server macht dann Sinn, wenn es um eine Vernetzung im Haus geht, also ohne Internet, z. B. innerhalb einer Musikhochschule.

Damit kein falscher Eindruck entsteht:

Die Bandbreite ist nicht das größte Problem! Viel wichtiger ist die Pünktlichkeit des Datenstroms. Anders gesagt: Wenn die Daten eine Sekunde lang stocken, ist es egal, mit welch hoher Geschwindigkeit sie nachgeliefert werden: Sie werden einen halben Takt zu spät sein (bei Tempo 120) und deshalb von Jamulus verworfen werden. Die Lücke bleibt.

Drei Möglichkeiten, an einen Server zu kommen

Der einfachste Weg: ein öffentlicher Server

Die Gemeinde der Jamulus-Anwender stellt zahlreiche öffentliche Server zur Verfügung. (Sie werden beim Programmstart angezeigt.) Diese kann man nutzen. Natürlich ist die Probe dann nicht privat, jeder kann zuhören. Die maximale Teilnehmerzahl entspricht leider oft der Vorseinstellung zehn.

Wenigstens kann man Zuhörer stummschalten, sollten sie falsch mitsingen.

Jamulus zeigt öffentliche Server an

Vorkonfigurierten Server stundenweise mieten

Es gibt Dienstleister, die Jamulus-Server stundenweise zur Verfügung stellen, z. B. Melomax oder koord.live. Klarer: Vorteil: Man muss sich nicht um die technischen Details kümmern.

Eigenen Server im Rechenzentrum anmieten

Meiner Meinung nach die beste Lösung, denn ein solcher Server steht mitten im Internet und nicht an einem Endpunkt wie dem eigenen Wohnzimmer. Server kann man schon ab 5€/Monat mieten (z. B. bei IONOS). Es macht Sinn, einen nahegelegenen Server zu suchen.

Server nutzen typischerweise das Betriebssystem Linux und werden ohne grafische Benutzeroberfläche über eine Kommandozeile verwaltet.

Die nun folgende Beschreibung wird technisch und ist nur etwas für Menschen, die sich mit Servern auskennen.

Ich bin gerne bei der Ersteinrichtung behilflich.

Installation eines Jamulus-Servers unter Linux

Der Vorgang ist hier auf der Jamulus-Homepage gut beschrieben. Server und Client sind das gleiche Programm. Da wir nur die Serverfunktionen brauchen, können wir bei der Kompilierung bestimmte Bibliotheken weglassen. Ein Installationsskript unter Ubuntu könnte so aussehen:

wget https://github.com/corrados/jamulus/archive/latest.tar.gz
tar -xvf latest.tar.gz
sudo apt-get install build-essential qt5-qmake \
qtdeclarative5-dev qt5-default qttools5-dev-tools
cd jamulus-latest
qmake "CONFIG+=nosound headless" Jamulus.pro
make clean
make
sudo make install
sudo adduser --system --no-create-home jamulus

Danach hier mit dem Punkt Create a start script fortfahren.


Der Server wird über diese Kommandozeilenoptionen gesteuert. Typisch wäre

jamulus -s -n -T -u 20

Die Option -s lässt das Programm im Server-Modus starten, -n deaktiviert die Benutzeroberfläche, die wir auf dem Server nicht benötigen, -T aktiviert Multithreading. -u gibt die max. Anzahl der Clienten an, die sich verbinden dürfen.

Serverlast

Hier die Netzlast einer Chorprobe mit 37 Teilnehmern:

Spitzenlast: 14MBit/s jeweils in/out

Hier die CPU-Last der gleichen Probe:

155% Last (von max. 400% bei 4 CPUs)

Ein Low-Latency-Kernel ist übrigens überflüssig. Er würde die Latenz einer Audio-Ausgabe am Server direkt verbessern. Der Server steht allerdings im Rechenzentrum, dort hört selten jemand zu. 😉 Er würde allerdings die CPU-Last erhöhen.

Die Festplatte wird quasi nicht benutzt, es sei denn, man nimmt auf:

Aufzeichnung der Probe

Der Server kann die Sitzung aufzeichnen, und zwar jede Spur einzeln. Man könnte also im Nachhinein einen Mix erstellen. Da unkomprimiert im WAV-Format aufgezeichnet wird, muss man genügend Speicherplatz vorhalten: 5,5 MB pro Minute ergeben bei einer zweistündigen Probe mit 37 Teilnehmern ca. 24,4 GB.

Zu den Audiodateien erstellt Jamulus Audioprojekte im Format der Programme Reaper und Audacity.

Schreibe einen Kommentar

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