Button sending a MIDI note sends multiple times with multi-touch

I just noticed the following little issue:

I have created a simple Canvas with two Buttons. These are set to a Script type. The Script On Press is a sendMidiNoteOn command, sending note 0 for one button, and note 2 for the other to Channel 1 on an IAC Driver. It works fine when mouse-clicking the canvas in the floating window on the mac itself. When I access it via my iPad (iOS 15.8.4 - the latest that iPad will run), it also works fine, except as I have made very big buttons for a musician to be able to hit easily, I have discovered if you touch the button with two or three fingers at once, Ableset will output two or three identical MIDI Messages separated by a millisecond or two (as seen in a MidiView capture)! I fear this might cause problems when the MIDI is sending transport control messages to non-Ableton DAWs (as is my application) - especially when they are mapped to a toggling parameter.

It is also quite easy to create a ‘switch bounce’ double-trigger with one finger. Is there any way a ‘de-bounce’ time parameter could be added to Button objects to protect against this?

Apart from that - I am very impressed with how fast Ableset can turn a touch on a remote iPad into a MIDI note being output!

Cheers,

nick

  • OS and Version: macOS 15.7.3
  • Version of AbleSet: 3.0.0
  • Version of Ableton Live: 11.3.43

Hey @njrsound, thank you for reporting this!

I’ll release an update soon that fixes the multi-touch issue.

To debounce a button press, you can add a short sleep command before the actual command, e.g.

await sleep(100);
sendOsc("/global/stop");

When you press a button twice or more, the previous scripts are automatically cancelled, so in this example, the /global/stop OSC command is only sent when the button has been pressed and then hasn’t been pressed again in the 100ms after that.