• SONAR
  • MIDI "Jitter" - It Does Exist (p.7)
2007/10/08 03:41:56
RTGraham

ORIGINAL: dewdman42

So there are two seperate questions. PianoDano is talking about recording midi parts that are played on a midi controller and that he doesn't feel it is accurate. That is one half of the question. The other half is, if the notes are painstakenly edited to be exactly where they need to be, will sonar play them back through plugins, every time, as they are supposed to be, with rock solid timing..particularly during mixdown or track freeze?



Once the MIDI data is in the right place in the piano roll, the timing will remain accurate and stable when driving softsynths. Since the plugins' audio is rendered within SONAR itself, and the MIDI data never leaves the program to go through any kind of driver translation, it's not subject to the clock issues we've been discussing. Softsynth playback and rendering will remain sample-accurate. It's only coming in from, or going out to, external MIDI devices that the issue comes up.


ORIGINAL: brundlefly

Hmmm... Many opinions, few data points. I did quick test...

(edit)

Average round-trip delay was 11.1 ticks = 7ms...

(edit)

But here's the kicker: Standard deviation of the half-a-round-trip values was 0.5ms (less than 1 tick. So "jitter" is basically a non-issue in this test.

(edit)

...I would say that anyone who can actually feel/hear a significant MIDI timing issue on his/her system probably has a system-specific configuration/performance problem that is not inherent in either the OS or the application.



