So bauen Sie Jennys Budget-Mischpult
HeimHeim > Nachricht > So bauen Sie Jennys Budget-Mischpult

So bauen Sie Jennys Budget-Mischpult

Oct 29, 2023

Jenny hat Anfang des Monats einen Ask Hackaday-Artikel verfasst, in dem es um die Suche nach einem günstigen computerbasierten Audiomixer ging. Der erste Versuch verlief nicht so gut, mit einem Problem, das viele von uns kennen: Linux-Anwendungen mögen es wirklich nicht, mehrere Audiogeräte gleichzeitig zu verwenden. Jenny stieß auf dieses Problem und fand keine Möglichkeit, die Soundkarten in einer einzigen Anwendung zusammenzuführen.

Ich kämpfe schon seit einiger Zeit mit diesem Problem, wahrscheinlich schon seit 10 Jahren. Meine erste Begegnung damit war der Versuch, ein Klavier mit drei Mikrofonen aufzunehmen und dabei ein paar verschiedene USB-Vorverstärker zu verwenden. Und natürlich war ich, genau wie Jenny, schnell frustriert über das Problem, dass meine Aufnahmesoftware jeweils nur eine Schnittstelle sah. Die einfache Lösung besteht darin, eine Schnittstelle mit mehr Kanälen zu kaufen. Das Tascam US-4x4HR ist ein großartiges Vierkanal-Eingangs-/Ausgangs-Audio-Interface, und die Behringer U-PHORIA-Reihe bietet bis zu acht Mikrofonvorverstärker, erweiterbar auf 16 mit einem zweiten DAC, der Audio über ADAT senden kann. Aber das sind semiprofessionelle Schnittstellen mit entsprechenden Preisschildern.

Aber was ist mit Jennys Idee, mehrere supergünstige Schnittstellen zusammenzuschustern? Nun ja, das ist auch möglich. Ich zeige Ihnen wie, aber lassen Sie uns zunächst darüber sprechen, wie wir dieses Software-Mixer-Monster steuern werden. Ja, Sie können einfach eine Maus oder eine Tastatur verwenden, aber die Herausforderung bestand darin, ein Mischpult zu bauen, und für mich bedeutet das physische Fader und Stummschalttasten. Mittlerweile gibt es vorgefertigte Lösungen, wobei der Behringer X-touch eine beliebte Lösung ist. Aber auch hier liegen wir weit über dem Preis, den Jenny für dieses Problem festgelegt hat. Also lasst uns hier bei Hackaday das tun, was wir am besten können, und unser eigenes entwickeln.

Was wir brauchen, ist ein Mikrocontroller mit nativer USB-Client-Unterstützung, mehreren digitalen I/O-Pins und einigen analogen Eingängen. Ich habe mich für den Arduino MKRZero entschieden, wegen der geringen Größe, des angemessenen Preises und der Tatsache, dass er tatsächlich bei Mouser auf Lager ist. Die anderen Dinge, die wir brauchen, sind einige Fader und Knöpfe. Ich habe mich für die 100-mm-Fader in voller Größe und einige LED-Umschalttasten von Adafruit entschieden. Die Kleinteile wie Kabel und Widerstände stammen aus dem örtlichen Ersatzteillager in der Ecke.

Mein erster Gedanke war, das Panel zu entwerfen und in 3D zu drucken, aber nachdem ich das Layout auf einem Stück Sperrholz erstellt hatte, erwies sich die resultierende Größe als etwas zu groß für meinen Drucker. Also gehen wir in den Retro-Stil und bauen ein Mischpult mit Holzmaserung. Das wäre ein großartiges Projekt für eine CNC-Fräse, aber da ich noch nicht Teil dieses besonders coolen Clubs bin, waren eine Bohrmaschine, eine Tischkreissäge und ein oszillierendes Werkzeug die Rettung. Die Ergebnisse sind nicht ganz so schön, wie ich es wollte, aber vielleicht bekommen wir eines Tages einen Mark II dieses Projekts.

