timeBase - a Multi-Layer Timeline Component - 2019-11-12 04:25

timeBase - a Multi-Layer Timeline Component

Link to main site


Hi Greg,

thank you for that, it looks very useful.

I was playing around a bit and when using a text,
first thing I want to do is to change the Font. I can certainly dive down to the textTOP,
but how would I proceed when I wanted to add that parameter generally to all text effects?


The best way to add a parameter or feature to a standard element like a Text element is to change the clone master component for the Text elements so all Text elements get a font. It is located at /timeBase/scene0/layerMaster1/elementText1.

See the new section in the post: “Adding Features to an Existing Element Type”.

Note: If you see a huge font menu cut off in the parameters on the right, this is a bug in TouchDesigner which is fixed after Nov 25, 2019. And it’s also been cut off in a floating parameter dialog which you can get if you right-click on the element. Apologies.

I uploaded timeBase Version 15, which is also made with the current 2019 10000 Official. Aside from minor/cosmetic improvements, it has a component timeBase/saveRestore which will help you migrate your scenes in Version 14/15 to Version 16 coming in January. See the section “Saving all your Scenes and States to JSON file”.

Excellent work Greg, I am currently using and it is a very interesting solution to develop different types of projects.

I have 2 scenes created (E1, E2)

At the end of E1 add a scene element, to change from E1 to E2.
When the end of E1 arrives, the scene element does not make such a change towards E2.

  • Scene 2 / Scene element: parent.TimeBase.op (‘scene1’)
  • Scene 1 / Time / External control: scene
  • Scene 1 / Time / External unit: seconds
  • Scene 1 / External master scene: parent.TimeBase.op (‘scene1 / layer1 / element1’)

I hope you can help me, thanks!

solved, I leave an example 3 scenes:

  • Scene 1 / External control: off

  • Scene 1 / Scene element 1: parent.TimeBase.op(‘scene2’)

  • Scene 1 / Scene element 2: parent.TimeBase.op(‘scene3’)

  • Scene 2 / Time / External control: scene

  • Scene 2 / Time / External unit: seconds

  • Scene 2 / External master scene: parent.TimeBase.op(‘scene2/layer2/element1’)

  • Scene 3 / Time / External control: scene

  • Scene 3 / Time / External unit: seconds

  • Scene 3 / External master scene: parent.TimeBase.op(‘scene2/layer2/element2’)

Hi tolch, Yes, you figured it out. The answer I came up with is this: The Parameter “External Master Scene” is labelled wrong. It should be “External Master Scene-type Element”, and should contain a path to an element like, as you wrote, parent.TimeBase.op(‘scene1/layer1/element2’).

So I’ll change the label in the next version, and I will put a note in the post where it’s documented. Thanks for communicating the problem and your solution to me.

Hey Greg, this is really awesome, thanks for making it !

I’ve found an obscure bug . . . after playing a long audio file (~1 hour), the audio starts to get distorted around 45 minutes. This happens when scrubbing to the location or just playing through linearly, it appears the time is off by just a few samples.

The same audio file played with a timer using indexed scrubbing or if linked to the timeline doesn’t have the distortion. I’ve dug through the scene quite a bit but can’t figure out what is happening. I can send you some samples and the audio clip.


Hi jeff, … I mean teff… I’ll look into this distortedness with a long file ASAP.

Hi Greg,

This system is very inspiring and am excited to use it when I can. Is there a process in here for preloading upcoming clips?