I’ve been experiencing this issue where the timing of recorded MIDI would always be earlier. For a long time, I thought it was just my incompetence as a keyboard player, but more and more I couldn’t shake the feeling it didn’t sound that bad while I recorded it. (I never have AutoQuantize enabled)
Turns out, it’s not necessarily a Cubase issue, but an issue with MIDI drivers on Windows. I researched for answers and found a good deal of articles on the subject, most of them said to experiment with the ‘use System Timestamp’, as well as other stuff like enabling emulated DirectMusic ports as mentioned in this article.
But nothing works! Messing with these things changed nothing for me. Unless I need to restart Cubase every time I change these settings, that’s about the only thing I have yet to try. Another possibility is trying a different controller, but I have no means of doing that at the moment.
I also tried messing with latency settings, both in Cubase’s settings and in my interface’s buffer size, etc. It’s not a latency problem, when monitoring the notes aren’t delayed, but once I view and playback the MIDI part I just recorded, the events are early.
I’m on Windows 10 x64, I have an Apollo Twin mkII (thunderbolt), my controller at the moment is an Ableton Push 2 (used with this very neat little software and loopMIDI), running it at 44.1KHz.