Getting access to library through API

Hopefully an easy one. I’m looking to get a list of all the plugins and modules in my library through the API.

I can get access to all the modules in my patch using APP->scene->rack->toJson(). I get a nice json object that I can work with. Is there something similar for the library through the API, or is it a case of grabbing each of the plugin.json files from my plugins directory?


Hack: the mb module from stoermelder lets you export a json of all your “favorites” and “hidden” modules. You could make all modules as favorites and do it that way.

To get a simple list of the plugins in the library, you can open:

To get a nice, spreadsheet friendly list, of all the plugins and modules that you have installed on your computer, you can do the following:

  • With your favorite package manager, install the jq utility. On Mac and Linux it’s just in your terminal, on Windows you can use e.g. MSYS2.
  • Navigate to your Documents/Rack/plugins-v1 folder and execute the following:

for F in */plugin.json; do cat $F | jq -r '.brand + ";" + .author + ";" + .name + ";" + .modules[].name'; done > modules.csv

  • This exports all the plugins and modules in a nice list (CSV file), where the columns are: Brand, Author, PluginName, ModuleName - like so:
23volts;Rémi Collin;23volts;Mem
23volts;Rémi Collin;23volts;Multimap
;Adrian Likins;Alikins;Gate Length
;Adrian Likins;Alikins;Color Panel

You will notice that people apply the brand and author thing quite differently.

Attached the CSV file and the Excel version from my computer:
modules.csv.pdf (99.8 KB)
modules.xlsx.pdf (61.7 KB)

Since the configuration of this forum does not allow either filetype, you will have to remove the .pdf extension after downloading.


Thanks for this but I was hoping to access details of my plugins library from a module

I tried doing something like this:

for (plugin::Plugin* plugin : rack::plugin::plugins) {
		for (plugin::Model* model : plugin->models) {
			std::string str = model->name;
			const char* c = str.c_str();


but getting the error ‘plugins’ is not a member of ‘rack::plugin’;

Did you include plugin.hpp?

1 Like

Yeah got #include “plugin.hpp”

I mean the file in Rack’s include-folder, not the one in your plugin.

that could be it.

spot on mate! that was it. Thanks

Easiest is probably to look at the source of Stoermelders MB module.