I’m building a plugin where plugin parameters will be used to control externally connected hardware. I’m managing the parameters through the AudioProcessorValueTreeState. Now if the parameters are changed by Sliders that are connected through SliderAttachements, I assume that the call to AudioProcessorValueTreeState::Listener::parameterChanged will be invoked by the messageThread. But what thread will call it when the parameter is changed by the DAW while playing back? May it be the real-time audio thread or another time-critical realtime parameter thread? Is this DAW-dependent behaviour or is there any behaviour that can be expected?
So all in all, should I take care of not doing my possibly time-consuming hardware-interaction directly in the Listener::parameterChanged callback but move it to a dedicated hardware-thread owned by my plugin instance or would this be unnecessary overhead?