I’ve been playing around with TouchDesigner, mostly have been working to re-create some effects I’ve written in ISF as a way to learn the OPs etc.
I noticed that it has to load the TocuhEngine every single time I spawn an instance of the effect. I understand that’s a limitation of the architecture of component files (.tox) – but is there no way for me to keep that instance cached?
I suppose secondary to that question is a feature request: the ability to “send” video out in the middle of an FX chain and then receive it again at another stage.
Say I have a TouchDesigner plugin loaded (since that loads once, and I can pack multiple inputs and effects into the plugin so I have a single running instance) and I want to apply some ISF effects in VDXM, then apply a complex TD chain, then apply more ISF effects after in the UI. Something like “sends” in the audio world?
Good question. I’m not sure if I am the best person to answer this, but could you use a syphon in/out through TD to get the TouchEngine to process those effects?
I think it would be limited by the .tox network setup, but if you have the correct parameters set in the .tox they should be visible in VDMX for control.
The bummer about the .tox files is that they do load a new instance of TouchEngine when triggered which can take a second and use up a decent amount of memory.
I used this method you mentioned years ago, when we didn’t yet have TDs within VDMX. Basically, I created a syphon-to-TD send layer, applied my effects, and sent it back to VDMX. This is called sending or BUS. It worked very well.
I understand that if you use this same idea, there shouldn’t be any problem changing effects from a single TD instance within VDMX.
You both may have inspired a solution, a little hacky but it works so far.
Basically I tried to make 2 components in TD:
The master FX instance, which contains the complex networks, all loaded into one plugin.
A “TouchDesigner Send Bus” effect which uses Syphon to send the current frame to a known named server (I’m also working on getting the Shared Memory TOP to work for this)
Then in the master FX instance I read from that known syphon server/memory location do a selected effect from a dropdown menu, then send it back into another known shared memory location/syphon, which the “Send Bus” uses as its output.
This effectively lets me leave the instances of the send buses in the FX chains and either bypass them or rearrange them as I want. Since I only work with 2-4 chains that shouldn’t be an issue memory wise since all the work is being done inside the main FX instance which stays as a “singleton” to the entire VDMX project.