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 <bogdan...@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@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode



_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to