[announce] VeeSeeVST Rack VST2 plugin

Modular Synth design and releases (Reaktor, SynthEdit, Tassman, etc.)
Post Reply New Topic
RELATED
PRODUCTS
VCV Rack

Post

Could be, but prior to v3.5 of Studio One, I used to have a lot of crashes, with any plugin actually. Mostly when adding or removing a plugin while playing the track. Could also be related the ASIO drivers of my audio interface, which had not been updated since 2014. Now I have a new audio interface, and haven't had any crashes in Studio One, not with 3.5 and not with 4.0.

I read a lot about plugins crashing Cubase though (in this forum), but mostly during the initial plugin scan when starting Cubase. Those could of course be plugin related, but they seem to be more frequent in Cubase than in other DAW's according to the reports in this forum.
i9-10900K | 128GB DDR4 | RTX 3090 | Arturia AudioFuse/KeyLab mkII/SparkLE | PreSonus ATOM/ATOM SQ | Studio One | Reason | Bitwig Studio | Reaper | Renoise | FL Studio | ~900 VSTs | 300+ REs

Post

WOW!! Thanks for this!

Post

Just tried the new version and the instrument version seems to load has an fx. I'm using in abe live.


Anways thanx a lot. This is pretty cool!
Stuck in Aperture Laboratories for a 2nd time!

Post

Thanks so much for this. This is like Christmas day.

Might I ask, how does one send midi to the plugin from within Cubase? I don't see the plugin as a midi destination even with the "MIDI" module instantiated in the plugin.

Post

Looks pretty nice, although I haven't tried it out yet.

One thing though: I'm getting support emails about this, which of course I don't support, so could you change the name from "VCV Rack" to something else, like "bsp Rack" to prevent confusion? The name VCV is trademarked, and the logo is not licensed for derivative works. See https://github.com/VCVRack/Rack#licenses
VCV Rack, the Eurorack simulator

Post

VeeSeeVST rack
Stuck in Aperture Laboratories for a 2nd time!

Post

paradiddle wrote:VeeSeeVST rack
OOooooh, I like that. :tu:

Post

Greetings !

Is the source code public ? If so I can try building it for Linux.

Best,

dp

Post

This is very cool!

I'm a fairly new VCV user but liking it thus far. I'm using it in my Bitwig DAW via bridge. I'm not clear on something - if the bridge is working fine, why would anyone need to use the VST version? In other words, what additional functionality, if any, does VST bring?

Also, I have a handful of paid VCV modules, can I still use them in the VST version?
https://www.reverbnation.com/toddsilva
Ryzen 9 5950x with 64G, i7 5820K with 32G DDR4, networked using AudioGridder, Bitwig, NI, U-he, and Arturia soft synths to name a few
Eurorack system https://www.modulargrid.net/e/racks/view/432465

Post

paradiddle wrote:Just tried the new version and the instrument version seems to load has an fx. I'm using in abe live.
Thanks for noticing. It was a glitch in my build system that accidentally built two effect plugins.

However, I also noticed that the instrument and effect plugins can not be loaded simultaneously (b/c of glfw).
That's why the instrument DLL now has a ".dll__" suffix.
You have to rename it to ".dll" if you want to use it.

vortico wrote:Looks pretty nice, although I haven't tried it out yet.

One thing though: I'm getting support emails about this, which of course I don't support, so could you change the name from "VCV Rack" to something else, like "bsp Rack" to prevent confusion? The name VCV is trademarked, and the logo is not licensed for derivative works. See https://github.com/VCVRack/Rack#licenses
Sorry, I overlooked this.
I have changed the name and removed the logo.
Could you please have a look at the new video (or the plugin itself) and tell me if this is ok now ?
(and thanks for Rack, btw. That was very generous of you!)

KnickersDown wrote:
paradiddle wrote:VeeSeeVST rack
OOooooh, I like that. :tu:
VeeSeeVST Rack it is ;)
StudioDave wrote:Greetings !

Is the source code public ? If so I can try building it for Linux.

Best,

dp
Hi StudioDave. The source is not available, yet. Yesterday I promised to upload it today but the day went by much too fast and I have not gotten around to it. I'll take care of that tomorrow after work.
sagetone wrote:I'm not clear on something - if the bridge is working fine, why would anyone need to use the VST version? In other words, what additional functionality, if any, does VST bring?
The pros and cons of the VST version are:
+ lower latency (no bridge latency)
+ supports multiple instances (e.g. for playing patches polyphonically)
+ supports multithreading (instances can be moved to different CPU cores)
- does not support dynamically loaded plugins
- while a lot of modules have been statically linked with the VST plugin, there are currently 585 open source modules available for VCV Rack, and only 321 of these in VeeSeeVST Rack.
sagetone wrote:Also, I have a handful of paid VCV modules, can I still use them in the VST version?
sorry, that's not possible (for technical reasons).




