state saving

discussion about netpd's future state saving. brain storming, pro/contra, todo list everybody is welcome.

what has happend so far:

----------------------------------------------------------

redesign of netpd's state saving mechanism

it's one of the main design principles of netpd to define and standardize as less as possible in order to keep a maximum of flexibility in userspace. it turned out, that the actual implementation of state saving in netpd doesn't really follow this rule. yet, [netpd-x]? provides a standardized interface to save and restore states of a netpd-patch. though it is very simple and can be used in many different ways, there are some drawbacks with the actual system. the naming scheme of the resulting preset-files is hardcoded and also it's predefined, that every netpd-patch will create its own preset-file. although it is possible to build a preset management system on top of this in userspace, there are certain limitations.

many discussion were held in netpd chat about this topic and the issue resulted even in an alternative preset saving system, which exists in parallel to the netpd preset system and which is not compatible with the netpd system. there was a conflict between two different needs:

unwillingness to work with the existing system because of its limitation

vs.

avoiding any parallelism in order to keep compatibility and to have a unified system

after some discussion it was decided, that this issue can only be solved by redesigning the state saving system in netpd by removing all remaining limitations and reduce it to the very basic functions.

sketch of the new system

it would be nice to also save local parameters. that could be useful for:

----------------------------------------------------------

discussion points:

eerne: fileIO is done by the userspace preset administration application roman do you think we should not discuss that here at all?

if we want to store songs we should sketch how the could/should look like.

example of a classical preset

filename: instrumentname-presetname.pst i.e a-drumkit-test-a1.pst

content: parameter value(s) i.e. clap-release-s 100;

example of P-ADmin? preset

filename: songname i.e. myfirsthcsession

content: instrumentname parameter value(s) i.e a-drumkit clap-release-s 100;

example of a song

filename: ?

content:

instrument tags followed by instrument parameters (unlike P-ADmins? every parameter has prepended instrumentname)