Would it be possible to add a display toggle button for the timeline dialog as a whole? This could live next to the Perform/Palette buttons, for example, as a quick way to save precious compute while editing networks.
I am interested to hear from other TD devs about whether this feature would seem justified to them; perhaps it is only me who so rarely interacts with the built-in timeline dialog?
And, if at all possible, it would be great to optimize the timeline dialog. For example, 3d textures in a GLSL outperform the Text TOP by a fair margin:
Attached is a quick component of the above, should anyone at Derivative be open to exploring this methodology in /ui/dialogs/timeline/transport/timecode.
+1 for having this real-estate back.
Having worked with Unreal and Notch it’s interesting to me how much network space we have in Touch… I’m still greedy for a little more. I know it’s only 90 pixels, but I’d also love that little bit of screen space back.
In the last 10 years of me doing full-time TouchDesigner work I haven’t used the timeline or any of its controls in any of the projects I worked on, as in: absolutely none.
In my opinion it mostly confuses newish users who think they need it for animation, or who stumble upon the timeline being paused by accident, while even Derivative itself recommends to use other methods for animation. It’s really time to get rid of it.
+1 as well. Especially to Idzard’s point, I’ve never used it on a project and have written blog posts to help new users not get sucked into it. It also makes remote session slower and sometimes I find myself moving the timeline off screen to save on the draw updates.
I’ve found myself wishing to replace that pane with other content, or to make it collapsible like ctrl b does the palette.
I can’t say I’ve never used it… There are a handful of situations like scoring a fixed length audio track synced to that timeline where it’s been helpful to jump to a specific part of the song, but certainly not a thing I go to often enough to justify the cooks or the screen real estate as default in every project
I started building a simplified version a while back but never published it. The idea was to let you manually replace the existing one with your own timeline.tox.
There were a few problems, particularly how to install it so it fits/adapts and sticks … it’s tricky. I’ll send a procedure once I figure it out. The text-drawing time is a separate issue.
2021 builds of TouchDesigner only:
For any brave soul who wants to try this experimental (UNSUPPORTED) simplified timeline (i.e. no line), first delete C:\Program Files\Derivative\TouchDesigner.2021.xxxxx\Config\System\timeline.tox (you may have to do it as Administrator). Then copy-paste the attached timeline.tox in its place.
Then you have to edit C:\Program Files\Derivative\TouchDesigner.2021.xxxxx\Config\Applications\Fuse\App.ui. You will likely have to change its file permissions (rclick → Properties) to make the file writable by you. Then you can change the last line, where it says 0.90, change it to 0.42 (meaning 42 pixels high), and save the file out.
Then start TouchDesigner. This eliminates the scrub bar, several buttons, the rarely-used music time signature. Clicking on the frame display gives 4 representations of the current time, and eliminates one of the Text TOPs.
And for not having to replace a fixed component this little script
timeline_op = op("/ui/dialogs/timeline")
prefab_timeline = op("custom_timeline")
for child in timeline_op.findChildren( depth =1 ):
try:
child.destroy()
except:
pass
for parameter in prefab_timeline.pars():
timeline_op.par[ parameter.name ] = parameter
timeline_op.par.clone = op("custom_timeline")
And voila, the timeline gets replaced with the component you define as the prefab.
The good thing is that this need to be done every startup, but just call the script with an executeDAT on startup, so this is totaly project dependant. THis technique can basicly be used to easily replace all of the default UI components. The key is to not destroy the UI element but to scrup it good and implement you own stuff then. Just cloning wont work.
Also, caviat for that: I could not find the script to change the size that exists somewhere in there (urg, TScript). Instead I just have a simple executeScript setting the widthParameter of the element ecery frame to ui.windowWidth