Hardcoded Master FX Not Saving
-
I have a hardcoded master FX in my project. When I close and reopen the project, the hardcoded master fx stays, but the dll I choose inside it does not. I keep having to reselect the dll file. How can I prevent this?
-
@mmprod you need to save the state of the user module to the preset so it is recalled correctly:
Engine.addModuleStateToUserPreset(var moduleId)
. This will also help save the state of the knob positions.It's in the docs here: https://docs.hise.dev/scripting/scripting-api/engine/index.html
Unless you are switching the effects in the hardcoded fx slot, you can also use
SlotFX.setEffect(String effectName)
, where String effectName is the name of you Dsp network. This will load the network into the effect slot once the code is compiled.https://docs.hise.audio/scripting/scripting-api/slotfx/index.html
-
@HISEnberg Thanks. Does this save to a User Preset? I simply want the project preset to save.
-
@mmprod if memory serves me correctly, it should save the network to the user preset.
-
@HISEnberg Hm. Just making sure - by 'user preset' we mean the presets that the user can choose from the preset browser?
-
@mmprod Yes exactly. You can check this by opening the user preset xml file in a code editor, you should see the module saved there with the network you are trying to save to it, as well as the slider values. So in my example this is whay my user preset data now looks like:
<Processor Type="Hardcoded Master FX" ID="Fx1" Bypassed="0" Network="Compressor" knee="20.0" ratio="2.0" threshold="-20.0" attack (ms)="2.0" release (ms)="3000.0" makeupGain="0.0">
I don't think this code snippet will work but it will look something like this:
HiseSnippet 811.3ocuU0saSCCE1taFwJ+Hl.tOhq5Pnoz0swlPHFqqEpfNpnaSbGxy4jUqlXG43LnBwyCuF7Hwa.bbRXMkMMFU.IRQ47m8mOemywCLZAjlpMDZ8Clj.D5MYCmnriZOhKUjd6Qn2l0mmZAiWgpcmjvSSg.BktvKbJnKsHI+4aOaWdDWIfopHjizRA7ZYrzNU6fcdkLJpKO.NPFWw602omPqZqizYHdVf4SR3hw7Sf84N2pwHujmNhPeHas0BEa46uUqVa3y4sB370aBs1FB2LTrg+19AGugO9tIgdsNARq1LzxsPJtn6pClLbj9CphM3HYp73HvIzjLD24B0j1ijQAC9YxIkPnKNXZpZghT08X8kAxyzOMkcmbCdSinZRiV6xfTy+.HQq.oEKfzxrgBiLwN0hCO2f0SgLXHG4lpPovWRs6RYs0nGJ6pw7wPWCJbVDM1z2+Qd3mUdR85H+jZ8Nka759wldO0KuVY0S.amvPPXa7.T8CPG6nNQpfU4AA80AYQP9g8.8gofYfARgy7LLSIrRsxSq1Wag2nZrR8OUeo5ett2uZJL7Bs4PtQGEAlKzrqDybYA1PkEeLXdDdphxfybDSoyxSW6pwShhDYEG0pdJo8MIPobWcTfK+69+7rJojIv+Nr2dbK2Qzk5P+R.iU5fCcO3Tr0pf1WhsGjN1pSvlqyUSfUiNNfamsD007VZ.yGyTW33dUpzNoZy8ePcq+kV2dUg3xrARqXzEiwZW.FwL0+BLV1seKVQM9T.tHq66l2Va+qdqc4f46ydI2DHzXsiW4DYb6c3fwvdoY.x9f8CZyX2z7153DSwJMVAyLs03xpURe6XGgdNBKOq30W4VKNE1qQb5JU80.Q.OElUexW1wM.IKY1aFvCzB+kF5QdqNyJUmzmaMxOhm88yhGh2WH.jWTJHBWbFslqOpP12I6fvPPEjK7c7ozXSmLszXyeZ7+xdDyEF86EEyfbT90y0fmaU9scKgW6hxdMI4ykplLiwKWduPL6Rct.WadCr07F35yafaLuAt47F3im2.252Gn6t+mmY0wECsHj9C5jOHmR6n3XUddKJ4G.b0kkwB
So if you want you can change the preset, change the fx network and then save the preset. Then that change will be linked to your new preset. If you don't want this behaviour, simply use the setEffect.
-
@HISEnberg Aha, thank you! I was getting errors because I am using NUM_HARDCODED_FX_MODS=6, and addModuleStateToUserPreset cannot work with child processors. But I edited the XML file and now it saves how I want it to.