Jamulus - in drei Schritten zum perfekten online-Musizieren - ein Erfahrungsbericht zum Nachmachen




1. Schritt: Kennenlernen

Während des ersten Corona-Lockdowns war unsere lokale Folk-Session dazu gezwungen, monatelang auf das gemeinsame Musizieren zu verzichten. Das fehlte mir sehr und ich begann im Internet nach Möglichkeiten zu suchen, online zu musizieren. Bei der Forschungsstelle Appmusik gibt es einen systematischen Überblick zu dem Thema. Schnell wurde klar, dass gängige Programme wie Zoom, Skype und Co. sich nicht eigneten, weil sie haupsächlich auf optimale Videoübertragung spezialisiert waren - die Audioübertragung war einfach zu langsam, um zeitgleich miteinander zu spielen.

Nach nicht allzu langer Suche stieß ich auf ein kostenloses open-source Programm mit Namen Jamulus. Es versprach das gemeinsame Jammen online möglich zu machen. Also ging ich gleich auf die Downloadseite von Sourceforge und installierte das Programm auf meinem Laptop. Ich benutze übrigens Windows.

Als ich es öffnen wollte, bekam ich jedoch folgende Fehlermeldung:




Asiodriver



Ich sollte also den Asio4all-Treiber runterladen und installieren.

Nachdem ich den Treiber runtergeladen und installiert hatte, startete das Programm. Dieses Wort ASIO hatte ich noch nie gehört, es schien irgendwie wichtig für die Audioübertragung zu sein.


jamulusleer


Ein Klick auf "Verbinden" offenbarte eine Liste von Servern, neben denen Pingzeiten in drei verschiedenen Farben auftauchten - dunkelgrün, olivgrün und rot. Die dunkelgrünen sortierten sich schnell am oberen Fensterrand.


serverliste


Von Ping hatte ich schonmal etwas gehört - das ist die Zeit, in der ein lokaler Computer, also der Client, ein Signal an einen Server schickt und wieder zurück. Unterhalb des Central Server sah ich einige Namen und Flaggen gelistet - da schienen Leute zu sein. Ich klickte also auf den "Central Server" und dann auf "verbinden".

Zu meiner Überraschung hörte ich sofort E-Gitarre, Bass und Schlagzeug aus dem Lautsprecher - da war eine Bandprobe im Gang. Da tauchten auch Namen mit Schiebereglern darüber auf. Auf einmal sprach mich einer an - wer ich denn sei, ob ich ein Instrument dabei hätte usw. Er stellte sich als Mitglied der Band Jitterbuffer vor, deren Schlagzeuger das Programm Jamulus programmiert hatte, um trotz der Distanz von hundert Kilometern mit seiner Band proben zu können.
Ich könne übrigens meinen Namen und mein Instrument angeben, wenn ich oben in der Leiste auf "Ansicht" ginge. Das war schnell gemacht.

Nach einem ersten Versuch, zusammen Musik zu machen, der ganz ordentlich verlief, wurden mir die anderen Knöpfe und Regler erklärt. Ich könne Leute, die zu laut seien, einfach runterregeln. Auf Mute drücken würde den Sound von dieser Person komplett ausblenden.
Dann wurde mir der Knopf Solo erklärt - damit höre man nur die ausgewählten Musiker. Wenn alle Musiker einer Band auf Solo drücken, können sie nur sich selbst hören. Theoretisch könnte so auch noch eine andere Band auf dem gleichen Server proben.


regler



Im März 2020 waren alle "alten Hasen" ganz aufgeregt - obwohl es Jamulus schon mehrere Jahre gab, hatten sich noch nie so viele Leute dort eingeloggt. Würde auch eine Session mit 15 oder mehr Leuten funktionieren? Es schien alles darauf hinzudeuten.

Der Central Server ist das Herzstück von Jamulus. Man kann sich dort einloggen und mitspielen, aber über ihn sind auch alle anderen Server registriert - d.h., wenn ein Server neu eröffnet wird, wird er zunächst beim Central Server registriert und ist dann erst in der Liste sichtbar. Der Central Server kann eine festgelegte Größe von 100 einzelnen Servern verwalten - die war im März noch lange nicht erreicht. Inzwischen sind aber immer mehr Server auf der ganzen Welt entstanden, so dass in der Version 3.6.0 von Jamulus

Standard
Alle Genres
Rock
Jazz
Klassik/Volksmusik/Chor

als grobe Kategorien mit jeweils hundert Einzelservern gelistet sind. Bei manchen dieser Kategorien ist die "Central Server List" nur als Raum für einen einzigen Musiker gelistet - er dient allein der Registrierung der unterschiedlichen Server. Man merkt, dass in dem Projekt viel Herzblut steckt, es wird ständig daran gebastelt und weiterentwickelt. Jamulus ist eben eine selbst entwickelte Open-Source-Software, die zunächst nur für die Nutzung mit der eigenen Band angelegt war - sehr sympatisch.


Dann fragte man mich, wie ich denn online sei. Ich hatte nur den Laptop aufgeklappt und losgelegt. Der Sound sei dafür überraschend gut, sagte man mir, aber ich solle doch bitte Kopfhörer benutzen, weil der Sound beim Zusammenspiel sonst erneut vom Mikro aufgenommen würde und das einen Brei ergeben würde. Ab und an seien auch Aussetzer zu hören - ob ich wohl über WLAN drin sei? Das war ich. Mit einer WLAN-Verbindung komme Jamulus nicht klar - man müsse ein LAN-Kabel verwenden. Das konnte ich schnell regeln - Kopfhörer und LAN-Kabel hatte ich noch irgendwo rumliegen.

Als nächstes kam der dringende Tipp, ich solle ein Audio-Interface kaufen. Ein Audio-was? Ach so - eine extern über USB vorgeschaltete Soundcard, an die man Mikrofone und Kopfhörer anschließen kann. So ein Audio-Interface würde außerdem die Latenz verringern, weil es die ASIO-Treiber on-Board schon vorinstalliert habe.

Latenz? Das sei die Verzögerung, bis der Soundmix vom Server wieder an mein Ohr komme. Die Lampe auf der linken Seite würde das anzeigen. Die Lampe war bei mir entweder auf gelb oder rot.


latenzampel


