PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Aktive Frequenzweiche mit UbuntuStudio, Pipewire und Calf



loafmeat
30.10.2023, 22:36
Seit 2015 betreibe ich 24/7 einen PC mit KX-Studio der mir folgende Dienste zur Verfügung stellt:
- Dateiserver (Samba und SFTP)
- DLNA Server fuer Bilder, Musik, und Videos (Universal Media Server)
- Frequenweiche fuer meine aktivierten 3 Wege Quadral Vulkan MK 4
-- Details hierzu: https://www.diy-hifi-forum.eu/forum/showthread.php?13581-Aufbau-einer-Frequenzweiche-mit-Open-Source-Software-und-PC-ueber-HDMI-und-AV-Receive

Alles laeuft im Prinzup tadellos. Und obwohl es heisst "Never change a running system" wollte ich nun mal was Neues probieren da KX-Studio nicht mehr weiter entwickelt wird. Die meisten neuen Distributionen verwenden PIPEWIRE als Soundserver. Als Distribution waehlte ich Ubuntu Studio 23.04. Alles soll moeglichst einfach ueber GUIs ohne kryptische Befehlszeilen einzustellen und zu bedienen sein. Hierzu wollte ich die wirklich tollen CALF Plugins weiterhin benutzen.Hier im Speziellen die 4 Band Frequenzweiche. Ausgegeben wird der Sound ueber 4x2 Kanal HDMI, wovon ich ja nur 6 Kanaele benutze. Als Verstaerker benutze ich weiterhin einen HDMI AV-Receiver. Ich hatte mir allerding inzwischen statt des Onkyo TX-SR605 einen ONKYO TX-SR876 zugelegt. Die gibt es bei Kleinanzeigen schon fuer unter 100 Euronen.

Und ich muss sagen ich bin vom Ergebnis begeistert. Aber alles der Reihe nach. Ich konzentriere mich hier auf die Einstellungen zur Frequenzweiche.
1. Ubuntu Studio 23.04 installieren sollte jedem moeglich sein. Da gibts genug Anleitungen
2. Folgende Programme installiere ich bzw sind schon installiert:
--- raysession
--- wireplumber
--- qpwgraph
--- calf-plugins
--- mc
--- ssh
--- agordejo
--- synaptic
--- flatpak
mit flatpak zusaetzlich
--- coppwr
--- Simple Wireplumber GUI
--- Helvum

3. Alle Wiedergabegeraete auf "Pro Audio" einstellen in den Audio - Systemeinstellungen
72184

(http://www.hifi-forum.de/bild/alle-wiedergabegeraete-auf-pro-audio-einstellen-in-den-audio-systemeinstellungen_1224851.html)
4. RaySession starten, neue Session anlegen, als Applicaten Calf Jack Host hinzufuegen

72191

5. Im Calf Host die "X-Over 4 Band" laden

72186

6. X-Over oeffnen und die Frequenbaender definieren. Bei den Quadral waehle ich 180 / 3800 und recht steile LR8.

72189

7. Die virtuellen "Verkabelungen" in RaySession vornehmen.
--- In diesem Beispiel gibt Firefox den Sound ueber mein USB Interface UND ueber die Kette Frequenweiche->HDMI->AVReceiver->Lautsprecher aus.

72185

--- Es lassen sich beliebige "Verkabelungen" mit den verschiedensten Programmen (hier Firefox, VLC, Clementine) realisieren. Meine gesamten Ausgaenge verkabel ich auf die Frequenzweiche und und das USB Interface (für Kopfhoerer)

72194

8. Auch eine BT Verbindung zu meinem Handy ist moeglich und klappt wunderbar.

72193

9. Zum Schluss das Setup abspeichern. Saemtliche Einstellungen (auch die Einstellungen in Calf) werden abgespeichert und beim koennen wieder geladen werden.

72192

10. in qpwgraph sieht das ganze aehnlich aus. Aber ich habs da nicht hingekriegt, dass CALF mit geladen wird.

72190

11. Hier noch die Ansichten aus coppwr. Hier kann man jede Menge weiterer Informationen abrufen.

72187

72188

Vielleicht interessiert es ja Jemanden.

VG
Guenter

Darakon
31.10.2023, 08:15
Hallo Günter,

vielen Dank für das ausführliche Tutorial!

capslock
31.10.2023, 11:24
Danke. Tutorial würde ich als Linux-Noob das noch nicht nennen.;)

Kann Calf auch Shelving Filters? und IIR-Allpässe oder besser noch FIR zur Phasenkorrektur?

スピーカ
31.10.2023, 14:57
...Vielleicht interessiert es ja Jemanden.

VG
Guenter


Ja, vielen Dank.

Nutze auch schon seit Jahrzehnten Linux :)

LG Pat

ansch
31.10.2023, 21:49
Vielleicht interessiert es ja Jemanden.

