View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0009732 | ardour | bugs | public | 2024-06-27 07:05 | 2024-06-27 07:09 |
Reporter | matthijskooijman | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | new | Resolution | open | ||
Summary | 0009732: OSC `/strip/select` command only works when passing 0 as value | ||||
Description | The `/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). | ||||
Tags | No tags attached. | ||||
|
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) |
Date Modified | Username | Field | Change |
---|---|---|---|
2024-06-27 07:05 | matthijskooijman | New Issue | |
2024-06-27 07:09 | matthijskooijman | Note Added: 0028803 |