🔥 Lifetime deal! Get Control Surface Studio for Just £67 👉 Click Here To Get It
Time left... mailtimers.com
⚠️ Lifetime licenses are ending soon, get yours before they're gone ⚠️
Your shopping cart is empty.

Highlight Navigation Relative to Session Box

Submitted by picky-picasso on Tue, 04/05/2022 - 08:42
Pro User
Control Surface Studio User

I think I can use Reactions to do this, but is there not a simpler (more elegant) way to highlight eg the first track of the session box?

Barring that, how would I do this using reaction?

'Listen' to the select-relative-to-session button1
Highlight Track x, where x is track one IN the session box.

Topic Category: 

15 Responses


Forum Admin

To do this you would need to use the modifier option in the 'highlight navigation' mapping type, and then use reactions to set the modifier to the correct value.

I've attached a script to do this. Set the 4 'Highlight Navigation x' mappings to your buttons, you will see that each of these are using a modifier for the track number. These modifiers are set/managed in the reactions named 'modifier - track x relative to sess box'.

Pro User

Thanks so much Joihn!!!

I wasn't sure if 'offset' would work - because you can also set the 'offset' of the box, so I did need that bit of code.

I'm VERY stingy with Modifiers, because they're so versatile, so I was loathe to use up 8 just for this. I skipped them and did it by adding reactions for the 'select' buttons where - when the button is pressed -

SelectSessionTrack1: self.set_highlighted_track(self.get_sessbox_track_offset())
SelectSessionTrack2: self.set_highlighted_track(self.get_sessbox_track_offset()+1)


It's actually more elegant as it avoids tracking the session box (since the offset is a stable environment variable.)

Control Surface Studio User

Hey guys,
I am searching a solution for the same issue. For me it is not really clear what you do based on the uploaded script. Using the modifier makes "sense" but how look the other settings? Could anyone of you upload a pic of the settings?


Control Surface Studio User

@Pro User, can you provide more detailed instructions as to how you accomplished this? I haven't been able to get it to work using John's directions.

Control Surface Studio User

Additional Note: Right now I am using Highlight Navigation to select tracks, and a Session Box that includes all 12 channels on my Faderfox MX-12. This method sends feedback to the MX-12 which overrides the toggle and keeps the LED light on. Switching is very simple and I always know which track is selected from the LED light.

However, it is not clear how the Highlight Navigation can follow the Session Box. I have three Session Box Navigation triggers for a total of 36 tracks in Ableton. Under these conditions, what is the best method for track selection that follows the session box? Seems like there should be a simple solution, as I would imagine this kind of control is very common. A clear explanation would be most appreciated! Thanks!!!

Control Surface Studio User

I need a reply too...

Control Surface Studio User

What i do is that i organize my tracks in groups, assign modifiers to the groups and set the Session boxes in relation to the group via modifier. Then you can also do the Highlight stuff in relation to the modifier and it all works together.

Control Surface Studio User

Hello, can you explain, I don't understand how to do this......

Control Surface Studio User

The settings are dependent on the controller you are using and also the size of the Session Box.
John's example uses a Session Box with 4 tracks. The 'Highlight Navigation x' are assigned to buttons and 'Session Box Navigation 1' is set to an endless encoder. Depending on your hardware you can/have to change those settings. You will have to use the available controllers of the "Controller Template" you are using.

Control Surface Studio User

If I am not mistaken, you only have to make a 'Reaction' for the 12 buttons and paste in the code for each button.
For instance:

  • make a 'Reaction' and call it for instance 'SelectSessionTrack1'
  • add a listener (button 1)
  • add an action and now you have two options:
    • click the 'Switch to custom' button and enter 'self.set_highlighted_track(self.get_sessbox_track_offset())'
    • or select 'Script' and then 'set selected track' then select under 'Action Parameters' select 'Custom Code' and paste 'self.get_sessbox_track_offset()'

Do the same for the other buttons like in the screenshots hereunder.
Hope this helps

Control Surface Studio User

Really awesome way to not get lost in the groups/tracks!!!
I will use this feature in my group-heavy als-files
Thanks for this great tip!

Control Surface Studio User

This is amazing. Discovered this issues 20 minuets ago, and already fixed. Thanks for the smart workaround and simple explanation!

Control Surface Studio User

I have all my modifiers for track numbers Name dependend. So as long as i have my important tracks named right it attaches everything right. Combine that with clyphx which is also name sensitiv you get sessions with 100+ tracks under control on a single midi controller.

Control Surface Studio User

Hi, I'm now trying to have LED feedback "follow" my track selection.... so with the above explanation I can now select tracks using Reactions, but once selected my LEDs now don't light up (I use Novation Launchcontrol XL, and trying to get the bottom row of buttons to turn red on the selected track in relation to the Red Box), so I want to know (without referring to Ableton) which actual track is selected from the controller.

So the simplest way I could think of achieving this is when I select a track in Ableton it auto-switches the record arm to move to the currently selected track (using the options.txt file), so what I'm trying to do is just get the controllers LED to follow the record arm... maybe there's a more elegant way??

Thanks for your help in advance, pretty novice at Modifiers and reactions, and can't seem to find a video ir community chat referring to this.... Thanks

Control Surface Studio User

Scratch that request, I've just created track mapping and done it that way. Sorry, that was a really newb question.

I have two more issues:
1. Hidden tracks, I'd like both the track selection and LED feedback to ignore hidden tracks... is that possible with the above method using Reactions and "self.get_sessbox_track_offset()"

2. Can I link my Red box with my Push (using Push in the standard way, not with a custom script), and my Red Box with my CSS script and LaunchControl XL? So they both follow each other?

Thanks again in advance.