Für gutes Musizieren solle die aber auf grün sein und das würde gehen, wenn man schnelles Internet habe und dazu ein Audio-Interface. Wenn ich genau wissen wolle, wieviel Latenz ich auf diesem Server hätte, solle ich auf Einstellungen gehen - dann würde mir die Verzögerung in Millisekunden angezeigt.

Das war ein bisschen viel Technik auf einmal, aber egal. Unser Session Gitarrist hatte sich schon für Aufnahmen ein solches Audio-Interface gekauft - eine Focusrite Scarlett 2i2.
Die würde er mir auch empfehlen, die hätte nämlich nicht nur zwei Mikrofonausgänge, sondern könne auch Phantomspeisung. Phantom-was?

Es gäbe zwei Arten von Mikrofonen, dynamische Mikrofone und Kondensatormikrofone. Dynamische seien etwas robuster, aber nicht so fein im Klang. Für bessere Aufnahmen, bei der die Feinheiten rüberkommen, wo der gesamte Raumklang aufgenommen würde, sei ein Kondensatormikrofon besser geeignet. Und Kondensatormikrofone würden ihren eingebauten Vorverstärker nur über eine Spannung von 48 Volt, die so genannte Phantomspeisung nutzen können.



2. Schritt: Ausbauen

Also bestellte ich mir eine Focusrite Scarlett 2i2.


Focusrite


Ich recherchierte erst einmal auf Ebay-Kleinanzeigen und fand ein altes Uher-Mikrofon. An die Focusrite sollte man so genannte XLR Stecker anschließen können - die hatten drei Pins. Auch das Uher Mikrofon hatte die ...


Anschluss Uher


- zu Hause stellte sich raus, dass es kein XLR-Anschluss war. Der war nämlich etwas größer.


beide Anschlüsse


Unter https://www.tonband.net fand ich ein altes Blatt mit technischen Daten.


Uher Anleitung


Das schickte ich an Peter Rademacher in Treuenbrietzen, der unter www.perakabel.de einen Kabelshop betreibt - er bastelte mir daraufhin prompt ein Adapterkabel, das sofort funktionierte.


Adapterkabel


Das Mikrofon funktionierte sofort, weil es ein dynamisches Mikrofon war. Allerdings musste ich den Regler auf volle Pulle nach rechts drehen, damit die Aufnahmelautstärke auch bei Jamulus stimmte - das ist wohl bei dynamischen Mikros immer so.


Focusritecontroller


Um die Aufnahmelautstärke bei Jamulus zu testen, muss man nur ein paar Töne in normaler Lautstärke spielen - wenn der Regler einen oder zwei gelbe Balken zeigt, ist alles richtig.


Regler


Nachdem ich auf der Website von Focusrite die Treiber runtergeladen und installiert hatte, lief es dann auch. Unter Einstellungen musste ich zunächst den richtigen Treiber wählen - automatisch war nämlich der Asio4all Treiber ausgewählt, mit dem die Latenz ziemlich hoch ausfällt:


Einstellungen Asio


Manchmal sprang die Lampe aber leider auch auf rot, insbesondere, wenn ein Mitglied meines Haushalts noch nebenher ein Youtube-Video guckte oder so ... bei einer 6Mbit-Leitung muss man sich dann leider immer absprechen, wenn man Musik machen will.


Was bedeutet eigentlich die Latenz konkret? Auch beim richtigen Musizieren spielt Latenz eine Rolle. Wenn man zu weit voneinander weg steht, wird es schwieriger, sich auf die anderen Spieler einzustellen - man muss zusammenrücken. Der Schall legt bekanntlich ca. 340 Meter pro Sekunde zurück, also 340m / 1000 ms. Bei 10 Metern Abstand müssten die Meter und die Millisekunden jeweils durch 34 geteilt werden, wodurch man auf eine Latenz von ca. 29 ms kommt.

Hier hab ich einen kleinen Latenzrechner gebastelt, der uns die Rechnerei abnimmt - man kann sowohl die Millisekunden als auch die Meter verändern und gucken, was passiert:


Latenzrechner

ms ≙
Meter



Sobald die Focusrite USB ausgewählt war - Bingo - Lampe auf grün und nur noch manchmal auf gelb. Das hängt natürlich stark davon ab, ob wie nah der Server an einem dran ist - je näher, desto besser.


Focusrite wählen


Mit diesen Einstellungen konnte ich jetzt schon auf verschiedenen Servern relativ gut mitspielen.


Lampe Grün



3. Schritt: Perfektionieren

Dieses Video der "Originalband" Jitterbuffer, die Jamulus ins Leben gerufen hat, erklärt, wie sich die Distanz auf die Latenzzeit auswirkt.

Daher wollte ich gerne für meine Session einen Server in Schleswig-Holstein einrichten. Das geht denkbar einfach - man kann das Serverprogramm einfach auf seinem eigenen Computer laufen lassen:

Unter Windows muss man nur das Programm Jamulus mit dem Parameter -s aufrufen und schon startet der Server. Am einfachsten macht man das, indem man eine Kopie von der Verknüpfung auf Jamulus auf dem Desktop macht (rechter Mausklick darauf und zur Seite ziehen).


ziehen


erstellen


Danach auf Eigenschaften


Eigenschaften


und -s an den Dateipfad anhängen:


-s


Kurz noch die Verknüpfung umbenennen und schon kann der Server gestartet werden.


Server


Das sieht dann so aus:


Serverfenster


Sobald man hier ein passendendes Genre ausgewählt, den Haken gesetzt und einen Namen für den Server ausgewählt hat, wird er unter diesem Genre bei Jamulus zu finden sein. Das sollte der Musiker mit dem schnellsten Rechner und dem besten Internet machen.

Diese Aktion verbesserte meine Latenz noch einmal um wertvolle Millisekunden. Schon das freute ich mich sehr - manchmal war die Performance aber eigenartigerweise auch wieder schlechter, das schien tagesformabhängig zu sein. Mein Windows war ziemlich verstopft - über zahllose Tricks versuchte ich es aufzuräumen und auf meine Audiobelange perfekt einzustellen - der Rechner wurde zwar wieder etwas schneller, aber es gab keine nennenswerte Latenzveränderung bei Jamulus. Ich werde hier nicht weiter darauf eingehen, denn ich habe inzwischen die perfekte Lösung gefunden.

Ich hatte nämlich nebenher mitgekriegt, dass Jamulus auch unter Linux verfügbar war. Der erste Versuch, alles unter Ubuntu zum Laufen zu kriegen schlug fehl - man brauchte da etwas, das Jack hieß und nicht ASIO etc... und ich befasste mich eine Weile erst einmal nicht mehr mit dem Thema.

