Feature request for MIDI message disable.

Sometimes when I'm using the "learn" function in Live, I create the wrong mapping. This happens when one of my controllers sends out an unintended value because there might be some pot or fader jitter, or because I have inadvertently touched a pot or fader. I may not notice the faulty mapping until sometime later when a CC or note in Live is unresponsive, or responds to the wrong message. I wonder if it would be possible to add a function in MT which disables any MIDI messages from being sent temporarily. I see that a related question was asked a couple of months ago, but the proposed solution, involving "Ignore for Next/Previous Preset switching (always active)" seems unworkable for a project that has hundreds of presets.

Hi maybe I’m misunderstanding but can’t you just go to the project file and uncheck any offending presets and or translators until you fix it with Ableton Live?

The other possibility is to put up a new translator ahead of the existing ones that uses not only Swallow but the Stop Processing option. Anything that meets the condition of the new translator will stop immediately and anything below it with the same action will never trigger.

Finally, I often use a global variable in case I want to temporarily disable a given translator. I can then use a separate MIDI message to set the global variable or clear it. Then within the translator, I check if it is set and if it is, I skip outgoing action for that translator. So the first rule would be something like:

if ga>0 then exit rules, skip outgoing actions

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

Hmm, reading further it looks like you want some sort of global way just to shut off all MIDI messages from MT Pro while you use the learn function in Ableton Live? Are you looking for some sort of keystroke. Are you bypassing MT Pro for the learn function? If not, how would MT Pro know which MIDI messages you want to pass through and which ones you do not?
I think I’m getting the gest of what you are asking as you requested something similar with MIDIBuddy. Maybe you want to disable all outgoing MIDI messages except for the translator you are currently working on?

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist
bome@sniz.biz

Ha ha, Steve… looks like some pretty fanciful thinking on my part. You’re right. Shutting down all MIDI message transmission would block the learn function, wouldn’t it. I didn’t think it through.

So, in that light, yes, allowing only a certain translator to send MIDI would help a lot. Another approach might be to block all MIDI out with a keystroke. Then, in order to do the MIDI learn thing, temporarily allow MIDI to be sent, but only the first MIDI message. This would mean I’d have to be pretty quick in moving a control after enabling MIDI, but I think I could do that. Once the desired CC or note has been sent, further MIDI out would be blocked until I repeat the above actions. A bit clunky, but workable.

Gabriel

OK, so I guess the best way to do this is

  1. Create a new project file and translator under new instance of MT Pro
  2. Set it up to translate the MIDI message you want
  3. Move the knob with Ableton Live MIDI learn function.
  4. Copy the translator from the new instance and paste it where you want it in the main file.
    Would this work for you? I think you enhancement request although probably pretty good would not be on the top of the enhancement todo list. I can think of many other enhancements that would take priority over this like:
    – Global variables with meaningful names and more of them
    – Perhaps arrays
    – Better complex boolean logic constructs
    – Ability to create reusable functions
    – An API to communicate with other applications.
    – And of course, some of the things that I put into MIDIBuddy.
    Steve Caldwell
    Bome Q and A Moderator and
    Independent Bome Consultant/Specialist
    bome@sniz.biz

Hi Steve,

I agree that there are more important enhancements that take priority. So be it!

Your proposed solution is clever, though I’d probably be doing it in a reversed order. Since most of my code is written now, what I’m often doing is to reassign MIDI mappings that have already been established. Also, the translators involved have already been written.

So… I’d copy the existing translators to a new instance of MT and do the remapping in that 2nd instance. A complication is that 2 or 3 (or more) translators and/or presets are involved in some of the actions. Still… all in all… I like it!

Thanks,

Gabriel