Yes, I think it’s ok to do it from any thread.
If setValueNotifyHost
is calling performEdit
then this statement is definitely not true and you should only call it from the main UI thread.
According to this post (see Yvan’s response to point 4) on the VST dev forum one way to send parameter changes to the host from the audio thread is via the outputParameterChanges collection passed to the process call.