inbound MIDI system exclusive processing

Discuss Lemur and share techniques.
Macciza
Regular
Posts: 1315
Joined: 07 Dec 2011 04:57
Location: Sydney, Australia.

Re: inbound MIDI system exclusive processing

Post by Macciza »

Hi
Just a comment or two - -

I changed the execution of the request_sysex() to 0-1 transition because it sends 2 requests when set to 'any' . . .

Also, what you are calling 'ASCII' is really 'Decimal' compared to Hex - ascii is when the numbers represent characters/controls according to ascii standard . .
An example would be taking the patch name from hex, to decimal (where it is a dec. representation of text) and arraytostring()-ing it to text . . .

I will be looking at adding an address selection to the project so I can query specific parameters . . .

Cheers
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]
bxsj
Regular
Posts: 116
Joined: 24 Dec 2011 06:47
Location: Vienna

Re: inbound MIDI system exclusive processing

Post by bxsj »

Macciza wrote:Hi
I changed the execution of the request_sysex() to 0-1 transition because it sends 2 requests when set to 'any' . . .
Thanks! Any tips are highly appreciated. I am new to this kind of scripting/programing :oops:
Macciza wrote:Hi
Also, what you are calling 'ASCII' is really 'Decimal' compared to Hex - ascii is when the numbers represent characters/controls according to ascii standard . .
An example would be taking the patch name from hex, to decimal (where it is a dec. representation of text) and arraytostring()-ing it to text . . .
Sorry for not being precise. I am already using the arraytostring function to retrieve patch names from my synt :)
Macciza wrote:Hi
I will be looking at adding an address selection to the project so I can query specific parameters . . .
As I said, any input would be highly appreciated! Btw, THANKS FOR ALL YOUR VALUABLE INPUT IN THIS FORUM! 8-)
Cheers,
BxSj
Win7 64, Ipad Lemur, Cubase6 and a bunch of Roland Synths and Samplers
analog604
Regular
Posts: 262
Joined: 29 Dec 2011 15:40
Location: north east, usa

Re: inbound MIDI system exclusive processing

Post by analog604 »

It may be worth the effort to create a list of MIDI interfaces that don't interact well with the Lemur Daemon for System Exclusive functions for the Liine team.

