Dear JUCE community,
I’ve written some dsp modules for audio visualisers (loudness metering, true peak, analyser, …). Some of them are also allocating data (!!) and I am sending data via InterprocessConnection to other clients over network.
Basically I’m only reading the audio buffers from the plugin’s audio processor but not modifying them. That’s why I want to reduce the work on the audio thread to a minimum (only copy the audio buffer to a lock free FIFO) and doing the rest on a separate thread.
I’m wondering what’s the best strategy for it.
- Should I start one thread and run all modules on that thread or should I start a separate thread for every dsp module?
- should every plugin instance start it’s own thread(s) or should I start a static TimeSliceThread for all plugin instances?
- is there any special considerations for the different platforms (macOS, Windows), formats (AAX, VST, AU) and DAWs?
Thanks,
Stefan
