ideoforms / AbletonOSC

Control Ableton Live 11 via Open Sound Control (OSC)
MIT License
422 stars 70 forks source link

Solo in exclusive state #122

Open zbynekdrlik opened 7 months ago

zbynekdrlik commented 7 months ago

Hi, is there any possibility to set solo on track in exclusive mode - disable all other solos?

CoryWBoris commented 7 months ago

I did some investigating and what I found is that the set solo exclusive mode option is a read only option.

ideoforms commented 7 months ago

I just checked this and @CoryWBoris is spot on - from the Live API docs on exclusive_solo:

If you want exclusive solo, you have to disable the solo state of the other Tracks manually.

So currently, you would need to manually set solo to false for any tracks that are currently solo'd.

I am trying to keep the AbletonOSC API as aligned with the Live API as possible, for consistency and predictability. However, exclusive solo is quite a common and desirable action, and would currently require the AbletonOSC client to either (i) keep track of the solo state of each track, and unsolo each solo'd track when exclusive_solo is required, which requires some stateful logic that might not be possible in some client environments (thinking about TouchOSC); or (ii) simply do a brute-force unsolo of every track, which would require a lot of OSC transactions for large sets. So I think there is some justification in implementing a novel exclusive_solo() method on the Track object to handle this.

@zbynekdrlik What client software are you using to interact with AbletonOSC?

zbynekdrlik commented 7 months ago

Hi, we are using touchosc. I already thought to add clear-solo button which go through all tracks and switch solo off. But as solo could be also on sends and master I am not able to this as I think this support is still not added. Our project has more then 200tracks so it will be very expensive call on touchosc side.