help with timecode

Tim Selander selander at tkf.att.ne.jp
Sun May 31 04:27:28 EDT 2015


Peter,

This worked great at getting me min:sec timecode; I hadn't even 
gotten that far yet. But I need the timecode down to the frame, 
so min:sec:fra.  Timescale of the videos I'm using is 600.

What's bending my head is that min & sec are sets of 60. 60 secs 
per min, 60 min per hour. But the frames are sets of 30; 30 
frames per second.

Further head-bending happens with DF & NDF time code. Non-drop 
frame time code is exactly 30 frames per second. But to broadcast 
color, the frame rate had to be scaled back to 29.97 frames per 
second.

So, drop frame TC drops 2 frame counts every minute, except every 
tenth minute, achieving 30×0.999 = 29.97 frame/s. The error is 
the difference between 0.999 and 1/1.001 = 0.999000999000999….

For example, the sequence when frame counts are dropped:
  H:  M: S: F
01:08:59:28
01:08:59:29
01:09:00:02
01:09:00:03

For each tenth minute
01:09:59:28
01:09:59:29
01:10:00:00
01:10:00:01

I'm pretty stuck. But it must be possible as we have stopwatches 
with built-in timecode calculators!

If I can't get the frames accurately, I could settle for a 
decimal point and remainder after the seconds:
  H: M:  S
01:09:55.38

I'm making an in-house app for our subtitle translators -- the 
rule of thumb in Japanese subtitling is 4 characters per second. 
So having the fraction at .38 as in the above example, would let 
the translator know he could use one more character for the .38 
fraction of the second.

Tim Selander



On 5/31/15, 10:34 AM, Peter Bogdanoff wrote:
> Had some odd stuff...once again (600 is the timescale I was working with; you can find the timescale() with that function) :
>
> on updateCurrTime
>      put round(the currentTime of player "thePlayer" / 600) into theTime
>       put theTime div 60 into theMin
>       put theTime mod 60 into theSec
>       if len(theSec) = 1 then put "0" & theSec into theSec
>       put theMin & ":" & theSec into field "CurrTime"
>       send "updateCurrTime" to me in 1 seconds
> end updateCurrTime
>
>> On May 30, 2015, at 11:16 AM, Peter Bogdanoff <bogdanoff at me.com> wrote:
>>
>> on updateCurrTime
>>      put round(the currentTime of player “thePlayer" 1005 / 600) into theTime
>>       put theTime div 60 into theMin
>>       put theTime mod 60 into theSec
>>       if len(theSec) = 1 then put "0" & theSec into theSec
>>       put theMin & ":" & theSec into field "CurrTime"
>>       send "updateCurrTime" to me in 1 seconds
>> end updateCurrTime
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode






More information about the use-livecode mailing list