Houston4444 / RaySession

Session manager for linux musical programs
GNU General Public License v2.0
168 stars 20 forks source link

Some issues with PipeWire as Jack replacement #123

Open joshuarubin opened 3 years ago

joshuarubin commented 3 years ago

Forgive me I know this is vague and I may not be reporting this to the proper project, but maybe you can help. I'm trying to switch to pipewire in place of jack. My session seems so close to being able to work, but it won't. My session is very simple, just setting up some connections and starting a mixer (either jack_mixer or non mixer).

There are two issues:

  1. Jack Connections are made and I can see them in the graph, but they don't actually work until I manually remove and re-add them. My guess is this is a pipewire issue, so I'm not too hung up on this. If you have any ideas or suggestions though, they would be very welcome.
  2. There is a problem with saving the mixer state. This happens with both mixers. The session manager can see that they are dirty. I can click save and see in the session debug logs that the mixers receive the request to save state. They just don't. This doesn't seem to have any interaction with jack/pipewire, so I'm not sure what the issue could be. When I click save from the mixers themselves, same thing, nothing gets saved to the session. I'm at a loss for what this could be. Seems like this is all osc interactions. Any advice would be appreciated. Happy to provide logs or debugging as directed.

Thanks for a great product!

Houston4444 commented 3 years ago

Hi. Thanks for the ticket, all apologies for this so late answer. I didn't tried pipewire and this is obviously something I plan to do (try pipewire and RaySession interactions of course).

  1. I suppose this is a pipewire issue, but of course, I can't be sure. I really don't know how to fix this for the moment.
  2. This is very very strange. Save is made by an OSC message from server (ray-daemon here) to the client (jack_mixer or non-mixer), and it has absolutely no relationship with the audio server. I suspect a network configuration issue.

In all cases, if something doesn't works correctly, a good thing is to try to do the same with new-session-manager and see if the behavior is the same. even if in that case, I doubt that it will be different.

Cheers

richardhenwood commented 3 years ago

FYI: I'm playing with RaySession too - on Fedora 34 x64_86... so I think I'm also experimenting with PipeWire. I too have observed '2' the Jack Mixer not saving... I am very new to linux audio, but have done some hacking before... Reading this line in Jack_mixer:

https://github.com/jack-mixer/jack_mixer/blob/53916a2837625606cdebdb517d7a9109a76d90f2/jack_mixer/app.py#L1151 if not mixer.nsm_client and args.config:

It looks like it is only expecting the config file if it is not running in NSM client mode. Looking at RaySession, it seems it is expecting jack_mixer to need a 'hack' to work properly. I removed the hack by editing the ray session xml, so it looks something like this:

<client name="jack_mixer" id="mixer_2" executable="jack_mixer" desktop_file="jack_mixer" gui_visible="1" launched="1"/>

and it seems to be able to save now?

Houston4444 commented 3 years ago

@richardhenwood , jack mixer is launched without NSM support because RaySession can't know which version of jack-mixer is installed, see https://github.com/jack-mixer/jack_mixer/issues/129 .

simply start jack_mixer from "Exécutable" button to launch it with NSM support.