AU interface sluggish -- mixing on GUI thread?


#1

We have a plug-in that’s doing a lot of processing, but it’s still only a fraction of what the CPU is capable of. The JUCE GUI interface is very sluggish, however, at least in Logic. It appears that the processing calls, e.g. the calls to PlugInProcessor, are happening on the GUI thread – is that right? That bizarre behavior would explain the sluggishness. The same plug-in on a PC as a VST runs very fast, and the processing happens on a separate thread.

Is there some other way AU plugins are meant to be designed so they don’t freeze the GUI thread? Or is there some option in Logic we might have inadvertently enabled that forces all processing to happen on the GUI thread?

Thanks,
Dan


#2

Very hard to say without seeing the code, does the juce-demo plugin behave in the same way?

appears that the processing calls, e.g. the calls to PlugInProcessor, are happening on the GUI thread – is that right?

That makes absolute no sense, what may happen that in your implementation you have some kind of performance intrusion between message-thread and audio-thread because of shared mutexes/critical sections.


#3

Did you put breakpoints on processBlock and saw that this is what happens? It would be quite surprising if it did.