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.
sudo apt-get install pavucontrol mumble
Alternativ kann man auch Mumble selbst komilieren um den neuen CELT-Codec verwenden zu können: siehe hier.
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.
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 (Konfiguration → Einstellungen → Audioausgabe → Lautstärke), damit man die anderen Menschen im Kanal nicht zusätzlich durch den Bot hört.
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:
Und so sieht es dann in pavucontrol aus, wenn ein Mumble-Client und ein Bot auf derselben Maschine laufen:
Und hier der gesamte Desktop zur Laufzeit:
Fertig :)
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.
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.
Die Einstellungen des Mumble-Bots sollte man optimieren, so wie hier beschrieben: Mumble-Einstellungen für Bots optimieren.