Alternatives to Scene Changer?

Guru help please:

On my first Visual Music TD concert in 2022 I used sceneChanger from Palette on a PC Win64 laptop. sceneChanger was great for visuals but I had a lot of trouble switching audio, midi and between different input devices required for real time midi reactive, audio reactive, audio and midi reactive TD visualizations mixed with pre-rendered movie playback. Even with that one, I had to split the project into two main projects due to memory limits and complexity. Mixing live and pre-rendered seemed tough without encountering audio problems.

I am working on a new project now with a much more powerful desktop i9 with RTX4090 and more memory. I am thinking to use simple switching to turn cooking on and off without fancy transitions since each new piece is pretty heavy and CPU GPU intensive now. But each piece in its own TOX will still be pretty huge so I am worried about having them all sit there in memory in one huge TD program.

What is a clever way to load in these large TD simulations one at a time for a show without me being present? Like to do so when an index changes say from a show control program? I am not a great python programmer but is there a simple script that would load in each TD Tox or Toe program one at a time pretty quickly and run it in a high pressure concert situation or later me-not-present looping show installation?

In other words, good alternatives to sceneChanger if I don’t need dissolves between two large programs running at the same time? I am ok with simple black for a few seconds while a new Tox loads… So I could keep these on SSD like SanDisk 2TB drive or inside PC disk storage, not just RAM.

Any advice or links appreciated.

As far as I know nodes in Containers don’t/won’t cook if the Container output is disconnected. I build my “looks” into Containers and then connect the output to the inactive input (preview) of a Cross node so I can cross fade to a new look. When jumping between different Containers I can see my frame rate taking hits or recovering depending on which Container I connect to.

I have no idea if I am doing things the best way, but it mostly works for me.

You might also look at Engine COMP.

Tthe initital setup can ba pretty streight forward, for the beginning :slight_smile:


This will load the toxes, but freeze TD complelty when doing so.

You change this up to an engine actually pretty quickly.

You need to take care of reconnecting the in and outputs though, but that should not be to hard :slight_smile:

Just Keep in mind! You will not be able to interact with anything inside the engine except via parameters.
Global OPs, refferences to outside the comp etc will break!

1 Like

@goblynn93 Thanks Brian for your help. I am familiar with using Switch TOPs for turning off cooking upstream and have fooled around with Cross Chops a little bit for audio. I also frequently leave code blocks in my projects as Base components which I turn on and off as needed like shown here.

That way I can prevent really heavy chunks like high res renders crashing frame rate. But some of my studies are so large/big/heavy cook time that I am worried about putting a bunch of them into one big program. And if I try to switch audio and video at same time I seem to get audio glitches. Switching audio seems to be my biggest headache. With your container technique do you avoid audio glitches?

@alphamoonbase Thanks very much Wieland. I feel like I am talking to God! You have done so much for this TD community. I will try to replicate your examples. I have not worked with Engine before so will try to learn about that too. Thanks for the tips and all your great work.

1 Like

I am not generating audio, only reacting to it, so I can’t really answer your question on that.

The Engine COMP is probably the best for you.

The Interactive & Immersive HQ has a decent introduction to the Engine COMP on the tubes
Engine COMP in TouchDesigner - An Introduction - YouTube

Thanks I will check that out. Appreciate your advice!

Hello again Wieland. Sorry to bother you but I am trying to replicate your first example but I am not sure I am doing the right thing with the “loader” base or the DAT execute. I am pretty green at coding.

Q1: I am not sure what flags (if any) to turn on in datexec1 and the python docs ref was down so I could not look it up. It is not executing the print statement and my base “loader” shows error. What flags should be on?

Q2: I tried to replicate “loader” but it looks like it is a custom op? I could not find it on olib. Can you tell me where to get it or how to make it?

I attach my code attempt which is not working yet.
WeilandSwitcherA.6.toe (6.1 KB)

Thanks for your help.

No worries, I was a little bit ambigious for you to try and learn.

  1. It seems like you placed a executeDAT and renamed it to datexec. You need to use a datExecuteDAT. Then it should be much clearer what I am doing and what you have to do.
  2. The loader is not a component. I am sorry for renamin it nd not using the default name to make it easier to understand. The “Loader” basicly is a simple baseCOMP. We can use the externaltox parameter and the reinitnet parameter to load this tox in place of the COMP itself replacing its type and content.

Ok thanks very much. I also typed python wrong so with “onTableChange” in line 1 instead of “TableChange” it is kind of working on startup. I had some non toxes in my folder too but fixed that.
I will try again with your new help - thanks for making time for a newbie.

Yes with your changes example 1 works fine. Weird how it replaces itself. (from a base to a container)… For others trying to replicate this I attach a screenshot after changing index and the code. I will move on the engine example 2. I watched the HQ link from @goblynn93 (with thanks!) and they look really good!

Thanks again Wieland! I will work on learning python better.


WeilandSwitcherA.11.toe (6.0 KB)

To close this off, your second example with Engine COMP seems to work really well so far. I made up a few simple dummy TOXes with just a few controllable parameters and was pleased the audio and video switching was smooth. The Toxes will need an identical IO structure I think unless I can use network editor to control custom components. I thought I would share the toe file in case some other newbie needs the technique. And I made a little movie to show your solution in action. Thanks again guys!

WeilandSwitcherB.3.toe (13.1 KB)

https://vimeo.com/882540862/81505767da?share=copy