VG
Guenter


Jep, auch ich finde das interessant - obwohl ich separate DSPs verwende und unter Linux anspreche - also kein SW-Defined DSP wie bei Dir, sondern eben mit HW.
Aber Ubuntu Studio verwende ich auch, jedoch mit Jack. Und dann mit Carla wegen des leichten Routings von In-und Outputs mit low latency über verschiedene Soundkarten (RME und/oder SQ6 USB),

Edit:
Einige Fragen hätte ich aber:
- Warum PipeWire? Nach meinem Verständnis agiert das i.d.R. ja nur als Zwischenschicht. Schritt 4 deutet ja darauf hin, dass eigentlich JACK genutzt wird. Oder ist das tatsächlich als natives Soundsystem genutzt? Welche Features geben in diesem Fall den Ausschlag für die Nutzung?
- Der SW-defined DSP sind ja die Calf Plugins. Die Calf Plugins laufen Standalone und sind nicht in eine DAW (z.B. Ardour) eingebunden, richtig? Werden die direkt von JACK angesprochen oder liegt da PipeWire dazwischen?
- Die Liste der Programme verstehe ich nicht ganz. Vielleicht ist allen anderen alles klar. Aber ich frage mal trotzdem ob Du denkst, dass ein kurzes Statement zum Zweck des Programms evtl. zum Verständnis hilfreich sein könnte? Nach meinem Verständnis sind der Dreh- und Angelpunkt ja eigentlich Calf-Plugins. Wozu ist alles andere das Du aufgeführt hast notwendig?

Edit 2: Noch eine Nachfrage, weil mich das interessiert - ich möchte evtl. Vorteile von PipeWire verstehen: PipeWire reklamiert ja für sich die Sicherheit zu erhöhen. Meine Frage: Wo genau, d.h. wie erhöht eine weitere Schicht im SW-Stack die Sicherheit? Die Frage ist, wie der Kompromiss zwischen erhöhter Komplexität und damit Angriffsfläche und abgedeckter Schwächen aussieht. Nach 'Daumenkino' von PipeWire sehe ich einen evtl. Vorteil bei Bluetooth. Aber nur, wenn wirklich explizit der Link-Modus ausgewählt werden kann und unverschlüsselte Verbindungen bzw. geringe Entropien verschlüsselter Verbindungen verhindert werden und damit weitergehende Zugriffe auf das System verhindert werden (fraglich, da nicht out-of-the-box plug and play).

Viele Grüße
André

loafmeat
01.11.2023, 13:53
Vorab, ich bin nur ein USER (und kein Softwareentwickler) der vorhandene Frequenzweichen-Software im Wesentlichen dafuer benutzt meine guten 3 Wege Boxen Quadral Vulkan MK 4 ueber einen AV-Receiver zu betreiben. Also als aktive Frequenzweiche.
Als User wuensche ich mir eine bequeme und verstaendliche Einstellmoeglichkeit der benoetigten Parameter. Alles natuerlich mit der entsprechenden Qualitaet..
All das liefern mir die CALF Plugins. Es sind keine umstaendlichen Konfigurationsdatein oder aehnliches erforderlich. Die Parameter, wie z.B. die Trennfrequenzen lassen sich ON THE FLY veaendern und sind sofort hoerbar. Es gibt natuerlich auch noch tausende andere Plugins (LADSPA, VST, LV2,...) die z.B. ueber CARLA 72208 in dies Setup eingebunden werden koennen. Aber die CALF Plugins gefallen persoenlich mir am Besten.
Zu "Shelving Filter, IIR-Allpässe, FIR", sorry bin ich ueberfragt. Am Besten mal auf der Calf Homepage https://calf-studio-gear.org nachfragen. Da sieht man auch welche Plugins es sonst noch gibt. Phasenkorrektur bietet die CALF Frequenzweiche.72209

Wie schon beschrieben habe ich vorher KX-Studio mit JACK ( und CADENCE und CLAUDIA) benutzt. Hier die ganze Sache funktioniert auch ohne JACK. PIPEWIRE laesst selbst das Routing zu, z.B mit "qwpgraph". Ich weiss aber nicht wie man da die fertigen Sessions abspeichern kann. Besser hat mir hierfuer "RaySession" gefallen. Weiterhin gibt es hierfuer CARLA als Host auch um noch andere Plugins einzubinden. Die CALF Plugins lassen sich ueber den CALF Host als auch ueber einen anderen HOST, z.B. CARLA ,einbinden. Beim CALF Host werden aber die Einstellmöglichkeiten besser dargestellt.

Da ich ARDOUR (noch) nicht benutze weiss ich (noch) nicht ob man da die Calf Plugins direkt einbinden kann.

