I understand.
So the solution would be still to ignore AudioProcessorParameter and instead you can save that in the void AudioProcessor::getStateInformation ( juce::MemoryBlock & destData). You can write anything into the MemoryBlock and when a session is restored, you get exact that MemoryBlock back in AudioProcessor::setStateInformation
, so you can use it in your plugin or gui.
There is also a nice solution to set the AudioProcessorValueTreeState::state. You can store that complete tree in that MemoryBlock with (almost) one line of code. I did a demo here:
and the saving you see here:
https://github.com/ffAudio/ffTapeDelay/blob/master/Source/PluginProcessor.cpp#L224