Support for multiple cores running plugins in plugin host application?

Is there a ready made support in JUCE for running multiple plugins (VST3/AU) so that they’re semi-automatically handled by several CPU cores?

I.e. couple of plugins running on Core 1 and the rest of the plugins running on Core 2, etc.

No, the Juce AudioProcessorGraph does not multithread the audio processing.

OK.

OK, this is what I’d like to do:

  1. Create X amount of realtime threads.
  2. Trigger those threads from inside AudioAppComponent::getNextAudioBlock().
  3. Gather their output before the end of AudioAppComponent::getNextAudioBlock().

Is the best way to do this to use ThreadPool + ThreadPollJob classes?

How to figure out the optimal amount of threads for any given computer? Is there a good rule of thumb how many cores can be used minimum/maximum? For example 1 core should always be left for GUI duties and rest of the cores can be used for realtime audio processing?

How do I ensure the my MIDI sending thread will not be blocked by these new realtime threads? I’m using HighResolutionTimer class to send my MIDI data, which is basically its own thread.