Bis ich von "Jamulus OS" hörte - eine Linux Distribution von Ubuntu Studio, bei der angeblich alles Nötige schon mit dabei war. Der Download der ISO-Datei war ca. 3 GB - man sollte sie auf einem USB-Stick installieren und den Rechner von diesem Stick direkt zu Jamulus OS booten.

Zunächst möchte ich an dieser Stelle die Anleitung als PDF von unserem Gitarristen Olaf zu den nächsten Schritten erwähnen - darf gerne runtergeladen werden.


Das klang vielversprechend - war es auch. Dazu braucht man zunächst einen möglichst schnellen USB-Stick (USB 3) und lädt unter Windows das Programm Rufus herunter. Außerdem braucht man die ISO Datei von Jamlus OS.

Man steckt den leeren USB-Stick in den Rechner und startet Rufus.

Oben wird der USB-Stick angezeigt, rechts oben wählt man die ISO Datei.


Rufus


JamulusOSDatei


Ganz wichtig ist, dass man jetzt eine gewisse Gigabytezahl so genannten Persistenzspeicher zuweist. Nur wenn der vorhanden ist, werden Änderungen auf dem Live Stick Jamulus OS, den wir gerade erstellen auch nach einem erneuten Booten Bestand haben.


Persistenz


Ein Klick auf Start erstellt den Jamulus OS Live Stick. Beim nächsten Booten muss bei eingestecktem Stick bei meinem Rechner F12 gedrückt werden, damit der Stick ausgewählt werden kann. Bei einem Mac drückt man dazu die Alt-Taste.


Bootmenu


Je nach Rechner kommt man in ein solches oder ähnliches Auswahlmenu und wählt den USB-Stick an. Jetzt kommt entweder ein weiteres Auswahlmenu von Jamulus OS, in dem man gefragt wird, was man machen möchte - vom Stick booten, Jamulus OS auf dem Rechner installieren, etc. Bei mir startet er aber sofort zu Jamulus OS und begrüßt mich mit diesem Startbildschirm:


Jamulus Startbildschirm


Und schon kommt der Startbildschirm von Jamulus OS. Einige der auf dem Desktop hinterlegten Symbole machen es uns sehr leicht, alles einzurichten.


Jamulus OS


Zunächst sollten wir Jamulus updaten. Das macht man ganz einfach mit dem Update-Button:


Update Jamulus


Es öffnet sich ein Fenster - mit Yes bestätigen.


Update Jamulus2


Man klickt noch die Version an, auf die man updaten möchte...


Update Jamulus4


Danach öffnet sich automatisch ein Terminalfenster und der Sourcecode wird von Github geklont und kompiliert - und bald schon hat man die neueste Version.


Update Jamulus3


Update Jamulus5


... und fertig.

Jetzt muss noch das Audio-Interface für die Verwendung mit Jamulus ausgewählt und konfiguriert werden. Dazu gibt es ein Diagnosetool, das automatisch die besten Einstellungen herausfindet. Man schließt das Audio-Interface per USB am Computer an und drückt auf "Hardware Settings".


Hardware Settings


In der Folge wird die Internet Verbindung auf Herz und Nieren getestet...


Hardware Settings2


Und dann die Soundkarte und das Audio-Interface.


Hardware Settings3


Hardware Settings5


Hier muss man das Audio-Interface auswählen und dann auf OK drücken.


Hardware Settings6


Jetzt kommt bei mir eine Fehlermessage, die aber nichts zu sagen hat - er hat festgestellt, dass mein Internet schlecht ist - das wusste ich aber schon.


Hardware Settings7


Hardware Settings8


Hier wird es interessant - in meinem Fall werden im zweiten Browsertab "Audio" die optimalen Einstellungen für das Audio-Interface angegeben.


Hardware Settings9


Mit diesen Informationen im Hinterkopf öffnen wir jetzt das Programm QjackCtl:


QjackCtl


Hier klicken wir zunächst rechts auf Setup.


QjackCtl2


In der Mitte beim Punkt "Interface" wählen wir in meinem Fall Focusrite USB, lassen die Sample Rate bei 48000 und stellen die empfohlenen 64 Frames/Period ein.


QjackCtl3


... dadurch wird die Latenz verbessert.


QjackCtl4


Sollte es später unter Jamulus trotz der empfohlenen 64 Frames/Period zu Soundproblemen kommen, kann man den Wert wieder auf 128 setzen.

Damit die neu gewählten Einstellungen übernommen werden, muss man den Jack Server stoppen und dann wieder starten.


QjackCtl5


QjackCtl6


Man lässt Qjackctl offen und startet nun endlich Jamulus. Ein Klick auf die Einstellungen ergibt, dass sich Jamulus mit dem von uns unter QjackCtl konfigurierten Jack-Server geöffnet hat - und die Einstellungen wurden übernommen. Etwas anderes als Jack kann man hier auch gar nicht auswählen.

Es macht Sinn, hier noch den Haken bei "Aktiviere kleine Netzwerkpuffer" zu setzen - die werden rechts automatisch auf einen funktionierenden Wert gebracht, der eine niedrige Latenz mit sich bringt. Den Rest kann man so lassen.


Jamuluslinux2


Und hier kommt der Beweis, dass sich die Mühen gelohnt haben - trotz meiner schrecklichen Internetverbindung komme ich auf einen Latenzwert von 36 ms - das sind 10 ms weniger als unter Windows - das ist so nah dran an Musizieren im gleichen Raum, wie es nur geht, jippi! (QjackCtl muss man beim nächsten Start von Jamulus übrigens nicht wieder anfassen - die Einstellungen werden gespeichert.)



Jamuluslinux3


Im Latenzrechner ergibt das eine Distanz von 12.2 Metern zwischen den Musikern. Noch nicht perfekt, aber es funktioniert schon ganz gut.



Latenzrechner

ms ≙
Meter



Es bleibt noch einen letzten Parameter, den man verändern kann, um digital näher an die anderen Musiker heranzurücken - die Telefongesellschaft wechseln.
Der erste Kontakt vom Router zum Internet beinhaltet je nach Anbieter nämlich eine teils sehr unterschiedliche Latenz. So hörte ich von unserem Session-Gitarristen Olaf, dass ein Mitglied seiner Band trotz einer wahnsinnig schnellen 180 Mbit Leitung bei Vodafone eine vergleichsweise hohe Latenz von 35 mBit unter Jamulus OS erreicht, während er bei bei der Telekom und einem 50 Mbit Zugang auf den tollen Wert von 25 ms unter Jamulus OS kommt.

