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 (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…)