-
Notifications
You must be signed in to change notification settings - Fork 32
Dplug Save Compatibility
Guillaume Piolat edited this page Jun 1, 2021
·
16 revisions
Dplug assumes plug-ins are using SemVer as version numbers.
In major version changes you can do anything, but MUST:
- update the major number of
publicVersion
inplugin.json
- update
pluginUniqueID
inplugin.json
- update
pluginName
inplugin.json
to avoid overwriting previous version files on install (this is the public name of the plugin major, for example"Destructatorizer 4"
).
You can change anything in your plugin now, it's considered a separate plug-in by hosts, and can coexist with previous versions.
Major version are a good time to consider moving out of legacy options, since save compatibility will be broken anyway.
All other versions are minor versions changes. Dplug assumes that you will keep save compatibility across minor/patch version changes.
- You can't remove a
Parameter
- You can't remap a
FloatParameter
values, or add an option to anIntegerParameter
, since it would break existing sessions. You can't change existingParameter
. - You may try to add a
Parameter
at the end of the list of parameters constructed inbuildParams()
. It is currently unknown if this keeps compatibility in all DAW. Avoid if you can. - You can add presets. You can't remove a preset. This will cause problems in AAX on macOS. Preset file will get merged with the previous version presets in the case of a minor update, and this will break code signing of the bundle. Generally, you shouldn't remove presets between the demo version and full version of your plugins, for the same reason.
Update the minor and/or patch number of publicVersion
in plugin.json
to reflect the version change.
Such a plugin is considered the same than previous versions by hosts.
Hence, you are not allowed to change save compatibility.