MIDI Communication Between VST Instances, is it Possible?

DSP, Plug-in and Host development discussion.
User avatar
Lempface
KVRist
59 posts since 29 Nov, 2004 from Beyond the Realms of Death

Post Wed May 16, 2018 12:32 pm

I've been searching high and low, and have not turned up anything so I wonder if there is just some sort of issue or problem implementing this. I'm considering developing my own but perhaps someone can share what the hurdles are so I don't waste my time, if any exist.

If anyone has seen "Send It" from DDMF, included in Metaplugin, I'm looking to do exactly the same thing, but with MIDI. "Send It" is an audio effect VST that can send audio to another instance of "Send It" whether on the same track or another, its not reliant on the host, it seems to do its routing internally.

I would also find it acceptable if the VST could send/receive through direct access to MIDI ports.

I'm currently using Bidule to do this as it has a MIDI Out and MIDI In module that achieves this but I'm looking for something that is free or inexpensive to get around some MIDI restrictions in certain DAWs.

EDIT: 64 bit is a must. I've also tried bridging pizMid's midiOut but it crashes terribly.

I appreciate any responses or recommendations of existing solutions.

User avatar
EvilDragon
KVRAF
16884 posts since 7 Jan, 2009 from Croatia

Re: MIDI Communication Between VST Instances, is it Possible?

Post Wed May 16, 2018 12:41 pm

No problems doing this in Reaper via its MIDI bus system.

User avatar
Lempface
KVRist
59 posts since 29 Nov, 2004 from Beyond the Realms of Death

Re: MIDI Communication Between VST Instances, is it Possible?

Post Wed May 16, 2018 12:43 pm

EvilDragon wrote:No problems doing this in Reaper via its MIDI bus system.
Thanks but the idea is to bring this functionality to DAWs that don't natively support sophisticated midi routing not force people to switch DAWs.

User avatar
noizebox
KVRer
22 posts since 19 Nov, 2012 from Stockholm, Sweden

Re: MIDI Communication Between VST Instances, is it Possible?

Post Wed May 16, 2018 1:31 pm

Of the top of my head, and I don't know how SendIt handles this, but how would you handle if the host wants to process the audio graph in a different order to what you want? Say you want to send midi from instance A to instance B, but the host wants to process B before A? Then the midi would arrive one buffer late. Or even worse, the host is multithreaded and runs A and B on separate threads. Even if you make the queues thread safe, I suspect the resulting jitter would not be tolerable.
If the host supported that kind of routing natively, then it would recognize that B depends on A and construct the graph in the correct order.

Jimbrowski-one
KVRist
74 posts since 13 Aug, 2007 from Montréal, QC

Re: MIDI Communication Between VST Instances, is it Possible?

Post Fri May 25, 2018 5:58 am

noizebox wrote:If the host supported that kind of routing natively, then it would recognize that B depends on A and construct the graph in the correct order.
The OP could avoid this problem by ensuring that the VSTs, that require the MIDI communication, follow the audio flow; however, this requirement might just make the use case useless. :?

User avatar
vortico
KVRist
176 posts since 19 Jul, 2008

Re: MIDI Communication Between VST Instances, is it Possible?

Post Tue Jun 05, 2018 3:52 pm

Another issue is that VST instances are not guaranteed to run in the same memory space or process, so a global lock-free queue would not work in fancy DAWs that sandbox their VSTs.

Although in practice, so any DAWs do this? I remember hearing some talk about it a couple years ago.
VCV Rack open-source virtual modular synthesizer

UnWorldly
KVRist
30 posts since 13 Jan, 2013

Re: MIDI Communication Between VST Instances, is it Possible?

Post Thu Jun 07, 2018 5:57 am

Many of the hornet plugins have grouping functions that appear to communicate to other instances of themselves

Klinke
KVRist
67 posts since 24 Dec, 2009 from Berlin

Re: MIDI Communication Between VST Instances, is it Possible?

Post Thu Jun 07, 2018 7:14 am

JUCE has a InterProcessConnection class, where you "using either a socket or a named pipe as the transport medium". I used it in the past for routing the input of a MIDI controller to different instances of my (private) Step-Sequencer VST. In the case (and many user use cases) the additional latency and jitter isn't a problem. In the case that the MIDI events are send from a plugin itself, the receiver could report some latency to the host, with a big enough latency it should be possible to transmit the events without losing accuracy.

User avatar
VariKusBrainZ
KVRAF
8069 posts since 16 Dec, 2002

Re: MIDI Communication Between VST Instances, is it Possible?

Post Thu Jun 07, 2018 11:54 am

VSTforx has Remotechannel which can send audio or data anywhere.

It can be used without VSTforx

https://www.vstforx.de/index.php/produc ... otechannel

HoRNet
KVRist
152 posts since 18 Feb, 2011 from Italy

Re: MIDI Communication Between VST Instances, is it Possible?

Post Fri Jun 08, 2018 7:12 am

UnWorldly wrote:Many of the hornet plugins have grouping functions that appear to communicate to other instances of themselves
Yes but it's not made using MIDI but with a shared memory area where every instance writes its own values and every other listen for change and updates their parameters accordingly.

Saverio

User avatar
VariKusBrainZ
KVRAF
8069 posts since 16 Dec, 2002

Re: MIDI Communication Between VST Instances, is it Possible?

Post Fri Jun 08, 2018 11:58 am

HoRNet wrote:
UnWorldly wrote:Many of the hornet plugins have grouping functions that appear to communicate to other instances of themselves
Yes but it's not made using MIDI but with a shared memory area where every instance writes its own values and every other listen for change and updates their parameters accordingly.

Saverio
Which ones have this feature?

HoRNet
KVRist
152 posts since 18 Feb, 2011 from Italy

Re: MIDI Communication Between VST Instances, is it Possible?

Post Sat Jun 09, 2018 2:05 am

VariKusBrainZ wrote:
HoRNet wrote:
UnWorldly wrote:Many of the hornet plugins have grouping functions that appear to communicate to other instances of themselves
Yes but it's not made using MIDI but with a shared memory area where every instance writes its own values and every other listen for change and updates their parameters accordingly.

Saverio
Which ones have this feature?
a Quick list:

VU Meter MK3
LU Meter
Tape
AnalogStage
CLMS

Saverio

User avatar
VariKusBrainZ
KVRAF
8069 posts since 16 Dec, 2002

Re: MIDI Communication Between VST Instances, is it Possible?

Post Sat Jun 09, 2018 3:15 am

^
Thanks

Return to “DSP and Plug-in Development”