[FIXED] Following the tutorial - on opening Rack, my .vcvplugin plugin file disappears, folder is created, but module not shown in Library browser even after restarts

Hoping someone has an idea where I’ve gone wrong.

I’ve followed the tutorial and all went well after a few cul de sacs (I hate OneDrive!) and all built fine, the empty plugin worked and the ‘brand’ showed up in the Library browser in VCV Rack greyed out as expected as it had no module in it. When I built the module as per the instructions in the official tutorial it also built fine, but once I placed the .vcvplugin file inside the user plugins folder and opened Rack it disappeared, created the folder, but both the module and even now the ‘brand’ aren’t showing up in the Rack module browser.

I couldn’t see any debug file other than the log.txt file in the user folder and it doesn’t mention any error.

Rack works fine so this doesn’t cause a crash.

I’m obviously doing something wrong, but quite what I’d love to know. FWIW I’m on Windows 11 Pro x64, using Notepad++ to edit files and MSYS2/mingw64 as per the instructions.

Edit: To save anyone with a similar issue from all the scrolling…

FIX part 1…

The log.txt file gets regenerated each time Rack runs, I’m used to debugging log files on servers that just grow and grow over years so it never occurred to me the reference to a missing module in the plugin code was in the middle of the log rather than right at the end.

FIX part 2…

I think I’m just used to particular ways steps are documented so the commented out lines

p->addModel(modelMyModule) 

in plugin.cpp and

extern Model* modelMyModule;  

in plugin.hpp

weren’t at all obvious to me that I needed to uncomment them to get this working.

The log file doesn’t mention your plugin at all? There is now a folder below the plugins folder for “your” brand? It has plugin.json and the dll/so/dylib that is your code? The plugin file is supposed to “disapear”. After rack unzips it into the right folder it deletes it. So you end up with :

Yes, sorry if I wasn’t clear, that folder is created, contains a plugin.dll file, a plugin.json file plus a res folder containing the module svg file and the .vcvplugin file.

and no log.txt doesn’t reference my module or plugin.

does the plugin.json look “correct”?

{
  "slug": "testmark1",
  "name": "Mark Test 1",
  "version": "2.0.0",
  "license": "proprietary",
   "brand": "Mark Test 1",
   "author": "",
    "authorEmail": "",
   "authorUrl": "",
    "pluginUrl": "",
   "manualUrl": "",
    "sourceUrl": "",
  "donateUrl": "",
    "changelogUrl": "",
    "modules": [
    {
	"slug" : "MyModule",
  "name": "MyModule",
  "description": "A test module",
   "tags": [
  "Visual"
  ]
  }
  ]
}

FYI - The double quotes are ascii standard ones, it seems the editor on here is turning them into curly quotes

looks pretty normal. It is ok to use “smart quotes” like that in the JSON? I’ve never done that. But the fact that the log doesn’t even mention anything is pretty weird. Are you sure you are running the copy of rack that you are installing the plugin too?

Have your tried building any plugins that are known to work? My JSON formatter says there is a json format error at the first smart quote. Let me fix that…

Yes, that’s the problem. What are you using to edit plugin.json? You should use Visual Studio Code, and install “JSON Tools”. You don’t need JSON tools, but that’s what gave me the error message.

As I said the smart quotes are coming from the web page here on the forum, not in the editor. Notepad++ is fine.

oh, yes you did. pro tip: here’s how to post correctly:

{
	"slug": "squinkylabs-plug1",
	"name": "Squinky Labs",
	"author": "Squinky Labs",
	"license": "GPL-3.0-only",
	"pluginUrl": "https://github.com/squinkylabs/SquinkyVCV/blob/main/README.md",
	"authorUrl": "https://github.com/squinkylabs/SquinkyVCV/blob/main/README.md",
	"sourceUrl": "https://github.com/squinkylabs/SquinkyVCV",
	"manualUrl":  "https://github.com/squinkylabs/SquinkyVCV/blob/main/docs/booty-shifter.md",
	"changelogUrl": "https://github.com/squinkylabs/SquinkyVCV/blob/main/CHANGELOG.md",
	"version": "1.0.23",
	"modules":
	[
		{
			"slug": "squinkylabs-ev3",
			"name": "EV3",
			"description": "Triple VCO with even waveform",
			"manualUrl": "https://github.com/squinkylabs/SquinkyVCV/blob/main/docs/ev3.md",
			"tags": ["VCO", "Multiple"]
		},

Anyway, I’m out of ideas. I’d try making some known goods.

That’s not a tip, how do I do that?

I don’t know how to type it in here. one sec.

here: Creating and highlighting code blocks - GitHub Docs

I used the version where I specified the language after the three ticks. Don’t know if that makes any difference.

1 Like

cheers for that, worked a treat!

yep, now that JSON is “legal”, as far a JSON Tools in concerned. No idea what your issue is. I guess I still suspect the plugin is going to the wrong copy of rack, but I guess probably not if your first experiment succeeded…

FWIW the Fundamental plugins require make dep, but if you build something like Impromptu it will be super easy and works every time.

I’ll take another look with fresh eyes tomorrow. Hopefully something will jump out. Cheers for looking.

1 Like

Double check that you have added the model to your plugin in your main cpp file and that you have declared it in your main hpp file. Also check that the slug in the source matches the slug in the plugin JSON. One more thing to check is that the panel name specified in the source matches the actual panel name and that it has been included in the package.

but wouldn’t any of these issue cause at least one line of error logging?

I can’t say I’ve looked at the logs for these but I know they’ve been the cause of missing modules in the browser for me in the past.

most of the dumb things I’ve done have resulted in error messages in the log. for sure inability to load a resource causes a message.

Can you please search the log for “could not”.

1 Like