VCV Manual
Rack
Plugin Development
- Tutorial
- API Guide
- Panels
- Manifest
- Presets
- Voltage Standards
- Digital Signal Processing
- Migrating v1 Plugins to v2
- Licensing
Rack Development
Appendix
Module Presets
Factory module presets are a great tool for teaching and inspiring users of your Rack plugin.
They store parameter values, as well as internal data from your Module::dataToJson()
method if overridden.
Since presets are simply JSON files, they cannot store module patch storage files (introduced in Rack 2).
To include a factory module preset in your module, save a module preset file (.vcvm
) to
<your plugin's root dir>/presets/<module slug>/<preset name>.vcvm
and add the presets
directory to your distributables.
DISTRIBUTABLES += presets
Rack reloads presets when the user opens the preset context menu, so you do not need to restart Rack.
Module presets are sorted alphabetically by filename.
However, (since Rack 2) if a filename begins with numerical digits followed by _
(regex /^\d+_/
), that prefix is not displayed to the user, so you can apply your own custom preset sorting order.
For example, the presets from VCV Drum Machine (pictured) use the following filenames.
/presets/DrumMachine/00_House.vcvm
/presets/DrumMachine/01_House 2.vcvm
/presets/DrumMachine/02_Techno.vcvm
/presets/DrumMachine/03_IDM.vcvm
/presets/DrumMachine/04_Moombah.vcvm
/presets/DrumMachine/05_Lounge.vcvm
Presets can be edited with a text editor to update only a subset of parameters.
For example, to change parameters #0 and #2 but leave #1 unchanged, remove the "param"
object with id
1.
"params": [
{
"id": 0,
"value": 0.5
},
{
"id": 2,
"value": 1.0
}
]