One problem is, that the Memento system doesn't care about types. You can save everything, even floats and lists. And "0.1 * loop.wav" is difficult to interpret.
in the system I'm curently using (made around a custom pbank object) list are interpolated element by element (if the 2 interpolated list are the same size). the possibility to have symbol instead of float is the solution not to interpol every value. exemple of what is currently running on my computer :
preset_default : 1 2 3 4 5 6 7 8 9 110 preset_1 : 4 5 6 7 8 9 1 2 3 foo preset_2 : 1 3 5 7 9 1 3 5 7 foo preset_3 : 2 2 2 2 2 2 2 2 2 foo preset_4 : 0 9 0 9 0 9 0 9 0 foo
default preset is load on startup. then I just have interpolation beetween preset 1, 2, 3 and 4 :
out = preset_1 * C1 + preset_2 * C2 ...
the 110 value of the preset_default is in this exemple the volume. this value can not be interpolized (foo), so interpolating will not occur for this specific parametter. in fact, I use a lots the list of float/symbol in my interpolation preset system.
Wouldn't most interpolation issues be possible to solve with a kind of stored envelope? Like an ADSR also describes an interpolation, but it still can be stored using four static values.
weel, I don't see how an ADSR can help for interpolation. maybe I did not really undersant what you thinking of.
cyrille
Ciao