Bare Bones Scene Change Show System

A lot of people have been asking about the right way to setup their installations / show systems. I decided to make a general purpose system that I have been giving to a variety of people for a variety of different shows. This system has worked very well so Im releasing this here for testing before we put it in the palette.

The entire core scene change system is the component /project1/exampleShow/show. You do not need to go inside show - it is a contained system that references an external “Scenes COMP”. The Scenes COMP must have components inside that are tagged TDScene.

The show component will immediately load any components tagged with TDScene. The show component expects to find an out1 TOP. As well the sceneCOMP will pulse the Start button on the scene component and activate the Play toggle button. When the scene ends the show system will pulse the initialize button.

As well the show system manages cross fading from scene to scene over a specificed Fade In and Out time. The fade In Out time can be defined on the scene comps themselves or locally on the show component parameters.

To change scenes go to the show component and set the Next Scene to an integer that has a valid scene then click “Fire Scene”. There are also DATs in /project1/exampleShow that show you how you can send script commands.

Click “View Scene Index” to see the numeric index of you scenes.

Will continue to build more compatible parts to this system so we all have a goto Show system that is optimized. This system is optimized in the sense that if you keep your scene component contained with a single TOP output, this system will properly shut down scenes that are not displayed.

This is a great place for beginners to start setting up their first show.

For advanced users you can run multiples of this system much like you can run multiple tracks in Ableton live.

This is revision 1.02 uploaded Jan 25 2021.

SceneChanger.toe (18.4 KB)

4 Likes

This looks super useful! Thank you : )))

Brilliant! Many thanks, Jarrett.

Thanks Jarrett, this is very useful.
The one thing I noticed is that the “show” comp’s “Fade Time” parameter is defined as an Int, but I think it may be better if it were a float.
Thanks again!
-Tim

Ok ya that’s better. Thanks for the bug. Fixed in the latest one posted at top.

thank you very much,
along the years I find my self start from scratch custom scene changers for different cases :slight_smile:
i think i will stop that and use this component :slight_smile:

Hey Jarret,

I have here a workshop full of Mac Users
and for them the “Fire Scene” Button does not work…

Best
Stefan

Hi Jarrett - do you mind explaining the ‘extensionParExec’ callback system? Is it set up for anything in this project, and if not, what would it be used for? Thanks!

This is used to automatically run functions that are implemented in the main extension. In this system its used for Firescene parameter pulse that is on the Show component and this in turn automatically runs Firescene function. Its just a convenience.

Hi jarrett and everyone here,
and thanks a lot and again to @nettoyeur for having forwarded me here.

Referring to Can we stop a part of the network from cooking? - #8 by julien , I’d like to know how the system behaves if, in a scene, I run a network using Feedback TOP inside of it and which also “received” parameters change through exports from COMP outside of the scene container itself.

Does the scene currently not showin is cooking aswell ?

I know more about the TD pull system but in that case, I’m just questionning myself.
I designed my first system and I created some scripts for disabling/enabling cooking for some specific BASE (each one of them containing a scene)

Hey Jerry! I am using your tox and it is pretty awesome.

My skills with TD are very humble and I wonder if you could help me with my goal: I want to add a Container in every of the scenes to make a custom UI for each one of thoses (I am using Zerror, btw).

How could I select “the last selected scene”, so that I retreive the last Container? Right now I only get the Container of SceneA or SceneB, but I want to select the most recent selected one.


Thank you very much!

This setup has currentScenePanel which is orange. It uses the following expression to select a control panel from the the Current Scene. I assume you want the current scene panel only.

op('sceneLib/'+op('sceneOrder')[op('show').par.Currentscene.eval()+1,0]+'/scenePanel')

I can see you also might want the next and previous scene panel as well. Going to add this to my notes for the future.

JCurrentScenePanel.toe (18.8 KB)

1 Like

This is really useful thanks :slight_smile:
It would be great to have a forward and back, scene advancing control too, what would be the best way of adding that?
Another thing I’m trying to add is a way of showing a panel of the custom parameters for the current scene…edit: ok this is easy, just add the parameter comp to the ScenePanel each of the scenes :slight_smile:

1 Like

Wow Jarrett, you are a rock star. Extremely useful to me!

I am now using Zerror with your Scene changer and it’s pretty awesome.

I am Dj/Vj and I have a Twitch channel: Twitch

Little by little I am building the system for my visuals. Hope to see you around there next time!

Thank you!!

Hi @Jarrett

I am having a lot of fun with your Show System, including the currentPanel changer.

As I am adding more and more scenes in my project, I really miss a small thumbsnail attached to each scene’s name. And again I wonder what is the best approach in terms of performance and convenience.

Hope you can help me, really appreciate!

You can simply put a thumbnail TOP into the Background TOP parameter of each button. If it is a still image it will have very little performance impact.

build 2021.14360 and I can’t open the .toe. it goes to perform mode and stops responding in windows 10.

Hey @deseipel

I cannot reproduce the issue here, unfortunately…

Are your GPU drivers up to date?

In the meantime, you can use the newly added sceneChanger available in the Palette → Tools folder.

The documentation is available here https://docs.derivative.ca/Palette:sceneChanger

Additionally, Jarrett will cover it during our upcoming inSession tomorrow: TouchDesigner InSession 15.0 | Derivative

Best,
Michel

Hello,
How can I reorder the scenes within sceneIndex? The index table is built with an opfind DAT, and I don’t know which criterias are used to order the results - looks pretty random to me. I thought I had to place the scenes from top to bottom in the network editor, but it doesn’t make any difference (is it because I use an old version of TD ? i.e. 2020.41010). Also no luck with alphabetical order, or chronological order/last added.

By the way, I am very grateful for this scene changer. I have always been struggling with unwanted cooking.

In the OP Find DAT, you can make a column containing curOp.nodeY. Then you use a Sort DAT sorting on the column containing nodeY. That will fix the order to the vertical order in the network.

1 Like