Linux: MIDI OUT data corrupt

I’m developing a MIDI USB device and in this process i have noticed that the MIDI OUT data coming from renoise seems corrupt. I’m running two entirely different machines; one is a stationary running Windows XP with a M-Audio Firewire 1814 as it’s MIDI OUT device, the other is a laptop running Ubuntu with a Midisport, i have also tested my own USB device with both computers - all of these configurations seems to give corrupt MIDI data with Renoise. EDIT: i’m using Renoise 2.8.0 on the Windows machine, running 2.8.1 on Ubuntu.

The first thing i noticed is that when setting the “Note length” very low (<5mS), the NOTE OFF message some times appears before the NOTE ON message, resulting in hanging notes. I can repeat this error on Ubuntu by running KMidimon to monitor the data, making a 16 note loop with the instruments MIDI OUT device set to KMidimon and set the “Note length” to 1mS. After 15-30 notes the first NOTE ON / NOTE OFF switch-around will happen. I tried this both running Jack and ALSA, i also tried also both realtime (as SUDO) and not. I get the very same data whether i use the KMidimon device, my Midisport or my own USB device. I do not think this was repeatable on my windows machine (i have to check again).

The second issue i noticed is when setting “Note length” to ~7000mS, what happens here is that i some times get several NOTE OFFs in a row that are not preceeded by any NOTE ON (at least not in proper sequence) corresponding to the same key. They are however preceeded by one NOTE ON of a different key which is ~half of the time not terminated, again resulting in hanging notes. I can repeat this error on both machines, all configs and devices tested.

(also: To rule out errors on my windows machine i tested another software sequencer and i did not get any errors with that so the machine should not be at fault, i haven’t done any such testing on my Ubuntu machine.)

I don’t know how many people do 1mS note sequences but i for one would love for this to work :)/>/>/> an excellent software otherwise i must say!

-Karl

the capital S still means seconds? wiki:SI
also please explain how you went about to set the “note length”. maybe post a .xrns.

Yes, “mS” for “microSeconds”. The “Note Length” is found under the “Instrument setting”->“Ext. MIDI” panel on the bottom. Just set that to 1mS, input a few random notes without any pauses and the problem appears 2-3 seconds into playing.

Ever heard of Midi Jitter?

I read the link and i’m not sure how this relates to my question. I realize that setting the “note length” to 1mS is hitting the very extreme boundries of MIDI, and i don’t expect the NOTE ON / NOTE OFF to be perfectly timed in this regard - i do however expect them to come in the right order.

As for the issue of setting the “note length” to 7000mS and still getting corruption, i believe this must be a bug - no? In every tracker i’ve used (started tracking in ~1991), the rule of thumb is that one sound in a specific column will interrupt any other sound in that particular column - this should translate to MIDI too i assume. Again, it seems that when an old midi note is being terminated by the precense of a new one, the transition from NOTE ON / NOTE OFF / NOTE ON is too fast and some times that results in corrupted midi data.

Are you suggesting that Renoise would not work without me specifically inserting NOTE OFFs before new notes, thus not being able to enjoy as seemingly seamless transition from one note to another?

-Karl

<— impatiently waits for a dev to give his/her/its/their view(s) on this…

Not at all. I thought you were experiencing dropouts of commands which may be a problem when wanting to have too much done in too less time.
There was some other midi out issue for which a fix comes with the next version (program and bank changes), there might have been a lot of side effects attached to that issue, not sure.
You could post an example xrns outputting to midiox or some other midi monitor, it makes analysing easier.