This can be tested with these steps :
1) Run the Lemur Daemon
2) Ensuring your MIDI interface is connected to computer and the same MIDI cable is plugged in loopback config, that is the cable goes from the input port to the output. Same port number.
3) Configure/assign your interface on front page of Lemur iPad under MIDI Targets, MIDI 0. If it is available it will be listed past the "Daemon Input (or Output)" entries (don't choose those for this test). For example my MIDIMAN 2x2 simply shows "Port A" and "Port B" but the AMT-8 interface showed "Port 1" through "Port 8"

Then run dsorlien's system exclusive test template, configure settings on it as mentioned in later post or for a basic guide:
Use a minlength of 5 and maxlength of 128 for full test.

Leave the delay setting to default you can adjust it down after the first test and run another if you like.

So far I have not so good (crashed Lemur app every time):
emagic AMT-8

Works fine:
M-Audio MIDIMAN 2x2 anniversary edition

:ugeek:
J
Last edited by analog604 on 25 Feb 2012 13:34, edited 1 time in total.
Dashboard gear control templates: User 112 Idx :: LModIt Lite :: SVG image converter for Lemur Canvas
dsorlien
Newbie
Posts: 39
Joined: 16 Jan 2012 04:28

Re: inbound MIDI system exclusive processing

Post by dsorlien »

Darn it. I had a long message typed up and the forum logged me out before I could post it. I'll try again.

Great work everyone. Thanks for the template, bxsj. Great work. I wish i had seen yours before I worked on mine, it would have saved a little time with the hex conversion.

So ... before the forum hiccups ... I'll post the download link and describe it in the next post.
http://dl.dropbox.com/u/54889552/sysex_ ... 4.jzml.zip

(update: zipped file, updated link)
Last edited by dsorlien on 25 Feb 2012 05:20, edited 1 time in total.
dsorlien
Newbie
Posts: 39
Joined: 16 Jan 2012 04:28

Re: inbound MIDI system exclusive processing

Post by dsorlien »

The template in my post above has a nice data display, that should be familiar to programmers. SYSEX messages received on MIDI 0 will be displayed in hex and ascii.

To use the loopback test, create a feedback loop such that the Lemur MIDI 0 output is routed back to Lemur MIDI 0. This can be wireless only, or hardware MIDI, or a combination.

The test takes a long time to run. The progress and results are shown graphically using multisliders.

I hope we can share iPad screen grabs of our test results. I will be testing various configurations this weekend.
bxsj
Regular
Posts: 116
Joined: 24 Dec 2011 06:47
Location: Vienna

Re: inbound MIDI system exclusive processing

Post by bxsj »

Great work everyone. Thanks for the template, bxsj. Great work. I wish i had seen yours before I worked on mine, it would have saved a little time with the hex conversion.
I have copied the array to hex function from a post :oops: , honours go to mbncp!
Cheers,
B.
Win7 64, Ipad Lemur, Cubase6 and a bunch of Roland Synths and Samplers
analog604
Regular
Posts: 262
Joined: 29 Dec 2011 15:40
Location: north east, usa

Re: inbound MIDI system exclusive processing

Post by analog604 »

dsorlien, seriously excellent work on that test template! thanks for posting it, i'll update my previous posts.

I ran the loopback MIDI cable from the in to out on two USB to Lemur daemon connected MIDI interfaces.
emagic AMT-8: causes template to crash after a few moments into test with only 8byte to 9byte packets. Couldn't get a screenshot on iPad.
Got one here at the computer MIDI montor (the selected port doesn't actually have a Tempest on it.. only a label):
Image

Then did a cable loopback on m-audio MIDIman 2x2 anniv, excellent results. I ran several of these, this one uses the lowest delay setting and 3-124 length:
Image

Very interested in additional tests... :)

dsorlien wrote:The template in my post above has a nice data display, that should be familiar to programmers. SYSEX messages received on MIDI 0 will be displayed in hex and ascii.

To use the loopback test, create a feedback loop such that the Lemur MIDI 0 output is routed back to Lemur MIDI 0. This can be wireless only, or hardware MIDI, or a combination.

The test takes a long time to run. The progress and results are shown graphically using multisliders.

I hope we can share iPad screen grabs of our test results. I will be testing various configurations this weekend.
Dashboard gear control templates: User 112 Idx :: LModIt Lite :: SVG image converter for Lemur Canvas
bxsj
Regular
Posts: 116
Joined: 24 Dec 2011 06:47
Location: Vienna

Re: inbound MIDI system exclusive processing

Post by bxsj »

Great template! I did some more tests with different interface scenarios (see attached screen shots). Here are the results. Could that be a limitation in the buffer sizes of the interfaces themselves?
Scenario 1:
Ipad to an IConnect Midi interface; via USB cable into PC; soft midi loop using MIDI OX. :(
Scenario 2:
Ipad via camera connection kit to a cheap no-name USB interface to physical midi in of an MOTU firewire interface; soft midi loop using MIDI OX. :?
Scenario 3:
Ipad via WIFI and Lemur Daemon to USB MIDI of a MOTU firewire interface; hard midi loop with a midi cable. :twisted:
Seems like in my setup the WIFI connection gives me the best results.
Attachments
SysexScenarios.zip
(169.69 KiB) Downloaded 175 times
Win7 64, Ipad Lemur, Cubase6 and a bunch of Roland Synths and Samplers
dsorlien
Newbie
Posts: 39
Joined: 16 Jan 2012 04:28

Re: inbound MIDI system exclusive processing

Post by dsorlien »

Some test results:

iPad, wifi connection to MacBook, running Lemur Daemon and Midi Patchbay. Using Midi Patchbay I create a connection between Daemon 0 in and Daemon 0 out, creating the loopback path.
Image

iPad, wifi connection to MacBook, running Lemur Daemon and Midi Patchbay. MIDI from Daemon 0 is routed to one port of a MOTU MicroLite USB midi interface. A MIDI cable is used to create the loopback path, MIDI data is routed from the MOTU MicroLite to Daemon 0 output, and back to the iPad over wifi.
Image

iPad with camera connection kit USB adapter, using my DIY MIDI interface and a plug that loops mid out back to midi in. The code running on the Teensy 2.0 buffers all incoming sysex messages of up to 256 bytes (which is more than enough for this test) before passing the message to the iPad.
Image
nick_liine
Liine Staff
Posts: 285
Joined: 01 Oct 2010 11:06

Re: inbound MIDI system exclusive processing

Post by nick_liine »

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
Post Reply