Die Verkabelung ist relativ einfach, mit einem Strombegrenzungswiderstand zum Schutz der LEDs in den Tasten und einem Pullup-Widerstand, der verhindert, dass der digitale Pin schwebt, wenn die Taste nicht gedrückt wird. Nun ist dieser Pullup möglicherweise nicht notwendig, da ich später erfuhr, dass der Arduino über einen integrierten Pullup an seinen digitalen Pins verfügt. Bemerkenswert ist auch, dass ein 10-Ω-Widerstand *keine* gute Wahl für einen Pullup ist. Wie Al es eloquent ausdrückte, handelt es sich um einen „Pull-up-Widerstand“. 10 kΩ ist die bessere Wahl.

Und um den Bau abzuschließen, benötigen wir eine Skizze, die wir auf dem Arduino ausführen können. Zum Glück gibt es bereits eine großartige Bibliothek für genau das, was wir tun wollen: Control Surface. Es gibt viele Möglichkeiten, dies einzurichten, aber meine Skizze ist ziemlich trivial:

Und nun zum Fleisch und den Kartoffeln dieses Projekts. Wie überzeugen wir eine Anwendung davon, Eingaben von mehreren Geräten zu sehen und tatsächlich etwas zu mischen? Das Problem hier ist die Desynchronisierung. Jedes Gerät läuft mit einer anderen Taktquelle, sodass der Bitstrom von jedem Gerät wandern und nicht mehr synchron sein kann. Das ist ein so ernstes Problem, dass ältere Soundlösungen nicht viel in Bezug auf die Kartenkombination implementiert haben. Vor nicht allzu langer Zeit wäre das Resampling dieser Audiostreams, um sie richtig zu synchronisieren, ein sehr CPU-intensiver Vorgang gewesen. Aber heutzutage haben wir alle Multi-Core-Giganten, praktische Supercomputer im Vergleich zu vor 20 Jahren.

Als Wim Taymans Pipewire schrieb, verfolgte er einen anderen Ansatz. Wir verfügen über genügend Zyklen zum erneuten Abtasten, sodass Pipewire dies bei Bedarf transparent durchführen wird. Pipewire erkennt alle Ihre Audioschnittstellen auf einmal und implementiert sowohl die Jack- als auch die Pulseaudio-API. Verschiedene Distributionen handhaben dies etwas unterschiedlich, aber im Allgemeinen benötigen Sie die Pipewire-Pakete sowie die Pakete Pipewire-Jack und Pipewire-Pulseaudio, damit das funktioniert.

Und hier ist das Geheimnis: Die Jack-Routing-Tools funktionieren mit Pipewire. Die drei großen Optionen sind qjackctl, carla und qpwgraph. Beachten Sie jedoch, dass qpwgraph tatsächlich Pipewire-nativ ist. Selbst wenn eine Anwendung jeweils nur ein Gerät auswählen kann und diese App die Jack-, Pulseaudio- oder Pipewire-API verwendet, können Sie eines dieser Routing-Steuerungsprogramme verwenden, um beliebige Ein- und Ausgänge zu verbinden.

Beginnen wir also mit der einfachsten Lösung: jack_mixer. Starten Sie die Anwendung und verwenden Sie dann Ihre bevorzugten Routing-Controller. Nehmen Sie den MIDI-Ausgang unserer Arduino-Bedienoberfläche und verbinden Sie ihn mit dem MIDI-Eingang von jack_mixer. Fügen Sie in jack_mixer einen neuen Eingangskanal hinzu und geben Sie ihm einen passenden Namen. Nennen wir es „Kassettendeck“, da ich ein USB-Kassettendeck habe, mit dem ich das teste. Jetzt setzt die Controller-Magie ein: Drücken Sie die „Learn“-Taste für die Lautstärkeregelung und bewegen Sie den ersten Fader auf diesem Controller. Klicken Sie anschließend auf die Stummschalttaste und speichern Sie den neuen Kanal. Wir möchten auch einen Ausgabekanal hinzufügen. Sie können diesem auch gerne einen Ihrer Fader zuweisen.

Und schließlich zurück zum Routing-Programm, verbinden Sie den Ausgang Ihres Kassettendecks mit dem Eingang jack_mixer und leiten Sie den Ausgang jack_mixer an Ihre Lautsprecher weiter. Spielen Sie ein Band ab und genießen Sie die volle Kontrolle über Lautstärke und Stummschaltung! Möchten Sie dem Mix ein YouTube-Video hinzufügen? Starten Sie die Wiedergabe des Videos, trennen Sie es einfach mit dem Routing-Controller von Ihren Lautsprechern und speisen Sie es in einen zweiten Kanal auf jack_mixer ein. Wiederholen Sie den Vorgang mit jeder dieser fünf billigen und fiesen Soundkarten. Profitieren!

