Inhaltsverzeichnis

Mumble-Musikbot mit PulseAudio und eigener virtueller Soundkarte

Dies ist eine Anleitung zur Erstellung eines Musikbots für Linux unter Verwendung von PulseAudio im Stil von „Virtual Audio Cable (VAC unter Windows).

Weitere Audiobots siehe AudioBots für Mumble.

Man kann mit dieser Anleitung prinzipiell auch einen Bot für TeamSpeak oder Skype erstellen.

Voraussetzungen

Installation

sudo apt-get install pavucontrol mumble

Alternativ kann man auch Mumble selbst komilieren um den neuen CELT-Codec verwenden zu können: siehe hier.

Virtuelle Soundkarte für PulseAudio erstellen

Es wird eine eigene, virtuelle, Soundkarte verwendet, damit nur das auf dieser landet, was später im Stream zu hören sein soll.

Verwendet wird dazu das Modul „null-sink“ von PulseAudio; es ermöglicht, die Ausgabe eines Programms auf diesen Null-Ausgang zu leiten und diese Null-Ausgang als Eingabe für Programme zu verwenden.

Dazu muss man die Konfiguration von PulseAudio ändern; man drückt Alt+F2 und gibt ein:

gedit /etc/pulse/default.pa


Dann sucht man die folgenden Zeile:

#load-module module-null-sink


Hier entfernt man das “#„-Zeichen, damit die Anweisung wirksam wird:

load-module module-null-sink


Man kann dieser Null-Sink auch selbst einen Namen geben; dazu muss die Zeile so aussehen:

load-module module-null-sink sink_properties='device.description="Dein toller Name"'

Dies bietet sich vor allem an, wenn man mehrere virtuelle Soundkarten erstellen möchte. Siehe hierzu unter Mehrere unabhängige virtuelle Soundkarten.

Nun startet man entweder den PC neu oder beendet PulseAudio zwangsweise mit:

killall -9 pulseaudio


Nach dem töten von PulseAudio sollte dieses automatisch wieder starten.

Nach dem Neustart oder dem Beenden von PulseAudio sollte man in pavucontrol prüfen, ob es ein neues Ausgabe-Gerät gibt:

Dieses virtuelle Gerät nutzen wir nun als Ausgabe für unseren Stream und als Eingabe für unseren Mumble-Bot.

Die Audioeingabe des Mumblebots auf die virtuelle Soundkarte umstellen

Der Einfachheit halber nutzen wir als Bot eine portable Version von Mumble für Linux.

Da man den Null-Ausgang nicht als Eingabe direkt in Mumble einstellen kann, muss hier pavucontrol verwendet werden:


Leider muss man die Zuordnung nach jedem Start des Mumble-Bots erneut einstellen.

Es empfiehlt sich noch, im Mumble-Bot die Ausgabelautstärke auf 0 zu setzen (KonfigurationEinstellungenAudioausgabeLautstärke), damit man die anderen Menschen im Kanal nicht zusätzlich durch den Bot hört.

Soundausgabe eines Programms auf die virtuelle Soundkarte umleiten

Hier kann man entweder in den Einstellungen des Programms vorgeben, dass auf der „Null-Ausgang“ ausgegeben werden soll, sofern möglich, oder direkt pavucontrol dafür verwenden.

Hier im Beispiel ein Screenshot von pavuontrol, in dem Banshee auf die Null-Ausgang eingstellt wurde:

Die Ausgabe von Banshee wurde auf die „Null-Ausgang“ eingestellt…

Ergebnis

Und so sieht es dann in pavucontrol aus, wenn ein Mumble-Client und ein Bot auf derselben Maschine laufen:

Wiedergabeansicht von pavucontrol
Der erste Eintrag gehört zum Mumble-Bot und deshalb ist hier der Signalpegel gleich Null.
Aufnahmeansicht von pacucontrol

Und hier der gesamte Desktop zur Laufzeit:

Ein Mumble-Bot und ein normaler Mumble-Client laufen auf derselben Maschine.
Rechts oben der „Natenom-Bot0“, und rechts unten der „Natenom-Ubuntu“.
Der richtige Natenom läuft auf dem Wirtssystem dieser virtuellen Maschine.

Fertig :)

Mögliche Erweiterungen

Mit anderen Programmen als Mumble senden

Prinzipiell kann man so jede Anwendung nach Mumble streamen, welche ihre Ausgabe an den Null-Ausgang schicken kann; also auch z. B. Skype, Teamspeak oder sonstwas.

Mehrere unabhängige virtuelle Soundkarten

Für jede weitere, unabhängige, virtuelle Soundkarte muss man eine weitere Zeile

load-module module-null-sink sink_properties='device.description="Dein toller anderer Name"'

in die Datei /etc/pulse/default.pa eintragen.

Dann kann man mehrere voneinander getrennte Bots realisieren; genauso wie mit Virtual-Audio-Cable unter Windows.

Optimierung

Die Einstellungen des Mumble-Bots sollte man optimieren, so wie hier beschrieben: Mumble-Einstellungen für Bots optimieren.