Making Live.button behave as momentary

samgreene's icon

Hi,

I'd like to use a midi note or cc to press a Live.button. Currently it takes one press to turn it on and one to turn it off. Is there a way to have it listen to on/off commands and behave like a mouse click does?

Thanks
Sam

samgreene's icon

To clarify, I have created the Live.button and am using the MIDI learn function in Ableton to map to my controller. The controller is sending this data:

04:37:14.996    From Plug 1    Note On    5    22    100
04:37:15.689    From Plug 1    Note Off    5    22    0
04:37:16.915    From Plug 1    Note On    5    22    100
04:37:17.576    From Plug 1    Note Off    5    22    0

samgreene's icon

This is really driving me insane and could ruin my weekend ;) Anyone?

From the documentation, it seems that the button should never stay on - it should just flash for the specified ms time.

Emmanuel Jourdan's icon

At this time there's no way of doing that with MIDI/key assignment, because we don't have a trigger mode. We already have this in our feature request list.

samgreene's icon

Thanks for your reply.
So how does the button work properly with mapping? Am I missing something?
Should I be using another object?

samgreene's icon

I'm sorry, but I'm still wondering about this - is there no way to map a 'button-like' control through the ableton UI? Otherwise I have to hard code all my mappings.

Emmanuel Jourdan's icon

Trigger mode is not supported at this time. This is on our list of things that we want to support, but I can't tell you when or if it's going to be available. In the meantime, you can still fake it using a pattr object (if you want to automatize it) and some select object.

samgreene's icon

Thanks very much - I'll look forward to that!

Macrostructure's icon

I hope I understand correctly

I think you can do this with a Max messagebox containing "bang" cross wired back to the input of the Live buttton. It doesn't go into an on/off loop, it just fires the once and re-sets the button back to off. It's quite cool. I have this working in a patch for re-setting track sends that I'll be posting up on maxforlive.com soon.

Cheers

ms

S4racen's icon

I'd like to see that, i've never used a pattr before and the APC40 has it claims momentary buttons for stop clips but when you map them they become toggles which i can't seem to change with M4L..... Help anyone?

Cheers
D

JuanSOLO's icon

All I have been able to get is more of a one shot button, not really momentary. I am still on the hunt for a solution to this one.

I dont quite grasp how to make pattr object "fake it"

S4racen's icon

I've got it working with the APC as if you observe what state a button is in it will tell you with a 1 when it's pressed down and 0 when you release it....

Can't do it with midi mapping though only through the control_surface live path....

Cheers
D

JuanSOLO's icon

I saw someones patch on the Ableton forums that is using this method to make the Solo's momentary, is that a correct comparison to what you are talking about?

S4racen's icon

No in that version he's calling a set call to the live api, the buttons on the apc when in ableton mode 1 are momentary so you just need to observe there state, this can then be tapped to give you momentary control....

Have a look at Mike Chenetz's launchpad tutorial patches and you'll see how to observe them, then you simply connect the output to a live.text button and then to a toggle....

Cheers
D

bennyG's icon

So I've been having a problem where if I press a live.button too many times, too quickly it starts acting like a toggle instead of a momentary. I've been substituting live.button for live.numbox. When you map it, it acts the same as live.button no matter how fast you press it.

It looks stupid, but im only making utility type things for myself, so it doesn't bother me too much. I know I could always hardwire it, but... meh.. Lookin forward to that being fixed though.

Oni Shogun's icon

I was looking for a similar solution, and I have found a fantastic one.
I can now assign a button to a shift function in Ableton (without MIDI Learn), which sets all incoming button messages from my controller to momentary as long as the shift button is active.

M4L cannot access external MIDI ports by default, there is however a way to set up a patch that hijacks incoming MIDI messages from any port before they reach Ableton Live (and the custom MIDI assignments within it!!) — the patch and further file installation instructions are to be found here: https://cycling74.com/forums/m4l-midi-lib-unrestricted-midi-io/
This basically allows for reshaping incoming MIDI messages before they actually reach Ableton and transform them before they go back to the controller in use. Bombastic.

