This is a fun conversation. I’m glad to see it go in a lot of different directions too.
Here is an update on my project. I created a GitHub repo for this developer tool plugin called Toolbox.
You can open up any patch that has modules you are interested in. Then you insert the “Module Scanner” module from the Toolbox plugin. Then click the button:
You won’t see anything happen when you click the button (to be fixed later). But it will create a file called ModuleScanner.json
in your VCV Rack user folder.
Here is a sample from one of my patches:
ModuleScanner.json (91.8 KB)
This is still a work in progress, because I’m accumulating plugins, modules, and parameters inside modules, but I still need input ports and output ports.
Here is a snippet of the information captured about Sapphire Galaxy:
"CosineKitty-Sapphire": {
"Galaxy": {
"params": [
{
"paramId": 0,
"name": "Replace",
"description": "",
"unit": "",
"minValue": 0.0,
"maxValue": 1.0,
"defaultValue": 0.5,
"displayBase": 0.0,
"displayMultiplier": 1.0,
"displayOffset": 0.0
},
{
"paramId": 1,
"name": "Replace attenuverter",
"description": "",
"unit": "%",
"minValue": -1.0,
"maxValue": 1.0,
"defaultValue": 0.0,
"displayBase": 0.0,
"displayMultiplier": 100.0,
"displayOffset": 0.0
},
{
"paramId": 2,
"name": "Brightness",
"description": "",
"unit": "",
"minValue": 0.0,
"maxValue": 1.0,
"defaultValue": 0.5,
"displayBase": 0.0,
"displayMultiplier": 1.0,
"displayOffset": 0.0
},
{
"paramId": 3,
"name": "Brightness attenuverter",
"description": "",
"unit": "%",
"minValue": -1.0,
"maxValue": 1.0,
"defaultValue": 0.0,
"displayBase": 0.0,
"displayMultiplier": 100.0,
"displayOffset": 0.0
},
{
"paramId": 4,
"name": "Detune",
"description": "",
"unit": "",
"minValue": 0.0,
"maxValue": 1.0,
"defaultValue": 0.5,
"displayBase": 0.0,
"displayMultiplier": 1.0,
"displayOffset": 0.0
},
{
"paramId": 5,
"name": "Detune attenuverter",
"description": "",
"unit": "%",
"minValue": -1.0,
"maxValue": 1.0,
"defaultValue": 0.0,
"displayBase": 0.0,
"displayMultiplier": 100.0,
"displayOffset": 0.0
},
{
"paramId": 6,
"name": "Size",
"description": "",
"unit": "",
"minValue": 0.0,
"maxValue": 1.0,
"defaultValue": 0.5,
"displayBase": 0.0,
"displayMultiplier": 1.0,
"displayOffset": 0.0
},
{
"paramId": 7,
"name": "Size attenuverter",
"description": "",
"unit": "%",
"minValue": -1.0,
"maxValue": 1.0,
"defaultValue": 0.0,
"displayBase": 0.0,
"displayMultiplier": 100.0,
"displayOffset": 0.0
},
{
"paramId": 8,
"name": "Mix",
"description": "",
"unit": "",
"minValue": 0.0,
"maxValue": 1.0,
"defaultValue": 0.5,
"displayBase": 0.0,
"displayMultiplier": 1.0,
"displayOffset": 0.0
},
{
"paramId": 9,
"name": "Mix attenuverter",
"description": "",
"unit": "%",
"minValue": -1.0,
"maxValue": 1.0,
"defaultValue": 0.0,
"displayBase": 0.0,
"displayMultiplier": 100.0,
"displayOffset": 0.0
}
]
},
// ...
}