inbound MIDI system exclusive processing

Discuss Lemur and share techniques.
dsorlien
Newbie
Posts:39
Joined:16 Jan 2012 04:28
Re: inbound MIDI system exclusive processing

Post by dsorlien » 04 Apr 2013 01:45

nick_liine wrote:Hi guys,

I've done a few tests. Did not experience the Lemur app freezing however, but I can confirm there seems to be some issues with long SysEx messages with certain hardware interfaces.

iRig MIDI — Confirmed that receiving SysEx is also problematic. SysEx messages are truncated to the first 2 bytes.
iConnect MIDI — Inconsistently truncated, especially with long messags (over 200 bytes).
Lemur Daemon — SysEx messages received flawlessly, up to 248 bytes (included 240 and 247 bytes),

Best,
Nick
Thanks for the response.

I have heard reports that the iRig MIDI provides 100% reliable incoming SysEx communication if the MidiBridge IOS app is used to pass messages between the Lemur app and the iRig interface. I don't have an iRig otherwise i would try the combination.

Why would this make a difference? My theory is that MidiBridge buffers the incoming SysEx message, and once MidiBrige has the complete message in the buffer, it sends the complete message to Lemur. Lemur sees the full message because it arrived in a very short interval of time.

Finally, I should mention that when using the Lemur Daemon there still is a problem if there is a MIDI interface and MIDI cables somewhere in the path between the Lemur app and the hardware it is controlling. It seems the Lemur Daemon passes the USB MIDI messages at the rate they are received, even if the message is a fragment of the larger sysex message.

audeonic
Newbie
Posts:1
Joined:04 Apr 2013 10:19
Location:Dublin, Ireland

Re: inbound MIDI system exclusive processing

Post by audeonic » 04 Apr 2013 10:53

I can confirm that MidiBridge does indeed buffer incoming sysex until a complete message is received before passing it on.

I can also suggest that it is not necessarily the hardware that is the problem in all cases. It took a lot of effort to get sysex working reliably under iOS and I discovered a number of limitations, especially with virtual and network MIDI in terms of the maximum sizes of incoming and outgoing sysex messages, similar to what nick_liine is seeing with the hardware units.

In addition, different hardware units passed the sysex messages in differing ways so an iOS app accepting sysex has to try and cater for as many likely scenarios as possible; it was not straight forward and a lot of work to get as good as I could, that is for sure. This might explain why using an iRig to Lemur via MidiBridge works, but not directly, as lemur may not be coded to deal with the 'interesting' way sysex from the iRig is presented via CoreMIDI.

Regards, Nic from Audeonic (MidiBridge Developer)

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

Re: inbound MIDI system exclusive processing

Post by Macciza » 05 Apr 2013 03:43

Thanks Nic
Any chance of sending any further details of your approach to support@liine??

Thanks
MM
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]

Post Reply