# [Ardour-Dev] Ardour Timecode

Robin Gareus robin at gareus.org
Thu Nov 1 10:55:13 PDT 2012

```On 10/30/2012 07:01 PM, John Emmas wrote:
> On 30 Oct 2012, at 17:39, John Emmas wrote:
[..]
> Or, to be pedantically specific....
>
> (30 x 999 /1000) * 3600
>
> is the correct formula  :-)

mmh. but not for NTSC :(

I managed to take a peek into the SMPTE 12M-1999 spec.
long story short, on page two it defines:

1 sec_NTSC = 1.001 sec_REAL

It furthermore states that the total error accumulated due to drop-frame
timecode is -3.6ms per hour or about -86ms over a 24-hour period.

The spec describes how to count in drop-frame timecode but does not
explicitly mention at which rate it is counted.

However using this information we can infer that DF timecode is
calculated using N * 1000/1001 fps.

At (30 * 999 / 1000) = 29.97 fps there would be no error at all. With
108 dropped timecode frames per hour, each hour would align perfectly:

(3600 * 30) - (3600 * (30 * 999/1000) + 108) = 0

At (30 * 1000 / 1001) = 29.97002997... fps we get the error mentioned in
the SMPTE-12M spec:

(3600 * 30) - (3600 * (30 * 1000/1001) + 108) = -0.107892.. [frames/h]

in 24 hours: -0.107892.. * 24 / (30000/1001) = -0.08639..
= 86.3.. msec error per 24 hours

qed.

I had wished you were correct, though. Given the mess it already is, a
zero-error solution would have been much more elegant.

anyways, maths be damned - I'm still interested in completing the table
at http://gareus.org/wiki/timecode

Cheers!
robin
```