Okay, here is a new release: veeseevstrack_0_6_1_vst2_bin_win64-01Jul2018.7z

Changelog:

Code: Select all

** July 1st, 2018
- add VST parameter support (set/get/query name)
   - added "vst2_unique_param_base_id" JSON module parameter
   - the plugin always reports 9999 parameters
   - known issue: does not work in Reason since it bails out when a plugin has more than 128 params (IIRC)
- add module Bogaudio.VCO
- add module Bogaudio.XCO
- add module Bogaudio.Additator
- add module Bogaudio.FMOp
- add module Bogaudio.LFO
- add module Bogaudio.EightFO
- add module Bogaudio.DADSRH
- add module Bogaudio.DADSRHPlus
- add module Bogaudio.DGate
- add module Bogaudio.Shaper
- add module Bogaudio.ShaperPlus
- add module Bogaudio.ADSR
- add module Bogaudio.Follow
- add module Bogaudio.Mix4
- add module Bogaudio.Mix8
- add module Bogaudio.VCM
- add module Bogaudio.Pan
- add module Bogaudio.XFade
- add module Bogaudio.VCA
- add module Bogaudio.VCAmp
- add module Bogaudio.Analyzer
- add module Bogaudio.VU
- add module Bogaudio.Detune
- add module Bogaudio.Stack
- add module Bogaudio.Reftone
- add module Bogaudio.Bool
- add module Bogaudio.CVD
- add module Bogaudio.FlipFlop
- add module Bogaudio.Manual
- add module Bogaudio.Mult
- add module Bogaudio.Noise
- add module Bogaudio.Offset
- add module Bogaudio.SampleHold
- add module Bogaudio.Sums
- add module Bogaudio.Switch
- add module Bogaudio.Lag
- add module Bogaudio.RM
- add module Bogaudio.Test
- add module Bogaudio.Test2
- add module Bogaudio.ThreeHP
- add module Bogaudio.SixHP
- add module Bogaudio.EightHP
- add module Bogaudio.TenHP
- add module Bogaudio.TwelveHP
- add module Bogaudio.ThirteenHP
- add module Bogaudio.FifteenHP
- add module Bogaudio.EighteenHP
- add module Bogaudio.TwentyHP
- add module Bogaudio.TwentyTwoHP
- add module Bogaudio.TwentyFiveHP
- add module Bogaudio.ThirtyHP
- add module cf.trSEQ
- add module cf.LEDSEQ
- add module cf.L3DS3Q
- add module cf.SLIDERSEQ
- add module cf.PLAYER
- add module cf.STEPS
- add module cf.METRO
- add module cf.EACH
- add module cf.FOUR
- add module cf.PEAK
- add module cf.MONO
- add module cf.STEREO
- add module cf.MASTER
- add module cf.SUB
- add module cf.CUBE
- add module cf.PATCH
- add module cf.LEDS
- add module cf.DAVE
- add module Koralfx.Beatovnik
- add module Koralfx.Mixovnik
- add module Koralfx.Nullovnik4
- add module Koralfx.Nullovnik6
- add module Koralfx.Presetovnik
- add module Koralfx.Quantovnik
- add module Koralfx.Scorovnik
- add module LindenbergResearch.SimpleFilter
- add module LindenbergResearch.MS20Filter
- add module LindenbergResearch.AlmaFilter
- add module LindenbergResearch.ReShaper
- add module LindenbergResearch.BlankPanel
- add module LindenbergResearch.BlankPanelM1
- add module Qwelk.Automaton
- add module Qwelk.Byte
- add module Qwelk.Chaos
- add module Qwelk.Column
- add module Qwelk.Gate
- add module Qwelk.Or
- add module Qwelk.Not
- add module Qwelk.Xor
- add module Qwelk.Mix
- add module Qwelk.News
- add module Qwelk.Scaler
- add module Qwelk.Wrap
- add module Qwelk.XFade
- add module SubmarineFree.AG106
- add module SubmarineFree.BB120
- add module SubmarineFree.FF110
- add module SubmarineFree.FF120
- add module SubmarineFree.FF212
- add module SubmarineFree.LA108
- add module SubmarineFree.LD106
- add module SubmarineFree.NG112
- add module SubmarineFree.OG106
- add module SubmarineFree.PG112
- add module SubmarineFree.PO101
- add module SubmarineFree.PO102
- add module SubmarineFree.PO204
- add module SubmarineFree.WK101
- add module SubmarineFree.WK205
- add module SubmarineFree.XF101
- add module SubmarineFree.XF102
- add module SubmarineFree.XF104
- add module SubmarineFree.XF201
- add module SubmarineFree.XF202
- add module SubmarineFree.XG106
- add module SubmarineFree.BP101
- add module SubmarineFree.BP102
- add module SubmarineFree.BP104
- add module SubmarineFree.BP108
- add module SubmarineFree.BP110
- add module SubmarineFree.BP112
- add module SubmarineFree.BP116
- add module SubmarineFree.BP120
- add module SubmarineFree.BP124
- add module SubmarineFree.BP132
..and a short video that shows the VST parameter support in action:
https://vimeo.com/277872094

