Array modulators

Introduction to new type of signal flow and new type of modulator that would allow generating array of values (modulators) instead of one at a time even if you’re using non-polyphonic device. It needs new UI elements for this kind of modulators, so you could select specific index for modulation mapping, etc.

Use cases are vast, but one simple example is Random modulator. If you could set it to array of desired size, it would generate as many random values as you need from same settings or distribution of settings, and then you could apply different random values on different parameters, all using just one modulator as source, which would significantly reduce needless clutter. Furthermore, using second Array-type modulator with matching array size you could apply modulation to parameters of Random for each index accordingly, in a way similar to the way you can apply Voice Stack spread or specific distribution, only without having to stack the whole device. There are also countless of ways Array signal could be used in Grid.
image
↑ A mockup of how it could look/work like in Grid. Extra touch: Dice with optional seed number (since we can do this with clips now)

What problem(s) would this feature resolve?

Reduce clutter by reducing the need to have to spam many instances of same modulator or module. Also it would expand abilities with simplification of patches that otherwise grow in complexity with lots of unnecessary wiring and UI elements. Arrays as concept are common in other modular environments for this reason too.

Beside that, since modulators in Bitwig are audio-rate, this would add ability to process and route multiple parallel audio signals, not just stereo, all with one ‘cable’.

How does this feature fit in Bitwig as a product?

Expands on the possibilities of The Grid, which is a unique aspect of Bitwig.

Is there already an alternative way to achieve this on Bitwig?

No

Could it be implemented using Bitwig components or APIs, without Bitwig team’s support?

No

Could it be provided by a VST or something else reasonably integrated with Bitwig?

No

Are there other products that offer this feature?

PureData, Max/MSP, Reaktor, Usine, and modular environments in general all have Arrays as concept. VCV now has array type cables as well (they’re called polyphonic here):

image

Relevant links (optional)

1 Like

6 posts were split to a new topic: [Draft discussion] Array modulators

I think I’m getting the idea now, but I must say specific array sizes are a little bit confusing, at least for me. As far as I understand it would be something like just one random modulator for an arbitrary number of targets, I wouldn’t complicate it with upper limit unless I’m missing some use-cases, I do not have any experience with mentioned products that offer this feature.

So for sure, instead of spawning random modulator for every unique source of values it could be beneficial to have something like just one modulator that emits unique values for each parameter that is being modulated by it.

For dice it is pretty straight-forward but for smooth random CV signals I would probably want to have them operated at slightly different frequencies which may be not trivial to implement UI specific to that case, especially in the grid. I see it more like unique devices (dice, random, idk what more), specifically designed for that task.

here’s additional mockup how it could work

I might went a bit overboard adding seen number for Dice here, which you might confuse with indexes, but you would assign array size in inspector panel for Array type module (or potentially any module/modulator, where no size means it’s regular module and increasing array size will stack it). Then when you apply array modulator somewhere you get this index value on the mapping in inspector panel. Perhaps it would be useful to also be able to set something like ‘average, min, max’ instead as index, or we could use separate Array processor modulator to do this (so it would accept all indexes and then spit out one average/min/max value or any other modes that could be useful, like for instance accept array and output sorted array).

Let’s say you have one Random modulator, then multiply it by 5. you want same random value on 2-3 values and 4 unique random values for other parameters, so you address corresponding indexes when mapping it. then you can also make Macro and map it to Random parameters and then choose either All indexes on the mapping panel, or specific index, therefore your unique instances of same Random can be differentiated this way. Or you could just use separate Random modulator if you want it to have different settings for something.

The ‘Get value’ module on mockup have a dial to select index and output it’s value