Hi dstrenz --
To recap what you did:
- Record 4 bars quarter notes using a Fantom sequencer at 120 BPM
- Saved Fantom data as a SMF, and imported it into Sonar
- Played back Fantom data, and recorded it "live" into Sonar
- Compared the Fantom SMF data (imported into Sonar) with the "live" MIDI data (recorded by Sonar using an 1820M PCI-based MIDI interface)
The results showed maximum MIDI Jitter of 4 ticks (960 ppqn at 120BPM)
Using 960 ppqn at 120 BPM, 1 tick is equivalent about 0.521 milliseconds (0.520833333.... rounded up).
A maximum error of 4 ticks translates to about
2.1 milliseconds peak jitter.
That's not really surprising
(although I'd like it to be better). If the EMU MIDI driver uses the 1-milllisecond Windows system clock as the time reference, 2 milliseconds peak jitter is pretty good, actually. The only way to get really lower jitter numbers is to use a higher-resolution timebase. (DirectMusic APIs can support a much higher-res timebase, but I don't know if the EMU card is using them - or what the EMU card might use as a timebase.). Also - consider that a 3-byte MIDI Note On message takes about a millisecond (0.960) to send over the wire. If any other MIDI traffic is going on (aftertouch, bends, controller events), transmission of Note Ons can easily be delayed a bit (which increases effective jitter).
I want to emphasize that none of this MIDI jitter is Sonar's fault. This kind of MIDI jitter occurs at the MIDI interface and Windows driver level, not in the sequencer application level.
For the kinds of music most people do, 2 milliseconds peak jitter is probably acceptable (depends on how fussy you are).
The only way to reduce jitter levels further -- would be to change what's going on that those lower levels of the 'MIDI processing stack". This is what the "time stamping" MIDI interfaces claim to do (I say "claim" because I haven't tested them").
Edit: Please note that low jitter characteristics don't necessarily mean latency (delay through the interface) is also good. From a software engineering perspective -- it's usually necessary to increase buffering a bit in order to keep jitter bounded, and increasing buffering will inevitably increase latency as well. I haven't tested the current MOTU interfaces. When I tested a serial-port-interfaced MIDI Timepiece II (around 1999-2000), I found the jitter was excellent (under a millisecond), but that latency was about 10 milliseconds. This is borderline IMHO. But, this measurement of a different MOTU product, 8 years ago -- doesn't imply anything one way or the other about current MOTU products.
For the record, dewdman42 reports excellent (low) latency with his current parallel-port-interfaced MOTU MIDI interface (which does not use timestamping, aka MTS). Sorry for misrepresenting dewdman42's statements in the original version of this post.
- Jim