Open ericfont opened 3 years ago
huh interesting. this might be because pipewire gives the same client uuid to both regular and monitor clients. carla reacts to position changes from other compatible clients (ie, 2 carla instances) so there is some oddity happening here. please report this to pipewire
This was discussed on the pipewire IRC and as far as I understand, giving the same client UUID to a client and its monitor is not breaking the standard, but rather a methodical decision. The recommendation pipewire offers to clients that have problems interpreting a separation between regular/monitor ports is to actually enable monitor merging in pipewire. That will create a combined node with both the regular and monitor ports. You can do it selectively to applications that have hard time dealing with it by adding the following to jack.conf:
jack.rules = [
{
matches = [
{
client.name = "Carla"
}
]
actions = {
update-props = {
jack.merge-monitor = true
}
}
}
]
so are you saying it is on the user to manually make such an entry in their jack rules for every jack application they use?
I think it would be nicer if there was one setting that worked globally to always have any jack app's monitor merged.
This was discussed on the pipewire IRC and as far as I understand, giving the same client UUID to a client and its monitor is not breaking the standard
pipewire should check what existing jack implementations do regarding monitor ports and follow it by default. the separate monitor ports as it does now I would say is non-standard. neither jack1 or jack2 behave this way.
so are you saying it is on the user to manually make such an entry in their jack rules for every jack application they use?
I think it would be nicer if there was one setting that worked globally to always have any jack app's monitor merged.
See my post above. Creating a filter rule is a feature that allows you to apply this selectively. You absolutely can turn this on globally. Take a look at jack.conf in the # global properties for all jack clients
. The attribute is already there, you just have to uncomment it.
This was discussed on the pipewire IRC and as far as I understand, giving the same client UUID to a client and its monitor is not breaking the standard
pipewire should check what existing jack implementations do regarding monitor ports and follow it by default. the separate monitor ports as it does now I would say is non-standard. neither jack1 or jack2 behave this way.
Have you mentioned this to Wim? The bottom line is that you maintain JACK1/2, he is the Pipewire lead dev, so both of you are extremely influential in the Linux Audio community. I'm just another ignorant user trying to help and at this point I'm not sure how to sort this out (and obviously whatever I offered is basically a workaround). If you prefer, I can quote the above on IRC when Wim is in the channel and see if he is receptive to it.
thanks netboy for clarifying.
The idea has always been that pipewire is meant (on top of other things) to be a "stock" jack replacement. Whenever something is unclear, pipewire should just follow existing jack behaviour. It has been the case so far, so for this it cannot be any different.
If something works under jack2 but is broken in pipewire, it will always be assumed to be pipewire issue, there is no discussion needed. Anything else would stop it from being a real replacement.
I agree with @falkTX, and so I've reported to pipewire as he initially requested I do: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1760
I used falk's comment as the issue title, because I couldn't think of a better way to put it: "pipewire should check what existing jack implementations do regarding monitor ports and follow it by default. the separate monitor ports as it does now I would say is non-standard. neither jack1 or jack2 behave this way."
I can drag the regular interface rectangle just fine without any side effect. But when I drag the "Monitor" rectangle for that interface, the regular interface rectangle is dragged along with it. The monitor is from pipewire.