Reorder FX for Hardcoded Master FX
-
I am attempting to make a modular DSP network comprised of 4 effects that can be rearranged. The current system works perfectly in scriptnodes. This was possible thanks to this forum post https://forum.hise.audio//post/39430. The interface controls successfully trigger the commands within the scriptnodes script.
My issue is that the command does not trigger after it is exported as a dll and used as a hardcoded master effect. Is it possible to rearrange processors within a dll through the "setParent" method presented is the forum post linked above? Thank you for your help.
-
@obolig the most convenient way to make reorderable fx is to use Hardcoded master FX and change the loaded scriptnode FX in each one - not re-order the HMFX itself...
-
@Lindon Thank you. I figured that was the case. A little unfortunate since it is a multiband effect and the current system is pretty clean. I'll go down that route and check back into this thread when I'm done.
-
@obolig - why would that be a problem? just compile your scriptnode into a dll and load it into an HMF
-
@Lindon The advantage to the current system was that it was built in a single HMFX processor. Each module retained its state after it was moved to a new parent container within the scriptnode. I believe you are suggesting that I create a series of HMFX processors in the module tree and swap the loaded effect depending on the order set by the user. Looks like I can export/import the state of each processor to achieve a similar effect as the current system.
Not really a "problem", just unfortunate that I have to pivot from the simple system I've already created.
-
@obolig yes you would need to hold the values of all the controls in each HMF so you could swap them between slots...your call.
-
I'm back after ripping apart my project and putting it back together. The "Mother-Network" that was originally structured in the exported scriptnode has now been recreated in the Module Tree.
The minimal module tree from before will be missed. RIP
I have a few important notes. You need to use
Synth.getSlotFX()
notSynth.getEffect()
when making a reference to the HMFX processor when using thesetEffect
command. This allows you to load in the exported scriptnode to the module.Other notable functions are
exportState()
andrestoreState()
. These can be used to copy/paste control states of the processors after they move. Use theSynth.getEffect()
for this one. The exported string even stores the loaded effect. This means you can simply use this command instead of having to load the effect and then the parameter settings. Both processes are accomplished by this single command.I still need to set up a system for all the UI controls to adapt their connections depending the updated locations for each module. That should be fun.
-