Hier ist noch eine weitere Anwendung zu erwähnen. Anstatt jack_mixer zu verwenden, können wir Ardour verwenden, um die schwere Arbeit zu erledigen. Um es auf diese Weise einzurichten, gibt es zwei primäre Ardour-Einstellungen, die Sie unter „Einstellungen“ finden: Stellen Sie auf der Registerkarte „Überwachung“ sicher, dass „Aufzeichnungsüberwachung durchgeführt von“ auf „Ardour“ eingestellt ist und die Option „Automatische Eingabe führt Talkback durch“ aktiviert ist. Fügen Sie dann Ihre Spuren hinzu, stellen Sie den Spureingang auf die entsprechende Eingangshardware und den Spurausgang auf den Master-Bus ein. Stellen Sie sicher, dass der Master-Bus dorthin geleitet wird, wo Sie ihn haben möchten, und Sie sollten auch in der Lage sein, mit Ardour live zu mischen.

Dies bietet Ihnen allerlei Extras zum Spielen in Form von Plugins. Möchten Sie einen Kompressor oder EQ für eine Tonquelle? Kein Problem. Möchten Sie eine Quelle automatisch optimieren? X42 hat ein Plugin, das das erledigt. Und natürlich bringt Ardour Aufnahme, Looping und alle möglichen anderen Optionen mit auf die Party.

Ardour unterstützt auch unsere benutzerdefinierte Mischschnittstelle. Suchen Sie außerdem unter „Einstellungen“ nach der Registerkarte „Bedienoberflächen“ und stellen Sie sicher, dass „General MIDI“ aktiviert ist. Markieren Sie es dann und klicken Sie auf die Schaltfläche „Protokolleinstellungen anzeigen“. Eingehendes MIDI sollte auf unser Arduino-Gerät eingestellt sein. Sie können dann die Tastenkombination „Strg + Mittelklick“ auf den Kanalfadern und Stummschalttasten verwenden, um sie in den Lernmodus zu versetzen. Bewegen Sie ein Steuerelement, um es dieser Aufgabe zuzuweisen. Alternativ können Sie eine .map-Datei zum Verzeichnis midi_maps von Ardour hinzufügen. Meine sieht so aus:

Bevor Sie sich nun zu sehr aufregen und eine Menge Geld und/oder Zeit in ein Linux-Audio-Setup stecken, sollten Sie einige Dinge wissen. Erstens ist die Latenz. Es ist wirklich eine Herausforderung, ein Pipewire-System so einzurichten, dass es eine wirklich niedrige Latenzzeit erreicht, insbesondere wenn Sie USB-basierte Hardware verwenden. Es ist möglich und die Arbeit an diesem Thema ist im Gange. Aber das Beste, was ich bislang stabil laufen lassen konnte, ist eine 22-Millisekunden-Roundtrip-Messung – und das erforderte viel Fummelei mit den Pipewire-Konfigurationsdateien, um verstümmelten Ton zu vermeiden. Für Selbstüberwachung und Live-Musik ist es gerade noch brauchbar, und für die Wiedergabe von bereits aufgenommenen Musikstücken ist das vollkommen in Ordnung.

Das Zweite, was man wissen muss, ist, dass es großartig war. Es ist ein bisschen besorgniserregend, wie viel Spaß es macht, anständige Audio-Hardware mit den erstaunlichen kostenlosen Tools zu kombinieren, die verfügbar sind. Möchten Sie Ihre Stimme für Ihr nächstes Zoom-Meeting automatisch optimieren? Einfach. Ein kleines MIDI-Keyboard in Ihren Schreibtisch einbauen? Nur ein Mikrocontroller und etwas Lötarbeit. Der Himmel ist das Limit. Und auch die Zukunft ist rosig. Tools wie Pipewire und Ardor befinden sich in der sehr aktiven Entwicklung und die Echtzeit-Kernel-Patches stehen kurz vor der Fertigstellung. Seien Sie verrückt, kreieren Sie coole Sachen und erzählen Sie uns dann unbedingt davon!