Multiplexer - Expending the number of metamodule paramter within 27 controller limit

Post Reply
User avatar
Logickin λ
Posts: 165
Joined: Sat Sep 08, 2018 8:31 pm
Contact:

Multiplexer - Expending the number of metamodule paramter within 27 controller limit

Post by Logickin λ »

I am guessing people might have finding this problem while creating metamodule:
Oh no! Just found that there are 32 parameters for my module, while there are only 27 of them; however, there are 5 groups of ADSRs that takes 25 controllers (Mix, A, D, S, R). I can only able to fit 2 more parameters for sound design, but this is definitely not enough.
At this point, more controller is wanted, but it come with several problems:
- The maximum number of CC is 9f ( > 9f used for Midi CC ), which is not infinite
- Even if the controller limit changes, the controller menu will be so long that searching parameter will be painful
- Inserting a new parameter from controller menu will be terrifying since you have to rename from the top to the bottom (edit from 2022, that is no longer the case, as the insert and move controller function is now a thing.)

I hoped that there is a module to support large number of control and limited number of input, so...
Introducing the concept of the Multiplexer, a module to give user more control options with small amount of input.
In fact, the concept already existed in the default SunVox Module, the SpectraVoice:

Image

When you set to harmonic to 0, you have a group of control for frequency, volume, width, and type; and set to harmonic 1, you have another group of control, and so on. As a result, the SpectraVoice provides (16 x 4) + 9 number of option for design your sound, without duplicated, repeated parameter on the screen.

There was an attempt to make a multiplexer; however the design suffers number of problems (that's why I never made a post about it):
- Bad scalablity, due to the module complexity is bad, it takes O(2nm + 1) number of modules to implement
- Required a pattern played quickly to update the change, result in rigid change of controllers and unnecessary use of CPU, or
- Have to trigger midi update to change the value, meaning changing to other groups will be overwrited with the current setting of previous group if received a midi note

Image
Prototype:
Multiplexer Slider 2.0.sunvox
(12.48 KiB) Downloaded 122 times

That's why a module is wanted to suggested- The Multiplexer
Perhaps something looked like this:
Image

As an empty module, there are only 2 type of options, the group for control which set of controllers to be controlled, while the controller for individual control. Option button for additional configuration and a controller button for assign controllers like the meta module.
To config controllers, click the controllers button an access the user define controllers windows.
The user define controllers windows has 4 fields: Group, Controllers, Linked Modules, Modules Parameters; and 2 options: Number of groups and controls. Similar to the metamodules, user can set the number of controllers to 31 as maximum, but the difference is that it can be set to 8-16 groups as well.
Image

To name the group, simply click the group name to rename:
Image

And click the specific controller to rename the controller:
Image

To assign a control to a controller of a group, select the corresponding group and controller, then assign the module parameter like the method be done the config MetaModule controllers:
Image

After configured the module, the module will shows the group name and the related control:
Image

If setting to a certain group and change the value, only the controller corresponding to the group will be changed, other groups will not be affected.
Image

If anyone have any questions, please comment down below.
Post Reply