Increment Decrement Midi message to control Ableton Chain Selector


I had a look at this previous thread and mostly have an in/dec buttons working to control a chain selector in ableton. Ableton Chain Selector has 10 locations across the chain. Chain control is a macro knob in Ableton so as you trun the knob from 1 to 127 it cycles through the 10 selectors in the chain.

I tried the rules as they were written in the thread above but I was having to push the button 3 times to get it to move to the next selector. I modified the rules and added +3 to the calcualtion of pp=ga



if pp>127 then pp=0


This is working very close but not perfect. every few rotations it gets off and moving from the 10th selector back to the 0 selector sometimes it jumps to 1 and skips 0. Any thoughts? I tried to make it 3.175 as the math seems closer for that but the rules wouldn't except a fraction


Hi, each controller will likely need a different global variable to control just the chain selector you want to control. You seem to be using the same global variable “ga” for all of your Chain selectors so any button is going to increment/decrement that same variable.

Also it is unclear whether your CC buttons are momentary or toggle. If momentary, it looks like you will get movement twice for each button. Once when you press the button (value 7F) and one when you release the button (value 00).

It would help if you would capture a log of one of the chain selector and post it so I could see exactly what your buttons are sending and how the rules are working with the incoming messages.

Just check all buttons after opening the log window and pick one chain selector pair to illustrate.

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

I assume you are referring to the translators under preset 4.

Sorry, I'm still not sure about how variables work.  Do they all need to be different across a whole project or just presets?  Yes, they are all set to GA but that doesn't seem to cause any issue.  Bassically I'm using 8 buttons total.  4 increment and 4 decrement.  I set for each of my 4 bass fX return tracks from my looper.  

Yes! all translators in preset 4.  I'm tryign to get better about how I group things in presets.

I posting a pic of a single button push increment and another pic of single button push decrement.

Thanks as always!


Hi, please see the attached.

I disabled all translators that I did not touch

in 4.0 and 4.1 I changed incoming from any value to 127 only (button press). Then incremented and decremented the value by only 1.

I did the same in 4.3 and 4.4 however also changed the global variable from ga to gb.


You can read about global variables and their use in the user manual (F1 or help within MT Pro).


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


Strange, that broke both of them that you left enabled. Now if I push my increment, it jumps to the third position and then back to zero and if I push the decrement button it moves to the 2nd position and stays there even if I push it again.

I did go through and change out all the global variables for the four sets. That did fix an issue I was having where if I pushed 2 increment buttons at the same time they would both move 2 positions instead of 1 and now I can push two together and they both on move 1 position. Still gets jumbled ever three times or so around the chain selector it skips from 10 to 1 and skips 0.

OK, I need to know what happens MIDI is sent by your controller when:


  1. You push and hold button that sends CC 43 (Right now I assume value of 127 or 7F hext)
  2. You release the button that sends CC 43 (Right now I assume value of 0)
  3. You push and hold button that sends CC 42 (Right now I assume value of 127 or 7F hext)
  4. You release the button that send CC 42 (Right now I assume value of 0)

If they are toggling between 2 values then we need to make changes but it is better if you can make them momentary as I am describing above.



Yes, I believe, that is what it is doing. When I push the button and hold it and I get the first 14 lines in the log of the first screen shot I sent. First line looks to me like it is setting to 7F. When I let go I get lines 15 - 30 and the first sets is to 0. Is that what you were asking?

I did read the manual about global and local variables and do think I get the difference now. Thanks for pointing that out! This software so complex! Every time I think I get it, I’m totally wrong

OK so it looks like it is reading the incoming message twice because the preset is looking at all incoming ports.

Set the preset to only look for incoming message from your Push as I have done in the attached and it should work.

Essentially reading from 2 ports means we process the same MIDI message twice so MT Pro thought you pushed the button twice.

This tutorial should help you get the concept of port selection.


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


This is strange. It still seems to work better the way I have it. I tried your project file and it looks like all the active translators are still set to the default ports. I changed the active ones to “Push to Midi 3” and it only made it worse. Increment jumps from position 0 to position 10 and decrement looks like it does decrement but only maybe a single point so it would take 5 or 6 button pushes to get from one chain selection to the next. Maybe this is too complicated for me to sort out.

Just curious, are you familiar with Ableton Chain Selectors? Bassically have a macro knob that moves from 0 - 127 and have 10 positions assigned. In Ableton that means the 10 positions are spread out evenly across the 127 positions of the macro knob. As I see it the increment and decrement have to move by more than one or it is always going to take multiple button pushes to get from one position to the next.

That’s why I thought it worked better when I added the +3 -3.

The really strange thing is, I tried to set my the first two translators in my project in preset 4 to only see Push to Midi 3, that should be where the message is coming in from. When I do that it breaks like your project. I can’t seem to find the specific input port it is coming in on cause anything but the project default ports makes it worse.

Well I took a guess at which port alias you were using. Just either select the port you want or re-assign the alias.