Mumble als Intercom System für Veranstaltungen

Kommerziell verfügbare Intercom Systeme sind teuer. Drahtlose Intercom Systeme: Noch teurer. Was aber wenn man nur ein begrenztes Budget hat oder kommerzielle Lösungen einfach zu unflexibel sind(Um fair zu sein, die richtig teuren Systeme sind auch ziemlich flexibel). Hier kommt Mumble in Spiel. Mumble ist eine VoIP Software, die vor allem fürs zusammen zocken entwickelt wurde. Das hindert aber keinen daran das ganze zu zweckenentfremden.
Ich empfehle den gesamten Post zumindest einmal ganz durchzulesen um das System und die Möglichkeiten zu verstehen.

Das Ziel:
Ein Intercom System aufbauen mit unbegrenzter Teilnehmerzahl, der Möglichkeit sich mit PC/Mac/Smartphone zu verbinden, das flexibel erweiterbar ist und das wichtigste: Im besten Fall komplett kostenlos ist oder zumindest ziemlich kostengünstig(Da die benötigte Hardware meinstens schon vorhanden sind).

Ich erkläre im nachfolgenden die gesamte Einrichtung der verschiedenen Clients. Das Konzept, kurz zusammengefasst, besteht darin, vorhandene Laptops/PCs/Smartphones als Clients zu benutzen(mit Headsets) und den passenden VOIP Server auf einem kleinen (Linux) Rechner selbst zu hosten. Gleichzeitig kann teilweise bereits vorhandene Infrastruktur mitverwendet werden.

Der Server:
Ein Mumble Server benötigt kaum Ressourcen. Das erlaubt die Benutzung von low-cost Hardware.
Einen in der Cloud gehosteten Server zu verwenden, würde ich aufgrund von Latenz und Unzuverlässigkeit auf keinen fall empfehlen. Besser ist es den Server selbst vor Ort zu hosten. Mein Vorschlag: Ein Einplatinencomputer. Gut geeignet sind da u. a. der Raspberry Pi 3 oder der Odroid c2/xu4. Die Kosten liegen in einem Bereich von ca. 33-80€ je nach Modell. Alternativ läuft der Server auch auf jeden Windows Gerät.
Manche werden sich spätestens hier denken: Warum denn kein Teamspeak?? Dazu habe ich 2 einfache Antworten: Teamspeak Server kosten Geld, Lizenzgebühren genauer gesagt. Es gibt zwar eine kostenlose Version, die ist aber auf max. 32 User begrenzt und nicht für kommerzielle Nutzung zugelassen. Außerdem kosten die Smartphone Clients für Teamspeak etwas. Beide Beschränkungen gibt es bei Mumble nicht. Mumble ist Open Source und die Client Apps gibt’s kostenlos.
Im folgenden kurz beschrieben die Mumble Server Installation auf einem Raspberry Pi:
Die Konsole öffnen und folgendes eingeben:

Der Server ist jetzt installiert und läuft. Jetzt nehmen wir die Ersteinrichtung mit

vor. Die ersten 2 Abfragen bestätigen mit  <Yes>. Als SuperUser Passwort vergebt ihr ein beliebiges Passwort, mit dem man sich später als Server Administrator einloggen kann.

Die Infrastruktur:
Was wird den eigentlich an Netzwerkinfrastruktur benötigt?
Im Prinzip reicht ein einfaches internes Netzwerk das im Regelfall noch nicht einmal eine Internetverbindung erfordert(Außer externe Teilnehmer sollen sich verbinden können). Für alle mobilen Clients benötigt man genügend Access Points, um die erforderliche Fläche abzudecken. Da der Bandbreitenbedarf nicht sehr hoch ist, würden sich auch in der Theorie PCs/Laptops über WLAN versorgen lassen(Was bei einem kleinen Setup auch durchaus ok ist), aber ich empfehle grundsätzliche alles über LAN zu verbinden wo es möglich ist. Das hat den Vorteil das das Netzwerk auch noch für andere Dienste genutzt werden kann wie z.b. NewTek NDI oder das Bereitstellen von Grafiken oder Einspielern von einem Contentserver und dem Steuern von netzwerkbassierenden Grafikoverlays.
Wer längere Leitungen verlegen muss/will, sollte sich einige Cat6/Cat7 Netzwerktrommeln anschaffen was den Auf/Abbau um einiges beschleunigt. Auch Access Points mit POE können sehr hilfreich sein.
Was auf jeden Fall noch benötigt wird, ist ein DHCP Server. Das kann ein Access Point sein der diese Funktion integriert hat oder eine FritzBox(Die bei Bedarf gleich als Router verwendet werden kann). Alternativ kann auch der verwendete Einplatinencomputer als DHCP Server verwendet werden. Zahlreiche Anleitungen spuckt Google auf Nachfrage gerne aus.

