Hi everyone,
I am trying to figure out how to best structure a complex panel in general, and my Roland D-20 panel in particular. The D-20 has a structure where a patch consists of 1-2 tones, where each tone can have 1-4 partials. Each partial consists of waveform generator, filter and amplifier. My panel currently has modulators for the Patch structure-level and the Upper Tone structure-level. Now the Lower Tone editor would equal the existing Upper Tone editor in all respects, except the midi message of course, which uses a different address offset. A Tone editor consists of approx. 200 modulators for all four partials.
I think the general structure of Ctrlr would now have me clone the Upper Tone editor and assign the corresponding SysEx message. But if I was doing this as a proprietary program, I would choose a model-view approach, where I only need one modulator for a certain parameter and work with bindings.
I was now thinking of defining a value map, where each parameters value is held and accessed via a proxy function used by the modulator. So instead of having modulatorValue
as modulatorValueExpression
, I would have something like modulatorMappedValue(pId)
which gets/sets the mapped value from my global value table. A Tone edit select button would then call a function which maps all editor modulators to the mapped values for the Tone in question.
Any thoughts?