I’ve noticed zynth doesn’t like note off events from one of my boards using the MIDI in port. I have an evolution MK-449C. It works perfectly with USB. but not on the din MIDI. Other boards work fine on zynth DIN MIDI. e.g. my poly 800, and if I put the MK-449 directly to the poly midi in that works fine too. If I put the MK-449 to zyn din MIDI in and take the thru to the poly then the note off events get filtered out.
Just to be clearer. I can see NOTE OFF events in the log from the poly, but not from the MK. but then I can’t from my mininova either, but that seems to send “note on vel 0” to stop a note.
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.
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.
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
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.
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