Issue When Sending Sysex Data

Hi ppl,

when using the Sysex Librarian tool I experience the following problem:

storing sysex data from my Virus C works perfectly. The amount of bytes matches exactly the patch size.
However… when I try to send this same data back to the synth, no sysex transmission occurs. Sysex Librarian opens the file and confirms the number of bytes it’s going to send, but when I press “start”… that’s it. No transmission whatsoever.

In my own LUA scripts I’ve experienced the exact same problem. I was able to receive sysex data. I was even able to send a sysex dump request to the Virus, upon which it successfully sent the data back to Renoise. But I could not send this data back to the synth.
Since I’m using the exact same midi_out_device for sending the sysex dump request as I’m using to send the sysex data, it can’t be the simple issue of sending it over an incorrect port.

I fired up a separate application for sysex management outside of Renoise to check if I was able to send back sysex data at all to my Virus C (that application was coincidentally also called Sysex Librarian ;)). And that succeeded without any problems!

Since I can’t seem to get any further in solving this issue, I’m turning to the smart guys on the forum here ;)

What, potentially trivial, thing have I missed?

Some background info:

I’m running Renoise 2.8 on OSX 10.7.3
My MIDI interface is a Motu midi express 128. Although the latter is perhaps not relevant since I also connected my Virus C to the MIDI I/O ports of my usb controller keyboard and experienced the exact same problem.

Any help is much appreciated.

Thx!

Erik

I don’t have an answer for you, but a general advice on understanding and troubleshooting midi is to use programs such as midi-ox and midi yoke.

Midi-ox gives you a clear view of what really is being sent and recieved.

Not sure for mac, but midi-ox has a mac version, and then you need a virtual midi device/port that renoise can transmit to and midi-ox read from, but mac has that natively?

http://www.midiox.com/

Good suggestion! I’ll test it this evening. Thx :)

One thing that you may like to try is to deselect any midi input and output ports (by selecting ‘None’ for each). This will release the devices from the tool.

Then try reconnecting the send device. In the Renoise status bar, a message should appear “SysEx Handler (send) connected to successfully”. If this does not appear, the tool cannot open the requested midi port and further investigation will be required.

Ok. I did some further testing. Found a great MIDI Monitor application for OSX (http://www.snoize.com/MIDIMonitor/).
The midi ports in Renoise are acquired with success. No problems there.
And the MIDI Monitor is functioning as it should. It notices activity on the correct midi port.

The synth I’m testing with is an Access Virus C and the midi device is (MOTU MIDI) express 128. As you can see the Virus is connected to port 3 in both directions.
Here’s the log file from MIDI Monitor and below you’ll find a (quite elaborate) description of what I did while it was monitoring:

19:30:57.204 From Express 128 Port 3 SysEx Access 267 bytes
19:31:51.623 To Express 128 Port 3 Note On 1 D2 32
19:31:51.777 To Express 128 Port 3 Note Off 1 D2 0
19:34:10.817 To Express 128 Port 3 SysEx Access 10 bytes
19:34:10.838 From Express 128 Port 3 SysEx Access 267 bytes
19:36:44.153 To Express 128 Port 3 Note On 1 E2 24
19:36:44.251 To Express 128 Port 3 Note Off 1 E2 0

I opened the Sysex Librarian tool and assigned the receive/send ports, both acquired with success. Pressed record in Sysex Librarian and did a manual sysex dump from my Virus to Sysex Librarian (time stamp: 19:30:57). So far, all ok.
Pressed record again and Sysex Librarian nicely stores all 267 bytes of the sysex package. Then I try sending the sysex file back. It opens correctly. Sysex Librarian asks me for confirmation to send 267 bytes to Express 128 port 3. I press start.
Nothing happens. No activity monitored! I press a key on my midi controller to see if there’s any outgoing activity monitored at all (time stamp: 19:31:51). Works!
Then I opened my own sysex management tool in Renoise. I’ve built in a sysex dump request for my Virus C:

[LUA]
midi_device_out:send {0xF0,0x00,0x20,0x33,0x01,0x00,0x30,0x00,0x40,0xF7}
[/LUA]

And I press the “request” button on my tool interface (time stamp: 19:34:10). That sysex request is received by my Virus C (and also monitored as you can see above). And the Virus responds by sending back the patch buffer of 267 bytes (also monitored above).
Then there’s another key press on my midi controller…

So sending sysex, in the form of a sysex dump request, is possible over my outgoing midi port “Express 128 port 3”. But when sending back a sysex message the LUA interpreter does not seem to pass it to the outgoing midi port.
I first came across this weird behavior in my own script and naturally I suspected that I was sending back the sysex incorrectly (although there were no complaints from the LUA interpreter). That’s why I tested my setup with the “Sysex Librarian tool” of which I can trust the LUA implementation ;)

Can’t really do much more I’m afraid. It seems to me that it’s a problem in the LUA interpreter… but I’m absolutely not sure. Any suggestions still? :)

Kind regards,

Erik

This detailed explaination is good. Thank you.

If the bug appears in both my librarian tool and your own tool then there probably isn’t some obvious error in the tool script.

Can you please supply the syx sysex dump as recorded by the librarian tool (the syx file)? I don’t have the same hardware, but I can try to send it to a dummy midi port and trace what happens throughout the code.

Please find attached the zipped version of the sysex file.
I’m curious to see what happens in your environment.

who would be so kind to help me figuring out what’s happening here? :)
I understand mxb is occupied with other things at the moment.

Thx!

Erik