-
-
Notifications
You must be signed in to change notification settings - Fork 923
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Config - use pipewire by default on linux/Raspberry Pi #3345
Conversation
add new audio-settings config "linux_use_pipewire" which if set to false will revert the audio back to pulse audio.
@rbnpi - if you think this approach is worth taking, this code definitely needs testing :-) |
I just logged in to PR something very similar 😂 dev...porras:sonic-pi:pipewire I did a couple of things differently (for your consideration):
Sorry for the confusion, I started hacking on this some days ago (when I added it to the flatpak as a patch, without the raspberry or backwards compatibility part) but was only ready to PR it today, and missed this PR 🙃 |
Hi Sam I need to add pulseaudio-module-jack back to the distribution as I had dropped it. To go back reverse the process. resetting the config flag, then using raspi-config to set the audio to pipewire then rebooting. Starting under Pulse has the advantage that the volume control will switch sonic pi to the audio device it selects. One bug is that it will NOT control the volume of connected bluetooth devices. You need to use the SP volume control or the control on the bluetooth device. Other connected devices eg sound from a web browser has the same problem, so its not Sonic PI. It is probably best to install pavucontrol for pulse operation. This then lets you control output volume OK, and to switch Sonic Pi on other apps to independent outputs if you want to. All of this needs mechanisms to impart the information to users. I foresee the needs of a video or two and or detailed instructions for each scenario. For the basic user the pipewire default will be pretty good, apart from the situation where they don't have an hdmi speaker. One good improvement would be to incorporate code like the output switcher script I have detailed into SP and maybe have a panel to allow switching. The script is essentially similar to the run_post_start_commands, but allowing you to choose different possibilities for connections by allowing you to change the 'hdmi' to 'usb' or 'audio' or 'bluez_output' I can add a bit to the Build instructions describing how to run under pulse rather than pipewire. I also have to add the startup script mentioned above to the distro, and also a change to pi-build_gui.sh adding an environmental variable QT_INSTALL_LOCATION=/usr/lib/qt6 just before it calls gthe linux_build_gui.sh script. to set the location of the installed qt6 packages. This is fine for Rpi but may be more problematic for different linux distros to add as the location may vary, Would you prefer a separate Using Sonic Pi on Raspberry Pi document rather than having everything in the build documentation as I have done so far? EDIT I did try to load the old 3.2.2 deb file which is on debian, but it screwed up my OS. Not sure why, and I'll try again, but once I have another SD card set up to experiment. I will examine the contents to see what packages it tries to install. |
Hi @rbnpi, Why would someone want to change to pulse audio anyway? If you have to change the settings in Also, perhaps dev...porras:sonic-pi:pipewire is a better approach by @porras? This autodetects things rather than having to manually edit toml files. With respect to patching v3.2.2 - could we get away with something like dev...porras:sonic-pi:pipewire there too? I personally think we should just focus on one audio system going forwards - pipe wire. Trying to support multiple systems feels like too much of a headache. |
Yes I have. Wrote comments on the PR you asked me to review.
Robin
… On 29 Oct 2023, at 21:09, Sam Aaron ***@***.***> wrote:
Also, and perhaps most importantly, shouldn't we be using pipewire-jack instead of jackd in Jackbooter?
@porras <https://github.com/porras>, @rbnpi <https://github.com/rbnpi> have either of you already tried this?
—
Reply to this email directly, view it on GitHub <#3345 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/ABKUHCI473ZUT5UXB7IBTFLYB2ZYFAVCNFSM6AAAAAA6SX4OXGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBUGIZDKOBUGM>.
You are receiving this because you were mentioned.
|
Could you share a link to that here - I can't seem to find it. |
Oops my mistake. I only looked quickly at your previous comment and thought it was referring to your changes to daemon.rb I have tried the @porras version now and it seems to work, I take his point about allowing for out_10 possible connedctions and changing the match condition. I think his code is a bit neater than mine. |
If I'm not mistaken, it is not necessary to boot anything when using pipewire. Pipeware itself will be running since system startup, and that's enough for jack clients to connect, as long as they use pipewire's ABI compatible So imo BTW, would it help if I actually create a PR for my branch or would it add more noise? |
Please do! I think it would also make sense to explicitly skip JackBooter on Raspberry Pi OS too. If necessary I could add the toml config stuff on top to allow explicit choice during boot in the future - but let's see how far this gets us. I'm all in favour of reducing the surface area on Linux, so going pipe wire only feels like a very sensible move. |
add new audio-settings config "linux_use_pipewire" which if set to false will revert the audio back to pulse audio.