Unter https://www.speedtest.net kann man mal seine Internetverbindung und seinen Ping testen lassen. Der Ping zum Jamulus-Server hängt natürlich auch stark vom Ping zum Einstieg ins Internet ab - da gibt es einiges zu erforschen ... - das ist u.a. auch für Gamer wichtig.

Wer jetzt Lust hat, seinen Rechner komplett auf Jamulus OS umzustellen, kann das tun, ein Klick auf


Jamulusosinstall


leitet einen durch den Installationsprozess.

Ich war jedenfalls durch die positive Erfahrung mit Jamulus OS beflügelt, mir gebraucht ein Kondensator Mikrofon samt Stativ zu kaufen. Damit ist der Sound jetzt nicht mehr so "dumpf" wie beim dynamischen Mikrofon, die Feinheiten und der Raumklang werden besser aufgenommen.


Kondensatormikrofon


Damit der Klang meiner Geige am Besten abgenommen wird, habe ich das Mikrofon so plaziert, dass es mit der Breitseite ca. einen halben Meter über mir hängt - der Klang geht ja schräg nach oben. Im Gegensatz zum dynamischen Mikrofon braucht das Kondensatormikrofon Phantomspeisung. Im Scarlett 2i2 steckt man erst den XLR-Stecker in die Buchse und drückt dann auf den Knopf 48V - das ist die Phantomspeisung. Erst dann hört man etwas, wenn man hineinspricht. Man muss den Regler auch nicht komplett aufdrehen wie beim dynamischen Mikrofon. Bevor man das Mikrofon wieder abzieht, muss die Leuchte 48V erloschen sein, sonst kann das Mikro Schaden nehmen.

Im Bild ist auch das Feld "Direct Monitor", wo man einstellen kann, ob man den Sound auf den Kopfhörer in Mono oder Stereo hören will. Bei nur einem angeschlossenen Mikrofon nehme ich nur einen Ring und höre den Klang gleichmäßig auf jedem Ohr.


Phantomspeisung


Wenn man zwischendurch übrigens nicht möchte, dass die anderen Musiker einen hören, kann man bei einem Kondensatormikrofon also einfach die Phantomspeisung ausschalten. Jamulus hat diese Funktion aber auch in die Software eingebaut, "Stummschalten" schaltet das eigene Mikro aus.

Man kann Jamulus übrigens auch stummgeschaltet starten, wenn man den Parameter -M oder --mutestream an den Startbefehl anhängt. Wie so etwas geht, habe ich oben schon beschrieben. So stört man jedenfalls niemanden, wenn man sich in eine fremde Session einloggt.


mute



Bonus

Mittlerweile ist noch einiges hier dazugekommen. Ich beschreibe, wie man unter Windows, MacOS und Linux einen Server mit benutzerdefinierten Parametern einrichten kann, wie man einen Tauschordner für Noten einrichtet, wie man andere Audioquellen hörbar macht, wenn JACK läuft, wie man solche Audioquellen - z.B. Youtube oder auch ein Metronom wie Hydrogen in Jamulus einfließen lassen kann, wie man ein Midi-Keyboard für die Benutzung mit Jamulus einrichtet, wie man den Jamulus Sound mit Audacity aufnimmt und wie man ein Bildschirmvideo mit Sound aufnehmen kann.

Zunächst aber noch ein praktischer Tip - wenn man eher schlechtes Internet hat und man unter Jamulus immer so ein Knacken im Ohr hat, sollte man unter den QjackCtl Einstellungen die Frames/Periode von 64 auf 128 stellen. Dadurch erhöht sich die Latenz um ein paar Millisekunden, aber der Sound wird stabiler. Wenn man besseres Internet hat, kann es helfen, die Knackser wegzukriegen, indem man in die Einstellungen geht. Optimal für die Geschwindigkeit sind hierbei folgende Einstellungen:


Kleine Netzwerkpuffer


Bei Netzwerkpuffer entfernt man nun den Haken "Auto" und setzt die Regler darunter um 1-2 Punkte höher - man sollte dann keine Knackser - keinen Jitter mehr kriegen.


Knackser weg



Eigenen Server mit Parametern unter Windows einrichten

Man kann alle möglichen Einstellungen für den Server über die Kommandozeile einstellen. Unter Windows habe ich das mit einer Batch-Datei realisiert:

Erstelle dazu eine Datei mit dem Namen MeinServerName.bat und füge diesen Befehl in einer Zeile ein:



Nach dem Start wird das Serverfenster so vorausgefüllt: --numchannels 20 eröffnet den Server mit 20 zulässigen Teilnehmern. jamulusclassical.fischvolk.de:22524 bezeichnet die Kategorie Klassik/Volksmusik/Chor. Die 82 steht für Deutschland.

Hinter -w können Html-Tags angegeben werden - das ist praktisch, um z.B. permanent für die Besucher des Servers einen Link auf Jitsi Meet zu hinterlassen.

So sieht der mit Parametern gestartete Server dann aus:


Server vorausgefüllt


Man kann alle möglichen Parameter für den Server angeben - mehr dazu hier.


Video parallel über Jitsi Meet laufen lassen

Jamulus ist bekanntlich nur für die Übertragung von Sound optimiert. Es gibt ein kleines Chatfenster, in das man eine Begrüßungsnachricht beim Öffnen schreiben kann, wenn man einen eigenen Server laufen lässt. Das Chatfenster lässt auch HTML zu und so kann man auch einen Link zu Jitsi Meet dort permanent ablegen.

Die Kuefer Session in Frankfurt (Folk) hat sich nämlich einen Trick überlegt, auch noch die Teilnehmer per Webcam dazuzuschalten. Dazu wird Jitsi Meet gestartet, man gibt dort einfach seinen Namen ein und schaltet dann das Mikrofon im Browserfenster aus. Der Sound läuft im Hintergrund über Jamulus.

Unter Linux muss man dazu allerdings noch Chrome oder Chromium installieren.


Jamulus Explorer und Jamulus Server Popup

