I’ve found the problem. It happens due to a very specific combination of note timings. The notes for the very short chord in bar 9 has all the note on events in one order, but the note off events are in a different order. In general this shouldn’t be a problem, but it led to a case where one of the notes was omitted. I should have a fix for this now, but if you have another MIDI file that it happens with, then I would be interested to see it so I can verify the underlying bug is fixed.
Thanks again Paul. Things have changed again, unfortunately. I first tried resetting the latency compensation back to zero (to make the problem easier to reproduce), but using that same pattern, it worked fine.
Right now, I do have a sequence that makes it fail readily (a different pattern to the one I sent you before), HOWEVER, this time, the MIDI data is actually missing the notes, and moreover, I can reproduce this in Reaper as well.
I’ll see if I can get a raw MIDI dump using MIDI-OX, but I hope that it doesn’t change the behaviour like it did last time.
I’ve reverted to using MIDI-THRU, so I can be sure that the keyboard did send the notes - I simply do not detect any missing notes in the audio.
I think I’m simply doing these blasted legato repeats much more often than I thought. When I play the same problematic passage in a much more deliberate fashion, the problem goes away. I did actually do a test a few days ago like this, and I thought I had eliminated this possibility, but I think I got it wrong. I will now get a MIDI dump to try to prove it.
The problem you found Phil I suspect is happening much more infrequently, and it was sheer chance that we caught that one.
These two problems, in combination with simple bad quantization (partly due to lack of MIDI latency compensation, initially), all added up to a total mess and confusion on my part.
Just btw, if there are any MIDI-OX experts here who are willing to write a script to transform the real time MIDI stream into conventional Note-On/Note-Off pairs, please volunteer here by way of reply, and once I have found someone, we could then take it off line. I’m willing to negotiate a fee for your work. (I’m not sure whether MIDI-OX has the capability of doing this type of thing mind you - it’s going to have to be able to maintain state in between MIDI events)
EDIT: if MIDI-OX can’t do it, perhaps there is another utility that can.
I’ve reproduced the simple missing note problem again. (playing nice clean staccato). I set the latency in the opposite direction, to really try and bring it out.
In the attached, the following notes are missing in the score:
Bar 2, 16th-note 1, NN 55
Bar 3, 16th-note 1, NN 48
The MIDI looks fine in a DAW.
missing_notes.zip (391 KB)
Regarding the tri-sensor problem, the Bome MIDI Translator appears to have the capability to do the transformation, and if I attempt to do it, this is what I’ll be trying first, because it seems newer & fresher than MIDI-OX. It’s scripting language is very rudimentary, but it does appear to have the capability - I’ve asked them.
It would of course be ideal if Dorico could support it. It suspect it would be easy to simply do the transform to Note-On/Note-Off, but to RETAIN the repeated Note-Ons, and show it properly in the event window, and allow it to be edited, requires a lot of thought I think.
I wonder whether “legato repeats” are ever notated? I.e, explicitly requesting that the dampers are not lifted? I very much doubt it - I suspect that it’s just something that pianists can exploit on grand pianos, but not notated.
Great - thanks!
The problem doesn’t appear to be improved by fixing the tri-sensor issue. I’ll re-test when the bug fix has been released.
In any case, Dorico definitely doesn’t handle the contiguous Note-Ons well, so I’ve written a Bome MIDI Translator script that converts such a stream into standard Note-On/Note-Off pairs, so that at least the notes will be recorded properly. (on the rare occasion that they may occur)
tri-sensor-fix.zip (1.67 KB)