GNOME Bugzilla – Bug 611040
JACK Audio Server Integration Requires Critical, albeit minor improvement
Last modified: 2010-11-22 12:31:47 UTC
Created attachment 154657 [details] Depicts the JACK control panel where a user must manually connect Rhythmbox's audio sink When using Rhythmbox with JACK audio server the Rhythmbox's JACK audio sink name changes when skipping tracks. ie: L sink name : "out_jackaudiosink0_1" R sink name : "out_jackaudiosink0_2" <skip track> L sink name : "out_jackaudiosink1_1" R sink name : "out_jackaudiosink1_2" <skip track> L sink name : "out_jackaudiosink2_1" R sink name : "out_jackaudiosink2_2" etc. This means each time an end-user skips tracks they must reconnect the new Rhythmbox audio sink within the JACK control panel to continue hearing audio. A HUGE inconvenience! An additional improvement would be to implement a feature similar to VLC where a user can specify within the media player settings to which audio sink the media player shall automatically connect, or to remain unconnected (as Rhythmbox currently operates) by default (unconnected yes, but to remain with a consistent audio sink name). That said, I give kudos to the developers! The JACK feature in Rhythmbox runs more reliably than any audio player I have found to date. Kindly, Shane Reimer
Rhythmbox actually doesn't know anything at all about JACK. It's all down to GStreamer. So, I guess the solution would be for playbin2 to somehow keep the sink in PAUSED state while doing track changes. I'm not sure how practical that is.
By default jackaudiosink will automatically connect its port with physical ports. Are you sure you have no custom config added with gstreamer-properties?
Created attachment 154996 [details] Gstreamer Config
I attached my Gstreamer configuration for audiosinks. When Rhythmbox plays continually through a list it plays nice, the sink name remains the same no matter how many tracks are played. The moment I "skip" the sink disappears and reappears under a new name. IMO, readable clients should not brute force themselves onto the output device because this defeats (in my setup) the fundamental reason for using JACK. I want flexibility to send audio through filters, or pipe them to a recording device etc. and to have an application brute force onto my sound card makes it unusable. The vlc interface is nice in that a user can specify what to bind to by default. My issues with vlc are interface and stability related, Rhythmbox has everything nailed until I skip tracks.
Created attachment 154997 [details] Gstreamer Properties
I think I already know the answer here, but do you have crossfading enabled in rhythmbox?
Thanks for the workaround Jonathan ;-) Previously not. However, when enabled and set to 0 seconds fading, the sink name remains the same.
(In reply to comment #2) > By default jackaudiosink will automatically connect its port with physical > ports. > Are you sure you have no custom config added with gstreamer-properties? For the jack element it would really be useful to keep them in READY (need to test) so that they don't reconnect between songs. I need to make a similar change in buzztard. Even when I stop the playback, I want the jack connection to be there, so that e.g. I can change the routing.
keeping the sink in READY works for me in buzztard. Is this something you can try in rhythmbox. E.g. same think is useful for pulsesink too (just keep a mixer open).
Reopening as the information requested in comment 2 has been provided.
So is there anything left that needs fixing?
Please reopen if there is still a problem.