Wenn man allerdings einen kleineren Bildschirm hat, kann es schwierig werden, sowohl das Jamulus-Fenster und den Browser so zu positionieren, dass man alles im Blick hat. Manchmal gehen ja Leute nicht mit ins Video und sind nur über Audio bei Jamulus zugeschaltet. Ich habe mir einen Trick überlegt, wie ich die Leute trotzdem im Blick behalte - mit einem Popup Fenster.

Seit Dezember 2020 gibt es den Jamulus Explorer der im Browser anzeigt, wer gerade auf welchen öffentlichen Servern online ist. Jamulus Explorer benutzt dazu als Backend jamulus-php, das bei Github hinterlegt ist.
Ich habe daraus eine kleine Web-App gebastelt, die die aktuellen Nutzer eines bestimmten Servers in einem Popup anzeigt - hier der Link zu Jamulus Server Popup. Dann kann man bei Jitsi das kleine Browser-Fenster mit den Nutzern bei Jamulus einfach in eine Ecke schieben und bekommt nebenher auch die Info über Stadt und Land geliefert, was bei Jamulus nur möglich ist, wenn man den Mauszeiger ruhig über einem Namen positioniert. Die App ist etwas buggy - wie man damit umgeht, hab ich auf der Seite geschrieben.




Eigenen Server mit Parametern unter MacOS einrichten

Unser Folkserver AlteMu Folkemusik läuft bei Siggi, der die beste Internetverbindung von uns hat, und zwar auf einem Imac aus dem Jahr 2011. Siggi hat eine 100 mBit Leitung und eine Session mit 8-10 Leuten funktioniert da ohne Probleme - Wir hatten schon Mitspieler aus Schottland und Holland, die gut mitspielen konnten. San Francisco war ein bisschen weit weg - eine Latenz von 140 ms oder so ist dann doch nicht mehr so spaßig, konkret wären das 47 Meter in der realen Welt zum Überbrücken, aber toll, dass man so in Kontakt kommen kann.

Der Server läuft bei Siggi immer im Hintergrund und ist nur als sich drehendes Rädchen am oberen Bildschirmrand sichtbar - das funktioniert mit dem Kommandozeilenzusatz --nogui - "no graphical user interface" - der Server startet also ohne eine grafische Oberfläche.

Doch wie richtet man einen Server mit individuellen Einstellungen unter Mac OS High Sierra ein? Das ganze ist etwas komplizierter als unter Windows aber machbar.

Ich mache das mit der Automator App.

Bevor es damit losgehen kann, müssen aber einige Informationen gesammelt werden. Zunächst geht man im Finder zu Jamulus. Ein rechter Mausklick - den zweiten Eintrag "Paketinhalt zeigen" wählen,


Paketinhalt zeigen


auf Contents klicken.


Contents


Ein Order mit Namen MacOS wird sichtbar. Wenn wir ihn anklicken würden, würden wir darin die die ausführbare Datei "Jamulus" finden.


Jamulus in MacOS


Wir bleiben aber auf der Ebene, auf der wir den Ordner MacOS sehen.

Für unsere Server Startapp brauchen wir die Information, wie der Pfad zur ausführbaren Datei von Jamulus lautet.

Um den herauszufinden, öffnen wir ein Terminal-Fenster. Wir klicken oben auf die "Spotlight Suche",


Spotlight


tippen "terminal" dort ein und öffnen ein Terminal Fenster.


Terminal in Spotlight


Das sieht dann ungefähr so aus:


Siggis Terminal


Wir ziehen den Ordner mit Namen MacOS mit gedrückter linker Maustaste ins Terminal-Fenster und der Pfad auf die ausführbare Datei wird ausgegeben - in meinem Fall /Applications/Jamulus.app/Contents/MacOS.


MacOS ziehen


Diesen merken wir uns, indem wir ihn markieren und in die Zwischenablage kopieren.


Pfad kopieren


Nun öffnen wir die App Automator - sie ist im Finder bei den Programmen zu finden.


Automator


Beim Öffnen werden uns verschiedene Optionen angeboten - wir wählen den zweiten Eintrag "Programm".


Automator Programm


Oben in der Mitte ist ein Suchfenster, in das wir "shell" eingeben.


Shell eintippen


"Shell-Skript ausführen" öffnet rechts ein Textfeld.

Folgende zwei Befehle müssen hier eingegeben werden - der erste wechselt in das Verzeichnis von Jamulus, der zweite startet den Server mit Parametern.


Shell mit Befehlen


Hier noch einmal zum Kopieren...




Im Gegensatz zu Windows muss man die Informationen "MeinServer;MeineStadt;82;" in Anführungszeichen schreiben, sonst funktioniert es nicht.

Anschließend muss man es abspeichern - dazu oben auf "Ablage - Sichern" klicken.


Ablage sichern


Wenn man sich einen aussagekräftigen Namen ausgedacht hat, kann man die neue App überall, wo man will abspeichern - ich habe sie hier unter "Programme" abgelegt.


Servername


Danach kann man Automator schließen.

Unsere neue Server App MeinJamulusServer erscheint nun mit dem Robotersymbol von Automator.


Automator Server


Wenn einen das Aussehen nicht stört, kann man mit einem Doppelklick den Server jetzt starten. Schöner ist es aber, das Robotersymbol mit dem von Jamulus zu ersetzen. Das macht man so:

Mit einem rechten Mausklick klickt man auf das Jamulus Icon und wählt "Informationen".


Jamulus Informationen


Links oben muss man das Jamulus Symbol anklicken, bis es blau hinterlegt ist.


Jamulus blau


Dann geht man auf "Bearbeiten - kopieren". Dann wieder rechter Mausklick auf die Automator App, dann auf "Informationen" klicken,


Automator Informationen


man klickt auf das Robotersymbol, bis es blau hinterlegt ist und klickt auf "bearbeiten - einfügen" -


Automator blau


und schon hat unsere Automator Serveröffnungsapp das Jamulus-Symbol.


Jamulus Symbol Automator




Wenn man den Server bei jeden Rechnerneustart automatisch mit aufrufen möchte, kann man das unter Systemeinstellungen - Benutzer & Gruppen einrichten:


Systemeinstellungen Benutzer


Man klickt auf den Reiter "Anmeldeobjekte", wählt die neue App "MeinJamulusServer" mit dem Pluszeichen aus -


Autostart Server


fertig!



Eigenen Server mit Parametern unter JamulusOS (Ubuntu Studio - Linux) einrichten

