βambi

contribute

modulation

Sources, targets and cells: one matrix, one contract, the same in every plugin.

A cell’s contribution is source × the source’s amount × the cell’s depth, and the global amount scales everything. Contributions to one target add up, then clamp to the target’s range. That one sentence is the whole matrix; everything below is what each part promises.

sources

kind what it is range
feature a measurement of the input 0 to 1
LFO a wave in time, free or synced −1 to 1, reshaped by its polarity
envelope a shape set off by a MIDI note or by a feature crossing a threshold 0 to 1, reshaped by its polarity
region (encoder) how far the source is inside the encoder’s region exactly 0 to 1

Every source is normalised where it enters, so a depth of 1 means the same in every cell: this source at full deflection covers the target’s full span.

polarity

A measurement is unipolar; signed behaviour is a routing choice. A feature answers “how much”: it has a floor and a ceiling and no natural middle, and inventing one would be wrong on half of all material. So features stay 0 to 1, and a generator’s polarity decides where it rests: at 0 it pushes one way from zero, at 1 it swings both ways. The ceiling stays at 1 whatever polarity is, so a source never leaves −1 to 1.

targets

kind means examples
rate how fast, and which way; integrated a speed, a turn rate
direct where, or how much an angle, a width, a level

A rate target accumulates, so a base speed plus modulation gives constant motion, motion that follows the music, or any mixture, each with its own sign. A direct target is smoothed so a fast source cannot jump it; an angle is limited in how fast it may turn, and a value that is one turn is smoothed the short way round.

A target owns its base value, the parameter itself; a bias never competes for a cell.

Not every parameter can be a target. See the audio thread for the rule: its effect must be recomputable on the audio thread in bounded work.

the clock is not a source

The position along a path is an integrator, not a modulation source. Its rate is a target (speed); the clock itself never passes through the matrix. Constant motion is a non-zero speed, never a cell.

determinism

Each source kind says why a render repeats. A feature is a function of the audio. A synced LFO set to restart is a function of the song position. A free LFO and every rate restart with the transport, so a render agrees from the same start point. A random source is seeded. The one exception is a musician’s choice to let something continue, and the window says so. See determinism.

the interface