Page 2 of 3

Re: inbound MIDI system exclusive processing

Posted: 23 Feb 2012 04:23
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

Re: inbound MIDI system exclusive processing

Posted: 23 Feb 2012 19:18
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

Re: inbound MIDI system exclusive processing

Posted: 24 Feb 2012 18:58
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

Re: inbound MIDI system exclusive processing

Posted: 25 Feb 2012 05:02
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)

Re: inbound MIDI system exclusive processing

Posted: 25 Feb 2012 05:18
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.

Re: inbound MIDI system exclusive processing

Posted: 25 Feb 2012 09:38
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.

Re: inbound MIDI system exclusive processing

Posted: 25 Feb 2012 13:27
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.

Re: inbound MIDI system exclusive processing

Posted: 25 Feb 2012 20:12
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.

Re: inbound MIDI system exclusive processing

Posted: 26 Feb 2012 23:58
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

Re: inbound MIDI system exclusive processing

Posted: 30 Mar 2013 03:05
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