Communication between controller and processor

Communication between controller and processor

I am currently discovering the development of VST plugins with the vst3 SDK.

My objective being to make a spectrum analyzer

I have so far managed to use the opengl context to make a simple vu-meter.

My difficulty is to transmit the data from the processing → controller.

  • Should I declare and use a Parameter for each of the frequencies to be displayed in the analyzer? (What would be the limit in this case?)

  • Should I find another way to access my processor instance from the controller?

  • Should I better understand how this function works :

 ParameterValueQueue::addPoint(int32 sampleOffset, ParamValue value, int32& index)

I tried to define several points for the same parameter from the function process(…)

But on the side of the controller I retrieve this information as follows:

auto params = controller->getParameterObject(kVuInputLeft);
float value = params->getNormalized();

So I can only retrieve one value (Point).

Could someone enlighten me on the right way to transmit a large amount of information from the process to the controller?

You should use the messaging API: VST 3 API Documentation - VST 3 Developer Portal

I also wrote a blog post about how to “share” very large amount of data https://www.pongasoft.com/blog/yan/vst/2020/12/12/VST3-sharing-technique/ (this uses my framework Jamba which makes communication between RT and GUI much easier as it takes care of most of the gory details, like thread safety…)