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- Source, a live sequencer value, normalized to
0.0..1.0 - Matrix cell, an
amount(-1.0..1.0) that scales the source - Destination, converts the scaled value into the targetβs own type and range
Sources
Each source is sampled once per bar.
| Source | Behaviour |
|---|---|
MovementPhase | Ramp tracking active step progress through the playhead area. Shape depends on movement mode, ramp up (Forward), ramp down (Reverse), triangle (Pendulum), stepped random (Random). |
PlayheadAnchorX | Where the playhead area is parked on the grid (0 = leftmost). Changes only when the user moves it with hjkl, not on every step. |
BarCount | Ramp that resets every N bars. |
Destinations
Three Dice parameters can be driven by the matrix.
| Destination | Range | Effect |
|---|---|---|
DiceFace | 1β6 | Which face is active, determines how many dots (scale steps) are in the cycle. |
DiceStep | -1, 0, +1 | Dot advance direction: +1 forward, -1 reverse, 0 hold. |
DiceBarsDiv | 1β16 | How 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.
| Amount | Effect |
|---|---|
+1.0 | Full range, min β max |
-1.0 | Inverted, max β min |
+0.5 | Compressed, lower half only |
0.0 | No modulation |
Example Routes
| Source | Dest | Amount | Musical effect |
|---|---|---|---|
MovementPhase | DiceStep | +1.0 | Dice direction follows playhead movement. |
MovementPhase | DiceFace | +1.0 | Dice face cycles as playhead sweeps through area. |
PlayheadAnchorX | DiceBarsDiv | +0.5 | Area parked left = fast steps, parked right = slower. |
BarCount | DiceFace | -1.0 | Dice face counts down over the bar cycle. |