Page 1 of 1

2-way communication with FS VST plugins

Posted: Thu Apr 17, 2014 10:33 pm
by RJHollins
Putting on the thinking cap for a new project idea ... IF this is possible ...

There has been some discussion and examples of communicating data between 2 separate apps. These have focused on using 'Server/Client' design. I have tested the examples and have found them to work.

I would like to inquire if there are any OTHER ways/techniques that could be utilized with FS to 'share' data between 2 or more plugins.

The project goal ...

I'm looking to design a plugin that basically monitors audio levels, and can send data back to a central plugin that would be receiving this 'level' data from possibly several of these 'monitoring' pods [VST].

I realize that 'real-time' communication would depend on just how much data was being sent. I believe that there could be a strategy used to possibly reduce this data flow ... but we are at 1st stage of thinking this through.

One thought ...

Possible using a 'reserved' memory location that could be identified that the individual 'pods' could write to, and that the central hub would know how to locate and read this data. Is this possible with FS ??

What I do have working is a somewhat similar 'concept only' that is simply MIDI data controlling various 'pods'. These are more to control switches at the moment, but I have thought of possibly using MIDI to provide the communication link. This would require the 'audio level' data to be transposed/scaled to the MIDI standard [0-127]. This, of course, would only provide a rather crude approximation of the actual values. Another thought was to possible 'encode' the actual data into a SYSEX packet. This might allow a finer resolution to the true data value. Again just possible ideas ... however, none would match the ability to write and read from a 'reserved' memory location.

There was another method mentioned that would write data to a temp file. :shock: I guess this could be possible, but have no idea what can of worms that could entail :roll:

Like I say ... I'm at the concept stage with this. Before any design ideas could start, I first need to better understand what techniques are available to pursue.

I yield to the experienced GURUS to enlighten grasshopper :geek:

Thanks!

Re: 2-way communication with FS VST plugins

Posted: Thu Apr 17, 2014 11:14 pm
by Tronic
could be achieved with a shared memory through a DLL
http://msdn.microsoft.com/en-us/library ... 80%29.aspx

Re: 2-way communication with FS VST plugins

Posted: Thu Apr 17, 2014 11:22 pm
by Tronic

Re: 2-way communication with FS VST plugins

Posted: Fri Apr 18, 2014 12:34 am
by RJHollins
Tronic wrote:Windows SDK example
http://msdn.microsoft.com/en-us/library ... 58(v=vs.85).aspx

Hi Tronic,

This link isn't working ... my experiments all led to 'not found' :roll:

Re: 2-way communication with FS VST plugins

Posted: Fri Apr 18, 2014 5:27 am
by Tronic
fault link, now work

Re: 2-way communication with FS VST plugins

Posted: Fri Apr 18, 2014 6:51 am
by RJHollins
Hey... Thanks for the link fix Tronic !!

Couple questions naturally arise from all this :roll: Would the example code be something that could be entered into FS's CODE BOX ??, or would this require a dedicated C++ program ??

Looking through the code, it seems to be documented well. For someone that has never touched C code ... is this even a possibility ?? I won't even ask the implementation questions, as I've no experience with this aspect.

Even just asking the level of difficulty would be tough for anyone to answer, I understand. Again, I'm asking out of ignorance to all this. Still .... very much appreciate getting direct links to things like this.

Thanks again !

Re: 2-way communication with FS VST plugins

Posted: Fri Apr 18, 2014 4:27 pm
by digitalwhitebyte
Fs now take the opportunity to use external DLLs.
You can use TemplateDLL and the example that DSPR provides.
Try to compile the DLL with a compiler for C/C++.
after more or less understand the concept of the DLL, try to integrate the system posted by Tronic.