Got my MetaModule yesterday and haven’t slept much One workflow improvement that will make creating patches in Rack MUCH easier is to get module creators developing for MetaModule to tag their modules so that you can filter the list of modules you might select from in the patch to only supported ones. I had to keep several windows open to continually check if a module was supported. There were a few times I used a module that I just took for granted was supported and it turned out not to be :(. Seems like a really simple thing to make happen.
Great idea! I was wondering if this was a thing. I will probably only use VCV Rack to build MetaModule patches and nothing else.
i made a duplicate vcv plugin folder on my harddrive that only contains the relative mm ones, i just renamed the original plugins folder with a ‘-’ at the end so that vcv doesn’t recognize it. i have a batch script(windows) that auto-renames the plugin folders back forth as needed… not the cleanest solution but works great for me until we see can that mm specific tag in vcv
That’s clever. //////////
Yes, having a MetaModule tag would be great. Unfortunately VCV Rack only supports particular tags, so plugins can’t just add their own. We’d need to have the VCV Rack software itself updated (as far as I understand it – but we should really get someone from VCV in on this conversation to confirm).
I have a “temp” solution in that I’ve set all MM compatible modules as “favorites” since I honestly didn’t use that much to begin with. But yeah, a tag or another filter button (like favorites) that only shows MM compatible modules would be great.
+1 for a tag
for now, what Ive done is create a second ‘user folder’ , that I can use for meta module. you can then use -u option for vcv to launch it.
then as above, remain logged out of vcv library, and copy specific MM plugins into the new plugin folder.
as Im on macOS I then use an AppleScript as follows.
do shell script "/Applications/VCV\\ Rack\\ 2\\ Pro.app/Contents/MacOS/Rack -u ~/Library/Application\\ Support/MetaModule"
save as an application, so I can now launch MetaModuleVCV app for developing MM patches.
you can do very similar in windows/linux…
advantages of this approach.
- dont need to move folders around.
- your MM patches will be stored separately from other desktop ones
- you can have different selections and also template patch
tag would still be better though… as you still need to copy plugins around, and also remember to update them
another approach would be to create a second vcv account for MM.
but that’d not work if you want to use Pro.
though arguably… that leads to another workaround for Pro users.
create a new account, and use VCV Free for MM, and VCV Pro for desktop.
… as there isn’t really much advantage having a Pro account with the MM.?
this has the advantage that you have subscriptions to the VCV Rack library (on a separate account), so you’ll get updates etc.
Oh I didn’t know about the -u
feature in VCV Rack — details are here for anyone who wants to know more:
I just took a look at the settings schema in the rack settings.json file. Unfortunately there is no single list of favorites and each favorited module has a “favorite”: true setting. If someone who has done the work of favoriting only the MetaModule modules is prepared to share their settings file I would be happy to write a script that does all that tedious favoriting for you. Obviously not great if you are using favorites already to filter your long list of modules (like I am). I wonder if there are other ways we could modify the settings to identify those modules that MM supports.
Also took a look at the plugin.json file. That is where the tags for each module are stored, but adding a custom tag does not show up anywhere in the UI, so I imagine the list of permitted tags is in the Rack app somewhere, so someone would need to make a request to have a new MetaModule tag added for the next release or better still, the ability to add custom tags so you can use your own to group the modules you use for different genres etc. Like favorites, but on steroids. I don’t know anyone who works on Rack, but I am sure the 4ms folks do.
While the Rack app may not formally accept new tags, it might not hurt to add a “metamodule” tag to supported modules anyway. The app will still load the module just fine. Two benefits here:
- This at least opens the door to writing a trivial script to favorite all the metamodule-supported modules for now.
- If VCV Rack does ever support custom tags, the work is already done!
Another fun workaround at the cost of losing one of the existing vcv-supported tags:
- Open up Rack2Free/libRack.dll in a text editor like notepad++ (most of the contents are garbled, since it’s a binary file, but you can edit the plaintext sections)
- Search for the section that defines the all the tags. “Amplifier” is a good search term to get you there
- Replace one of the existing tags that is exactly 10 characters long (like “Compressor”) with “Metamodule”.
- (DO AT YOUR OWN RISK! I’d suggest first making a backup copy of libRack.dll) Save the libRack.dll
- Add the Metamodule tag to all the metamodule-supported modules
- Profit!
For those who were curious, like myself; this does not work with the Pro version. Luckily, I took your advice and made a backup of the dll.
Editing a binary file with a text editor was highly unlikely to work. For a chance, you’d need to use a binary editor, changing only the bytes that reside within the text resource of the binary. In general, a text editor will rewrite the file and contents will be made to conform with the text encoding. But I wouldn’t recommend this approach
I would also not recommend manually editing a DLL in this way, even if it is just a string embedded in the PE file. Windows (11 and I think even 10) watches for these sorts of changes to DLLs and EXEs not made by a signed installer. It hashes the files every so often and then compares that with the hash from the most recently installed version. Even just modifying that one little string is going to change that hash and Windows will either revert the DLL or quarantine it. I suspect that the quickest permanent fix to this is just asking Rack to allow custom tagging (maybe longer term) or to just add a new “4MSPortable” or similar tag (should be able to do in the next minor release… it’s a one line change!).
Notepad++ is totally capable of editing characters in binary assets. It has a hex editor plugin, but it’s not really necessary for swapping out characters in a string.
Certainly fair. Safest approach is to wait if you’re at all unsure.
And, to be clear, I certainly don’t expect 4ms to encourage the editing of third party dlls.
Hmm… I just tried this in Pro and it worked the same as in Free… just had to edit Rack2Pro/libRack.dll instead of Rack2Free/libRack.dll
So I tried this again today and the tag shows in the list but is not selectable (greyed out).
Greyed out usually just means there aren’t any modules with that tag. There’s just 3 modules in the picture above because I was lazy and just quickly added tags to a few modules.
You have to go to /Users//AppData/Local/Rack2/plugins-win-x64/ and edit each plugin.json to add “Metamodule” to the “tags” of each module that’s supported, like this: