Audiomixer mit Deej

Wenn man streamt stolpert man irgendwann über das Bedürfnis einzelne Programme mit unterschiedlichen Lautstärken zu haben. Entweder regelt man diese in OBS oder über den seit Windows 10 vorhandenen Lautstärkemixer des Systems. Beide Varianten sind aber nicht gerade zugänglich.
Audiomixer mit Deej
Photo by James Kovin / Unsplash
In diesem Beitrag
audio-thumbnail
Artikel vorlesen lassen (maschinell erstellt)
0:00
/511.296

Mal zu laut, mal zu leise

Ich war mal wieder am Streamen, gemütlich redete ich vor mich hin und im Hintergrund lief der Ton des Spiels sowie Musik. Irgendwann hat sich dann ein Zuschauer zu mir in den Stream verirrt und hat mir freundlich mitgeteilt, dass meine Musik zu laut und das Spiel zu leise ist. Bei mir in den Kopfhörern war es eher umgekehrt, aber passte für mich. Also durfte ich OBS öffnen und dort bei den einzelnen Quellen rumspielen. Nach ein paar Versuchen war die Lautstärke im Stream dann richtig gemischt.

Auf meiner Seite war das Spiel auf voller Lautstärke, die Musik im Musikprogramm auf 10% gestellt und die Lautstärke der Kopfhörer auf 15%. In OBS war mein Mikrofon auf 100%, das Spiel auf 80% und die Musik auf 70% gestellt. Immerhin im Windows Lautstärkemixer war alles auf 100%. Aber es wird vermutlich schnell ersichtlich, dass es viele Orte gibt, um die Lautstärke von Programmen einzustellen und eine Änderung an einer Stelle zu ungewünschten Effekten an anderer Stelle führt. Und hören dann alle noch das Selbe?

Lautstärke zentral regeln

Das Dilemma hat wohl irgendwann auch Microsoft erkannt und mit Windows 10 einen Lautstärkemixer im System implementiert. Damit lässt sich nicht nur die Lautstärke der Eingabe- und Ausgabegeräte steuern, sondern auch die Lautstärke aller Programme. Eigentlich eine gute Idee. Nur eines ist nicht gut gelöst: Die Zugänglichkeit.

Bei Windows 11 gibt es zwei Lautstärkemixer, die auf unterschiedlichem Weg erreichbar sind. Ich kann auf den Lautsprecher im Systemtray neben der Uhr klicken, dann neben dem Lautstärkenregler auf das Lautstärkemixersymbol und dann scrolle ich nach unten. Oben stehen erstmal alle Audiogeräte, bei mir sechs an der Zahl. Dann kommt die Einstellung für den Raumklang und erst dann folgen die Programme.
Die zweite Option ist ein Rechtsklick auf den Lautsprecher und dort auf Lautstärkemixer öffnen. Dann öffnet sich der Lautstärkemixer in dem Systemeinstellungen. Deutlich übersichtlicher, aber wieder ein neues Fenster und nicht gerade eine Schnelleinstellung.

Lautstärkemixer Einstellungen. Oben Lautstärke und Ein-/Ausgabegerät, darunter die einzelnen Programme.
Lautstärkemixer in Windows 11 / by Kernic

Hier sollte sich Microsoft auf jeden Fall Gedanken zur Zugänglichkeit machen. Ich fände es gut, wenn bei einem Linksklick auf den Lautsprecher nicht nur die Gesamtlautstärke einstellbar wäre, sondern auch alle Programme sichtbar wären, die aktuell eine Audioausgabe aktiv haben. Oder wenigstens das aktuell fokussierte Programm. Ist aber leider nicht so. Trotzdem finde ich die Idee gut, die Lautstärke aller Programme zentral zu steuern.

Lautstärkemixer mit Hardware steuern

Windows hat also die Fähigkeit die Lautstärke jedes Programms einzeln zu steuern. Und wie ich spätestens mit der Tidal Anwendung schmerzhaft lernen musste können Programme diese Einstellung auch verwenden und anpassen. Auch mein Stream Deck* könnte das. Ich habe aber noch die erste Version ohne Drehregler. Die Lautstärke von Programmen über Tasten zu steuern, gerade die eher schwammigen Tasten des Stream Decks, macht wenig Spaß. Ich hatte es zwar eingerichtet, aber dann doch nie verwendet.

Beim Stöbern durch Printables, eine Seite mit 3D Druck Vorlagen, bin ich dann über einen Hardware Lautstärkemixer gestolpert. Zumindest das Gehäuse dafür und den Verweis auf ein Projekt namens Deej. Deej besteht sowohl aus einer Software für Windows als auch einer Firmware für Arduino Boards. Als Heimwerkerprofi (hust hust) war ich sofort Feuer und Flamme. Von Projekt werden Schieberegler vorgeschlagen. Das ist mir zu klobig, weshalb ich Drehknöpfe bevorzugte.

