MIDI Learn

Discuss Lemur and share techniques.
Mr_X
Newbie
Posts:12
Joined:12 Mar 2015 19:47
MIDI Learn

Post by Mr_X » 17 Mar 2015 22:36

I'm planning on building a design with Lemur that uses a lot of Sysex. It seems like Lemur doesn't have a MIDI learn function natively, so is there a script or any workaround to allow me to have Lemur "learn" the sysex strings? I would like to have my design learn the sysex and then edit them to add the value variable (x) as needed.

Traxus
Regular
Posts:216
Joined:30 Nov 2012 06:19
Location:Detroit
Contact:

Re: MIDI Learn

Post by Traxus » 18 Mar 2015 18:29

Not from my understanding.

Your midi listen scripts have to be supplied with hard, non dynamic values for channel and note/cc value (ie, they cannot be variables, I would love if they could).

There might be a snowballs chance in hell that you could run a giant catch all midi listen script (channels 1-16, CC 0-127... channels 1-16, notes 0-127)... and then store these inputs in an array of arrays (yo dawg...) that keep track of their target object/function, whether or not they have been mapped etc... However, this would have to be some highly iterative logic and would likley introduce a ton of latency as Lemur would have to sort out where the midi input was mapped to prior to actually sending/receiving the midi signal.

My thoughts, this would be awesome if it worked but probably too resource heavy thus not worth the time in development.

Mr_X
Newbie
Posts:12
Joined:12 Mar 2015 19:47

Re: MIDI Learn

Post by Mr_X » 19 Mar 2015 00:25

Thank you for your reply.

Only interested in Sysex at this point, not notes or cc stuff. MidiDesigner can learn any MIDI message, it's a shame Lemur has fallen behind.
I'm really surprised nobody else is asking for this functionality.

Traxus
Regular
Posts:216
Joined:30 Nov 2012 06:19
Location:Detroit
Contact:

Re: MIDI Learn

Post by Traxus » 19 Mar 2015 04:17

ah sorry I mis read your OP... sounded like you wanted a dynamically re mappable template?
Mr_X wrote:MidiDesigner can learn any MIDI message, it's a shame Lemur has fallen behind.
There is a ton of room to improve, but there is no way it has fallen behind. Despite it's short comings as a language, I'll still take Lemurs scripting capabilities all day long.

Macciza
Regular
Posts:1325
Joined:07 Dec 2011 04:57
Location:Sydney, Australia.

Re: MIDI Learn

Post by Macciza » 20 Mar 2015 01:55

MIDI learn of CCs and notes is easily achievable, I posted an example ages ago ...
MIDIAARGS learn of Sysex does not really make sense though...
Sysex message is different outgoing compared to incoming, can cover numerous parameters etc
Why are you particularly wanting to use sysex? And how where you thinking of doing it? What device?
iMac 2.8G i7 12G 10.6.8/10.7.2, Legacy Dexter/Lemur, Liine Lemur/iPad2, KMI SoftStep, 12Step & QuNeo , B-Controls, Mackie C4 etc
MaxMSP, Live Suite, Native Instrument stuff, etc Modified Virtual Guitar System etc All Projects/Modules © CC-BY-NC-SA[*][/b]

Traxus
Regular
Posts:216
Joined:30 Nov 2012 06:19
Location:Detroit
Contact:

Re: MIDI Learn

Post by Traxus » 20 Mar 2015 17:58

Macciza wrote:MIDI learn of CCs and notes is easily achievable, I posted an example ages ago ...
off topic, but where? did you run a catch all midi listen script or some other magic?

Phil999
Regular
Posts:932
Joined:11 Jan 2012 01:53

Re: MIDI Learn

Post by Phil999 » 20 Mar 2015 21:22

in a script executed on MIDI input you can already filter the incoming MIDI message. You surely know this already. Then you can receive (and save) incoming MIDI data with MIDI_ARGS.

MIDI_ARGS[0] is CC number or note number.
MIDI_ARGS[1] is CC value or note velocity.
MIDI_ARGS[2] is MIDI channel.
Formant+Eurorack, PPG wave 2.2, Korg MS-20, etc., EWI 4000s, QuNeo, etc., Mixbus32c, u-he, MadronaLabs, Samplemodeling, NI, etc., iPad2/4/Pro

Mr_X
Newbie
Posts:12
Joined:12 Mar 2015 19:47

Re: MIDI Learn

Post by Mr_X » 20 Mar 2015 23:48

Thank you for your reply.
Macciza wrote:MIDIAARGS learn of Sysex does not really make sense though...
Sysex message is different outgoing compared to incoming, can cover numerous parameters etc
Why are you particularly wanting to use sysex? And how where you thinking of doing it? What device?
The sysex messages I'm planning to work with are for the Yamaha digital mixing consoles. Every parameter on their mixing consoles sends out a specific sysex message, and if that same message is sent to the console, it will change that parameter.
There is a fixed structure to their sysex messages.

In a perfect world, I would be able to press a button below a fader or control on the Lemur design, the design would "listen" for the incoming sysex message, and when received, it would store it as the message for that fader or control. Then, when the control is moved, the same sysex message would be sent back, with the fader/control value inserted at a specific spot in the sysex message.

I have done years of this sort of MIDI programming with PCs in the .NET language but am interested in building a design using the iPad, but have no programming experience on iOS.
Before Lemur, I was trying MIDIDesigner, which has a learn function (when editing a design only) which worked fine, but there are limitations to how it handles sysex messages and the way some controls operate. I was hoping that with Lemur I would have more control, but now I'm not sure what I want to do will even be possible.

Macciza
Regular
Posts:1325
Joined:07 Dec 2011 04:57
Location:Sydney, Australia.

Re: MIDI Learn

Post by Macciza » 21 Mar 2015 02:16

Traxus - LeLearn https://forum.liine.net/viewtopic.php?f ... arn#p16331

MrX - Ok, so Realtime Sysex, thats a bit different . . .
From memory you could also set Yamaha mixers to send CCs for controls, might be easier . . .
Without researching too much if the sighs stuff is standard then very little data is changing between various controls, so a script could be used to do most of the work but you would have to set appropriate data for all your objects by hand . . .
Might have a bit of a look and see what might be possible for 'learning' . . .
iMac 2.8G i7 12G 10.6.8/10.7.2, Legacy Dexter/Lemur, Liine Lemur/iPad2, KMI SoftStep, 12Step & QuNeo , B-Controls, Mackie C4 etc
MaxMSP, Live Suite, Native Instrument stuff, etc Modified Virtual Guitar System etc All Projects/Modules © CC-BY-NC-SA[*][/b]

Mr_X
Newbie
Posts:12
Joined:12 Mar 2015 19:47

Re: MIDI Learn

Post by Mr_X » 21 Mar 2015 02:51

Macciza wrote:Traxus - LeLearn https://forum.liine.net/viewtopic.php?f ... arn#p16331

MrX - Ok, so Realtime Sysex, thats a bit different . . .
From memory you could also set Yamaha mixers to send CCs for controls, might be easier . . .
Without researching too much if the sighs stuff is standard then very little data is changing between various controls, so a script could be used to do most of the work but you would have to set appropriate data for all your objects by hand . . .
Might have a bit of a look and see what might be possible for 'learning' . . .
Cc isn't suitable in this case, I could go into the explanation if you're interested, but suffice to say that sysex is what I'll be using however I end up solving this.

It would be very much appreciated if you are able to point me towards any sample code or tutorials that would help me figure out how to do what I'm trying to do.

Post Reply