View Issue Details

IDProjectCategoryView StatusLast Update
0009732ardourbugspublic2024-06-27 07:09
Reportermatthijskooijman Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Summary0009732: OSC `/strip/select` command only works when passing 0 as value
DescriptionThe `/strip/select ssid state` OSC command gives feedback as expected: state = 0 means the given strip not selected, state = 1 means the strip is selected. However, when using this command to select a different strip, it only works when passing state = 0, e.g. `/strip/select 10 0` selects strip 10, while `/strip/select 10 1` does nothing.

THis was previously pointed out on the forum at https://discourse.ardour.org/t/gui-select-via-osc/110339/2, and I have seen the same behavior in Ardour 7.5.0.

Looking the code, the handling of this message has the following code: https://github.com/Ardour/ardour/blob/ac159d899bf57e2022872c06d28c0e33b11fc7ce/libs/surfaces/osc/osc.cc#L3961-L3962

                                //ignore button release
                                if (yn) return 0;

Here, `yn` is the state value passed. I previously suspected that this is accidentally reverted and should read `if (!yn) ...` to ignore state = 0 typically set on button release. However, looking at the git blame, I see this line was seemingly intentionally inverted in commit https://github.com/Ardour/ardour/commit/7633005a2294456d013ea0891e8337d257b8a1bd by Len Ovens. I do not quite understand what that commit is trying to achieve and I wonder if this line was maybe accidentally commited, since it seems unrelated to solo control...

Also, fixing this now would potentially cause breakage for clients that have adapted to the new behavior (but seeing that this was broken only two years ago, maybe it would be fine to just fix it again now).
TagsNo tags attached.

Activities

matthijskooijman

2024-06-27 07:09

reporter   ~0028803

Note that the docs still seem to document the behavior before the linked commit at https://manual.ardour.org/using-control-surfaces/controlling-ardour-with-osc/osc-control/:

/strip/select ssid y/n Where y/n = 1 for select. Sets both GUI select and strip to expanded mode. (0 is ignored)

Issue History

Date Modified Username Field Change
2024-06-27 07:05 matthijskooijman New Issue
2024-06-27 07:09 matthijskooijman Note Added: 0028803