How to swap VCV between general / MM plugin sets (from Windows BAT script)

In the absence of a decent way of filtering MetaModule compatible module sets in VCV, I hacked a crude solution for swapping the folder that VCV uses. posting here in case its useful to anyone. No warranty, all disclaimers apply.

Its just a batch script that renames two different versions of the VCV plugin folder (which on Windows should be in Documents/Rack2/plugin-win-x64), one with all your plugins in it, one with (hopefully) just the MM set.

1)Firstly you’ll need to open your Documents/Rack2 folder and rename the folder called plugin-win-x64 to plugin-win-x64_all (Make sure you get that exactly right, the script relies on it)
2) Then you’ll need to open VCV, at which point it will recreate the plugin-win-x64 folder, and that will contain a subfolder called ‘Fundamental’ which is the core VCV modules. (That’s always going to be there whether you want to use them in MM or not)
3) Next step is the Library menu from the VCV menu. Install the the core MM-compatible plugins (currently 4ms, Befaco, HetrickCV, Audible Instruments, Nonlinear Circuits, Scanner Darkly, Valley) as per https://metamodule.info/docs/faq.html) plus any optional MM-compatible module sets plugins you want to be able to use.
4) When you’ve installed all your chosen MM-compatible module sets, close down VCV and then reopen it again so that the modules installation gets finished properly.

At this point, you’re set up to be able to swap between two different folders of modules using a simple batch script.

