Architecture for exposed and unexposed parameters

I’m trying to build a modular architecture for Dsp signal processing blocks that i will use in my own graph and integrate in a plugin, in this matter I have some requirements about parameters handling.

I want all my parameters to be hiden to the DAW by default, but usable in an editing interface, and when my graph is done i want to be able to choose which parameters will be exposed to the daw.

I have some elements of answer taking into account this comment :

I cannot use AudioProcessorParameters or AudioProcessorValueTreeState for all my dsp signal processing blocks because depending on the DAW all my parameters would be exposed…
But I can use the ValueTree contained in the AudioProcessorValueTreeState. If i have a ValueTree in each of my blocks the i just need to add them to the ValueTree contained in AudioProcessorValueTreeState. This allows me to solve many parameters architecture issues (save/restore, undo/redo, coherence between all the objects, …).

What i don’t know is :
How to make some of my ValueTrees properties controled by an AudioProcessorParameters when i decided that i want this property as an exposed automatable parameter.

Can you see a solution to this? I have read the documentations but i don’t find a way to do it ! If i’m unclear feel free to ask anything !


1 Like

This can be said in a simpler way :

Saying i have may dsp processing objects, each object holds a set of parameters hidden from the host. All these parameters needs to have some of the caracteristics of the parameter created with the AudioProcessorValueState createAndAddParameters function (it needs to have a range a default value and a name and an Id)

Then i need to define some of the hidden parameters contained in this dsp blocks to behave exactly as the parameter created with the AudioProcessorValueTreeState createAndAddParameters function

Does anyone know a way to do that at runtime (dynamically assigning a reference to those AudioProcessorValueTreeState parameters (they can be already instantiated but “the reference of the value, the range and ID” = intern parameters can change") created with createAndAddParameters function) ?

I need:
1/ an equivalent of ValueTree that can store “evolved properties” (name, range, id, default value)
2/ an equivalent of the parameters created with createAndAddParameters but in which the internal binding to an “evolved propertie” can change at runtime

Is there a way to actually do that with the actuals Juce API or does it need a developpement of a custom AudioProcessorValueTreeState, and a custom ValueTree ?

1 Like