MIDI in missing note off events [Solved]

Further testing shows I can get it to register note off if I hold the key for one second. If I press another key within one second It misses note on.

I’ve seen similar with the USB motor 61 but strangely not on midi in…

I installed midisnoop on the zynth. The MK-449C sends Active Sense through the DIN socket, but not through the usb. I’m going to guess that the tty software is unable to read the note off information and the Active Sense messages coming in so rapidly because the MIDI thru works fine with it and that’s a direct electrical connection. My other synths dont send Active Sense.

http://midi.teragonaudio.com/tech/midispec/sense.htm

So we need Active Sense detection? Please open a github task.

Maybe? or can we up the scan rate for ttymidi:MIDI-in? as I’m not seeing the note off on the jack port before it gets to the zyn midi router, I wonder if the issue is in the MCP23017.

I have another board that sends Active Sense and a constant midi clock, and that works fine, that one sends note on/off rather than note on 127/0 though.

It is likely that you are suffering a shortcoming of ttyMIDI. It does not support Running Status. Each time the message type changes, e.g. note on to note off then the status byte is sent but the status byte is omitted if same, e.g. note on to note on. As your controller sends note on with velocity zero, the status Bute may not be sent which confuses ttyMIDI. It is one of the reasons I have avoided using it in my projects. I suggest raising an issue in the Zynthian issue tracker. @jofemodo can decide whether to report upstream or consider a different MIDI library.

1 Like

I’ll open an issue. Is there another MIDI library available I can test this theory with? It doesn’t explain why the mininova, which also sends note on 0 velocity but doesn’t send Active Sense, works fine :confused:

Oh, Status byte! I think I understand now, thank you. The mininova must send the status byte everytime but the MK-449C only sends a status byte then subsequent data bytes which are ignored. I’d be willing to bet that after 1s the MK will send another status byte again which is what I’m seeing.

I am not aware of a drop-in replacement for ttyMIDI.

It is possible that the miniova does not send running status. This may be detailed in the user manual.

What about using ALSA snd-serial?

Please, test it and see if it works better … :wink:

I think it’s just for a specific uart chip

Currently we are using a little bit outdated version of mod-ttymidi. That’s because @C0d3man discovered some problems related with the latest version and some keyboards. Perhaps you could try with the latest one and see if your problems get solved :wink:

I’m surprised nobody has fixed ttymidi. If I recall correctly, running status is required by the MIDI spec, and it isn’t hard to implement.

Away you go! https://github.com/moddevices/mod-ttymidi

What about catting the output of the serial port through amidi?

I’m off to try something stupid.

Well I tried to blindly copy data from the serial port into jack but it didn’t work.

I am in contact with Jakob (see https://github.com/moddevices/mod-ttymidi/issues/6). Ok, I have to check at my side and had no time the last weeks. But I hope I can try to help fixing when I have my MIDIboy.

Regards, Holger

1 Like

Hi @ll,

FalxTX has fixed mod-ttymidi. I have just tested on Aruk and it works for my setup. Perhaps someone can also test (HEAD on branch master) and than we can use the up-to-date version from github?

Regards, Holger

2 Likes

Would this be the USB MIDI port not always handling Notes Off events…? Cos I’ve seen that effect. 5 pin MIDI works ok for me…

If so I’ll give it a look. I have an effect on the Behringer Motor 61 where USB notes off don’t always make it throu but 5 pin DIN connector MIDI works ok . . .

No this is just the DIN Midi stuff not enjoying running status the usb issue was to do with limiting the rpi to running in usb1.1 mode.

aaah yes! I remember now…

Strolls of to confirm a negative . . . .