Hi all, sorry for spamming the different “routes”. I’m not 100% sure what is the most effective way for communication. We are in the middle of creating a real-time app using tracktion engine. In general we are very happy with it.
We are currently looking into an issue that was first reported about 2 months ago by some testers and we can indeed replicate, also in waveform.
Basically when you create a project with some 64+ tracks and you add some (basic) plugins on them so that you use about 30%+ or so on the CPU/performance meter. Then you add about 32+ aux returns, at some point where the graph is not very complicated still, the GUI starts freezing and there are audio clicks/pops.
I have created a git issue that is related to this now. We can create a very similar behaviour in Waveform.
Basically it seems like if you create +/- 32 aux return plugins in a project that reports about 30%+ CPU that adding more returns starts freezing the GUI and also adds clicks and pops on the audio.
We have now done some profiling too and created a project with 192 tracks with 2 aux returns.
Doing this freezed the GUI for 2-3 whole seconds when a graph rebuild is triggered while the CPU meter is only reporting 8% usage. We also get clicks and pops on the audio.
most of the time is spend in “tracktion::graph::ReturnNode::findSendNodes”
The text file with the report is posted in the Git issue.
We are open to help “debug” this and create a pull-request, but currently we don’t really know where to start to investigate this and would like some guidance. Of course changing things while not breaking things is another challange.
The interesting thing is that if we use the NDI VST3 plugins to get audio in and out of the graph it seems that we don’t hear the pops, but it could be that the audio of those plugins is just being processed before the “underrun” occurred.
Also as a sidenote, all these tests we have done are on 512 buffer ASIO latency, so it is very unlikely that this is caused by low latencies.