Login | Register 

timeBase - a Multi-Layer Timeline Component

Share your components here. First one to 100 wins!

timeBase - a Multi-Layer Timeline Component

Postby greg » Thu Dec 29, 2016 1:01 am

This is a customizable multi-layer timeline component that is designed to play and mix media elements.

It is intended to be an infrastructure that is as simple and customizable as possible. It has minimal panel UI, in favor of defining, setting and controlling via custom parameters, which makes the timeline easier to extend and control externally via scripts. Multi-layer timelines in 2D editing, audio editing and show control products have endless features and UI... these are the basics here and I hope the community expands on what's started, and inter-breeds it with the other timelines made by TouchDesigner users. At very least its architecture is a reflection of recently-developed best-practices, so we hope you learn from its internals. (088 and 099)

TimeBase.1.jpg (29.45 KiB) Viewed 882 times

Each timeBase component is a Scene that acts as a separate timeline mixer that gets triggered to play and mix. A Scene contains 1 or more layers, and each layer contains a number of "elements" placed along the timeline. There are 6 element types ("effects") including Movie file, Audio file and Generative. The scene contains the network that pulls and mixes video, audio and channels from the layers.

Click the “Scene 1” button at top left to see all the setup parameters for the whole scene… total length, initialization and start ("I" and "S" in the UI), cue time and cue go, plus the adaptive panel layout parameters of the UI including the overall width/height of the panel on the usual “Layout” page.

Click the “Layer 1” button etc to get the layer setup parameters.

Click any element on a timeline. Here you set the start and length of the element, and set the parameters of the specific element type:

There are 6 element types that can be intermixed on a layer. The current element types (Effects) are: Movie File, Audio File, Text, Generative, Events and Channels. Click an element bar to get up an element’s parameters. The first custom page “Element” is common to all elements, the “Effect” page is specific to the type of effect – movie file name, etc.

Add an element by clicking on the background of the layer.

Playing a sub-range of the Timeline:
Under the viewers at the top is the sub-range control (grab the green bar left, right and middle to change start and end times). Then press "PS" to play only the sub-range, and VS to view the subrange on the scrub bar below it.

Mixing layers:
The timelines can be any combination you want, and in scene1, you select and composite layers as you see fit, and select and mix audio to suit your needs. The example has layer 1 and 2 blended together, with layer 3 composited over 1 and 2. Layer 4 is used for an audio track, and any audio on movies in layer 1 or 2 get mixed in.

The element types are pretty basic currently, playing movies and audio at normal speed synced to the start of the element. Event and Channel elements are a blank slate currently. Also keyframing channels isn't hooked in.

There are no delete buttons, you can just go into scene1 and delete any layer1-layern component, and within a layer you can delete any element component.

You will see that some elements have their specific effect built internal to the element component (audio file playback for example: in the elementN/effect conponent), and some are external - like effect2 beside an element2 (if it is a generative thing). It works either way - inside or outside the element component, and allows for huge image/audio generating components to live somewhere else in your project. (The element component has a parameter Effect, which is the path to the effect, and the effect component has an Element path parameter that points back to the element.)

More doc coming soon.

Anyway, I started on this right after the Day For Night festival (Dec 17) where I got it in my head from looking at the digital art and talking to the 27 other TouchDesigner users in attendance to stop talking and make this no-fuss component.
(133.82 KiB) Downloaded 136 times
User avatar
Posts: 458
Joined: Tue Nov 13, 2007 1:08 am

Re: timeBase - a Multi-Layer Timeline Component

Postby greg » Fri Dec 30, 2016 12:41 am

timeBase.2.tox is updated with better modularity and UI.

timeBase.3.tox is much faster, still more optimizable.

known bug: to make View Subrange work (VS button) you need to go into the network once.
User avatar
Posts: 458
Joined: Tue Nov 13, 2007 1:08 am

Re: timeBase - a Multi-Layer Timeline Component

Postby enthewhite » Mon Jan 09, 2017 2:45 pm

Wow! :ugeek:

So I finally decided to uninstall adobe suite the other day in an effort to demonopolize my creative tool set, which has been fine so far using Affinity Photo to replace photoshop... but then of course today I decide I need to edit some video for my portfolio, and forget that after effects and premier are now gone :o . But then I think, I love touchdesigner so much, why not build some components to edit video?... glad I did a quick forum search for "video editing" so I didn't spend all day redoing all this work.

THANK YOU!! Happy to remonopolize my tool set to TD ;)
User avatar
Posts: 187
Joined: Sat Sep 03, 2011 9:19 pm
Location: Portland, OR

Re: timeBase - a Multi-Layer Timeline Component

Postby VidE » Tue Jan 10, 2017 12:41 pm

Thank You for a really wonderful, thoughtful and very useful piece of work.
Posts: 34
Joined: Fri May 16, 2014 11:40 pm

Re: timeBase - a Multi-Layer Timeline Component

Postby jmt4zj » Tue Jan 10, 2017 2:23 pm

Wow, this is nice! Definitely a great tool to have for a lot of situations!
User avatar
Posts: 41
Joined: Mon Nov 01, 2010 3:15 am

Re: timeBase - a Multi-Layer Timeline Component

Postby prochoy » Sat Feb 11, 2017 8:56 pm

Awesome Greg - very elegant approach!
Posts: 38
Joined: Wed Dec 31, 2014 2:20 pm

Return to Shared .tox Components

Who is online

Users browsing this forum: Bing [Bot] and 2 guests