baseplug
baseplug copied to clipboard
versioned plugin state
currently, baseplug leans on serde Serialize + Deserialize
to persist the model state as JSON. however, this means that if the model for a plugin changes, there are potential issues deserialising stored state. this translates into users' DAW sessions loading incorrectly.
in my internal framework (which is the primary inspiration for baseplug), I remedy this by serialising a "version" along with the model, which enables loading of old formats and "migrating" those to the current format. this means, of course, that plugin authors have to keep around old versions of their model, but that can be done in a different file, and then we can lean on From<OldModelVersion> for CurrentModelVersion
for the "migration".
this is a blocking issue for 0.1.