in order to set any button's messages to momentary alignment, one has to merely unpack the incoming MIDI message and pack it again after setting the incoming velocity to 64, this way a toggle function of a Live button will get a switch message again when the button is released (its 0 message is turned to a 64 message).
The incorporation of a shift button additionally allows gated routing and choice between momentary function and the usual toggle mode. Hijacking the outgoing MIDI message from Ableton then again enables individual LED feedback, i.e. blinking red when pressed etc.

very revealing and utterly practical. Best of luck!

kflak's icon
Max Patch
Copy patch and select New From Clipboard in Max.

Solved! However, I am very disappointed that Ableton still hasn't delivered on the promise to support trigger mode...

11OLSEN's icon

@kflak this doesn't work if you try to record and play an automation for the momentary button. the second bang is interpreted as an input that breaks the playing automation.

kflak's icon

@11olsen: Suspected that it might mess up stuff, indeed.... Filthy code...Thanks for pointing it out!

11OLSEN's icon

In the meantime, you can still fake it using a pattr object (if you want to automatize it) and some select object.

@Emmanuel Jourdan Yes, I want to automatize it. Can go into greater detail please ? Since this was on your list 2009, i guess it isn't anymore.

11OLSEN's icon

i noticed this problem also with vsts. i cannot automate certain momentary buttons of vst plug-ins in Live without breaking the automation. I'm so sick of finding this kind of absurd limitations under the surface..

11OLSEN's icon

On the other hand the limitations force us to become great workarounders. I added a button to my device to switch off the momentary mode in case a automation is played back. Because the "second bang" method seems to be working good except the automation..
And automation of the momentary button of a vst now also works after routing it to a macro.

Shane's icon

Momentary can be achieved it seems only by using a CC and not a midi note. For the launchpad it looks like this is possible with automap, for the apc40 you need to make a patch in max proper before live to hijack the notes. It's a real bitch I know

Arthur Sauer's icon

This does it for me

Max Patch
Copy patch and select New From Clipboard in Max.

11OLSEN's icon

Any chance this has been addressed in Live 11 ? It's on the feature request list since 2009!?

oddeo's icon

Same question as @11OLSEN! It's still needed.

Schlapbe Flach's icon

oh wow, I am just starting M4L. An this became issue is bothering me. I searched and I can't believe it is still not working.....

D_Lo's icon

+1 for a live.text / live.button trigger mode pretty please!

hepi's icon

+ 1,000,000 !

This is insulting that it doesn't work 😒

Dr Sogo's icon

This is my solution. Work clicking mouse and mapping midi controller and key on Live.

Max Patch
Copy patch and select New From Clipboard in Max.

11OLSEN's icon

Stop posting the "button bangs itself way" as "solution", it's a compromised workaround with limitations.
It is not solving the problems when recording/playing an automation with this button.
It is not solving the problem that led feedback on a control surface still acts like a toggle.
It is not truly momentary because we aren't notified when the button is released.

Dr Sogo's icon

11Olsen, I just posted a way that works for me.
This is a community and we help each other, maybe my solution will work for someone else, or maybe not, no matter.

So just calm down, if you want to contribute with another method someone will probably check it and maybe it will work for her/him, or maybe not, no matter.
That's how it works
Peace ✌🏻

11OLSEN's icon

No need to explain the community to me. It's just that you present a solution, add it to an old thread, everybody part of this thread gets an e-mail. I come here and copy and paste your patcher into my Max, only to realize it is the same that already had been posted in this thread 3 times, the first one in May 2014. So that was a little waste of time for me.
peeze

MartIn 's icon

Early 2025 and there´s still no way to midimap a momentary button that sends a 1 on press and a 0 on release. I love Max but this is kind of sad, unless i´m missing something, then i´d be happy if someone would let me know!

Roman Thilenius's icon

25 years ago there were two options: write your own midibutton - or wait 25 years. those who have chosen option #2 have lost the game.

Source Audio's icon

All buttons are a misery, no matter if in max or live,

even worse that mapping stuff.

Roman Thilenius's icon

it is nice that some objects have something like that built-in, but it is even better if you control all mappings in a central place where you can add various extra features.

zangpa's icon

Agree with Roman. I have been using the APC40 since its release, and made a simple Max patch that remaps all the faders and buttons before sending it to Ableton. As long as i run this patch in the background all the time, I am in control of what midi values is getting sent to Ableton. I can also map the same APC faders to a bunch of parameters in Ableton and use the APC buttons to switch which parameter the faders will control.