AbletonOSC icon indicating copy to clipboard operation
AbletonOSC copied to clipboard

Request: The red box

Open Coupe70 opened this issue 2 years ago • 5 comments

The red box is an important tool when remote controlling the Live session view. It's part of the remote scripts for all grid controllers like Launchpad, Push, APC, ... I assume you are familiar with it, if not: https://remotify.io/sites/default/files/pre-built-scripts/kuala/red-box.gif

The red box is an API feature, functions are de/activate, size x/y and move up/down/left/right. In the example above it is 4x4, with a Novation Launchpad for example it would be 8x8 and show which 8x8 clips are controlled by the Launchpad. If you move the box by 8 steps the Launchpad shows and controls 8x8 other clips.

See it in action here: https://www.youtube.com/watch?v=3aX-7jmYJJU

It would be nice for AbletonOSC, also to limit the the number of active listeners as you only have to watch tracks and clips that are inside the box at the moment. AbletonOSC could only provide the mentioned visual functionality of the box and leave the handling of the listeners to the client OR assist the client by adjusting some things internally when the box is moved.

Send me a message if you want to go into details.

Coupe70 avatar Jan 13 '23 01:01 Coupe70

I just started having a look at this now. will get back with some updates later this week if successful

MartinSahlen avatar Jan 02 '24 21:01 MartinSahlen

Ok, so by just looking at these files here: https://github.com/gluon/AbletonLive11_MIDIRemoteScripts/blob/main/ableton/v2/control_surface/components/session_ring.py (there is unfortunately some problem with a merge conflict that was not resolved, but its nice to have something to look at - adding the ableton/v2 code to the project might make autocomplete / linting eaaser @ideoforms ?). I was able to produce this:

Screenshot 2024-01-02 at 22 46 15

The code is also injected here, following the same pattern but the auto reload seems to not be fully working, but didnt spend too much time stressing with it.

Screenshot 2024-01-02 at 22 48 18

This produces this result Screenshot 2024-01-02 at 22 48 31

the nice thign is that it seems to work to do things like

  • setting a size, increasing, decreasing and moving it, also even enabling and disabling, as well as getting the currently focused tracks etc. but this proves that it is indeed doable. I will see if I can find time for a PR at some point this week

MartinSahlen avatar Jan 02 '24 21:01 MartinSahlen

Nice @MartinSahlen, keep us posted! Auto-reloads are handled in manager.py reload_imports, and each module you want to reload needs to be specified manually. If you do look to submit a PR, please do add tests for any new functionality following the same format as the existing unit tests (in the tests dir).

ideoforms avatar Jan 03 '24 11:01 ideoforms

I will keep you posted but as @Coupe70 points out it may be good to get some clear scope of what the feature should do. I'm especially keen to understand i.e how much we should expect the box to dictate how AbletonOSC reacts to a change by i.e setting up listeners or whatnot. or even setting up a special routing that would "control" parameters / device or volume on the currently selected channels by the red box. or trigger clips etc. By this I mean - if AbletonOSC would control this we would need an APi that would receive similar messages as the tracks does to control them, but make sure to offset the channels/clips by the current position of the red box.

MartinSahlen avatar Jan 04 '24 15:01 MartinSahlen

There are of course pros on cons and different ways to go about this, but if the goal of the project is to expose as much functionaluty as possible via OSC it would certainly be interesting to build something that would allow us to do "push-like" control easily.

MartinSahlen avatar Jan 04 '24 15:01 MartinSahlen