
Wie führe ich Sox mit Jack aus, sodass Sox die Eingabe von Jack nimmt, etwas tut (in meinem Fall ein Tiefpassfilter) und den verarbeiteten Stream an Jack ausgibt?
sox foo.wav bar.wav lowp 1000.0
Ich werde eine WAV-Eingabedatei nehmen und in einer anderen WAV-Datei ausgeben, ich brauche allerdings ungefähr Folgendes:
sox JACK_INPUT JACK_OUTPUT lowp 1000.0
Wobei ich Jack verwenden kann, um jede beliebige Tonquelle mit JACK_INPUT zu verbinden, und den JACK_OUTPUT, auf den Sox einen Tiefpassfilter angewendet hat, mit jedem anderen Port in der Verarbeitungskette in Jack verbinden kann.
Wenn dies nicht möglich ist, wäre ich für jede Hilfe mit alternativen Vorschlägen dankbar. Bitte beachten Sie, dass die Lösung mit Jack unter Linux funktionieren muss, Tiefpass-/Hochpassfilterung und vorzugsweise Biquad-Filter wie Sox ermöglichen muss. Bonuspunkte gibt es, wenn Verbindungen eindeutig benannt werden können, sodass ein Skript für jeden Lautsprecher einen separaten Filter starten kann.
Vielen Dank im Voraus.
Antwort1
SoX hat keinen JACK-Treiber. Es wäre nicht allzu schwierig, einen zu schreiben, aber aufgrund der Architektur von SoX wäre die Latenz immer höher als unbedingt nötig.
Wenn Sie nur eine einfache IIR-Filterung benötigen, verwenden Sie einfach einen LADSPA-Host wieJACK Gestellund passende Plugins wiedie von Matthias Nagornioder buttlow_iir
/ butthigh_iir
usw. vonSteve Harris' Sammlung.