In our ARA plugin, we use one thread to analyse the content of an ARA audio source and another one to load the waveform into the GUI.
They are using different juce::ARAAudioSourceReader
classes, which in turn have their own ARA::PlugIn::HostAudioReader
instances.
So according to the ARA docs, this should be fine:
HostReader::readAudioSamples
[…] this potentially blocking function may be called from any non-realtime thread (including threads for offline rendering), but not from more than one thread per reader at the same time.
This works fine everywhere besides Cubase and Nuendo, where the source content seems to be glitched. Synchronous reading in the GUI before starting the background thread for the actual analysis fixes the problem.
Is there something I missed in the ARA docs?
Can anybody confirm or deny that this issue exists?