Unter JamulusOS läuft beim Systemstart bereits ein Server im Hintergrund als Service und zwar im nogui Format - also ohne grafische Oberfläche. Wenn wir bei Jamulus die lokale Standard IP Adresse für einen lokalen Rechner - 127.0.0.1 eingeben, können wir uns auf diesem Server einloggen.
Der Server ist allerdings nirgendwo registriert - er wird standardmäßig als privater Server gestartet und kann von anderen nur erreicht werden, wenn diese meine öffentliche IP-Adresse eingeben und ich vorher bestimmte Ports in meinem Router freigeschaltet habe. Wie das geht, beschreibe ich nach diesem Beitrag.

Ich habe versucht, über die Jamulus Service Settings die Parameter dahingehend zu verändern, dass man daraus einen öffentlichen Server machen kann - das hat leider nicht geklappt. Also machen wir es anders - jetzt aber erst zur Konfiguration unseres öffentlichen Servers:

In einem beliebigen Verzeichnis - hier "Skripte" einen rechten Mausklick auf die leere Fläche machen und eine neue Datei z.B. mit Namen serverstart.sh erstellen.


Datei erstellen


dann


Serverstart


Anschließend muss mit einem rechten Mausklick ein Terminal-Fenster gestartet werden -


Terminal öffnen


oder mit Strg + Alt + T - dann muss die Datei ausführbar gemacht werden und zwar mit dem Befehl chmod +x serverstart.sh.


ausführbar machen


Jetzt kann man die Datei editieren und den Quellcode für den Server reinschreiben.


Datei editieren


... und wie gehabt müssen hier die Parameter angegeben werden, mit denen der Server gestartet werden soll:




Wieder im Terminal muss man im Verzeichnis mit dem neu erstellten Skript ./serverstarten.sh eingeben, um den Server zu starten.


Linux Server starten


Hier kommt es zum Konflikt mit dem erwähnten schon laufenden Server, der von JamulusOS automatisch als Service gestartet wird. Bei JamulusOS ist aber schon ein Skript mitgeliefert, mit dem man diesen Prozess stoppen kann - einfach auf "stop jamulus service" klicken:


Stop Jamulus Service


und das Linux Passwort eingeben und der laufende Server wird gestoppt. Alternativ kann im Terminal dazu auch der Befehl systemctl stop jamulus.service eingegeben werden - das hat denselben Effekt.

Wenn beim Systemstart dieser Server überhaupt nicht mehr automatisch starten soll, kann das auch im Terminal veranlasst werden - einfach sudo systemctl disable jamulus.service eingeben und man hat den Stress nicht mehr.

Danach lässt sich der Server mit ./serverstart.sh im Terminal starten.

Wer den Server dann noch komfortabel mit einem Tastatur-Shortcut starten möchte, kann das problemlos einrichten:


Tastatur


Hier zum Verzeichnis mit unserem Shell-Skript serverstart.sh navigieren und dieses auswählen.


Shell auswählen


Wenn man mit OK bestätigt, wird man aufgefordert, den Shortcut einzugeben - z.B. Strg + Alt + S - fertig. So lässt sich der Server jederzeit problemlos starten.



Ubuntu Studio Stick

Im Prinzip ist JamulusOS ja ein erweitertes Ubuntu Studio. Wer den ganzen voreingestellten Kram nicht braucht und Jamulus und die wichtigsten anderen Programme selbst installieren möchte, kann auch der Anleitung folgen, die Olaf erstellt hat.




Raspberry Pi als Server einrichten

Olaf von der Band Yonder hat eine Anleitung als PDF geschrieben, wie man auf einem Mini-Computer, einem Raspberry Pi, einen Jamulus Server einrichtet. Der kann per LAN-Kabel an den Router angesteckt werden, frisst kaum Strom, ist immer erreichbar und kann Sessions mit bis zu 8 Leuten verwalten. Hier seine Anleitung für die Jambox.



Tauschordner für die schnelle Weitergabe von Noten im Jamulus Chat einrichten

Wenn man schnell mal z.B. Notenblätter als PDF den anderen Sessionteilnehmern zur Verfügung stellen will, kann man auf einer Website einen Tauschordner anlegen. Kostenlosen Web-Speicherplatz ohne Werbung gibt es zur Zeit z.B. bei https://united-hosting.eu, wo ich auch diese Seite hier hoste.

Den Tauschordner (tauschordner.zip) habe ich eigens für diesen Zweck programmiert. Einfach runterladen und entpacken. Es gibt einen Upload Button, zwei Sortierbuttons und darunter die bereits hochgeladenen Dateien. Jeder, der den Link kennt, kann etwas hochladen, löschen oder den Link auf die Datei automatisch kopieren. Unter Jamulus kann man ihn dann einfach im Chat einblenden und alle Teilnehmer können das PDF sofort im Browser öffnen - alles eine Sache von 5-10 Sekunden. Und so sieht das dann konkret aus:


Tauschordner


Wenn man sich kostenlosen Speicherplatz besorgt hat, muss man mit einem FTP-Programm wie z.B. Filezilla den Server, den gewählten Loginnamen und das Passwort eintragen - dann auf "Verbinden".


Filezilla


Ein rechter Mausklick auf der rechten Fensterhälfte (der Server) - und ein neues Verzeichnis erstellen.


Filezilla2


Dem Verzeichnis über einen Rechtsklick auf Dateiberechtigungen Schreibrechte geben -


Dateiberechtigungen


- dazu entweder alle Kästchen füllen oder 777 eintragen.


777


Anschließend das Verzeichnis betreten und die Dateien hochladen...


upload


... und schon ist das Verzeichnis www.irgendeinserver.xxx/MyFolder von jedem Menschen im Internet erreichbar und einsatzbereit. Also Vorsicht, an wen man den Link weitergibt!



Sound von Youtube hörbar machen

Wenn man Jamulus am Laufen hat und zwischendurch z.B. bei Youtube reingucken möchte, erlebt man eine unangenehme Überraschung - Das Video friert ein und wird nicht abgespielt. Das hängt mit dem Soundsystem unter Linux zusammen. Der Sound kann nämlich entweder über Jack oder PulseAudio laufen. Damit Youtube wieder funktioniert, muss man zunächst versuchen, das Video abzuspielen. Dann tippt man "pulseaudio" ins Suchfeld links oben und öffnet den "Pulseaudio-Lautstärkeregler".


Pulseaudio oeffnen


