Hi there--
I've written some simple Perl scripts that can analyze midi Note On data to see how closely they match an input template over, say, 8 beats. The idea is to study my timing / consistency as a keyobard player, and see if I can tighten up my timing. Say I'm trying to play straight quarter notes. I will create a template of quarter notes over a single measure. My scirpts will take a MIDI file as input, fit each Note On data to the nearest quarter note, and continue over all the measures until I end up with 4 distributions, one for each quarter note. At each distribution, I can see the average and std-dev of the timing of the hits for that quarter note in milliseconds.
Right now, when I play a montuno figure, my stddev in the hits is about 10ms: that is, from measure to measure, I vary my placement of each hit about 10 ms from the previous one, on average. Ideally, then, I would want my sequencer to have around 1 ms accuracy in how it records each note press, so that I can detect improvemnt in my timing.
My concern is with my Yamaha keyboard's accuracy in recording the MIDI events ( it's a ypg-625 ). I am playing / recording a song file directly onto the keyboard, then transferring this later to my laptop for analysis. When the tempo is around 110bpm, the smallest delta between consecutive note on events is 2 ms---this occurs when I play octaves that are meant to be simluataneous. However, when I dial the tempo down to about 70bpm, that figure jumps to 9 ms. Three questions:
- what's the best way to tell the timing accuracy of my keyboard? I looked up the specs and couldn't find anything.
- is there another keyboard / method that will produce better accuracy?
- is the accuracy bound to the tempo? I remember hearing about midi time clock being tied to something like 480 ticks per beat on a professional sequeencer, which implies that tempo is locked to the accuracy of the ticks.
Thanks
Isaac