Creative Communities of the World Forums

The peer to peer support community for media production professionals.

  • Jack Parks

    March 5, 2010 at 8:51 am

    Hello I was trying to find an expression similar to a frame counter, but where I could start it at a specific number and count on like a clock. Starting at 21:19:20:02 for example so hours/minutes/seconds/frames.
    Thanks

  • Jack Parks

    March 5, 2010 at 11:28 am

    Hello

    Oops I just found all of the other posts and links to motionscript.com

    Thanks

  • Elad Menashe

    March 6, 2010 at 10:05 am

    There are two ways to resolve the clock:
    The first is using timeToTimecode (a built-in AE expression method)
    Problem is it is bounded by 3 hours, each time above 3 hours will show 3:00:00:00
    But the code is much simpler

    The second option will be in the next message

    startH = 1; // 21 will overflow
    startM = 19;
    startS = 20;
    startF = 02;

    timeShift = startH * 3600 + startM * 60 + startS + startF * thisComp.frameDuration;

    framesPerSec = 1/thisComp.frameDuration;
    timeToTimecode(t = time + timeShift, timecodeBase = framesPerSec, isDuration = false)

  • Elad Menashe

    March 6, 2010 at 10:06 am

    This code will work in all cases, except overflowing of the Hours
    in case you’ll get to 23:59:59:24 next frame will be 24:00:00:00

    Enjoy

    separator = ":"

    // offset
    startH = 21;
    startM = 19;
    startS = 20;
    startF = 02;

    // calculate current time in H:M:S:F format
    framesPerSec = 1/thisComp.frameDuration;
    F = Math.round((time % 1) * framesPerSec);
    timeRemainder = Math.floor(time);
    S = timeRemainder % 60;
    timeRemainder = timeRemainder - S;
    timeRemainder = timeRemainder / 60;

    M = timeRemainder % 60;
    timeRemainder = timeRemainder - M;
    timeRemainder = timeRemainder / 60;

    H = timeRemainder; // there's no handling if H > 24...

    // add offset
    F = F + startF
    S = S + startS
    M = M + startM
    H = H + startH

    // check overflowing
    if (F >= framesPerSec)
    {
    F = F - framesPerSec;
    S = S + 1;
    }

    if (S >= 60)
    {
    S = S - 60;
    M = M + 1;
    }

    if (M >= 60)
    {
    M = M - 60;
    H = H + 1;
    }

    // add "0" to the beginning of the number if it is smaller than 10
    StrF = (F < 10 ? "0" : "") + F;
    StrS = (S < 10 ? "0" : "") + S;
    StrM = (M < 10 ? "0" : "") + M;
    StrH = (H < 10 ? "0" : "") + H;

    "" + StrH + separator + StrM + separator + StrS + separator + StrF

Viewing 1 - 4 of 4 posts

Log in to reply.

We use anonymous cookies to give you the best experience we can.
Our Privacy policy | GDPR Policy