Complete list of all mappable parameter IDs for use in MIDI and OSC map files. The param field in any map entry must match an ID in this table exactly.
Complete list of all mappable parameter IDs for use in MIDI and OSC map files. The param field in any map entry must match an ID in this table exactly.
| ID | Label | Min | Max | Notes |
|---|---|---|---|---|
| baseMix | Base Mix | 0 | 1 | |
| seed | Seed | 1 | 99999 | Randomisation seed. Same seed = same output |
| quality | Quality | 0 | 3 | Scales ring depth + performance |
| feedback | Feedback | 0 | 3 | Values > 1 over-expose |
| persistence | Persistence | 0 | 10 | |
| fbX | FB X | -1 | 1 | |
| fbY | FB Y | -1 | 1 | |
| fbZ | FB Z | 0.98 | 1.03 | 1.0 = no zoom |
| fbTheta | FB θ | -2 | 2 | degrees/frame |
| depth | Depth | 0 | 0.5 | |
| depthScatter | Scatter | 0 | 1 | |
| corrupt | Corrupt % | 0 | 7 | |
| corruptDrift | Corrupt Drift | 0 | 1 | |
| block | Pixel Size | 150 | 2000 | |
| glitchSize | Glitch Size | 1 | 60 | |
| glitchAlpha | Tile Opacity | 0 | 1 | |
| glitchJitter | Jitter | 0 | 1 | |
| glitchSmear | Smear | 0 | 200 | |
| glitchSmearAngle | Smear Angle | 0 | 360 | 0 = noise-driven |
| glitchSpeed | Glitch Speed | 0 | 5 | |
| glitchSpeedFine | Fine Speed | 0 | 10 | |
| glitchSpeedMul | Speed Mult | 0 | 10 | |
| glitchBaseX | Glitch X | -1000 | 1000 | |
| glitchBaseY | Glitch Y | -1000 | 1000 | |
| abMix | A/B Mix | 0 | 1 | 0 = Glitch priority, 1 = Scanlines priority. Recessive side floors at 0.35 |
| lumaKeyAB | Luma Key A/B | 0 | 1 | 0 = clean dominant, 1 = glitch dominant. Floors at 0.35 |
| lumaKeyMix | Luma Key Mix | 0 | 1 | Overall strength of the pipeline luma key |
| trailLayers | Trail Layers | 0 | 4 | |
| trailDepth | Trail Depth | 0 | 1 | |
| trailLumaKey | Trail Luma Key | 0 | 1 | 0 = off |
| symPos | Sym Position | 0 | 1 | 0.5 = centre |
| scanAngle | Scan Angle | -180 | 180 | degrees, step 0.5. 0 = horizontal, ±90 = vertical |
| scanFocus | Scan Focus | 0 | 1 | Biases band distribution along the rotated span. 0.5 = even |
| scanRoll | Scan Roll | -2 | 2 | Continuous scroll of bands, independent of Drift |
| scanSpinSpeed | Scan Spin Speed | 0.1 | 10 | Only active when Spin L or Spin R is on |
| scanShift | Scan Shift | 0 | 0.5 | |
| scanDrift | Scan Drift | 0 | 3 | Dual-frequency: slow wander + fast jitter |
| scanSpeed | Scan Speed | 0 | 5 | Independent of glitch speed |
| scanGap | Scan Gap | 0 | 200 | |
| scanSkew | Scan Skew | -1 | 1 | |
| scanAlpha | Scan Opacity | 0 | 1 | |
| clusterCount | Scan Bands | 1 | 50 | Displaces current frame — no ring sampling |
| clusterRadius | Band Size | 1 | 120 | |
| cluCenters | Clu Centers | 1 | 20 | |
| cluSpread | Clu Spread | 1 | 300 | |
| cluMinSpread | Clu Min Rad | 0 | 150 | |
| spatialGap | Spatial Gap | 0 | 200 | |
| cluBias | Clu Bias | 0 | 1 | |
| cluDrift | Clu Drift | 0 | 5 | |
| cluSpeed | Clu Speed | 0 | 10 | Step 0.01. 0 = centres glide to a stop and hold |
| cluSpeedVar | Clu Spd Var | 0 | 2 | Per-centre speed multiplier variance |
| cluPulse | Clu Pulse | 0 | 10 | Periodic velocity burst frequency |
| cluInertia | Clu Inertia | 0.01 | 0.99 | |
| globalMixAmt | Global Mix Amount | 0 | 1 | Opacity of base video in the blend |
| solarizeThresh | Sol Thresh | 0 | 1 | |
| solarizeAmt | Sol Amount | 0 | 1 | |
| solarizeR | Sol R | 0 | 2 | |
| solarizeG | Sol G | 0 | 2 | |
| solarizeB | Sol B | 0 | 2 | |
| flowStrength | Flow Strength | 0 | 20 | |
| flowScale | Flow Scale | 40 | 200 | |
| flowSpeed | Flow Speed | 0 | 4 | 0 = noise field frozen |
| flowPulse | Flow Pulse | 0 | 200 | frames back |
| flowImpl | Flow Pull | -1 | 1 | Positive = implode toward centre, negative = explode outward |
| flowSwirl | Flow Swirl | -2 | 2 | Vortex rotation of displacement vectors |
| flowTurb | Flow Turbulence | 0 | 1 | Blends in a second, higher-frequency noise octave |
Use type: "toggle". Value > 0.5 = ON, value ≤ 0.5 = OFF.
| ID | Label |
|---|---|
| corruptOn | Glitch On |
| baseOn | Base Video |
| seedOnLoad | Seed on Load |
| symOn | Symmetry On |
| clusters | Scanlines On |
| clusterTiles | Cluster Tiles On |
| scanSpinLeft | Scan Spin Left |
| scanSpinRight | Scan Spin Right |
| lumaKeyOn | Luma Key On |
| lumaKeyInvert | Luma Key Invert |
| globalMixOn | Global Mix On |
| solarizeOn | Solarize On |
| flowOn | Flow Warp On |
| trailOn | Trails On |
| loopToggle | Loop Video |
Use type: "select". Value must be one of the listed options exactly.
| ID | Label | Options |
|---|---|---|
| globalMixBlend | Global Mix Blend | screen, multiply, overlay, difference, hard-light, lighter |
| symMode | Symmetry Mode | v, h, hv |
| bgMode | Background | black, white, green, blue |
Use type: "trigger". Any value > 0 fires the click.
| ID | Action |
|---|---|
| refreshBtn | Re-seed glitch randomisation |
| resetMotionBtn | Reset FB X/Y/Z/θ to neutral |
| resetBtn | Reset all parameters to defaults |
| clearBufBtn | Wipe the frame ring and all internal buffers instantly, without resetting parameters |
| scanAngleReset | Set Scan Angle to 0° |
| scanAngle90n | Set Scan Angle to -90° |
| scanAngle90p | Set Scan Angle to 90° |
The dispatch code in index.html resolves param by document.getElementById() generically — any element with an ID can be targeted, not just the effect groups. The transport bar and preset toolbar are valid targets under the same type rules, with the caveats below.
Use type: "trigger". All are <button> elements — .click() fires their existing handler.
| ID | Action |
|---|---|
| playBtn | ▶ Play |
| pauseBtn | ⏸ Pause |
| camStartBtn | ⬤ Cam — start the selected camera |
| camStopBtn | ✕ Cam — stop the camera |
| camRefreshBtn | ↻ — rescan camera devices |
| presetSaveBtn | 💾 Save — save current snapshot under the name in presetName |
| presetLoadBtn | ▶ Load — load the preset selected in presetList |
| presetDeleteBtn | ✕ Delete — delete the preset selected in presetList |
| presetExportBtn | ↑ Export JSON — download all saved presets |
| presetImportBtn | ↓ Import JSON — open the import file picker |
| ID | Label | Min | Max | Notes |
|---|---|---|---|---|
| volumeSlider | Volume | 0 | 1 | Routed through a dedicated Web Audio GainNode |
| seekBar | Seek Position | 0 | 1000 | Position as a fraction of total duration ×1000. Dispatching input seeks the loaded video immediately |
<select> elements, and presetName is a text input. None have a numeric min/max, so the range-dispatch code (which computes el.min/el.max) resolves both to 0 and writes value = "0" — not a valid option for any of these. There is no select mapping type. These four are not usable MIDI/OSC targets with the current dispatch logic; they're operated from the controls UI only.<span> showing M:SS / M:SS — it is not a control and has no param use.