Schnell auf Amazon geschaut und gemerkt, so teuer sind die Teile gar nicht. Ein 5er Paket Arduino Nano* liegt bei um die 20 Euro, und auch 10er Pakete Drehpotentiometer* werden einem für 10 Euro hinterhergeworfen. Ich brauchte aber nur einen Arduino Nano und 5 Drehpotentiometer und habe mir die passende Anzahl, und noch fünf Meter Verbindungskabel, für unter 6 Euro bei AliExpress bestellt. Im Nachhinein hätte ich aber auch bei Amazon zuschlagen können. Ich habe das Gefühl ich werde noch häufiger was basteln.

Deej aufbauen und einrichten

Erstaunlich schnell waren die Teile versandkostenfrei aus China geliefert. Ich hab meinen billigen Lötkolben ausgepackt und einfach drauf los gelötet. Am Ende ist die Verkabelung nicht so schwer, da die Drehpotentiometer nur drei Anschlüsse haben. GND, 5V und das eigentliche Signal. Die GND kommen zusammen an den GND Pin des Arduino, bei 5V alle an den 5V Pin. Nur die Signale werden getrennt an die Analogpins angelötet. Ich hab das mit dem "alle an den Pin löten" sehr wörtlich genommen und vermutlich erzeugt mein Endergebnis bei manchen jetzt Zuckungen.

Nummerierte Potentiometer wurden an die Pins des Arduino Nano angelötet.
Arduino mit angelöteten Potentiometern

Aber was solls, es funktioniert. Gut, ich muss sicherstellen, dass die Anschlüsse sich nicht berühren. Das durfte ich zumindest feststellen, als die Konstruktion wild auf dem Tisch lag, ich sie angeschlossen habe und plötzlich etwas Rauch aufgestiegen ist. Zum Glück fließt bei einem Arduino nicht wirklich viel Strom.

Aber Hardware ohne Software ist wenig nützlich. Ich habe die Arduino IDE runtergeladen, den Arduino eingerichtet und den Code von der Projektseite auf diesen geladen. Kurz die Konfiguration anpassen und die Software starten, schon kann es los gehen. Gespannt habe ich an den Reglern gedreht und es passierte... nichts. Los ging die Fehlersuche. Die Debug Software, die das Projekt auch anbietet, zeigte keine Reaktion. In der Arduino Software habe ich dann den Datenstrom beobachtet. Dieser ergab aber gar keinen Sinn und reagierte nicht auf das Drehen an den Potentiometern.

Nächste Vermutung: Ich war doch zu doof zum Löten. Also habe ich in der Kiste gekramt und den Multimeter rausgekramt. Schnell alle Leitungen durchgemessen. Sieht gut aus. Überall ist Kontakt und die Kabel sind auch richtig angeschlossen. Was ist es dann? Dann fiel mein Blick zurück auf die Arduino IDE. Dort wurde weiterhin ein aktiver Datenstrom angezeigt, obwohl der Arduino gar nicht angeschlossen war. Langsam wanderte mein Blick zum MyGamepad. Display aus, keine Reaktion auf Eingaben, tot...

Tja, die IDE hat wohl beide angeschlossenen Arduinos erkannt. Den ESP32 auf COMM5 vom MyGamepad und den Nano 328P vom Audiomixer auf COMM4. Natürlich hatte ich den ESP32 ausgewählt und den Code auf das MyGamepad statt den Audiomixer gespielt. Also erstmal wieder den richtigen Code mit den DFÜ Tools auf den ESP32 spielen, dann den Deejcode auf den Nano und siehe da. Die Deej Software reagiert auf das Drehen der Potentiometer und der Datenstrom sieht gut aus. Einzig die Richtung passt noch nicht und leiser/lauter sind vertauscht. Das lässt sich aber einfach in der Deej Konfiguration anpassen.

Audiomixer mit fünf Drehreglern angeklebt an die Unterseite der Holzplatte des Tischs.
Audiomixer unter Tischkante

Fazit zum Deej Audiomixer

Inzwischen klebt der Audiomixer von unten an meiner Schreibtischkante und ist damit schnell erreichbar. Auch wenn das Projekt elektrotechnisch eher einfach ist habe ich dabei einiges gelernt. Ich bin manchmal doch etwas vorschnell und unkonzentriert. Zukünftig sollte ich mir vorab Gedanken machen, was ich tun will und während des Tuns bewusster vorgehen. Die ersten beiden Tage war ich etwas enttäuscht, weil der Audiomixer sehr grob reagierte und nur schwer fein einstellbar war. Dann ist mir eingefallen: Ich habe die Abfragerate während der Fehlersuche auf eine Abfrage pro Sekunde reduziert und das nie rückgängig gemacht. Entsprechend träge war der Audiomixer dann auch. Das war schnell behoben, aber zeigt wieder mal wie organisiert ich vorgehe.

Aber jetzt läuft der Audiomixer wie gewünscht und ich bin in der Lage fünf Audiospuren getrennt zu regeln. Ich habe den Audiomixer aktuell so belegt: Gesamtlautstärke, Musik, Spiele, aktive Anwendung, alle nicht zugewiesenen Programme. Dank einfacher Konfiguration über eine YAML Datei kann ich das jederzeit und schnell anpassen. Ich habe jetzt fünf Potentiometer angeschlosse und festgestellt, dass der Arduino acht analoge Anschlüsse bietet. Eigentlich wäre damit noch Platz für drei weitere Potentiometer...

Warte... hier ist noch mehr!