How to load compiled plugin?

Following this tutorial I managed to compile the example “MyPlugin” without error and create a distributable. (I’m using windows/msys.) Now I wanted to test it in Rack, and copied the zip file from MyPlugin/dist to the Documents/Rack/ folder. When starting Rack, the plugin got unzipped as expected. Now my question is:

How do I load it when I actually start Rack? I expected that it would show up in the Plugin Manager, but there I just see the 37 standard Modules.

What does the log say?

Documents/Rack/log.txt

Ah thanks for the hint - here I found one line which I suspect says what was going wrong:

[0.030 warn src/plugin.cpp:158] Could not load plugin C:\Users\XXXX\DOCUME~1/Rack/plugins-v1/MyPlugin: Manifest contains module MyModule but it is not defined in the plugin

EDIT: I suspect I failed to add it in the plugin.cpp file, I’m trying that now.

Your plugin needs to export information about the modules in it. It seems yours doesn’t. I don’t know how the current SDK works, but I use the old fashioned way:

Model *modelBootyModule = createModel<BootyModule, BootyWidget>("squinkylabs-freqshifter");

That matches up with the manifest:

{
			"slug": "squinkylabs-freqshifter",
			"name": "Booty Shifter",
			"description": "Frequency Shifter",
			"manualUrl": "https://github.com/squinkylabs/SquinkyVCV/blob/master/docs/shifter.md",
			"tags": ["Ring Modulator", "effect"]
}

Look for all the places where you have defined MyModule e.g. plugin.hpp or plugin.cpp and in Model *MyModule in MyModule.cpp. It has to be the same across the board. Could be that you renamed it in plugin.hpp or .cpp and did not rename in the manifest plugin.json in the root of the folder.

Like the example above model and module should match in plugin.json “slug”: “…” … being modelMyModule "slug": "MyModule"

Thanks for both your quick help: It turned out that I indeed just had to uncomment the two lines involving modelMyModule in plugin.cpp and plugin.hpp.

3 Likes