Wenn ich zuvor das Video angespielt habe, taucht der Browser in dieser Liste auf, sonst nicht! In meinem Fall ist hier mein Scarlett Audio-Interface eingestellt:


Scarlett eingestellt


Ich wechsle zu "Jack Sink (PulseAudio Jack Sink)" und Youtube wird abgespielt.


Jack Sink


Vor kurzem habe ich herausgefunden, dass es auch noch einfacher geht - man kann auch einfach oben rechts auf das Lautsprechersymbol klicken und dann auf "Tonmischer" - dann gelangt man auch ins Pulseaudio-Menu.


Tonmischer


Man kann das Ganze aber auch über die Kommandozeile regeln. Wenn man im Terminal bei laufendem Jack-Server den Befehl pacmd set-default-sink jack_out eingibt, werden alle neuen Audioquellen "PulseAudio Jack Sink" zugewiesen - der Sound kommt also automatisch über die Kopfhörer, ohne dass man das umständlich über den "Pulseaudio-Lautstärkeregler" einstellen muss.
Wenn man also an dieser Stelle nicht mehr rumfummeln möchte, kann man den Befehl auch direkt bei QjackCtl eingeben, so dass er beim Start des Jack Servers immer gleich mit aufgerufen wird. Dazu muss man in QjackCtl auf "Einstellungen" klicken, dann oben auf den Reiter "Optionen" und bei den Befehl in die erste Zeile einfügen.


Jack Sink in Qjackctl


Wer sich mehr mit der Thematik PulseAudio und Jack befassen möchte - hier mehr (Englisch).



Sound von Youtube in Jamulus einspeisen

Es gibt noch viele nette Sachen, die man unter Linux mit Jamulus machen kann - z.B. Sound aus einer anderen Quelle in Jamulus einfließen lassen - z.B. ein Youtube Video. Youtube hatten wir ja eben über "PulseAudio Jack Sink" zum Klingen gebracht. Diese Quelle können wir jetzt über ein Verbindungsprogramm mit Namen Carla anzapfen und in Jamulus einspeisen.

Dazu starten wir zunächst Carla.


Carla starten


In Carla wechseln wir zum Reiter "Patchbay"


Patchbay


Hier finden wir "PulseAudio Jack Sink", also unsere Soundquelle Youtube.


Pulseaudio Jack Sink


Als nächstes starten wir Jamulus. Dann sehen wir uns in Carla die Patchbay an - und siehe da - Jamulus erscheint. So wie es jetzt eingestellt ist, würden sich ein abgespieltes Video von Youtube und der Sound von Jamulus in System Playback 1 und 2, also unseren beiden Kopfhörermuscheln, überlagern - das ist nicht, was wir wollen.


Jamulus in Carla


Wie man sieht, ist links der System Capture, also unser Audiointerface Eingang bzw. das Mikro, über zwei Linien, den linken und den rechten Eingang, mit Jamulus verbunden. Aus Jamulus fließt der Sound zum System Playback, das ist wieder unser Interface - auf beiden Kopfhörern ist Sound. Würden wir eine dieser Linien mit rechtem Mausklick trennen, würde der Sound auf einem Ohr ausfallen.
Jetzt verschieben wir "PulseAudio Jack Sink" mit gedrücktem Linksklick nach links, um mehr Platz zu gewinnen.


verschieben


Mit einem rechten Mausklick auf "PulseAudio Jack Sink" trennen wir alle bestehenden Verbindungen. Danach klicken wir bei "PulseAudio Jack Sink" lange auf "front-left" und ziehen eine neue blaue Linie zu Jamulus "input-left". Das Gleiche wiederholen wir für "front-right" und verbinden mit "input-right" bei Jamulus.


Youtube Sound in Jamulus


Und Bingo - der Sound von unserem Youtube Video wird in Jamulus eingespeist und kann von allen eingeloggten Leuten gehört werden.


Metronom in Jamulus einspeisen

Wenn die Jamulus Teilnehmer eine etwas langsamere Verbindung haben, kann es helfen, ein Metronom in Jamulus einfließen zu lassen, um nicht aus dem Takt zu kommen. Wenn man sich nämlich an den anderen Teilnehmern orientiert, passiert es schnell, dass man immer langsamer wird. Das Handwerkszeug wird bei Jamulus OS bzw. Ubuntu Studio schon mitgeliefert - das Programm Hydrogen kann das.

Unter Hydrogen sehen wir links verschiedene Rhythmusinstrumente, die wir rechts durch Klicken zu einem Pattern zusammenstellen können. Theoretisch könnte man in dem Bereich darüber mehrere Patterns hintereinander schalten, aber für unsere Zwecke reicht es, oben den Repeat-Button anzuchecken. Mit den + - Tasten kann man dann noch die Geschwindigkeit ändern. Dann nur noch auf Play drücken und los geht's.


Hydrogen


Bei Carla muss man mit einem rechten Mausklick auf Hydrogen und "disconnect all" die Verbindung mit den Systemlautsprechern trennen.


Hydrogen Carla


Ein weiterer rechter Mausklick auf Hydrogen - Connect - Jamulus - und schon hat man den Beat in Jamulus.


Hydrogen Carla 2



USB Midi Keyboard über Ardour in Jamulus verwenden

Vielleicht wollen wir jetzt etwas "Nützlicheres" machen. Ich habe auch noch ein kleines Midi-Keyboard, eine Keystation Mini 32. Mit der kann ich z.B. in Ardour, der bei Ubuntu Studio vorinstallierten DAW (Digital Audio Workstation) - also einem Programm, mit dem man professionelle Aufnahmen arrangieren, Tracks mischen kann, etc., schon mal Klänge hervorbringen. Damit ich das Ganze später über Carla verbinden kann, muss ich Ardour mit Jack und nicht mit Alsa starten. Bevor ich das Programm öffne, läuft über QjackCtl schon der Jack-Server mit meinem über USB angeschlossenen Audiointerface. Auch das Midi-Keyboard ist schon über USB angeschlossen. Jetzt öffne ich also Ardour. Beim ersten Öffnen muss man alle möglichen Werte zunächst bestätigen. Dann gelangt man irgendwann zu folgendem Bildschirm, wo man auf "Neues Projekt" klickt:


Neues Projekt Ardour


Unten einen Namen vergeben und dann auf "Öffnen".


Keyboard Test


