Skip to content
DocsSystemsMatrix Modulation

Matrix Modulation

🚫

soon, currently not available in v0.3.0

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ RGXP: BPM: 120 MDE: anuesyz BUF: Face Step Bars β”‚ β”‚ FLAG: i m DIV: 8 MVE: [f]rdp SYM: Phs: [ ][ ][ ] β”‚ β”‚ ERRR: - LEN: w:1,h:1 ACM: - RPL: AnX: [ ][ ][ ] β”‚ ←───┐ β”‚ TOTL: - POS: x:0,y:0 CHN: 1/1 Bar: [ ][ ][ ] β”‚ ─┐ β”‚ β”‚ MIDI: IAC Driver Bus 1 LCK: - TLT: | ph:0.00 ax:0.00 br:0.00 β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ CHRM C# ━#━#β–ˆβ”#━#━#━━#━#β–ˆβ”#━#━#━━#━#β–ˆβ”#━#β–ˆβ”#━#━#━━#━#β–ˆβ”#━#━#━━#━#β–ˆβ”#━#β–ˆβ”#━━#β–ˆβ”#━#━#━━#━# +3 -7 β”‚ β”‚ [ ∧ ] β–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β–ˆ β”‚ β”‚ HARM A ↑ -2 +5 β”‚ β”‚ β”‚ β”‚ ↑ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ 1. event matrix modulation normalized to 0.0-1.0 β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”˜ 3. the dice will determines 2. it will control how the scale evolve how the dice change over time

A modulation matrix that routes internal sequencer signals to Dice parameters, letting Dice behaviour evolve automatically based on what the sequencer is already doing.

Signal Flow

SOURCE  ──(normalize)──►  0.0..1.0  ──(amount)──►  MATRIX CELL  ──(map)──►  DESTINATION
  1. Source, a live sequencer value, normalized to 0.0..1.0
  2. Matrix cell, an amount (-1.0..1.0) that scales the source
  3. Destination, converts the scaled value into the target’s own type and range

Sources

Each source is sampled once per bar.

SourceBehaviour
MovementPhaseRamp tracking active step progress through the playhead area. Shape depends on movement mode, ramp up (Forward), ramp down (Reverse), triangle (Pendulum), stepped random (Random).
PlayheadAnchorXWhere the playhead area is parked on the grid (0 = leftmost). Changes only when the user moves it with hjkl, not on every step.
BarCountRamp that resets every N bars.

Destinations

Three Dice parameters can be driven by the matrix.

DestinationRangeEffect
DiceFace1–6Which face is active, determines how many dots (scale steps) are in the cycle.
DiceStep-1, 0, +1Dot advance direction: +1 forward, -1 reverse, 0 hold.
DiceBarsDiv1–16How many bars pass before the active dot advances.

The Matrix

A 2D routing table, rows are sources, columns are destinations. Each cell holds an amount or is empty.

Face Step Bars Phs: [+1.0][+1.0][ ] ←──────────── MovementPhase AnX: [ ][ ][+0.5] ←──────────── PlayheadAnchorX Bar: [-0.5][ ][ ] ←──────────── BarCount ph:0.00 ax:0.00 br:0.00 ←──────────── Movement State

The amount is a multiplier applied before mapping: v = (source Γ— amount).clamp(0.0, 1.0). When multiple routes target the same destination, the last one wins.

AmountEffect
+1.0Full range, min β†’ max
-1.0Inverted, max β†’ min
+0.5Compressed, lower half only
0.0No modulation

Example Routes

SourceDestAmountMusical effect
MovementPhaseDiceStep+1.0Dice direction follows playhead movement.
MovementPhaseDiceFace+1.0Dice face cycles as playhead sweeps through area.
PlayheadAnchorXDiceBarsDiv+0.5Area parked left = fast steps, parked right = slower.
BarCountDiceFace-1.0Dice face counts down over the bar cycle.