›

Millumin + Touchdesigner

Hello,

I have a project mixing Millumin for video projection with Touchdesigner (.tox loaded into Millumin) for the interaction part.

I have 56 columns inside millumin and a tox loaded and spread accross all those 6 columns for managing interactions (catching osc messages and driving sensors and electro-mechanical displays). Touchdesigner is also dealing with changing columns depending on data processed from the sensors.

Everything works fine but i can't make it run as i need : at one time i need to switch to a 7th column or switch to another dashboard using OSC from a remote. The 7th column doesn't imply Touchdesigner so the tox layer is not propagated on this one. However, touchdesigner is still active when on the 7th column or the other dashboard thus continues to trigger the interaction : sensors are triggered and sound keeps playing and columns from 1 to 6 are triggered too making impossible to stay on column 7.

I get that the TouchEngine is still running in the background but then how the interaction could be stopped when not using the tox on the layer ? what is the purpose of not extending the tox layer to certain columns if the process is not stopped ?

Any help ?

Thanks

Comments

  • Hello Martial,

    Sorry for the inconvenience and the delay. Indeed, the process should be stopped when the tox media is not running in a column.

    Which version of Millumin are you using ? Have you tried your project with the beta version ?

    If possible, could you send me your Tox file to try it myself ?

    I'm investing right now.

    Thanks

  • Hello,


    thanks for the answer.

    I am using version 5.14.k in production.

    I have tested the beta version but still the same.

    See attached files for test (using Millumin beta version)

    Thanks

  • Hello again,

    I have been working on your issue and reproduced it.

    I will send you a special version fixing your issue with a couple other details.

    Thanks

  • edited October 26

    Hi,

    I am using the Millumin version you provided, seems better but i am unable to load 2 Touchdesigner tox without crashing.

    The tox files are just made of OSCin and OSCout to use an OSC hub listening to incoming messages from different sources and routing them to Millumin.

    Opening Millumin is ok and tox works but as soon as i switch to a column hosting another tox it crashes.

    See sample enclosed

    Thanks

  • @Luc

    tox1 and tox2 both use the same input port for osc communication. Seems like this is the issue as when i give both tox a different input port, Millumin doesn't crash.

    Now are the tox files really unloaded when not in use in a column ? Or one tox takes control too fast before the previous is unloaded ?

  • Hello Martial,

    I've looked into your issue and tested your project. I've improved the error handling with TouchDesigner to better understand what happens when working with TOX files in Millumin.

    Otherwise, your intuition is correct: TOX media files remain loaded even if they aren't currently playing. But this is intentional to ensure that the media starts as quick as possible when changing current media. So the OSC port being busy is an expected behavior.

  • Hi,

    Thanks a lot for the feedback.

    Tox being constantly loaded seems fair and it explains a lot. Though it makes some use case (like this OSC setup) a bit tricky.

    Also i am only using 2 tox files, but if one wants to use like 20 tox, won't Millumin struggle ?

    thanks a lot

  • LucLuc
    edited October 28

    Hi,

    The library that handles rendering TOX files in background takes a long time to start up and this for each file loaded (about 5 to 10 seconds!). Even if we aren’t rendering anything, we have to keep it active to prevent reloading during execution.

    In terms of performance, the TOX file takes up a certain amount of memory, but it isn’t executed. Therefore, processing power isn’t affected. With 20 TOX files, memory usage can be significant, but Millumin will run without any issues.

  • Hi,

    Ok good to know. Does it mean each TOX lives in a separate and distinct engine (like an EngineCOMP in Touchdesigner) ?

    As for the TouchEngine i know this is the expected behaviour and it makes sense. Of course they need to be loaded and kept like this so we can switch back and forth seamlessly. I just need to re-think the data flow and come up with another solution for the OSC part.

    Thanks a lot.

  • That's pretty much it, yes. Each component is rendered by its own engine (you can even see this in your Activity Monitor), because a single instance of TouchEngine cannot handle rendering multiple components at the same time.

    I hope you’ll find a solution for your OSC communication. Millumin’s JavaScript functionality might help you: it supports sending and receiving OSC, so you wouldn’t have to worry about a TouchDesigner component monopolizing the port.

    Thanks

  • Ok got it. Thanks.

    The OSC use here is just a hub gathering multiple sources messages and transfer it to Millumin OSC port.

Sign In or Register to comment.