New Plugin build

Hi All, Have just managed to navigate through the early stages of building a new plugin. I need to check if the plugin.dylib is in the right place, I think, so I can go to the next stage. Any help would be really appreciated. Thanks.

Assuming your build environment is on current versions, run make install should do it.

Hi Paul - Thanks for the message. I get an error message when I run ‘make install’: ➜ MyPlugin3 git:(master) ✗ make install parse error: Unmatched ‘}’ at line 16, column 1 parse error: Unmatched ‘}’ at line 16, column 1 /Users/brianwatterson/Rack/plugin.mk:9: *** SLUG could not be found in manifest. Stop. I have looked at the code but can’t find the ‘unmatched }’ and the slug seems to be present in the manifest. I’ve tried a couple of times to make a plugin (Blank) but always seem to hit a roadblock at this point.

It appears you have an error in your manifest that makes it invalid JSON. If you share it, I can probably point it out. (paste it into a reply, with a line consisting of three back ticks (```) before and after).

If you want a working blank starting point, you can try Paul-Dempsey/GenericBlank: Template for a VCV Rack Blank module, rather than the Rack tutorial, which tends to lead you to a place that’s hard to work out of for many newcomers.

1 Like

Also, won’t a decent editor show a syntax error on bad JSON?

It will.

haha, or course if you define “decent editor” as something that shows JSON syntax errors, then it’s a tautology! Seriously, though, for the n00bs: most everyone seems to use Visual Studio Code for making VCV modules, although there are a significant number using the usual suspects (Sublime, VIM, etc…)

Hi Paul, Thanks for the reply - it’s very good of you to help. Here is the plugin.json:

  "slug": "MyPlugin3",   
  "name": "MyPlugin3",
  "version": "1.0.0",
  "license": "CCO-1.0",
  "brand": "MyPlugin3",
  "author": "BW-DEV",
  "authorEmail": "",
  "authorUrl": "",
  "pluginUrl": "",
  "manualUrl": "",
  "sourceUrl": "",
  "donateUrl": "",
  "changelogUrl": "",
  "modules":
} ```

There is no open brace (cut and paste error?) and there are no modules.

Modules is an array, and probably should have one or more entries:

"modules":
	[
		{
			"slug": "sqh-harmony1",
			"name": "Harmony",
			"description": "Harmony Generator",
			"manualUrl": "https://github.com/squinkylabs/SqHarmony/blob/main/docs/harmony.md",
			"tags": ["Utility"]
		}
]

That’s an edited except of mine. Or go look in the manifest for the fundamental (of whatever they are called now) modules.

Here’s the error I get when I put your “JSON” into VSC:

image

Hi Squinky - The opening brace is there - it just refused to appear on the message. Of course it worked this time!

{ “slug”: “MyPlugin3”, “name”: “MyPlugin3”, “version”: “1.0.0”, “license”: “CCO-1.0”, “brand”: “MyPlugin3”, “author”: “BW-DEV”, “authorEmail”: “”, “authorUrl”: “”, “pluginUrl”: “”, “manualUrl”: “”, “sourceUrl”: “”, “donateUrl”: “”, “changelogUrl”: “”, “modules”: }

You’re missing the array of modules. Every plugin has at least one module in it.

To see a complete working, almost minimal example see: GenericBlank/plugin.json at main · Paul-Dempsey/GenericBlank (github.com)

Well, I don’t know why they are missing - I followed the helper.py all the way through. My Terminal gave all the right responses:

➜ ~ git:(master) ✗ export RACK_DIR=/Users/brianwatterson/Rack

➜ ~ git:(master) ✗ $RACK_DIR/helper.py createplugin MyPlugin3

Plugin name [MyPlugin3]:

Version [1.0.0]:

License (if open-source, use license identifier from SPDX License List | Software Package Data Exchange (SPDX)) [proprietary]: CCO-1.0

Brand (prefix for all module names) [MyPlugin3]:

Author : BW-DEV

Author email (optional) :

Author website URL (optional) :

Plugin website URL (optional) :

Manual website URL (optional) :

Source code URL (optional) :

Donate URL (optional) :

Manifest written to MyPlugin3/plugin.json

Created template plugin in MyPlugin3/

yes, that’s what I said earlier.

Now it will be a race for who is the first to say “don’t user helper.py. It’s a horrible crutch that does more harm than good.”

don’t user helper.py. It’s a horrible crutch that does more harm than good.

oh, crap. Squinky beat me to it.

1 Like

LOL -haha. I see what you did there!

1 Like

O.K. Thanks both. I’ll try your very generously offered GenericBlank Template Paul - Thank you. I do have an account with Github but I have found it a quite confusing place to get around in. Two questions, if I may: Where would I find my manifest file and r.e. Github - Which bit do I click on to access your module code, please? Many thanks.

Use this template” should create a new repo for you in your account. Or you can click the Code dropdown and download a zip file.

The “manifest” is your plugin.json.