psmokotnin / osm

Open sound meter. FFT based application for tuning sound systems.
GNU General Public License v3.0
227 stars 35 forks source link

Add JACK support #60

Open NexAdn opened 1 year ago

NexAdn commented 1 year ago

This PR introduces support for the JACK audio backend on Linux, which is the pro audio backend normally used on Linux. This also allows the application to run under PipeWire, a new audio backend which is becoming popular in major Linux distributions, thus allowing the program to run under most audio setups without any problems associated with directly accessing the sound card using ALSA.

Closes #58

NexAdn commented 1 year ago

I'm gonna try to make the JACK integration optional at configure time, so people aren't required to have libjack installed for OSM to work. The rest of the PR can be considered ready for review.

NexAdn commented 1 year ago

Okay, that was actually pretty easy. Let me know what you think.

vifino commented 1 year ago

Hey! I'd love to see this merged as I use JACK/Pipewire! :)

NexAdn commented 1 year ago

Hey! I'd love to see this merged as I use JACK/Pipewire! :)

I don't know how long until I get any reaction for this PR or the accompanying issue from Pavel. For now, I've taken the freedom to provide a patched version with this feature and the ALSA deadlock fix applied in Gentoo's GURU repo. If you'd like to have these patches applied, you could ask your distro's package maintainer to apply those patches for their version as well. While it's not the fine way, it doesn't look like upstream is going to apply those patches anytime soon and at least one of them is critical for stable operation of the whole program.

bapch commented 1 year ago

Hey @NexAdn, thanks for the PR ! At the moment, when the generator is disengaged, it disappears as a jack client. Would it be hard to make it stay ? No big deal though because we could use the jack patchbay to make it automatically reconnect to the right output.

leafblowersama commented 5 months ago

Thanks for the PR ! Did anyone get any feedback on whether this is likely to be merged anytime soon ? FWIW it works flawlessly on my end and I'll gladly be using it, hope it gets upstreamed.

maximeborges commented 1 month ago

Same question, any update to get that merged? Most modern distros are switching to pipewire which has a compatibility layer for JACK, and having proper support for JACK would allow a very large support on more complex hardware (and would allow routing and filtering from outside OSM)