Skip to main content

23.976 really 24? (a bigger deal than it seems)

Posted

I have a long list of bugs for you but I haven't formatted it and I right in the middle of a psychotic deadline.

That said, I am fairly certain that Synfire is sending out 24fps instead of the selected 23.976

I have it selected in both the time parameter and in the audio midi setup.

The sync is fine more or less early in the video, but towards the end I am unacceptably out of sync.

I would greatly appreciate any help with this.


Sun, 2009-11-08 - 15:36 Permalink

The problem with this is the limited resolution of the internal MIDI timers which is 1ms.

23.976fps = 10.42709376043 ms gap between successive SMPTE messages hitting the wire. Although we use a trick to eliminate rounding errors by sending messages after 11ms/10ms using an alternating pattern, this odd frame rate still causes rounding errors to sum up over longer periods of time.

We would need a nanosecond resolution hardware timer, but the MIDI drivers and underlying machinery don't support that.

I'll check if we can further refine our approximation trick in order to get closer to the real fps, but that would require some math and experimentation.

You should perhaps set the video player to ignore the MIDI quarter frame messages and run its own internal clock instead. Absolute time is absolute time that always passes at the same speed. The only thing that needs to be synchronized is start and stop.

Sun, 2009-11-08 - 19:55 Permalink

I have a version of the MIDI library that does a better approximation to the 23.976 and 29.97 frame rates. Contact support at cognitone com for a copy.

Andre