The batch script is as follows, which should all be a single line in a .BAT script ; Ive called in VCV4MM.bat on my system, and it needs to live inside the Documents/Rack2 folder.
If you’re not sure how to create a batch file, just create a text file, then copy and paste the following text into it, then rename it with the .bat file extension instead of .txt
It absolutely need the .bat file extension, so make sure you can see file extensions (eg see https://www.howtogeek.com/205086/beginner-how-to-make-windows-show-file-extensions/ or google how to do it.)

Double-clicking on the .bat file will swap the module sets.
Code is after the line, dont include the line


if exist "plugins-win-x64_4m" ( ren plugins-win-x64 plugins-win-x64_all && ren plugins-win-x64_4m plugins-win-x64 ) else ( if exist "plugins-win-x64_all" ( ren plugins-win-x64 plugins-win-x64_4m && ren plugins-win-x64_all plugins-win-x64 ) )

1 Like

great stuff! i too was using a bat rename method before. i recommend using the free “autohotkey” app to have a keyboard shortcut that will quickly trigger the .bat files*

but now im using a separate second account at vcv that only has the mm related plugins subscribed/installed, and i run that 2nd instance on the same laptop using a ‘sandbox’ folder via the free sandboxie app. doing that lets you run 2 instances of VCV at the same time (just a bit faster than the bat rename method). with multiple sandboxie folders, you can actually run as many instances of vcv as you want. many good ways to do the same thing here i guess!

  • for any windows users, i couldn’t recommend autohokey more to speed certain things up. for example you could remap “CTRL+1” on the keyboard to in VCV, automatically right click, do a browser search for your favorite module (i.e. “clouds”), then auto press enter- which adds the 1st module in the search. v handy if you tend to use the same modules over and over.

Ive mentioned this before… but, you do not need to do this.

you can simply run vcv rack with a command line and give it a different user directory

just add -u and the directory that you want to use.

the nice thing about this approach is, not only can you keep your modules separate but also patches and selections.

this is all good until we need to update the secondary folder manually by copying any updated plugins over into it. or i guess we have another script to do that ha. i still think having a secondary vcv account linked to a 2nd instance of vcv for that (with only the mm brands subscribed to that account) is the easiest in the long run with updating*. a bit more work up front though if considering needing to install something like sandboxie. also windows only- i guess one can’t run 2 separated instances in macos?

i think it’s unfortunate that vcv free limits itself to 1 instance normally, i guess that is to help drive sales of the vcv vst. but the sandbox method works as a work around (at least for windows afaik)

*note: to get the 2 separated instances to work ok, you need to use the -u in a windows shortcut for one of the instances(i use it with my 2nd mm only modules sandboxed instance) with ‘Rack2’ folder moved away from the User/Local/ folder. otherwise they both try and access the same login info.

yes, you can - but you need to do this from command line in macOS.
i.e. no, you cannot just click on it in Applications and expect to get 2 instances.
(actually what I did for a while, was create a small AppleScript to do it, along with the -u parameter)

just have a second (free) vcv account…
the only drawback is if you needed modules from your pro account.
but then you don’t really need a pro account for MM work :wink:


ofc, none of this is perfect - the ‘perfect’ solution would be a MM tag, but unlikely vcv are going to do this, as why would you add a reference to a 3rd party product?

in practice, the above worked fine for me when I first got the MM.

though, recently, I started to restrict myself to just using modules that were available for MM… it was a good way to cut down my vcv collection.
there are a few ‘exceptions’, but Ive found it easy enough to remember those.

overall, I believe inKISS… that way I can focus on making music or development rather than messing about trying to make the system ‘perfect’ :wink:

the ‘perfect’ solution would be a MM tag

I actually think an MM-specific fork based on Cardinal would be better, but it is less likely.

if that happens, Id sell my MM … I bought it for compatibility with VCV :slight_smile:

I don’t want/need Cardinal.
Cardinal doesn’t have support for loading 3rd party plugins, without needing to fork the whole repo. e.g. I couldn’t just release new plugins for use with MM/VCV.

I get someone like Cardinal as it provides VST/AU - but I have VCV Rack Pro for that, and I think its important to support the Rack 2 development, so it can continue to move forward.

i got into vcv via the pre rack2 free veeseevst plugin(still works great) and then cardinal came along(i know a lot of people think cardinal project was trying to ‘dick over vcv’ somehow, but actually cardinal came out several months before the rack 2 plugin was even announced)…i have used both a lot in teaching private classes on vcv in reaper(where they couldn’t afford to buy things), as well as in my professional video game related day job projects and personal albums. they really been a boon for me! if somebody out there made a mm specific fork of cardinal, awesome i would use it like crazy, but i would hope 4ms would never shift focus away from fixing/adding features to the mm, to attempt forking cardinal.

who knows but we might see eventually the 4ms modules and other mm specific modules added into cardinal. you can always go over to their forum and make a request for it (it worked for me with stoermelder modules/fundamental ones in cardinal) but note that they are very strict on the module’s code and artwork having very specific license:

that is great! im curious if you care to share what the command line is or steps for getting it to work? i have an macbook air where this might come in handy for future things :slight_smile:

 open -n /Applications/VCV\ Rack\ 2\ Pro.app
1 Like

awesome ty @TheTechnobear ! i look forward to trying this out

1 Like

Thoughts on the replies:

The dual-account mechanism is interesting, but it does create an issue for plugins that are for-pay within VCV but free for MM, (like the Stellare Creative bundle). If you want to use them in ‘normal’ VCV as well as MM patch creation, I suspect you’d have to buy them for both accounts.

The -u option creates the potential requirement to keep syncing the entirety of VCV settings between two folders, including settings and some set-specific .json files, which I’d probably find more annoying than just swapping the plugin folder itself.

if that happens, Id sell my MM … I bought it for compatibility with VCV

I dont really get the conflation of using-VCV-as-modular-synth with using-VCV-as-MM-patch-editor that resulted in the false dilemma posited above. Its not like MM is completely dependent on using VCV in the first place, and its certainly not an either/or proposition. IMO, its a bit weird to suggest that a fork of Cardinal targetted at easier MM patch editing would preclude use of VCV, or replace it.

But it is the case that that 4ms cant change the development focus of VCV, so we might not ever get suitable tags or whatever else would be needed to optimise VCV for MM.
However 4ms could build an MM-specific subset of Cardinal, and as an all-in-one build, Cardinal would be a decent starting point to being a more focussed editor for MM patches. And since 4ms have been entrusted with other companies’ module source code, this could protect that code.

i would hope 4ms would never shift focus away from fixing/adding features to the mm, to attempt forking cardinal.

Same here.

Cardinal is also a standalone, not just a plugin, and the suggestion had absolutely nothing to do with ‘liking it’. Cardinal is smaller and more portable than VCV; the executable with all 1200+ modules incorporated is a single 100Mb .exe file.
I dont use Cardinal myself; I also own VCV Rack Pro, and previously bought several of VCV’s own for-pay modules to support them before Pro was even a thing.
(However, as an aside, the VCV+ subscription announcement does make me a little concerned for the direction they were going in. )

this is a misconception of the role 4ms is to take on plugin development for the MM.

I think the idea is that 3rd parties (other than 4ms) would port modules to MM, expecting 4ms to do all ports is a little unrealistic, assuming we want to start getting many modules.
also it would not be possible for 3rd parties to release paid for (MM) modules.

as, in both these cases, to use such modules, the source code would have to release back to 4ms to be included within their cardinal fork.

I cannot see what Cardinal brings to the table, and Id not want 4ms dev effort focused here, rather Id like to see that effort being used on the MM firmware and additional modules.
also bare in mind, not only would 4ms be required to build Cardinal for various platforms, but if supplied as an out of the box solution. users would be quick to turn to them for support of it in various daws. something that 4ms does not need to worry about with vcv.

if you see that Cardinal is useful because it contains a (4ms) curated set of modules, then this could be achieved in other ways,
e.g. a pack of vcv rack modules, which can just be dropped into the plugins folder of vcv. i.e. don’t use the store.
ofc, this face the same issues as Cardinal (versioning etc), but at least has little/no overhead than building.

Cardinal was basically created, so that vcv could be a daw plugin.
but thats really not relevant for MM, where we are using it as a vcv essentially as an editor for MM.

so yeah, I don’t really see the relevant of Cardinal in this discussion, it seems like a lot extra effort which brings very little benefit as far as I can see.
(frankly… I don’t really find it that difficult remember which modules are on MM, and which are not anyway… at least, with the current module set)

anyways, its up to 4ms, perhaps they have a different viewpoint.

this is a misconception of the role 4ms is to take on plugin development for the MM.

No, its an assertion of something they could do, not what their role is. They do maintain the vast majority of the MM ports by the look of it, but Im not going to assert what they do and dont intend, even if you are.

also it would not be possible for 3rd parties to release paid for (MM) modules.

If paid MM modules are a possibility in the first place, then I disagree. Unless of course there was no copy protection mechanism, which wouldnt be ideal for those 3rd parties.
I guess you’re also assuming that forking Cardinal means keeping Cardinal’s mechanism for loading modules, rather than the original VCV one, (and thus GPL issues,) but obviously that’s not intrinsic to the notion.

if supplied as an out of the box solution. users would be quick to turn to them for support of it in various daws. something that 4ms does not need to worry about with vcv.

Irrelevant, as Im not talking about plugin versions.

Cardinal was basically created, so that vcv could be a daw plugin.
but thats really not relevant for MM

No, indeed its not. The fact that Cardinal can be built as a fully self-contained standalone is, though, as I already said.

if you see that Cardinal is useful because it contains a (4ms) curated set of modules, then this could be achieved in other ways,

Cardinal would be useful because it could be specifically tailored for MM. The module set would only be one way that could be done.
Your negativity does seem to be very focussed on aspects of Cardinal that having nothing to do with the notion of having a MM-specific tool; I do wonder if you’d have responded differently if I’d suggested forking VCV itself.

anyways, its up to 4ms, perhaps they have a different viewpoint.

Indeed. Which is why Im only positing what they could do. Im not expecting anything of them, demanding anything of them, or speaking for them.

incorrect, Id have responded the same for forking vcv itself for similar reasons.

I bought MM because of the way it interacts with the official vcv rack implementation, and all that it brings (for good and bad).

I think Meta Module is already a very ambitious projects, not only hardware, firmware but support, and porting of many modules including their (4ms) own, and there is a lot still to come. that’s a lot of work.

dev resources are always limited, so that that’s where Id prefer the focus to remain.


note: also, as a dev interested in creating modules for MM - , I want to be able to just focus on (official) vcv and mm, without having to be (potentially) concerned about other forks/projects complicating matters further.

1 Like