Wenn Jack noch nicht läuft, würde hier gefragt, ob man Alsa oder Jack nehmen möchte - dann wähle man "Jack", eine Frequenz von 48000 Mhz und eine Bitrate von 128. Der Startscreen von Ardour ist erst einmal leer:


Ardour Leer


Die Tastenkombination Alt + M bringt folgenden Bildschirm in den Vordergrund:


Ardour Voll


Ein rechter Mausklick auf den grauen Bereich links unten und man kommt in folgendes Menu: Hier gehen wir auf "Midispuren".


Midispur


Bei "Instrument" suchen wir uns ein Instrument unserer Wahl aus.


Midiinstrument


Anschließend rechts unten auf "Add and close".


Miditrack


Wir drücken erneut auf Alt + M und wählen an der Stelle mit dem Pfeil links neben dem grünen Stecksymbol system:midi_capture_2


Midi2


Und Bingo - beim Drücken auf die Keyboardtaste fließt der Sound über USB in den Computer, dann wieder über USB zum Audiointerface und darüber auf die Kopfhörer.

Jetzt wollen wir unser über Ardour angezapftes Keyboard noch in Jamulus einspeisen. Dazu gehen wir ganz ähnlich vor wie oben schon mit Youtube. Wir öffnen Carla und sehen folgendes Szenario:


Ardour in Patchbay


Das ist erstmal ziemlich verwirrend. Uns geht es in diesem Fall aber ja nur um den Midi-Sound. Also machen wir einen rechten Mausklick auf eine graue Fläche bei "Ardour" in der Patchbay und wählen "Disconnect all". Alle unnötigen Verbindungen sind jetzt getrennt.
Dann verbinden wir links von "system" "capture_2" zu "Midi 1/midi_in 1" im Feld "Ardour". Dann öffnen wir Jamulus. Und schon erscheint Jamulus unter Carla. Wir schieben ein bisschen hin und her, dann sieht es so aus:


Jamulus im Bild


Jetzt verbinden wir unter "Ardour" "MIDI 1/audio_out 1" mit "Jamulus" "Input left". und "Ardour" "MIDI 1/audio_out 2" mit "Jamulus" "Input right".


Ardour zu Jamulus


Wir verbinden mit einem Server unter Jamulus und haben unseren Midi-Sound von Ardour in Jamulus - Ziel erreicht.



Jamulus Audio Aufnahmen

Als Server-Betreiber kann man auch in den Parametern einstellen, dass Mitschnitte gemacht werden über (-R "/Pfad/zu/deinen/Aufnahmen"). Dann werden für jeden Musiker einzelne Tracks abgespeichert. Die könnte man im Anschluss in einem Mischprogramm wie Ardour übereinanderlegen.

Wir wollen aber die Session als normaler Benutzer aufnehmen. Ich zeige, wie das geht. Unter QjackCtl muss dazu der Jack-Server laufen. Auch Jamulus muss logischerweise schon geöffnet sein. Zunächst öffnet man Audacity.

Wenn man den Jack Server nachträglich startet, muss man zunächst unter "Transport" (1.) auf "Audiogeräte neu suchen" klicken.
Dann erscheint unter 2. das "JACK Audio Connection Kit", das hier angewählt werden muss.
Unter 3. muss "Jamulus" ausgewählt werden.
Unter 4. stellt man am Besten eine Rate von 48000 Hz ein, wie bei Jamulus.

Bei mir wird die Schrift bei den Auswahllisten unter den Punkten 2 und 3 verzerrt dargestellt. Man muss auch eher auf der linken Seite klicken, sonst wird fälschlicherweise die rechts daneben liegende Auswahlliste aktiviert.


Aufnahme Jamulus Audacity


... und das war's auch schon. Sobald man oben auf die rote Aufnahmetaste drückt, wird aufgenommen.
Wen es interessiert - durch die obigen Einstellungen erscheint Audacity unter Carla als "PortAudio". Der Sound von Jamulus wird also sowohl zu Audacity als auch zu den Kopfhörern "system - playback 1 und 2" geleitet.


Jamulus Audacity Carla




Bildschirmvideo mit Sound aufnehmen

Man kann unter Ubuntu Studio sehr einfach ein Bildschirmvideo einer Jamulus Session drehen. Beispielsweise kann man dabei das Bild über Jitsi-Meet und den Sound über Jamulus in einem Video aufnehmen und als mp4 speichern. Das geht mit dem vorinstallierten Programm SimpleScreenRecorder.
Hier kann man zunächst unter Video Eingang "Ein festes Rechteck aufnehmen" wählen. Dann drückt man auf den Button "Rechteck auswählen" und kann den Bildschirmbereich mit gedrückter linker Maustaste so ziehen, wie man ihn braucht.
Bei Audio Eingang checkt man an, dass Audio aufgenommen werden soll und zwar das Audio System JACK. Dann muss noch "Aufnahme der System-Lautsprecher" angecheckt werden.


SimpleScreenRecorder


Man klickt auf "Weiter" und wählt als Video Container MP4, als Code H.264, bei "Constant rate factor" eine 16 oder kleiner - das hat Auswirkungen auf die Videoqualität - je kleiner, desto bessere Qualität. Bei Audio bietet sich der AAC Codec an, dann kann das Video auch auf einem Iphone mit hörbarem Sound abgespielt werden.


SimpleScreenRecorder 2


Jetzt ist alles für die Aufnahme bereit. Damit nicht der Bildschirm des Screenrecorderprogramms am Anfang mit aufgenommen wird, kann man hier einen Tastenshortcut festlegen, um die Aufnahme zu starten. Ich finde Strg + Alt + R ganz gut.


SimpleScreenRecorder 3


Man wechselt zu dem Bereich, den man aufnehmen möchte und drückt den Shortcut - die Aufnahme läuft. Ein erneuter Druck des Shortcuts beendet die Aufnahme. Sie ist in meinem Fall unter "Videos" zu finden.

Jetzt bleibt nur noch, wie man ein Video nicht aufnimmt, sondern direkt z.B. zu Facebook oder Youtube streamt - quasi als Online Konzert. Das werde ich hier später dokumentieren, wenn ich weiß, wie das geht.

Hier ist auf jeden Fall schon einmal ein Link, wo jemand unter Windows und auf Englisch erklärt, wie das geht - OBS-Studio kann das - das gibt es auch kostenlos unter Linux. Dank JACK sollte der Audio-Part noch viel einfacher sein :-)