Oh and to your first question
The way we are serializing everything is using https://github.com/taocpp/json taocpp's excellent json library to serialize our c++ objects directly (with versioning etc...) to either JSON or msgpack files. When we finally do 'save a part as a patch' or 'save a synth state as a multi' my guess is we will use something akin to decent or multisample, namely, the json or msgpack file with a well defined name in a directory and either references to files which have to be resolved on load or files in a subdirectory. We will probably also, like both decent and bitwig/presonus, allow that to be zipped into a single file so zip would let you get the individual files out.
Bit that json or msgpack file will not be anything other than 'streamed internal state'. Certainly not 'interchange format'. That's what the (unimplemented) exporters are for. (And they are in the milestone)
The way we are serializing everything is using https://github.com/taocpp/json taocpp's excellent json library to serialize our c++ objects directly (with versioning etc...) to either JSON or msgpack files. When we finally do 'save a part as a patch' or 'save a synth state as a multi' my guess is we will use something akin to decent or multisample, namely, the json or msgpack file with a well defined name in a directory and either references to files which have to be resolved on load or files in a subdirectory. We will probably also, like both decent and bitwig/presonus, allow that to be zipped into a single file so zip would let you get the individual files out.
Bit that json or msgpack file will not be anything other than 'streamed internal state'. Certainly not 'interchange format'. That's what the (unimplemented) exporters are for. (And they are in the milestone)
Statistics: Posted by baconpaul — Sat Apr 06, 2024 10:42 pm