29850 Timer CHOP cumulative_seconds output

Windows 11
RTX A5000

TouchDesigner 239850

Timer CHOP does not seem to display reliable time values when jumping between segments.

Using the buttons in container1 you can jump from timer segment to timer segment. The output channel segment_plus_fraction provides the expected behavior of displaying the current segment index (integer) with the timer fraction (float).

The channels cumulative_seconds and master_seconds do not seem to track accordingly.

This may be a misunderstanding on my part about the function of these output channels, but my expectation is that when jumping between segments I’d have an output channel whose value would be the time (seconds, frames, samples) of the timer’s total play head.

For example, I have a movie file that’s 30 seconds long. A Timer CHOP has a segments table with three segments, each 10 seconds long.

I’d like the cumulative seconds from a timer to drive the index of the video, while using segments to define other time based events that need to correspond with key moments in the video. Jumping to segment 1, for example would put the cumulative_seconds output at 10 seconds (the beginning time for that segment) - currently the interaction between segments and both cumulative_time and master_time with segments produces output results that are ambiguous.

TOE file attached as an example:
timer_chop_cumulative_seconds_behavior.toe (880.9 KB)

Since you can jump all over the place, .cumulativeTime represents how long you have been going, counting up while jumping/scrubbing around etc, pauses when Play goes off, and slows down when Speed goes down. i.e. It counts from 0 when you Start, is affected by Speed and Play, it continues to increase when looping and jumping and scrubbing around. So it is indeterminate.

.masterSeconds or .goTo() can be used to jump to explicit times based on the parameters and the segments table, as if you don’t do any jumping around. It should show the same values when you reach the same part of a segment several times.

The various time counters are described here: Initialize Start - Derivative and I described it more in the Timer CHOP’s python page.

2 Likes

I edited and clarified the prior reply.

You are right, I think there is something wrong with .goTo(segment=2) and cumulative/running… checking.

I can confirm this issue, but using the masterSeconds member I can jump to specific times… for the time being I can bypass segments.

Hi Matthew,

There were a few mis-calculations which will be fixed in the next Official we post.

Most important for you, we fixed: .goTo(segment=2) - you should (continue to) use this form to switch segments.

The master_seconds I think is what you want tracking where you are, but in the new build, the cumulative_seconds, running_seconds and playing_seconds and their (some new) python members (.cumulativeSeconds, etc.) are now outputting correctly. Their definitions are in the revised wiki for the Timer CHOP class.

1 Like

Thanks @greg! Glad to hear these fixes will be in the next official :tada: