What is the suggested way to read audio data into memory for our audio processors
DataExchangeAPI ? Something else . Any examples on double buffering (not reading the entire file at once ) ?
What is the suggested way to read audio data into memory for our audio processors
DataExchangeAPI ? Something else . Any examples on double buffering (not reading the entire file at once ) ?
In VST3, you need to use the host-mediated message passing interface (i.e., IMessage and IConnectionPoint). Both the Controller and Processor implement IConnectionPoint, so you can create and receive messages out of the box. This is an oversimplification, but it’ll get you started:
auto * message = this->allocateMessage();
message->setMessageID( yourCharacterByteMessageId );
message->getAttributes()->setBinary( yourCharacterByteAttributesName, yourData, szYourData );
this->sendMessage(message);
message->release();
You can run that in your Controller. In your Processor’s notify( Steinberg::Vst::IMessage*) you’ll receive the message.
For an example on double-buffering and lock-free Producer-Consumer techniques, I just wrote an article on the subject (shameless plug) at:
nyxfx.dev/vst3-controller-processor-communication-strategies/
I can’t send links, unfortunately.
Thank you so much very interesting will check out your link as well !