Crafting Delightful Digital Experiences
Every other visual tool is one of two things: a VJ app that hears an audio FFT and treats MIDI as a knob, or a template render service. Arbit Pro is neither. Its visuals read the actual project — note timing and velocity, microtonal frequencies resolved through the harmonic link chain, JI ratios and their prime-lattice coordinates, the root path, the beat grid. "Kick velocity drives the kaleidoscope" and "the visuals shimmer when the chord goes 7-limit" aren't presets here — they're structural.
Everything in the timeline lives in beats. Change the tempo and the whole edit re-times — cuts, transitions, fades, automation, and text move with the music. Footage joins the grid by warping to tempo, and its audio re-renders pitch-preserved.
Placement, transitions, fades, automation, text, and export range all live in beats. A BPM change re-times the entire edit instead of breaking it. Footage warps onto the grid by detected beat markers or a uniform manual BPM.
Bring in any clip and stretch it to tempo — tap-tempo warp from detected markers, or uniform manual-BPM. Audio re-renders pitch-preserved through Signalsmith.
An 8-slot effects rack per clip, 3D LUTs, transitions, speed ramps, and styled text — all automatable on beat-locked lanes.
Deterministic export renders the exact frames you previewed. Offline render must equal online render — it's a standing principle here, not a hope.
The differentiator
Author a GLSL shader clip and it receives the Arbit uniform contract every frame: a 128-voice note texture with pitch and cents, velocity, age, resolved frequency, JI ratio against the root, and prime-exponent lattice coordinates — plus the root path, chord aggregates, and about a bar of lookahead. FFT tools can only react to what already sounded; Arbit's visuals can anticipate.
The flagship, Harmonic Strings: notes appear as they play, and the link graph's strings vibrate as the a:b standing waves of their ratios. Pure just intonation stands perfectly still; temperament shimmers. The picture is literally a readout of the tuning.
Automation lanes are absolute curves. The mod matrix makes the relationship the authored object, so the visuals re-follow the music when the music changes. One routing is {source → any visual parameter, depth, curve, mode}. Every knob in the machine — effect params, transforms, text, shader inputs — speaks the same address.
Kick velocity → kaleidoscope segments. Bass pitch → spiral rotation speed. Lead ADSR → bloom. Root change → scene wipe. Prime-7 energy → shimmer. Wire any musical signal to any visual parameter and it holds in export.
The harmonic ratio itself modulates: integer numerator/denominator as discrete symmetry drivers (3/2 → 3-against-2 geometry), beating rate, Tenney-height consonance. Math no FFT can recover.
Per-track ADSR retriggered by that track's note-ons, and BPM-synced LFOs — the same modulation math as Arbit's Sybil-16 synth, as pure functions of beat time.
The visualizer staple kit as ordered passes: kaleidoscope, mirror, tile, warp, displace, and persistent feedback trails. "Spiral shader → kaleidoscope on the result" is a two-liner.
Shaders, edit decisions, mod routings, and motion graphics are all text — which makes them writable by AI. Arbit exposes the whole video engine over MCP, so an agent can author, apply, verify, and export in a closed loop. The machine is built for two users at once: the human with panels, the agent with RPC.
Create generator and shader clips, set effects, wire mod routings, and drive the timeline from a chat prompt — every feature ships with its tool.
Frame hashes, scopes, viewport info, and deterministic export let an agent confirm what it made — the same verification the humans use.
Installable agent skills plus a free content tier — house shaders, MIT-licensed ISF packs, LUTs, and mod-matrix presets — through the in-app downloader. Nothing soft-licensed is baked into the binary.
Video and the media machine are part of Arbit Pro, alongside sampling, vocals, and harmonic audio transformation. The composition DAW stays free.