JW Plugins on MM?

I was looking at this section:

Notice that you must give the path to the plugin.json file that the Rack-SDK requires. This file is read by the MetaModule in order to get the brand name and slug.

  1. Create a plugin-mm.json file. Read more about this file here. You can just use a blank file to get started.

touch plugin-mm.json

So that error is saying it can’t copy the plugin.json file into the temporary directory it’s using to create the plugin .mmplugin file.

When it says “Creating plugin at …” that means it’s attempting to create the plugin (I see how that wording is confusing and sounds like it already created the plugin). But then it hits an error and won’t actually make the plugin file.

What’s failing is that it can’t copy the plugin.json file from ‘…/Rack/plugins/JW-Modules/’ to the temporary directory which is in ‘/Users/jeremy/vcv/JWMeta/build/JWMeta’.
My first guess is the path to the plugin.json is wrong. I would first try specifying a full path instead of a relative path. You can use the cmake variable ${CMAKE_CURRENT_LIST_DIR} as a starter. Something like:

create_plugin(
    SOURCE_LIB      JWMeta
    PLUGIN_NAME     JW-Modules     #see my comments below
    PLUGIN_JSON     ${CMAKE_CURRENT_LIST_DIR}/../Rack/plugins/JW-Modules/plugin.json


Above I filled in the path for PLUGIN_JSON with a full path, but I’m just guessing what it should be. The variable CMAKE_CURRENT_LIST_DIR will changed to the full path to the CMakeLists.txt file, so make the path relative to that.

Less likely (but possible–I just helped someone else with this exact issue) is that the file permissions for either the source or dest got messed up (e.g. accidentally ran sudo to build something)

Also, I see the use of JWMeta. That’s OK to use as the cmake library name, but in the PLUGIN_NAME field of create_plugin() you need to specify the VCV Rack brand slug for your plugin. I’m guessing it’s not really JWMeta? If not, then change it to what VCV uses for the brand slug. You can change the display name in the plugin-mm.json file, but you have to have the slug match what VCV uses or else when people create patches in VCV with your modules, the MetaModule won’t know to look in your plugin for those modules.

got it thanks! now it creates the plugin at /Users/jeremy/vcv/metamodule-plugins/JW-Modules.mmplugin

What are my next steps? I know some of my modules will either have to be modified or excluded. Like for example clicking on NoteSeq in a drawing to add a cell won’t work but clicking randomize should work. But how do I test things out? My actual meta module hardware should be coming today.

There is a MM simulator:

6 Likes

Looks like you are making progress!!!

super awesome really excited to try these modules out!!

Awesome! Looks like you figured out external plugins in the simulator, too. Not all things work there, it’s primarily a UI simulator (but usually audio/CV signals work too).

Next steps… Once your hardware is up and running, then running the modules on it will give you a sense of the CPU loads and if you need to do any optimizations for the 32-bit architecture. (keep in mind there are two cores, and the % number shown is the % load of a single core).
Also just going through the modules, testing them out to make sure they behave the same on VCV as on MM (or at least document any differences). You can do some of that on the simulator by putting .yml files in the patches/ dir.

Looking nice!