While porting AlsaModularSynth modules to LV2 plugins, I was wondering
something... AMS has some similar modules where the only thing changing is
the number of inputs (Mixer with 2, 4 or 8 inputs), the number of outputs
(CV source with 2, 4 or 8 outputs) or the number of VCOs/Envs/etc.
(DynamicWaves with 4, 8 or 16 VCOs).
In AMS there is only one class for such plugins and AMS would pass the
number of inputs/outputs/sections/etc. when creating the different modules.
I couldn't find an easy way to reproduce this in LV2 plugins, therefor so
far I have been creating different LV2 plugins for each and everyone of
them and doing a lot of copy/past/editing.
That let me to wonder if there wouldn't be a better way.
The pros:
- it's easier to maintain if I have only one class
- it's a lot less boring than doing a lot of copy/past/editing - I have
been doing it only for simple ones so far like Mixers or CV source, but now
I'm starting to port DynamicWaves which is way more complex
The Cons:
- I have the feeling that gaining on code simplicity actually decrease the
performance when the plugin is running - i can imagine it to be less
strainuous on the CPU to have simple code instead of dealing with loops and
arrays
Being a rare case I can't imagine the need to have this supported directly
in LV2, but I was wondering if people with more talent than me in creating
audio software might have some advice?
Aurélien