The tests I had run in the past were similar, with similar results. As I mentioned in my first post in this thread, I measured the MIDI jitter at a much lower value than I would have expected. As pleasing as those results are, though, even a 1ms jitter is enough for a seasoned professional musician with decades of practicing and performing experience to *feel*. And that's the important word - *feel*. We're not talking about whether a musician who uses SONAR can tell you exactly how many millionths of a second that piano note they played is off from where they thought they played it - we're talking about whether the playback *feels* like the original performance. I've been doing this long enough to know that I can definitely feel the jitter (though I've learned to ignore it, fix it in the piano roll, quantize, or use sounds whose attack characteristics mask the jitter somewhat), and long enough to also know that more people can perceive more subtle musical details than most of us realize or give them credit for - they're just not trained to articulate in musical or mathematical terms what they're hearing or feeling.

I would *love* to see a day when MIDI jitter disappears, and I can trust that whatever I record via MIDI will truly play back exactly the way I performed it - and feel the same. This business of piano roll editing and quantizing makes me paranoid about my technique and rhythm sometimes - occasionally I record keyboards straight to audio just for the satisfaction of accurate playback. Again, I'm not saying my system has huge MIDI jitter - it's in a similarly low range to what you're describing - but that doesn't mean that I don't notice it.
2007/10/08 10:15:35
jsaras
Although I haven't analyzed this to the depths that many people here have, I've noticed that using the audio metronome with MIDI is whacky. When I open up the editor it seems that I'm always playing ahead of the beat. However, if I use a soft synth for the metronome (Stylus), my playing is exactly on. I can't believe that my playing would the problem here...?
2007/10/08 11:05:27
jb
No one seems to have mentioned it but Have you investigated the TTSEQ. ini file variables as per the help file? Does tweaking these settings have any effect?
2007/10/08 11:28:20
Nick P
I think I changed this file and it seemed not to have much effect.

Re: RTGraham - great points! I like your take on it - sort of a zen thing - it exists, accept it, work around it. I would (will) most likely be taking your same course. It's just a shame that with all of this sophisticated technology, that something so basic has not been addressed by the designers.
2007/10/08 12:30:29
Jim Wright
>> something so basic has not been addressed by the designers.

Which 'designers' would that be, Nick? Part of the problem - is that no single designer can possibly control all the stages that handle MIDI events.

MIDI timing is affected by many many factors:
  • Quality of the keyboard controller software implementation (if you're recording live MIDI played on a keyboard)
  • Quality of the MIDI interface driver (PCI, Firewire, USB drivers all have different potential pitfalls).
  • Whether the driver supports the DirectMusic core API (which supports high-precision timestamping, if available) - or just the original 'MM' API (which has no support for timestamping at all)
  • Whether the host app (e.g. Sonar) does anything special (e.g. at kernel level) to keep various Windows gremlins from further messing with the timing of the MIDI events - as delivered from the MIDI interface driver.
My point? If the MIDI timing has been compromised by the time the events reach Sonar, there's damn-all that Sonar can do to restore the compromised timing. Which means -- pick your MIDI interface and controllers carefully, so Sonar has good-quality MIDI data to work with.

FWIW - various people have tried to address this over the years (I was one of them, back when I was on the MMA Technical Standards board). The obstacles - both technical and political - proved formidable. For a overview of the technical issues -- see http://openmuse.org/transport/fidelity.html . You might also be interested in a paper I wrote: "System-Level MIDI Performance Testing", available from http://openmuse.org/noncpl/MIDIWAVE-ICMC2001.pdf .

Finally - the IEEE1394 standard for MIDI transport does provide some level of timing guarantees (roughly "as good as a perfect MIDI-DIN cable"), and also keeps MIDI events tightly synchronized with audio traffic. Stock USB does neither (There are no timing guarantees whatsover for MIDI event transport, and USB handles audio and MIDI using two completely different protocols (isochronous transfers for audio, background transfers for MIDI) - which means audio and MIDI traffic can easily drift in/out of sync with each other). PCI-based interfaces -- also have no explicit synchronization between audio and MIDI traffic, but tend to do pretty well even so - if the driver designers know what they're doing.

Personally, I would love to have systems that keep MIDI jitter to very low levels. Hopefully, some future standard will make it possible.

- Jim, notorious MIDI curmudgeon

Edit: fixed broken links (my bad)
2007/10/08 13:17:18
dewdman42
Some insightful posts from everyone. Jim, those openmuse links seem to not work?
2007/10/08 13:24:01
dewdman42

ORIGINAL: jsaras

Although I haven't analyzed this to the depths that many people here have, I've noticed that using the audio metronome with MIDI is whacky. When I open up the editor it seems that I'm always playing ahead of the beat. However, if I use a soft synth for the metronome (Stylus), my playing is exactly on. I can't believe that my playing would the problem here...?


There are supposedly some known issues and work arounds for the audio metronome in Sonar. I can't remember the details, but so some searches on the forum and you will find. The problem there is more related to the metrenome then to midi timing per say.
2007/10/08 13:48:09
brundlefly
Personally, I would love to have systems that keep MIDI jitter to very low levels. Hopefully, some future standard will make it possible.


Hey Jim, I'm curious, with your experience on this, what would you personally propose is an acceptably low level of jitter. From everything I've read, jitter of no more than 1ms would be good enough for anyone if that were the outside limit, and MIDI-Audio synch were maintained at the same level of precision. It's been suggested here, however, that even 1ms is not good enough for top players. What do you think?

Personally, I consider myself to be having a very good day if I can consistently play within 5-6ms (8-10 ticks at 960PPQ) of where I want to be. Most of the jitter I experience is due to coffee.
2007/10/08 14:00:44
dewdman42
I know for my part, I don't think I am so sensitive to a millisecond or two of "jitter". However, latencies over 5ms drive me absolutely insane, especially if they are not maintained at exactly the same latency. In other words...if it jitters a bit, sometimes 5ms, sometimes a little longer...or shorter...then I can feel it and it drives me totally crazy.
2007/10/08 14:24:16
Dave Modisette

ORIGINAL: dewdman42

Since EZ drummer has its own sequencer and goes directly to a sample playback engine..its not so surprising to me that it would play back perfectly....Toontrack can do any kind of optimizing they want inside EZDrummer and never have to post a midi event to send over a channel to anywhere, if you see what I mean. Yes, it reads a midifile to obtain a drum groove, but when its playing back, it does not have to rely on sending midi events through midi ports. However, I would be surprised if EZD is doing anything other than sending midi events to the same internal sample playback engine that handles incoming midi events from say EZplayer or sonar. So I don't know what to say there.

If Sonar is getting loosy goosy about how it routes midi events around inside itself through all the various virtual midi pathways that can be routed in Sonar...then that is a big problem. I hope that is not the case. So far I have not experienced problems like that in Sonar at all.



EZdrummer only uses it's midi engine when auditioning grooves. After you DnD the groove into SONAR its the host's job to send midi data to the EZD soft synth.

As I said before, it is individual Soft synths that seem to be sensitive to the random drifts. Or maybe it's multichannel soft synts that have the problem. I used a CW sample project for my test. The name of the project escapes me. It was a midi project by Igor K. (the kid that played with Yes for a while.) If you send all of the tracks to TTS-1 and run the latency up high, you will hear the percussion drift. Not all the instruments get sloppy (or I didn't notice) - just the drum track. Take the same project and rout it all individual Dimension Pro synths and you don't hear the problem.

Maybe it's a Roland thing. I used to have a similar problem with my Sound Canvas hardware module. I had one project where there was a noticeable lag in time in the sequence at a particular spot. I checked all the note ons and they were right where they were supposed to be. I checked for controller data bottle necking the system. I never could get that beat to land where I wanted. This was back in the Cakewalk midi only days.
© 2026 APG vNext Commercial Version 5.1

Use My Existing Forum Account

Use My Social Media Account