Note-Off on pending launch clips not sent to remote devices

UHE is now closed. For Technical Support from Ableton, please go here: http://www.ableton.com/support
Locked
tumult
Posts: 18
Joined: Tue Nov 22, 2005 7:41 pm

Note-Off on pending launch clips not sent to remote devices

Post by tumult » Sun Dec 16, 2007 9:50 am

I'm writing software for controlling Live 7 through a custom hardware interface. I've run into a bump: Live does not send the a note-off message for a clip that is pending launch if it ends up not actually launching. Let me give you an example of why this would be a problem:

Three clips – A, B, and C – on the same track are assigned via MIDI to buttons 1, 2, and 3, respectively, on my controller.

I press button 1 and clip A starts playing immediately, since playback was stopped. Live then sends MIDI note-on with velocity of 126 (clip is going to launch) followed by note-on with velocity 127 (clip is on) to my controller via the note assigned to the button (it doesn't matter which note, Live gives a note to each button).

Then I press button 2, and clip B is preparing to launch. There are still a few beats before it launches, but before it does, I press button 3 and then clip C is preparing to launch. After playback reaches the next bar, clip C launches. Clip B never launched.

This is where there is trouble. I get note-on with velocity 126 for button 2 after pressing it, and then I get note-on with velocity 126 for button 3 after pressing that one. Once clip C (button 3) launches, I get note-on with velocity 127 for it.

Where is the problem here?

Consider if my controller has three lights per button/clip: red for off, yellow for preparing to launch, and green for playing. If I do what I did above, button 2 (clip B) will stay yellow and never turn green or back to red, because it never gets a note-off. Only button 1 (clip A) gets a note off; button 3 gets a new note with velocity 127 because it successfully launched, so you can figure out when to change its status. But button 2 never gets any sort of status update after clip C (button 3) was made to launch instead.

This might sound like a far-fetched situation, but really, if you have a custom controller and you're triggering clips with it and expecting visual feedback, this will happen constantly. I'm looking at a lot of "yellow" lights on my control board right now. You could say "so don't use velocity 126/pending clip status events" but then why does Live offer that pending/going-to-launch status functionality to begin with, if it's (from what I can tell, anyway) apparently useless?

How does the monodeck work with it like this? Am I missing something here? Did Live have a feature regression, or has it always been like this?

Locked