A question about Perfomance...

Hello Derivative and TD!

A short explanation to understand my problem :: We have 10 LCD Touchscreens with Arduino, connected via usb y serial dat to Touchdesigner . There we control all the videos y imagens, which you can select on the Touchscreens. The selected video (1280x720) is going out via Syphon (Spout) to ELM (Enttec Light Mapper) to show on a world map the places where it was burning on an Pixel Mapping with almost 1300 Leds (The project is called :: MAFD. Mapping Active Fire Data).

The Hardware :: HP Workstadion Z240T I7 7700k. 16GB Ram. 256 SSD. Nvidia GTX 1070 8GB. Windows Pro 10

The main problem is that the complete system is slowing down extremely and and is telling that it is constantly overloaded. TD is dropingframes, ELM is not transmitting via ArtNet…

Some questions:
How much arduinos can you connect via usb y serial dat to Touchdesigner? Has anyone done an similar project? What is your experience? Is it necesario to use two usb cards??
The other bottleneck i think is the spout (zeal) out from TD to ELM. How much of the system does it need? And what about NDI? What works more stable?

Any advice or experience or idea?

attached the .toe file of the project …
MAFD_FINAL_VIDEOP(FORUM).toe (14.8 KB)

First step is to isolate the bottleneck. My guess is that it’s the HD read speed as you have about 20 MovieFileIn TOPs in your scene that seem to be reading simultaneously. I’m curious about the resolution and codec of the video files you are using. Typically you should be using the HAP codec and you might consider getting a PCIe NVME storage solution. We like the 960Evo and this adapter: [url]https://www.amazon.com/StarTech-com-PEX4M2E1-M-2-Adapter-Profile/dp/B01FU9JS94[/url]

First thing you should check is the windows resource monitor that should tell you if you’re hitting a cap in your HD read speed. Apart from that, there are two tools in TD that are particularly helpful for isolating bottlenecks:

The Performance Monitor Dialog: [url]TouchDesigner Documentation

The Probe Component: [url]TouchDesigner Documentation

One other thing I might mention is that it’s typically a good idea to run audio in a separate scene. This might not be necessary for your application but usually I separate my audio files from my video and use TouchIn/Out or TCPip DATs to keep things in sync.

Hope this helps!

Wow! Thank you :: Matthew. This is amazing and definitely a big big help for me. Step by step i will go through all the points you made.

The deeper details ::
The resolution of the videos is 1280 x 720 all in h294 y mp4. The videos are not playing they are loaded into the movietop and there will be just one video playing at the time. The video is activated by the arduino touchscreen via serial dat. The same with the audio.
So that is why I thought the usb connections are the problem.

I have a ssd installed but will have a deeper look at the link you added. Same with the audio issue where i think can be the real " bottleneck" problem.

One more question. I have to transfer the video to ELM (Enttec Light Mapping) I do this via spout? What is better: Spout or transfers via NDI?

Seems that I have to re::think the complete system in detail!

thanks again and all the best for you

Ah yeah you will probably see a performance increase by converting your videos to HAPQ as they decode mostly on the GPU. If you’re really only playing one at a time you’ll probably be OK to play them off a SSD.

Tough to say if your Serial USB connections are slowing you down. You could always run that portion in a separate scene. That might help a bit.

I’m not sure if Spout or NDI would be faster but my guess is that Spout would win as it is just sharing a texture buffer memory location rather than compressing/decompressing the video like NDI does.

Good to know all these details…

thanxxx.

.