Dopo un'estesa ricerca su Internet non sono riuscito a trovare una formula decente per calcolare (aggiungere) i timecode, quindi sto costruendo il mio script da zero.
Finora posso ottenere un risultato abbastanza decente, tuttavia ho problemi a tenere conto delle timeline di Drop-Frame. Secondo quanto appreso, saltano dal fotogramma 29 al 02, a meno che non sia il decimo (o multiplo) minuto, nel qual caso saranno presenti i fotogrammi 00 e 01.
Qualche consiglio su come implementare questa funzione?
Anche qualsiasi miglioramento per lo script sarà benvenuto.
global tcSTART
global tcDURATION
global tcFINAL
global frameRATE
on run
set frameRATE to "23.98" -- test frame rate
set tcSTART to "04:03:02:01" -- test Value 1
set tcDURATION to "01:02:03:04" -- teste Value 2
my calcFinalTC()
display dialog tcFINAL
end run
on calcFinalTC()
set FF to (word 4 of tcSTART) + (word 4 of tcDURATION)
set SS to (word 3 of tcSTART) + (word 3 of tcDURATION)
set MM to (word 2 of tcSTART) + (word 2 of tcDURATION)
set HH to (word 1 of tcSTART) + (word 1 of tcDURATION)
if FF ≥ frameRATE then
set FF to (FF - (round (frameRATE)))
set SS to (SS + 1)
end if
if SS ≥ 60 then
set SS to (SS - 60)
set MM to (MM + 1)
end if
if MM ≥ 60 then
set MM to (MM - 60)
set HH to (HH + 1)
end if
if HH > 23 then
display dialog "The timeline can't be larger than 24 hours" buttons {"OK"}
error -128
end if
if the length of ((FF div 1) as string) = 1 then
set FF to "0" & FF
end if
if the length of ((SS div 1) as string) = 1 then
set SS to "0" & SS
end if
if the length of ((MM div 1) as string) = 1 then
set MM to "0" & MM
end if
if the length of ((HH div 1) as string) = 1 then
set HH to "0" & HH
end if
set tcFINAL to HH & ":" & MM & ":" & SS & ":" & FF
end calcFinalTC