Control Surfaces "secret handshakes"

Discuss Lemur and share techniques.
Post Reply
Softcore
Regular
Posts:1639
Joined:04 Nov 2012 08:34
Control Surfaces "secret handshakes"

Post by Softcore » 07 Nov 2012 10:29

As most of you probably know, sometimes DAWs send some custom midi messages when configured to operate with specific branded control surfaces. To give an example in Ableton Live when you connect a Launchpad and configure in the settings the "control surface", Ableton Live then sends a custom midi message to the midi out specified and waits for a "response" message from the device. So, even if you have created an exact emulation of said device (assignment wise), if you don't know what that midi message is, you cant make your emulation work with the DAW as it is not recognised as such.
Another example is that of Mackie Control Surface with Cakewalk Sonar.

So, I think it would be of great value to Lemur users, to keep a topic here in the forum with any findings on this scope. if you do have one of these devices, using software like MidiOX is going to help you find the "secret handshakes".

I already own a Launchpad and will later on post the message it transmits to Live in order to be used in Launchpad emulations.

wul
Regular
Posts:181
Joined:10 Apr 2012 13:25

Re: Control Surfaces "secret handshakes"

Post by wul » 11 Nov 2012 11:51


Softcore
Regular
Posts:1639
Joined:04 Nov 2012 08:34

Re: Control Surfaces "secret handshakes"

Post by Softcore » 12 Nov 2012 00:59

Damn, NOT being a programmer myself I spent 2 days now trying to figure it out....

This is what I 've come up woth so far....

Sending the following message (decimal values shown) tricks Ableton into thinking there's a launchpad connected - even the red square appears:

176 16 1 240 0 32 41 6 19 38 247 176 16 1 240 0 32 41 6 19 38 247 176 16 1

Analysing the above we have:
1. Sends a CC control change (176) - CC 16 value 1
2.Sends a Sysex message (240) with the following hex values - 00 20 29 06 13 26 F7 (the interesting thing here is that it is very similar to what that guy in the link describes but not identical, I believe due to the fact that the device is "fed" different messages from Ableton Live, in essense this is the important part of the handshake)
3.Repeats the above messages one more time


I also found out by trial and error that if I "wait" for the 176 20 12 (CC control change, CC 20 value 12) message sent from Ableton and then send the above message it works! I'll look into that link for more info! Thanks!

Im thinking of making a true Launchpad emulation in Lemur - a few more tests tomorrow and I will know if I can pull it off! ;)

Softcore
Regular
Posts:1639
Joined:04 Nov 2012 08:34

Re: Control Surfaces "secret handshakes"

Post by Softcore » 13 Nov 2012 12:50

Ok an update on this...

I created on a project the script:

Code: Select all

Execution on - MIDI, B0 (control change), (target), 20 to 20, 1 to 1

Code: Select all

ctlout(0,16,1,1);
midiout(0,{0,32,41,6,19,32,247});
ctlout(0,16,1,1);
midiout(0,{0,32,41,6,19,32,247});
I then created a couple of rows of pads to test it - the upper row of controls in Launchpad transmit CC control changes from 104 to 111 on Midi ch 1
and a row to test the triggering of clips. The first row is Note On from pitch 0 to 7 on midi channel 1.

I then selected my Lemur as a "Launchpad" control surface in Ableton Live and presto, it works. The familiar 8x8 square appears in Live, I can navigate it, I can trigger clips and whatnot. BUT the feedback back into Lemur for the buttons is not stable at all - it works at times then it doesnt and stuff like that. Also, another big minus is that the Launchpad changes its pads colors according to velocities received by Live - this means that a programming genius has to create scripts to change the pads' colors inside Lemur each time the velocity of note-ons received is changed. What velocity is responsible for what color is well documented in Launchpad's Programmer Reference available at Novation's website but Im not a pwerful scripter to make it work in Lemur.
As a sidenote, I also got erratic behavior by trying a user-defined pads matrix and custom PY scripts generated by a web app to accompany this user-defined-pads-matrix (more info here) .
So, since I already have a Launchpad I wont be troubling myself too much with this...If anyone else wants to work on this, let me know if I can help by providing info or testing stuff with my Launchpad - further technical acquiries about the way Launchpad handles midi messages sent to it (therefore what one should expect that Live is transmitting to any device it "thinks" its a Launchpad) can be found in the Launchpad Prgrammers Reference .pdf file available at Novation's website.

Post Reply