Here's the PR with the preprocessors. I already closed it but leaving it rather than deleting in case the specifics help anyone.
https://github.com/christophhart/HISE/pull/995
The two preprocessors:
HISE_MIDI_AUTOMATION_IN_USER_PRESETS // load/save CC mappings from preset data? HISE_MIDI_AUTOMATION_IN_PLUGIN_STATE // load/save CC mappings from session data?Allow you to set up any of four scenarios:
U=1, P=1 (default): "I want CC mappings to be part of the sound, recalled with every preset, and I also want each plugin instance to remember them in the DAW session."
U=0, P=1 (per-instance): "I don't want browsing presets to touch the user's CC mappings, but I do want each instance to remember its own mappings when the DAW session reopens."
U=0, P=0 (global, script-owned): "I don't want presets or DAW sessions storing CC mappings at all, because I want one global mapping file that my script owns and every instance shares."
U=1, P=0 (odd but technically legal): "I want CC mappings treated purely as patch data that loads with each preset, but I don't want sessions keeping their own separate copy that could drift from whatever preset is loaded."
I'm going for the per-instance approach plus manual [Save As Default Map] and [Load Default Map] buttons in my UI.
Feels like the best approach for my synth, and what I would want as a user.
CleanShot 2026-07-11 at 13.25.30@2x.png