Ich habe mich fuer Pipewire entschieden weil das wohl der kommende Standard sein wird. Viele gaengige Distributionen setzen Pipewire schon als Standard Soundsystem auf. Was ich wohl festgestellt habe ist, dass es bei PIPEWIRE ganz einfach ist saemtliche im System vorhandenen Soundinterfaces gleichzeitig anzusprechen. Das war mir vorher nicht so gelungen. Bei meinem System sind das im Moment die Soundkarte auf dem Board, die HDMI Schnittstellen, eine externes USB Soundinterface und ein BT Stick. Alle Inerfaces sieht man hier. 72210 Hier sieht man auch noch, dass ich was von CARLA eingebunden habe und die ganze Sache zur Zeit ueber TEAMVIEWER bediene (da ich gerade im BUERO Sitze). Auch der Ton zu TEAMVIEWER laesst sich hier routen.

Die von mir gegeben Programmliste hat nicht in jedem Fall etwas mit dem Setup zu tun.
Hier nochmal die reduzierte Liste mit den Programmen die ich fuer den Fall als sinnvoll erachte.
--- raysession
--- wireplumber
--- qpwgraph
--- calf-plugins
--- flatpak
mit flatpak zusaetzlich
--- coppwr
--- Simple Wireplumber GUI

Fragen zum Innenleben von Pipewire, wie SW-Stack, Entropie oder Sicheheit kann ich leider nicht beantworten. Aber als einfacher USER kann ich sagen alles was ich mir gewuenscht habe fuer meinen Einsatzfall klapp einfach.

Ich habe mal vor ca. 35 Jahren einen Film mit Jeff Goldblum gesehen der hiess die Fliege. Der Film selbst gehoert nicht zu meinen Favoriten aber etwas ist bei mir haengen geblieben. Der Protagonist in dem Film baute eine Teleportationsmaschine zusammen aus fertigen anderen Komponten. Wie die einzelne Komponente im Innern arbeiten interessiert ihn nicht. Nur das Ausgabeergebnis und damit das Arbeitsergebnis seiner Maschine. -)

VG
Guenter

loafmeat
19.11.2023, 20:25
Kleiner Zwischenbericht.


Ich betreibe pipewire unter Ubuntu Studio nun seit 2 Wochen 24/7, nur mit kurzen Unterbrechungen für Updates.
Ich verwende jetzt Ubuntu Studio 23.10 mit pipewire Version 0.3.84 (aus den Original-Repos).


Alles läuft sehr gut und es werden keine X-Runs angezeigt.


Seit gestern habe ich einen kleinen praktischen Stresstest gemacht und mehrere Streams für 24 Stunden laufen lassen.


Ich habe mehrere verschiedene Geräte mit unterschiedlichen Streams angeschlossen
Handy S21 über BT mit der USB-Schnittstelle und den dort angeschlossenem Soundinterface
VLC mit eingebautem AUDIO 1 (internes Audio Interface)
Firefox mit ASLA Loopback
Loopback-Monitor mit X-Over
X-Over mit HDMI
Clementine mit Teamviewer
Die entsprechenden Raysession-Verbindungen hier:
https://www.diyaudio.com/community/attachments/screenshot-raysession-jpg.1235642/

Die Audio Streams laufen überall gleichzeitig und fehlerfrei
DSP schwankt zwischen 5% und 7%
Keine X-Runs

Ausgabe von pw-top hier:
https://www.diyaudio.com/community/attachments/screenshot-pw-top-png.1235645/

Alle Streams haben eine Abtastrate von 44100, außer dem Stream zu Teamviewer (48000). Ich weiß nicht, warum.


Um das Resampling so gering wie möglich zu halten, habe ich folgende Einstellungen in /etc/pipewire/pipewire.conf vorgenommen
## Properties for the DSP configuration.
default.clock.rate = 44100
default.clock.allowed-rates = 44100
default.clock.quantum = 1024
default.clock.min-quantum = 32
default.clock.max-quantum = 2048
default.clock.quantum-limit = 8192

Damit hatte ich gehofft, alle Streams auf 44100 eingestellt zu haben. Meine mp3- und flac-Dateien haben ohnehin eine Samplerate von 44100 (CD-Qualität).
Vielleicht gibt es bessere Einstellungen. Ich habe es noch nicht herausgefunden.


Außerdem:
Wenn ich VLC, Firefox, BT, Clementine starte, werden diese mit dem Gerät verbunden, das als Default eingestellt ist.
Calf Jack Host kann nicht als Default eingestellt werden.
Daher habe ich den Weg über das ALSA Loopback-Gerät gewählt.
Dieses wird beim Booten geladen und kann als Default-Devive eingestellt werden.
Gute Beschreibung z.B. hier: https://www.sdrutah.org/info/high_rate_loopback_websdr.html

Ausgabe aplay -l hier:
https://www.diyaudio.com/community/attachments/screenshot-aplay-l-png.1235653/

Vielleicht gibt es auch hier bessere Lösungen?

VG
Guenter