Saving MIDI CC assignments in user presets?
-
@David-Healey Absolutely, then the
mah.setUpdateCallbackallows you to easily write the file, that's why I said"or just rewrite what you already saved"in the post above -
@ustk Yeah I've got it working now. I've set it to fall back to the preset's automation if the one loaded from the file is empty. That way I can setup my "defaults" in the preset file.
-
@David-Healey said in Saving MIDI CC assignments in user presets?:
That way I can setup my "defaults" in the preset file.
Clever!

-
@David-Healey Till today I wasn't aware of this
setEnableUserPresetPreprocessing, this will save me from other situations where I was tinkering with the pre/post save/load in order to keep parameters persistent...
I'll keep that in mind now! -
the Midi CC settings are part of the data model of a user preset that is saved in the DAW project, otherwise it would loose the connections when you reload a DAW project.
If you want to clear the Midi assignments when browsing user presets, you can easily just clear it in the post load callback and guard it behind the
!uph.isInternalPresetLoad()check.And any Midi CC connection reacts the same way as note input, so if you have armed multiple tracks it will control multiple instances. Feature, not a bug.
-
@Christoph-Hart said in Saving MIDI CC assignments in user presets?:
the Midi CC settings are part of the data model of a user preset that is saved in the DAW project
Are you referring here to the saved DAW session, or the saved user preset? Or both?
Saving as part of the DAW session is cool, I just don't want them saved in the user presets.
-
@dannytaurus HISE treats a user preset and a DAW state exactly the same - it reloads everything in the data model including the CC assignments.
If you want to distinguish between the two, you need this method:
https://docs.hise.audio/scripting/scripting-api/userpresethandler/index.html#isinternalpresetload
I wouldn't start hacking around in the source code for this, the data model needs to stay consistent, this is just an UX problem while preset browsing that you can solve easily on the script level.
-
@ustk From what Claude says, this is minimally useful for my situation.
Although you can preprocess the preset data before loading it, you still have to set all the values to something, meaning you can't just say "don't overwrite the existing CC assignments". I suppose you could read the current assignments, then preprocess to replace the preset assignments with the current ones. Phew!
But as I replied to David earlier, that leads to there being lies on disk.
-
@Christoph-Hart I don't really want lies in my user preset data. Might be confusing to anyone who read/edits the XML
-
@Christoph-Hart said in Saving MIDI CC assignments in user presets?:
If you want to distinguish between the two, you need this method:
https://docs.hise.audio/scripting/scripting-api/userpresethandler/index.html#isinternalpresetload
Personally, I don't need to distinguish between a DAW session reload and a preset load. I just want no MIDI CC data saved to, or loaded from, user presets.