this is far from perfect, though.

First of all, the module parameters do not use normalized ranges.
Since VST plugin parameters must be normalized, I added a *2 scale and 0.5 bias to "normalize" parameters.
This works with most parameters but some (e.g. OSC frequencies) have a much wider range and can therefore not be automated properly.
I could have chosen a much larger scale but then it would have been impossible to edit the resulting automation envelopes.

Secondly, knobs (or any other UI controls) do not move when a parameter is automated. I'm not an expert on the host source code so I currently have no idea if and how this could be implemented.
Future releases _may_ support relative parameter modulation but I'm not sure if that can be implemented (properly). One problem is that the modules access the parameter values directly, not via setter/getter methods. I would probably have to save/restore the original parameter state before/after each process() call. :scared:

Well, at least it's working "somehow".

In case you're wondering how it works: Each module is assigned a unique "vst_param_base_id" when it is instantiated (when engineAddModule() is called).
This id increments with each added module (and never decrements).
It is reset to 1 when all modules are removed (clear()).
I've also added a new JSON parameter so the ids are saved and restored with the patch files (and the VST program chunk).
Since the number of VST parameters cannot be dynamic, the plugin reports 9999 parameters to the host (should be enough even for big patches). The parameter names are calculated on the fly, though.
Unused parameters are displayed as "-", used ones as "<".


It would be great if people could test this in their DAWs.
As you can see in the video, it works in my own host.
It most definitely does _not_ work in Reason 10. IIRC, Reason only supports a maximum number of 128 parameters per plugin and apparently it displays no parameters at all when a plugin exceeds that limit.
Reaper shows all the parameters, so it should work there (if you are a Reaper user, please test this, will you ?)

There's one last catch: The VST opens an additional desktop window (setting the host-created VST window handle as the parent for the GLFW window did not work for some reason), so the parameter automation will probably only work in hosts like Eureka or Reaper which have a parameter-learn mode that does not require the host-created window to be active.

Post

Awesome! I'm gonna test this tonight later on.
Stuck in Aperture Laboratories for a 2nd time!

Post

bsp804 wrote:
StudioDave wrote:Greetings !
Is the source code public ? If so I can try building it for Linux.
Hi StudioDave. The source is not available, yet. Yesterday I promised to upload it today but the day went by much too fast and I have not gotten around to it. I'll take care of that tomorrow after work.
Hey, thanks very much for the quick reply and the good news. No rush, I'll watch the forum for the announcement. I am excited to try it, I'm a Rack aficionado. :)

Best regards,

dp

Post

sagetone wrote:I'm not clear on something - if the bridge is working fine, why would anyone need to use the VST version? In other words, what additional functionality, if any, does VST bring?
The pros and cons of the VST version are:
+ lower latency (no bridge latency)
+ supports multiple instances (e.g. for playing patches polyphonically)
+ supports multithreading (instances can be moved to different CPU cores)
- does not support dynamically loaded plugins
- while a lot of modules have been statically linked with the VST plugin, there are currently 585 open source modules available for VCV Rack, and only 321 of these in VeeSeeVST Rack.
sagetone wrote:Also, I have a handful of paid VCV modules, can I still use them in the VST version?
sorry, that's not possible (for technical reasons).
[/quote]

Thank you! OK, a few questions. The VST version definitely sounds interesting. Is it possible to use the VST and the bridge versions in a single project? What is meant by "dynamically loaded" plugins? Does this mean that I have to create a patch with the EXE, save the patch, and then open the patch that I want in the VST?
https://www.reverbnation.com/toddsilva
Ryzen 9 5950x with 64G, i7 5820K with 32G DDR4, networked using AudioGridder, Bitwig, NI, U-he, and Arturia soft synths to name a few
Eurorack system https://www.modulargrid.net/e/racks/view/432465

Post

sagetone wrote:Is it possible to use the VST and the bridge versions in a single project?
Yes, that should work.
sagetone wrote:What is meant by "dynamically loaded" plugins?
Third party add-ons are usually located in DLLs (dynamic link libraries).
This VST plugin links some of the 3rd party add-ons statically, i.e. they are part of the VST plugin DLL (there was no way around that).
VCV Rack plugin DLLs are only supported by the standalone VCV Rack application.
sagetone wrote:Does this mean that I have to create a patch with the EXE, save the patch, and then open the patch that I want in the VST?
You can do that as long as the patch uses only modules that are supported by both VCV Rack and VeeSeeVST Rack.
This excludes all commercial / closed source plugins.

Post

Thanks for the extra info. Very cool & interesting.

Post Reply

Return to “Modular Synthesis”