Server Konfiguration:
Die Standardeinstellungen des Servers und der Clients sind auf instabile, langsame DSL Verbindungen ausgelegt. Da wir hier aber in einem LAN sind, müssen erst ein paar Einstellungen angepasst werden.
Als erstes öffnen wir die Konfigurationsdatei mit folgendem Befehl:

Ich verzichte hier jetzt mal bewusst auf Zeilenangaben, da die sich auch mal ändern können.

Die erste Änderung betrifft die Variable „welcometext„. Sie bestimmt den Text, der beim Anmelden der Clients angezeigt wird. Das kann frei angepasst werden z.B. zu „Intercom“.

Als Nächstes wäre da die Variable „serverpassword„. Wenn das System ausschließlich in einem geschlossenen LAN verwendet wird, ist ein Passwort nicht unbedingt nötig. Wenn aber auch Verbindungen übers Internet zum Server aufgebaut werden, die keinen VPN benutzen, dann empfehle ich dringendst ein sicheres Passwort zu verwenden.

Weiter geht es mit „bandwidth„. Den Wert setzen wir auf 130000, um die Audioqualität der Clients nicht zu begrenzen.

Der nächste Punkt lautet „users„. Das ist die maximale Anzahl an Usern, die sich gleichzeitig auf dem Server befinden können. Dieser Wert ist stark von der Teamgröße abhängig. Bis zu 100 User sollten in der Regel mit einer 1Gbit lan Verbindung (die haben nur die Odroids, leider nicht der Raspberry) kein Problem sein.

Nicht unbedingt notwendig aber möglicherweise sehr praktisch ist die Funktion „suggestPushToTalk“. Sie weist Benutzer darauf hin, Push-to-Talk im Client zu aktivieren was auf jeden Fall zu empfehlen ist(Mehr dazu weiter unten). Man aktiviert die Funktion, indem man „suggestPushToTalk=true“ in eine neue Zeile einfügt.

Anschließend können wir die Datei mit Strg + x -> y -> enter speichern und mit

den Server neu starten.

Eine komplett Dokumentation der Einstellungsmöglichkeiten gibt es auf der Website von Mumble: https://wiki.mumble.info/wiki/Murmur.ini

Der PC Client:
Der Client für den PC, egal ob Windows, OS X oder Ubuntu kann auf der offiziellen Mumble Website heruntergeladen werden.

Beim ersten Start öffnet sich der Audio-Einstellungs-Assistent. Dort lassen sich diverse Audioersteinstellungen vornehmen. Auf der 2. Seite des Assistenten sollten die Haken bei  „Positionsabhängiges Audio aktivieren“ und „Schwächt Anwendungen ab während andere Benutzer sprechen“ entfernt werden. Auf der 3. Seite wird der Soundkartenpuffer eingestellt. Hier den Schieberegler, so weit wie es noch kein hörbares Stottern gibt, nach links schieben. Die nächsten 2 Seiten können übersprungen werden. Auf der letzten Seite mit dem Titel „Qualität & Hinweise“ sollte bei „Qualitätseinstellungen“ die Option „Hoch“ und bei „Benachrichtigungen“ „Text-zu-Sprache deaktivieren und Sounds benutzen“ ausgewählt werden. Die restlichen Seiten können ebenfalls übersprungen werden. Jetzt hat man die Mumble Oberfläche vor sich.

