I am having the same problem where I have published modules in the
Library (that I subscribe to), and I’m developing new modules that are
not yet in the Library, and I symlink these into the ~/.Rack2/plugins
directory. This worked fine before I had published any modules in the
Library, but now that I have, these development modules are not
showing up in the module browser anymore (only the published modules show up).
The first thing I tried was changing my plugin slug in plugin.json
,
and this works, but has a number of drawbacks:
- I have to remember not to commit my plugin.json while testing with a different slug.
- If I save patches or selections while testing this way, the slug name is saved wrong.
So thanks to finding this thread, I found in the main VCV config file
(~/.Rack2/settings.json
) this option:
...
"moduleWhitelist": {
...
"EnigmaCurry": [
"Latch",
"Transport"
],
}
Listed here are all of the modules that I have officially published (and have subscribed to),
but not any of the ones that are unpublished and in development. If you look at some of
the other plugins listed in this file, many of them don’t have a list
and are simply listed as true
. I don’t know if theres a setting
change in my plugin.json
to changes this for my module? Or is this an
administrative filter out of my control?
Anyway heres the workaround for Rack 2.1.2: if I close VCV Rack, edit settings.json and set
EnigmaCurry: true
, and then reopen VCV Rack, it works ONE TIME, and
I see all of my development modules. As soon as you close VCV Rack, it
will edit this file back to the way it was automatically (I don’t know
if being unsubscribed affects this or not). So to recap: VCV Rack will
load settings.json
on startup and use it the way its written. When
VCV Rack closes it writes to this file and changes the setting back
to the way it was before. So as long as you change it while VCV rack is
closed it, will work the way you intend, but only one time.
One solution is to make the file immutable (I’m on Linux):
sudo chattr +i ~/.Rack2/settings.json
However, doing it that way will mean that you won’t be able to change
ANY settings from within VCV Rack (this could be a good thing in development). You can always change the file back
to regular mutability when you’re done testing:
sudo chattr -i ~/.Rack2/settings.json
If thats too extreme, you can just edit the file every time you start
VCV Rack, but this gets tedious fast, so here is a BASH one-liner that
works with the jq utility:
# Edits VCV Rack settings.json - only run this while VCV Rack is closed:
PLUGIN="EnigmaCurry" TMP_SETTINGS=$(mktemp) \
&& jq ".moduleWhitelist.${PLUGIN} = true" ~/.Rack2/settings.json \
> ${TMP_SETTINGS} \
&& mv ${TMP_SETTINGS} ~/.Rack2/settings.json
Just change the part that says PLUGIN=EnigmaCurry
to your own module
name. Run this everytime before you start testing VCV Rack (or put it in a script).