v-mixer
videoMixer · utilities · schema v1A 4-channel additive video mixer. Each frame it samples up to four input textures at the same UV and sums them, scaling each by its own amount fader: out = in1*A1 + in2*A2 + in3*A3 + in4*A4, with the final RGB clamped to [0,1] and alpha forced opaque. Unpatched inputs contribute pure black (they read a 1x1 sentinel texture, not the mixer's own output, so there is no feedback loop). Because the sum is linear, it doubles as a crossfader (push A1 up while pulling A2 down for a two-source dissolve) and as a brightness/level control on a single source. Bright sources or amounts summing above 1.0 clip to white per channel. Usage hint: keep the active amounts summing near 1.0 for clean compositing; drive amount1..amount4 from LFOs or envelopes for automated fades and pulses.
the faceplate
inputs
| id | cable | what it does |
|---|---|---|
in1 | video | Video input for channel 1. Sampled at the output UV and scaled by amount A1 into the sum. Unpatched contributes black. RGB video stream |
in2 | video | Video input for channel 2. Sampled at the output UV and scaled by amount A2 into the sum. Unpatched contributes black. RGB video stream |
in3 | video | Video input for channel 3. Sampled at the output UV and scaled by amount A3 into the sum. Unpatched contributes black. RGB video stream |
in4 | video | Video input for channel 4. Sampled at the output UV and scaled by amount A4 into the sum. Unpatched contributes black. RGB video stream |
amount1 | cv | CV input that modulates A1 (channel 1 level), linearly scaled into the 0..1 range; patch an LFO or envelope here to automate channel 1's fade. control voltage (CV); modulates amount1 (additive offset — ±1 CV sweeps the full range, centered on the knob) |
amount2 | cv | CV input that modulates A2 (channel 2 level), linearly scaled into the 0..1 range; patch an LFO or envelope here to automate channel 2's fade. control voltage (CV); modulates amount2 (additive offset — ±1 CV sweeps the full range, centered on the knob) |
amount3 | cv | CV input that modulates A3 (channel 3 level), linearly scaled into the 0..1 range; patch an LFO or envelope here to automate channel 3's fade. control voltage (CV); modulates amount3 (additive offset — ±1 CV sweeps the full range, centered on the knob) |
amount4 | cv | CV input that modulates A4 (channel 4 level), linearly scaled into the 0..1 range; patch an LFO or envelope here to automate channel 4's fade. control voltage (CV); modulates amount4 (additive offset — ±1 CV sweeps the full range, centered on the knob) |
outputs
| id | cable | what it does |
|---|---|---|
out | video | Video output carrying the per-channel weighted sum of the four inputs, clamped to [0,1] RGB with full opaque alpha. RGB video stream |
params
| id | label | range | default | curve |
|---|---|---|---|---|
amount1 | A1 | 0..1 | — | linear |
amount2 | A2 | 0..1 | — | linear |
amount3 | A3 | 0..1 | — | linear |
amount4 | A4 | 0..1 | — | linear |
controls
| control | what it does |
|---|---|
| A1 | A1 fader (linear 0..1, default 1.0) sets channel 1's mix level: 0 mutes it, 1 passes it at full brightness. CV at amount1 modulates this. |
| A2 | A2 fader (linear 0..1, default 0.0) sets channel 2's mix level: 0 mutes it, 1 passes it at full brightness. CV at amount2 modulates this. |
| A3 | A3 fader (linear 0..1, default 0.0) sets channel 3's mix level: 0 mutes it, 1 passes it at full brightness. CV at amount3 modulates this. |
| A4 | A4 fader (linear 0..1, default 0.0) sets channel 4's mix level: 0 mutes it, 1 passes it at full brightness. CV at amount4 modulates this. |
source
mixer.ts on GitHub.