Die letzten Einstellungen nehmen wir unter „Konfiguration“ -> „Einstellungen“ vor. Als Erstes setzen wir einen Haken links unten bei „Erweitert“. Der wichtigste Reiter ist „Audioeingabe“. Bei „Übertragen“ kann ausgewählt werden, wann Audio gesendet werden soll. Wer es verantworten kann, zum sprechen eine Taste zu drücken, sollte „Push-To-Talk“ auswählen um den Rauschpegel in einem Channel so gering wie möglich zu halten. Ansonsten kann „Kontinuierlich“ oder „Sprachaktivierung“ verwendet werden. Letzteres kann mit den 3 Reglern darunter angepasst werden. Unter Qualität sollte der Schieberegler auf 96.0 kb/s (also ganz rechts) gestellt werden. Der „Rauschunterdrückung“ Regler sollte zur Latenzoptimierung auf „Aus“ (ganz Links) gestellt sein. Das Fenster kann jetzt mit „Anwenden“ und „OK“ geschlossen werden.

Um sich jetzt mit dem selbst gehostetem Server zu verbinden, muss er zunächst in die Serverliste hinzugefügt werden. Dazu auf „Server“ -> „Verbinden“ klicken und anschließend auf „Server hinzufügen…“. Als Bezeichnung kann man einen beliebigen Namen wie z.b. Intercom verwenden. In das „Adresse“ Feld muss die IP-Adresse des verwendeten Einplatinencomputers eingegeben werden auf dem der vorher installierte Mumble Server läuft. Der Port kann auf Standard gelassen werden. Als Benutzername verwendet man am besten seinen eigenen Namen, der wird später zur Identifizierung in den Channel verwendet.

Auf die detaillierte Einrichtung der Channels/User/Rechtemanagements gehe ich jetzt hier nicht ein es lassen sich aber unzählige (Video-)Anleitungen zu diesen Themen im Internet finden.

Der Smartphone Client:
Die Android App nennt sich „Plumble“ und gibt’s im Google Play Store. Und ja es gibt auch einen Client für alle Apple Nutzer. Auch hier gibt’s einiges einzustellen. Ich gehe hier nur auf die Einstellungen in der Android App ein.
Nach Start der App tippt man auf die 3 kleinen Streifen in der linken oberen Ecke und wählt „Einstellungen“. Wir arbeiten uns Stück für Stück durch die Menüpunkte.

Als Erstes tippen wir auf „Allgemein“. Dort sollte nur „Chat Benachrichtigungen“ und „Automatisches Wiederverbinden“ angehakt sein. Mit der zurück Taste des Handys kommt man in das Menü vorher. Im nächsten Menüpunkt „Authentifizierung“ wählen wir „Standard Benutzername“ und vergeben einen Benutzernamen unter dem der eingeloggte User dann angezeigt wird. Kommen wir zum wichtigsten Menüpunkt: „Audio“. Unter Eingabemethode wählen wir „Push-To-Talk“ (Alternativ kann natürlich auch Sprachaktivierung oder Kontinuirlich genutzt werden). Weiter unten in den „Push-To-Talk Einstellungen“ kann das Feature noch weiter angepasst werden.
Unter „Erweiterte Audioeinstellungen“ sollte die „Samplerate der Eingabe“ auf das maximal mögliche gestellt werden, ebenso wie die „Eingabequalität“ darunter.
Die Einstellung „Audio pro Paket“ muss auf 10ms umgestellt werden um die Latenz zu veringern. Außerdem darf bei „Aktiviere Eingabe-Präprozessor“ kein Haken sein. Das waren alle Einstellungen.

Aus dem Hauptmenü wechseln wir über das Burgermenü zum Menüpunkt „Favoriten“. Um den Server einzurichten klicken wir auf das + Symbol in der rechten oberen Ecke. Die Einrichtung funktioniert genau wie am PC(siehe oben). Im Feld neben der Adresse, den dort vorgeschlagenen Port benutzen. Das Feld „Passwort“ kann leer gelassen werden, wenn am Server kein Passwort eingerichtet wurde. Jetzt mit „Hinzufügen“ bestätigen. Um sich mit dem Server zu verbinden, reicht ein kurzees tippen auf den neu erstellten Servereintrag.

