saveInPreset vs custom prefFile vs what?
-
@ustk This is the discussion - https://forum.hise.audio/topic/6410/restoring-properties-with-daw-session/17?_=1754778579355
-
@d-healey I was right on it
I'll check more deeply tomorrow, but for now I don't see where knowing if it's DAW or not can allow to block a knob from being recalled. Unless using a trickery to save the prev value on preCB and restore on postCB... A bit dirty but why not...
-
@ustk Yeah if I remember correctly in the preload callback you check if it's an internal load, if it's not then you store the value of the control in a variable.
Then in the post callback you again do the check but this time you load the value from the variable.
-
Can we simulate a DAW session loading within Hise to test
isInternalPresetLoad()
?
I thought yes, but I've probably hallucinated...
Compiling and codesigning for this kind of test can be cumbersome -
What ever I try, saveInPreset enabled/disabled, use or don't use
isInternalPresetLoad
, I can't get this to work.
It either make the component to persist on preset load but not on DAW init, or the opposite, or nothing...I need to make the components persistent for both cases, preset load AND DAW recall.
my base structure is:
// will hold some parameters that need to be protected when a preset is loaded or the DAW loads the session const var protectedControls = [oversamplingBtn, oversamplingKnb]; const var protectedControlStates = []; //! Pre load CB uph.setPreCallback(function(presetFile) { // Protect the controls we don't want to see changing during user preset load AND DAW session load if (this.isInternalPresetLoad()) { for (i=0; i<protectedControls.length; i++) protectedControlStates[i] = protectedControls[i].getValue(); } }); //! Post load CB uph.setPostCallback(function(presetFile) { // Protect the controls we don't want to see changing during user preset load AND DAW session load if (this.isInternalPresetLoad()) { for (i=0; i<protectedControls.length; i++) { if (isDefined(protectedControlStates[i])) { protectedControls[i].setValue(protectedControlStates[i]); protectedControls[i].changed(); } } } });
I also tried to "pre-save" the component values in
protectedControlStates
from their respective CBs.If anyone has a clue or even better, a snippet, that would be amazing
-
@ustk I'll try and make a snippet this evening if I have some time.
-
@d-healey Lovely
-
@ustk Here ya go
HiseSnippet 1335.3ocsWEtaaaCDlxMJaVcaccnO.Z4GENCAA1IwIEqXHINIt0nMsFwocCnXnfVjxhvRjFhTIwMK.CC6AXOB6IX.6IX6oX+X+quA6e6mcGojkjSbSaMvzORBuu638wi2c7R2XgGUJEwHKmiGOhhr9D6di4pf8BvLNpy9HqEsUznQnViGgkRJAYYciGnwrpt.x78Oa2BGh4dzBQHzyELO5iYQLUgzt67HVXXaLgdLKpj1arSGOAeOQnHA3wMrqiFg8FhGPeBVqVEazCwx.j0WYiWqAcMRy9qu0VM8o0a1rNsYispi2zu9FD+6sYy062uAgtIv5CHLkHtmBqnRXSaIHi6EHNkm5fmyjr9gT8hFndfmSEi1KfER5NInHQHqE5VDhtQZH5N1GxHrb4EgpO2.3VXQ4flUkqiRM9.njUIJsPJktscOuX1HUAhlO2ztCWQi8wvcSYpjpKpBoh8dBPCtZ0H7PZ6XXQtE01rd8Ubger78cbhoCbGxE8eNNLgBqg6Kox8QfjFtei6jMY.UsmHZjfCKpsjAcoky0NYT.n6A7ALNcUuXJDFdljF2MlJopGh4jPZbMs5fhqBh.f8vgg8gbgZ9IbOESvqMxn89XEdYmyq5Tk46V6KUAL4pLog5bbX5N9XAlTa4kcpVMm3f6MjRSTi.s6tnrKER0aymsYgTvmNUOAG6V3LXOuF2eemIbrjE28tf86S8g3.oVN4zTE18poLTNggE32OGzK.yGPS29KRO.NSXqqf+Dgh9TdMCYctvw8xP99yDSeKFKBM2By.VWyFecFVimD0mFuh6IF5NQQHGc5D+Ee+R78RSpJonf2gyTOcDMacaQHQmPq+6qVlfxxJ0ELYLDTUYJW9rrxkdgLBMFwfM4irMwVjg7Y8l90G75+dazy5nS2lrMvNBdYDMVwzGFq8om.c5RqBqZuOUNTIFAMsxKDfVpuSmdVdyveb3NiyW39C6HUi0glEMJhhXDnJAxRY5PeoVv+gTQG0i8JCyO+N+1Cd8q94siJ2kFghvmUtosLw2mclo8pOKLRp.t0IB55hr9BanvzkP8wIgJW4PXeBY7gTxwBi9nRGtapx5Ild3ZGJvJFevwP0h4HdK6xhJeTguwkWjEcSCk2xNsLpUr3TnIAp+fIuOTcQP2+Ua.CdXpP5u+le4MSKcsLkMel6vJ+UE6ycbcWRmU0CeBsUhRI3K80tp3D5JSPN3rQXtDhvxckvVkDo0vGGJKTwj6EOay0EYxqrmPMPp5SAUHFJKgyKf0ndtQ6RHy1EGQ4vaiyFaeZHU8Vv5QwwdAsvwkAZiOQDCgM8qv4rnfDkgmxrjvvtXUvDb4TAoryZGHNRnsDwPzZJ7mjDkFZ0lstQT55ukQTAGAYLB.3EfbW25qt9k9V4CTNH96M93wLoZW3sm7yYlGVYV+J2pTlcj3ztXBARkeesKOb2RjvI5S5KRANTDmcCcYjhrxKiLINeETmKPmpCZ4ES+4OsS.kMH.JOssBrzidckIFfYUDjjPrZ5AXzi1kAn6vTdpA86WvsoZb4tHe.S0T+Zmp48kh21tKS4ELaNVYFbDZb++AGylE7SsOv2m5oJH3B1s+t4cvu2g6ORjnajdHF5UC8QsgZndPeNOJ3cNmFJ022UzsRSWWWuVGA5Q4Dyh2.eYfMzqsx.aLADdkvKV7RuzGL0Sa9wFI.m3lowqZends6zuTl9.CL76K87ldqthgqMuFt97Z3FyqgMmWC2bdMbq40v68tMT++lrahRDkV1fPG18.yqhVVGvwPFnIaE8eP4dQO0
-
@d-healey Thanks Dave! I thought this was it. It holds for DAW session recall but not for preset change strangely, despite it works in Hise. Tried with ProTools and Live
-
-
@d-healey In fact the logic is not hard, it should never change the parameters, whether it’s a preset change or DAW session load.
So since in both cases the pre and post CB are called, it should always protect the parameters. But it’s not happening for some reasons…Have you tried to build and test with a DAW?Oh you tried already…
Yes I have set a default preset -
@d-healey said in saveInPreset vs custom prefFile vs what?:
Does Live use VST3?
Yes, and I tried with AU too
I'm building again in case I've made a mistake -
@ustk said in saveInPreset vs custom prefFile vs what?:
Yes I have set a default preset
Restoring properties with DAW session
Mystery solved. I had a default preset set in project preferences. This completely breaks the save in DAW behaviour. Removing the default preset solves the i...
Forum (forum.hise.audio)
-
@d-healey Oh what what what?
Seems not to be an ideal behaviour though...Starting again and report
-
@ustk Alright so after removing the initial preset I still have the same behaviour (protected with presets but not with DAW load)
I'll try again tomorrow with a fresh mind... Thanks, Dave!
-
@ustk I gave it a try but I just want to make sure I understand what you're trying to do. You want the knobValue to remain the same despite userPreset load and/or DAW loading?
-
@Chazrox yes
-
@d-healey should the knobValue be static value? ie. ALWAYS = 1? or should it always = last saved state? ie, user changes and saves the value as .5 in one preset, should that load as .5 on all presets and next plugin launch....or go back to 1?
-
-
@Chazrox it does persist for me with the snippet I provided. It should retain the last value it was set to.