sonic-pi-net / sonic-pi

Code. Music. Live.
https://sonic-pi.net
Other
10.84k stars 923 forks source link

arch linux: how to use pipewire-jack / jack #3413

Open kootenpv opened 3 months ago

kootenpv commented 3 months ago

When I try to use pipewire-jack (as elsewhere suggested), the server script gives the error that jackd is not installed.

Server Errors
-------------
**/home/pascal/.sonic-pi/log/server-errors.log**
sh: line 1: exec: jackd: not found

When instead I use yay -S jack2 (forcing the removal of pipewire-jack), then it complains that jack server is not running.

Can anyone give me a clue how to get any of the 2 working (and maybe a recommendation between whether to use jack2/jack or pipewire-jack)?

kootenpv commented 3 months ago

I basically now have the GUI running but there is no sound, I still think it's related to the above

idommason commented 3 months ago

HI

I think when I had this problem in Linux Mint I installed a package (Mint name, probably different in Arch / Manjaro)

pipewire-audio-client-libraries

and I uninstalledpipewire-media-session

Also when diagnosing my silent playback on my first attempt to get Sonic-pi v4.50 working, I found using qpwgraph to show whether the audio connections were being made was a really useful tool.

I also found that installing wireplumber made the connections for me automatically

So what you can do is start up qpwgraph first, and you won't see supercollider in there

Start up SonicPi and see if your audio connections appear

I think that to get Pipewire working on linux mint anyway, I followed this Arch wiki page to Pipewire anyway

https://wiki.archlinux.org/title/PipeWire

idommason commented 3 months ago

Also you might need to make sure pipewire is running as a user program

systemctl status --user pipewire

and if it isn't then enable it as a user program

systemctl enable --user pipewire

This is also a good reference for getting wireplumber and pipewire working together

https://www.baeldung.com/linux/pulseaudio-pipewire-replace

kootenpv commented 3 months ago

Thanks for trying to help, so basically it looks like it was also working just fine:

$ pactl info | grep Server
Server String: /run/user/1000/pulse/native
Server Protocol Version: 35
Server Name: PulseAudio (on PipeWire 1.2.2)
Server Version: 15.0.0

but still no sound.

I also tried Supercollider itself, and that does work immediately, so it somehow seems to be an issue related to sonic-pi

idommason commented 3 months ago

Hi

I've just installed the latest Manjaro VirtualBox VM (on a linux mint Host OS) and then installed sonicpi (v4.5.1) via Flatpak, and it did just work

And I get exactly the same out put as you did from

pactl info | grep Server

Does your pipewire install try to output to HDMI, or bluetooth, as I read something about fixing that issue on a Raspberry Pi

What does qpwgraph tell you? This is what I get when running SonicPi. Wireplumber made all those connections from SonicPi to my default audio outputs

qpwgraph

kootenpv commented 2 months ago

this is when playing a youtube video in which I do hear sound

image

this is when I play sonic-pi but don't hear anything

image

@idommason so I guess you're right! It looks like it is sending to HDMI... how can I change that?

idommason commented 2 months ago

Hi

Theoretically you should be able to disconnect the hdmi outpuits using qpwgraph, and drag them to the normal default output, but I can't test

This post suggests similar running Debian bookworm and Sonic Pi on a Raspberry Pi

https://in-thread.sonic-pi.net/t/no-sound-in-sonic-pi-4-5-raspberry-pi-bookworm/8469

Sorry,I can't test as I don't have a HDMI monitor with me at the moment

kootenpv commented 2 months ago

@idommason this totally worked!

so how can I use a command instead, which allows me not to have to do this rewiring every single time?

idommason commented 2 months ago

I can't really test this, but this discussion with an earlier version of sonic pi says that you have to change the default sound output first, before starting sonic pi

https://in-thread.sonic-pi.net/t/no-audio-through-headphone-jack/4549

and this arch linux thread

https://bbs.archlinux.org/viewtopic.php?id=272777

says to install pipewire-pulse and pavucontrol and use that to set the default output

kootenpv commented 2 months ago

Thanks a lot again

I can't really test this, but this discussion with an earlier version of sonic pi says that you have to change the default sound output first, before starting sonic pi

https://in-thread.sonic-pi.net/t/no-audio-through-headphone-jack/4549

apparently it looks like it is not ALSA based so this didn't do anything

and this arch linux thread

https://bbs.archlinux.org/viewtopic.php?id=272777

says to install pipewire-pulse and pavucontrol and use that to set the default output

as suggested in the thread, pavu control shows up in playback but changing the default didn't make a difference, even when restarting both programs in turns multiple times, it's rather frustrating

also qpw gui can't restore previously loaded graph, couldn't have imagined audio stuff is so annoying on linux

idommason commented 2 months ago

Hi I think this probably needs the actual Sonic Pi devs to get involved, but on the other hand I think it is is an issue with linux and pipewire, not a specific issue with Sonic Pi

but it would be useful to have something in the FAQs

I built Sonic Pi from source on a Linux Mint system back in February 2024, and that is where I found the issue with pipewire, being the 1st time I;d moved from pulseaudio to pipewire

At the time I found an article describing how to change the default sound output on a Raspberry Pi, plugged into a HDMI monitor, to swap it into playing sound over bluetooth headphones

That would seem to me, to be the same sort of issue you are having. I didn't bookmark it, because that wasn't my problem, my issue was pulseaudio and pipewire, and disabling the user sessions of pulseaudio.

I think this is the document I found

https://in-thread.sonic-pi.net/t/no-sound-in-sonic-pi-4-5-raspberry-pi-bookworm/8469

I quote "shows how to configure the audio path for Sonic Pi."

That has a link to a youtube video in the reply

I'm pretty sure that is what I found back in Feb 2024

Hope that helps