Global variables to control light colours on midi controller?

Hey guys

I'm trying to get light feedback on My Push 1 controller used standalone through a hub into a Bomebox. I need help with the light feedback and setup side of it.

The basics of the push layout are

The top two rows of pads are track select button for my sequencer (squarp Pyramid). The next 16 are track mutes, next 8 are 'sequence' selectors. Sequences on my sequencer are basically track mute states.

Basically what I'm after is the

--'active' track in the top 16pads to change colour when pressed. Then when I press another it changes back. So only the selected track is a different colour.

--when a track is selected as above corresponding mute pad changes colour to show a track is on that channel

--getting trickier but can I create global variables that can be updated and 'remembered' so when I press a sequence button it's corresponding track mute states are shown in the mute section?

-pads colour changes with oress/ pressure but returns to default colour after.

In order to get a light you send a note on message to the push. Velocity decides colour. I currently set colours for pads as global variables. And send out on a timer.

This is great software and I have only scratched the surface as to what it's capable of. It's achieved exactly what I thought midi was 15 years ago. School me. Please

All help much appreciated




The following project should help get you started. I don't have a Push1 however I've done something similar with an APC MINI and the first 32 LEDs.

I basically use a global variable as a bit map for each LED. Global variables in MT Pro are 32 bits, so I can control the on/off state of each LED with one bit. I use a combination of timers and bit shifting to manipulate the bits.

In this case I'm using g0 as the bitmap for LEDs 0-31 of my APC-MINI.

At project start I set the initial value of g0 which tells me the bit map I want to start with. I then set a count of the iterations in the global variable gc and trigger the timer.

I use the global variable gb as the "on" state color and gc as the "off" state color.

I then iterate the LED's starting at 31 down to 0 evaluating the state of each bit. I set the default state to off (gb). If the bit is a 1 I change the state to the on state (ga). I then send the note at the velocity based on the bit state.

When pushing a button, I capture the value of the incoming note and use that to determine which bit to change in g0. I simply update g0 with only the bit set for the note that I pushed and the set the iteration timer and trigger the timer "Update LED's" again.

This technique works for the situation where you want only 1 bit set. For more complex operations, it takes more logic (ie, setting bits without affecting bits on each side).

Completion of your project is beyond the scope of support here but hopefully I have given you the basic tools if you want to do it yourself. I'm also here to help coach on a given issue.

With that said, I'm available for paid services to complete a project like this for you if you are interested. Just reach out to me via email.

I would need to understand what notes each pad uses on the Push1 and the velocities for their colors along with your on/off color choices.

On my APC-MINI. I have my on-color set to yellow and off color set to red.


Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist



You might try this one instead for push as an example. It looks like the Push buttons are offset by 36 from APC-MINI.  I have no way to test it since I don't have a Push.

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist


Thank you Steve that is exactly the sort of thing I was hoping to hear. Appreciate your help. Hopefully I can do it myself but if I can't then I'll contact you.

Thanks B


Glad to help!