Feature Request: MultiPort midi for VST3 and AU3 BCA plugins

Official support for: bluecataudio.com
Post Reply New Topic
RELATED
PRODUCTS

Post

is there any possibility we could see the addition of multiple midi input/output ports for the VST3 and AU3 versions of BCA plugins, particularly for Patchworks and PlugNScript?

I have a need to put midi plugins in front of Vienna Ensemble Pro(VST3). VePro.vst3 supports up to 48 input midi ports for up to 768 total midi channels funneling through that single instrument plugin instance. I need to be able to host it inside Patchworks, exposing up to 48 VST3 midi input ports to the main host DAW...and then inside Patchworks I need to route all 48 of those midi ports to something like PlugNScript...which could then operate on up to 768 discrete midi channels from 48 VST3 input midi ports...and finally feeding 48 midi output ports from that into VePro.vst's 48 ports.

Whew that's a mouthful, but anyway, If Patchworks and PlugNScript could support multi midi input/output ports...with some reasonable way inside Patchworks to manage the routing of that many ports too BTW...then it would be extremely useful for me.

I have been researching a lot into coding some stuff myself in C++, but truthfully, the multiport situation is not great. VST2 doesn't support it, VST3 is broken in other ways, JUCE doesn't support multi midi ports in VST3/AU3 (yet). VST3 itself is a bit broken in a few ways, but I can't get a VST2 license anyway.

In any case, I have solved my problems in LogicPro by using their Scripter plugin, which DOES support up to 8 AU3 ports...so I have some rather elaborate scripts, that in combination with ArticulationSet capability...do everything I want and then some, across up to 127 midi channels on 8 ports feeding VePro.AU3. But I would like to come up with a solution that will work on Cubase and other hosts as well...and in some ways PlugNScript would be superior to Logic's Scripter, not withstanding that fact that Javascript has a bit more utility functions then AngelScript, but still PlugNScript provides file access, include support and other things that would make it absolutely terrific for this purpose...but I need multi midi ports...
MacPro 5,1 12core x 3.46ghz-96gb MacOS 12.2 (opencore), X32+AES16e-50

Post

I don't know for AU V3 but as far as VST3 is concerned I am not sure if many hosts or plug-ins support the option.

It could be interesting to support multi ports for the app version anyway, so I guess we might have to look into it at some point, but it's probably not very soon.

Post

Cubase and StudioOne and Reaper and DP all support that! As does LogicPro with AU3.

Vienna Ensemble Pro is using this feature and basically I need to do processing that feeds Vienna Ensemble Pro. VePro.vst3 provides 48 input midi ports. What I need to be able to do is put VePro.vst3 inside Patchworks, with patchworks also exposing 48 ports to the hosts....and then and I can make PlugNScript scripts inside there that process the midi before sending to each of those ports of VePro.vst3.

With LogicPro I am able to solve all my problems without BlueCat products by using Scripter, which can address all the AU3 ports without problems. So I can just put a Scripter script into the MidiFX slot and route any of the midi to any of the midi ports and it all happens quite nicely...notwithstanding the fact that in LogicPro you have to use a single script to process 768 midi channels, which can be mind bending in its own way. But anyway, it works.

In Cubase, DP, Reaper and S1, they generally assign each track to a port. If you use VePro.vst3, then 48 midi destinations show up in Cubase, etc...and you assign each track to one of those. So if I don't want to do any midi processing, then I can definitely use 768 midi channels into a single VePro.vst instance with all of those hosts. (and by the way that is the only way with VePro to have less vePro mixer instances). However if I want to do midi processing, then I really need to put VePro.vst3 inside Patchworks and chain up the midi processing, but alas, since Patchworks only exposes a single midi port...I am back to only being able to put 16 instruments into each VePro instance, compared to 768 if I avoid Patchworks.

hope that makes sense.
MacPro 5,1 12core x 3.46ghz-96gb MacOS 12.2 (opencore), X32+AES16e-50

Post

and by the way, I already looked into chaining up VST2 midi plugins in front of the 48 midi ports provided by VePro.vst3. That can work to a point, but Cubase, DP and S1 all do funny things. They first require you to create a midi track in order to route from one plugin to another, which is kludgy and verbose. Secondly, both Cubase and DP throw away midi timestamps when routing that way, at the midi input bus to the midi track being used to route it. S1 doesn't throw away timestamps, but S1 does also not recognize CC events that were generated in VST2 plugins, they disappear and are not passed into VST3 instruments..

So end result is....a much better solution is putting midi processing inside a patchworks chain, because Patchworks DOES preserve timestamps and passes all the midi events out of VST2 plugins to the next plugin, etc.. it does everything that all those other hosts are missing or doing wrong...except....it only gives me one lonely midi port...
MacPro 5,1 12core x 3.46ghz-96gb MacOS 12.2 (opencore), X32+AES16e-50

Post

Regarding an AU3 version of Patchworks, if you decide to accept that challenge. That is what VSL did also, the produced an AU3 version of their plugin for VePro. Its interesting in that it supports many ports, I guess 48, but LogicPro is a little buggy in this department. LogicPro can definitely address all 48 midi ports..like the other daws, you specify in each track which midi port to send the midi to. However, LogicPro has a bug where it cannot keep track of more than 127 midi channels. They don't have to be the lowest 127 channels, they can be spread out over many midi ports...VePro supports up to 48. But if you try to use more than 127 unique midi channel/midi addressed tracks...then the LogicPro gui throws a hissy fit.... But in any case, with some Scripting, its possible to take 127 tracks assigned to 127 midi channels/ports and then in the Scripter re-route some events further to more channels across more ports..and the actual AU3 handles all that fine. The problem there is related to LogicPro tracks in some way. So VSL is listing it as a "beta" feature for sure... but it works great as long as you don't try to make more than 127 unique tracks to a single AU3 instrument.
Last edited by Dewdman42 on Fri Feb 07, 2020 9:56 pm, edited 1 time in total.
MacPro 5,1 12core x 3.46ghz-96gb MacOS 12.2 (opencore), X32+AES16e-50

Post

Since you're listening, hopefully, another thing worth pointing out is this...

With LogicPro Scripter, a single script can listen to all 48 ports of midi coming from tracks..and I can re-route midi events across ports as I wish..that single script feeds all the 48 ports into the VST3 instrument down the line...

So in order to do that with BlueCat, I would need PlugNScript to also be enhanced to support more then one midi port as a VST3 (or AU-MFX if you want it to work on LogicPro). Then a single script could re-route across ports.

Without that, if Patchworks were enhanced to support VST3 multiple midi ports; then inside Patchworks I would need to create an elaborate network of VST2 plugins (including PlugNScript), to process midi, generally one chain per port, so I would need 48 chains, etc.. which is already beyond what patchworks can do.

So ultimately.. What I'm saying is...to do what I can do now with LogicPro Scripter AU3, I need Patchworks to expose at least 48 midi ports to the host and I need PlugNScript.vst3 to also expose at least 48 midi ports, and the processBlock needs to be able to get all events on all ports and tell the difference somehow between port1 and port 48, etc. With that I could put a single instance of PlugNScript chained to a single instance of VePro.vst3; inside a single instance of Patchworks...and then do all the midi processing I need to do before hitting VePro, with just one midi chain inside patchworks.
MacPro 5,1 12core x 3.46ghz-96gb MacOS 12.2 (opencore), X32+AES16e-50

Post

(bump)
MacPro 5,1 12core x 3.46ghz-96gb MacOS 12.2 (opencore), X32+AES16e-50

Post Reply

Return to “Blue Cat Audio”