MIDI overloading with fast messages?

I’m experiencing a peculiar issue with my Daisy synth connected via UART (5 pin) MIDI.

During a speed/responsiveness test, I looped a MIDI region playing arpeggiated notes at around 180bpm 16th notes for about a minute - sounds amazing through a big shimmer verb. This led to irregular behavior with incoming MIDI events.

Expected Behavior:

  • Each NoteOn event from my sequencer, Logic Pro: 1 NoteOn event with data[0] = note value, data[1] = velocity.

Abnormal Behavior Noticed:

  • For each NoteOn from Logic Pro, the Daisy synth registers 2 NoteOn events:
  • NoteOn 1: data[0] = note value, data[1] = 64 (bad velocity value… let’s say for this example, velocity should have been 30)
  • NoteOn 2: data[0] = 30 (velocity that should have been in the first NoteOn), data[1] = 64.
  • Two NoteOff events occur: one for the original note and one for note 64.
  • Once this starts, it’s over until I reset the Daisy. Even stopping the sequencer and triggering a note with my keyboard has the same effect.
  • When I connect my Juno to MIDI THRU of my Daisy synth, the Juno continues to behave as expected, so the double notes are not being passed thru to the Juno.

Any thoughts how to debug this?:

  • Any practical reason why UART might begin separating note + velocity into two separate NoteOn events? It’s almost as if some erroneous “64” value interrupts the first NoteOn and then because there’s still velocity data, it overflows into a new NoteOn message…?
  • If I had a method to detect this anomaly in real-time, I’d try hacking together a “reset all midi” event, but there isn’t anything I see about the event its self that distinguishes it from an actual note with a velocity of 64 etc.

I must preface all this by saying it suddenly stopped happening after an afternoon of dealing with this, without any change from me… so I expect it will come back, though hopefully it doesn’t.

Thanks for any suggestions!

This sound similar to the problem that is supposed to be fixed in recent libDaisy versions.