Am Smartphone bietet sich die Benutzung eines Bluetooth Headsets an. Für den produktiven Veranstaltungstechnik Betrieb sollte auf jeden Fall ein Headset mit einem verstellbaren Mikrofonarm verwendet werden und keins mit Mikrofon im Kabel oder am Kopfhörer selbst.

Sonstige Einrichtungen und Tipps:
Mumble verfügt über ein umfassendes Kanal und Rechtemanagement.
Mithilfe von verschiedenen Kanälen kann man z. B. verschiedene Gruppen, die getrennt voneinander sprechen wollen, realisieren. Jede Gruppe bekommt dafür einen eigenen Channel und jedes Mitglied kann bei Bedarf selbstständig in einen Channel wechseln.
Dank des Rechtemanagements kann z. B. umgesetzt werden das nur festgelegte User sich mit einem Kanal verbinden dürfen oder erst nach einem Passwort gefragt werden.

Externe Teilnehmer:
Das beste an dieser IP basierenden Lösung: Externe Teilnehmer können sich auch verbinden und die Latenz bleibt trotzdem noch im angenehmen Bereich. Außerdem ist ein VOIP Datenstrom nicht sehr anspruchsvoll, wodurch eine gute Verbindung schon mit einer 3G Verbindung möglich ist. Bestes Beispiel dafür ist ein Reporter, der irgendwo außerhalb des Studios ist und bereits über LTE Bonding ins Studio streamt.

Nachteile:
Wie jede Lösung hat auch diese Methode leider ein paar Nachteile:

  • Da es zur Datenübertragung einen IP Datenstrom verwendet, wird es immer eine kleine Latenz geben. Das lässt sich nicht vermeiden. Durch das optimieren der Einstellungen wie ich oben beschrieben, kann es aber auf ein Minimum reduziert werden.
  • Es gibt zwar mehre Channels aber aktuell keine einfache Möglichkeit in mehrere Channels zu sprechen oder in mehreren zu hören. Es wird allerdings sehr aktiv an Mumble weiterentwickelt und es ist bereits als Feature Request auf der Warteliste (Link)

Mumble ist OpenSource. Deswegen kann mit ausreichend Programmierkenntnissen die Software an die eigenen Anforderungen angepasst werden.

Auch die Integration von vorhandenen Intercom Systemen ist möglich, soweit das vorhandene System einen Audio Aus und Eingang zur verfügung stellt. Dieser kann einfach über ein Audiointerface an einen PC angeschlossen werden und steht somit im Mumble Netzwerk für alle Teilnehmner bereit.

Ich hoffe dieser doch etwas länger geratene Blogpost konnte euch etwas weiterhelfen. An dieser Stelle möchte ich noch auf meine Instagram, Twitter und GitHub Seiten verweisen. Falls ihr Mumble in einer Produktivumgebung einsetzt oder Fragen/Ideen  habt, schreibt mir doch einfach eine Nachricht. Ich streame auch ab und zu mal programmieren/electronics auf Twitch.

Zoom H4n Mikrofonschutz aus dem 3D Drucker

Nach meinen negativen Erfahrungen mit dem Zoom H4n im Zusammenspiel mit meinem Rode NTG2(Habe mittlerweile auf einen Tascam DR-70d geupgradet) hatte ich noch einen wunden Punkt gefunden: Die beiden nicht demontierbaren Mikrofone. Sie sind nicht besonders stabil(Plastik) und komplett ungeschützt.
h4nmikroschutz
Also habe ich, um die Mikrofone zu schützen und bei einem möglichen Sturz die Belastung auf das Gehäuse zu verlagern, diese Schutzkappe designt.

Die Schutzkappe passt genau auf die Oberseite des Zooms und hält mit meinem Exemplar auch von alleine ziemlich gut ohne irgendeine Befestigung. Sie schützt ebenfalls optimal, wenn man den Recorder während der Benutzung mit einem externen Mikrofon in eine Tasche stecken will. Eine optimale Transporttasche dafür findet ihr übrigens hier(Affiliate Link).

Im Download enthalten sind eine STL Datei zum direkten Importieren in die Slicing-Software und das orginale FreeCAD Projekt.
Download

Bild
Gedruckt mit einem Ultimaker 2 mit weißem PLA