Seamless Looping a Timeline

<< Click to Display Table of Contents >>

Navigation:  Part 2: DeltaGUI Software > Populating the Timeline >

Seamless Looping a Timeline

Looping Media, Looping the Timeline

You can enable Loop on movie and audio resources, allowing you to drag the length of the resource out beyond its natural length. This will provide seamless looping of that media resource. Images and Web Capture resources are inherently loopable anyway.

If you loop a timeline rather than a resource (i.e. to return to the beginning of the timeline and play all layers again) you may want this to appear seamless, with no black frames between, and with no audio hesitation or clicks. In addition to the settings described below, ensure that the loop control in the timing area is the same as the last frame of the media playing, as follows.

You can drag a loop control into the timing area and right-click to send it to the end frame of the show (Auto End):

This places the loop in the first frame after the last media frame, so now go to the loop control properties > timeline and position it back by one frame, to avoid the black frame and/or audio click.

For seamless looping you also need to make a couple of system adjustments.

Movie Seamless Loop Mode

This movie playback mode must be enabled in the registry (Delta/System/DisableSeamlessLoop key = 0). It creates seamless playback of media as well as seamless, smooth transitions from one part of the timeline to another if Goto or Loop controls are present. In addition, external control commands for Gotomarker, Gototime etc., will also transition seamlessly without stopping the timeline as in normal mode.

Registry Edits

7thSense software uses the Windows Registry extensively, and on occasion we make recommendations for changes.

Before making any changes, close DeltaGUI and DeltaServer.

DeltaServer can take up to 10 seconds to fully close in the background, even if it appears that all the Windows have closed. Ensure that Delta has fully closed before opening and/or refreshing, and finally editing. The best way to ensure this, is to watch Windows Task Manager > Details list. You will see ‘DeltaServer.exe’ in this list if DeltaServer is still running. If it won’t close for any reason, you can right click on it in the list and choose ‘End Process Tree’.

Make a note of any setting before you change it, in case you want to change it back.

Only make the changes as recommended and only to those registry keys.

The difference is shown in this example: Movie 1 is in scope playing, and a Goto control comes into scope which jumps to the start of Movie 2.

Non Seamless Loop
The timeline stops for 1 frame, jumps to Movie 2 and Cues, then Plays (<0.5 s delay)

Seamless Loop
The timeline jumps to Movie 2 and plays immediately (no delay).

In Seamless loop mode, there are some things to be aware of. Any timeline control jump (Goto, Loop etc.) is pre-planned during playing the show, but for external control versions (GOTOMARKER, GOTO TIME etc.), there is some delay from an external control command to GOTO a timeline location, while the new seamless transition is initiated. In non-seamless loop mode, these external commands happen immediately, but without a seamless transition.

With seamless looping enabled, the server pre-caches clips that we will be jumping into via a GOTO, a loop or or via an external control command GOTOFRAME.

The amount of time that the server is given to cache ahead is set with the Preroll Frames setting in the Config > Preferences > Timing section.

The minimum duration for video only is 5 frames – for codec or audio we would recommend 100-200 frames, depending on the power of the server.

You cannot loop seamlessly back into the same audio track that is currently playing.

Audio Seamless Joins

When audio media are butted together, for truly seamless joins the following audio clip needs to start on the next clock cycle after the preceding clip ends. This is achieved by cueing the following clip.

This also has to be set in the registry (Delta/Hardware/AudioSeamlessJoins key = 1).