A self-contained generative stereo instrument. It never repeats: every run invents its own key, chord progression and timbre. Nothing to install, works offline. Tip: hover any control for a short explanation.
How this was made: engine, generator and interface alike grew in an ongoing dialogue between its author and Claude (Anthropic) — sketches, critique, implementation and measurement, round by round, each step tested in the running instrument.
Everything lives on one screen and scales to any window without scrollbars. Left: transport, tempo, snapshots, characters. Middle: the stereo field, the stream (the last eight bars as stacked energy per role), the three pads, then the Structure and Time · Grab delay pictures. Right: the sound roles, register and scale, Timbre and Movement & Space. The ? button opens this manual, the performance settings and the mixdown export. Every change you make commits on the next bar line: while queued the control shows a dashed outline, at the moment it takes effect it briefly flashes.
On start only the play button and the field are visible; every region you have not reached yet lies dormant as a flat silhouette. The coloured badge in the footer names the next step, and the element you need pulses gently until you have used it — play, the field, a character, snapshots, new take or random, timbre and register, the pads, the grab delay, the tempo, the sound roles, and finally the drums (after 128 bars of playing). "Reveal all panels now" at the bottom of this manual opens everything at once. Nothing is scored or won — the instrument simply gets deeper.
The stereo field is a map: left–right is pan, up is brighter with more echo, down is dark, the dashed rings are decay. The two triangles are your speakers, the white dot is the real stereo position of the output. In STEER you conduct: drag = pan / brightness / decay, tap = a chord at that position. The role markers show where every role sits and how much energy it has right now.
Switch to ROLES and the same map becomes a filter field: drag a role marker (or the drums, once they exist). Left is bass, right is treble. Inside the innermost ring the role is untouched. Below the ring it runs through a band-pass that narrows towards the bottom; above the ring it gets a peak (a shelf above 2.6 kHz) of up to +24 dB. The marker shows its filter value. Filters stay in place when you go back to STEER; New take, Random and a character change put every role back into the ring. Double-tap a marker to reset just that one. GO! lets all seven roles wander through the filter field by themselves, kept in balance (never all in one corner, never more than three band-passed or peaked at once); the speed slider runs from 0.2× to 16×. The reverb and delay sends follow the filter too, so the wet mix moves with the role.
Once the drums have appeared, the field has a third mode: INTENT. A deck of seven roles × six dimensions (energy, density, pitch, space, relation, form). Tap a cell, then a word — each word carries a two-word hint — and the role does that immediately and keeps doing it until you switch it off (✕) or choose a character, Random or New take: rise lifts the melody and brightens it, thin out plays fewer notes, far away moves the role back into the room, answer Lead plays in the gaps of the lead. Use − and + for the strength (×1 … ×3); a new word in the same cell replaces the old one. Relation words ask "whom?" as a second step. Dashed cells marked CHARACTER show what the current character is already doing — its own intentions; tap one to build on it. The line under the deck says in one sentence what the last intention does, and why the deck was cleared when it was. Intentions add to what your hands set; they never overwrite a slider you moved.
start plays and stops. new take keeps your settings but generates a fresh run — new key, progression and timbre. random dices every setting while keeping the chosen character and always keeping an audible foundation. Tempo is in BPM (it also sets the echo timing). The three snapshots A B C store the whole instrument; each filled slot carries a fingerprint — the seven role energies as bars and the stereo position underneath — so you can tell them apart. SAVE stores, the letter recalls on the next bar. Pinned roles survive a recall.
Twelve characters — each one a portrait of a single sound role. Hauke is one deep spectral drone; Wiebke lets the background chords bloom; Klaas throws modal chord stabs into harbour fog; Telse is the acid line that bites; Antje sings a lyrical wavetable lead over water; Onno hammers iron modal percussion; Momme puts the speaking voice on the pulpit; Gesa vaults a choir under cathedral stone; Frauke whispers close to the ear beneath an aurora; Broder lets the place itself play; Swantje is pure sky shimmer; Eiko lives between stations in shortwave static. A change crosses over one role per bar: the name blinks WAIT and the Sound roles panel glows until the last role has arrived.
Seven roles, ordered Drone · Background · Shots · Lead · Percussion · Voice · Ambience, each drawing the live waveform of its own bus in its colour (a muted role shows a dim flat line). ↻ pushes a fresh note structure and fresh parameters into that role on the next bar; ○ pins it — a pinned role (dashed amber frame) survives Random, New take, character switches and Evolution, including its patterns. Click a role and it opens; Timbre, Register and Scale step aside to make room.
An open role shows a picture of its engine instead of a list of sliders; every parameter is a handle in that picture. Analog: a waveform with stacked voices (detune = offset, sub = the dashed sine, wave buttons). Analog 303 (Lead): a second picture with the filter knee (cutoff), the envelope arc (env mod / decay), the accent curve and the glide ramp. Additive: partials as bars (count ↔, tilt = the envelope, stretch = drift off the grid). FM: carrier and modulator (distance = ratio, size = index), index decay, the resulting spectrum. Formant: the vowel triangle A E I O U with a live dot in auto, a Q ring and the tract shift. Ring: carrier, modulator and product. Fold: the transfer curve and a folded sine. Granular: a running grain cloud with two size handles, density, spray and jitter. Spectral: a resonance comb with drifting peaks and tilt. Modal: material buttons, the strike impulse and the decaying mode lines. Wavetable: frame A and B with the morph stack between them. Noise: the noise spectrum, its colour tilt, the band-pass bell and peak. Voice: a formant/pitch plane (vibrato = wave, breath = haze) and a phrase line (length, density, glide arcs, change every 4/8/12/16). Ambience: a landscape — beds as the ground layer, calls as points, spread as the edges — drawn differently for field, aurora and shortwave. The octave ladder −12 · 0 · +12 sits top right in every picture. SLIDERS below the picture shows the raw controls; a queued control always shows.
Warmth low-end body · Brightness high-frequency openness · Resonance filter emphasis · Saturation analog drive. All four act twice: immediately on the whole mix through a master stage (low shelf, high shelf, following peak, tanh saturation), and per note from the next bar. The sliders reach beyond 1.0 — the lighter part of the track is the zone only you reach; Random, New take and characters stay inside the darker part.
Movement amount/speed of stereo motion · Width stereo width · Reverb convolution reverb with four generated rooms — hall, plate, cavern, air; each character brings its own · Echo tempo-synced ping-pong delay. These sliders also reach beyond 1.0, with the engine kept safe at the top.
Structure is a four-band score you drag directly. HARMONY: sideways = chord change (1–4 bars), up = richness. EVENTS: sideways = how many events (0.05× … 6×), up = foreground, down = background (dominance). TEXTURE: sideways = density, up = length of the tonal events. EVOLUTION: sideways = how fast patterns mutate, up = breath (tempo drift). The right column: CHAOS (drag — a Lorenz drift on levels, accents and timbre) and ULTRA (tap a step; every two bars it re-rolls that many roles completely). Each band shows what it means and a marker with the current setting.
A tempo-synced ping-pong echo that grabs single notes of one role and bounces them through the field. Drag the picture: the top strip is the grab rate, the chain in the middle sets the time (snaps to the beat divisions) and the width (distance from the centre line), the origin dot sets the mix (it grows with it), the bottom curve sets the repeats. Source shows which role is being grabbed.
Register is the base octave (low · mid · high). Scale picks the mode and overrides the character's own scale — both take effect on the next bar.
Three pads under the stream — live gestures, not bar-quantized — and each one draws what it is doing. TIME freezes and stutters the whole mix: sideways = slice (1 bar → 1/32, the columns), up = freeze (the band from the top); a tap catches the current bar. WORLD rides the events: sideways = how many (the dashes), up = length; a tap flips foreground/background for one bar. Pushed left it also thins the drums step by step — first the even steps, then the offbeats, then 5 and 13, then 9, until only step 1 remains — while their tails grow longer; pushed right it sends every drum sound into the delay with rising feedback and wet. The bass is exempt from both. The step row at the top of the pad shows what is playing. SPACE: sideways morphs the room towards its opposite and speeds the flanger (the arc), up drives flanger depth and echo feedback (the dots along the ray); a tap fires a wet burst. WORLD and SPACE glide back when you let go; TIME releases immediately. The marker with the crosshair always shows the current setting.
Click any parameter name, any panel heading, a role's ○, or a drum-parameter label: locked items turn amber and survive Random, Evolution and character changes. Locking a panel heading locks every control in it.
A 32-step drum computer (kick, snare, closed and open hihat with choke, plus a 303-style bass) appears after 128 bars of playing; it starts at volume zero and resets on every stop. The bar at the bottom right shows ▶ / ■ DRUMS, level, DUCK (sidechain pumping, depth adjustable) and EDITOR. The editor: the pattern is the biggest thing — the running step is the bright column, beats 1/5/9… are pink lines, the bass row shows pitch as the number, accent as a white frame, glide as ~ (long-press a bass cell to cycle them). Each row has its own clear, the ARP fills the bass row, RND rolls the bass line and its synth. Parameters per sound sit below in touch-sized rows. The bass has a waveform morph, a second oscillator, noise, root, full ADSR, plus Drive with its own LFO and a Sustain LFO; all three bass LFOs (filter, drive, sustain) are tempo-synced with whole cycles per 64 steps and start at a zero crossing on every four-bar line. The drum delay offers time, feedback and wet. Once the drums exist they also have a marker in the filter field. Switching characters while the drums run triggers an automatic break: the kick rests until every role has arrived.
Voice and ambience each offer three forms, chosen like any synth. The voice speaks (formant speech), sings (choir) or breathes (whisper). The ambience is a concrete place (field recording), an abstract sky (aurora) or the ether itself (shortwave).
Three themes, switched by the button at the bottom left, which always names the theme you switch to: Deep Studio (dark, neutral), Daylight (light paper), Dude (black, light blue, orange for everything active).
The instrument remembers itself in this browser: theme, the three snapshots, the current settings, the role positions in the filter field, intentions, the GO! speed, the chosen character and whether everything was revealed. Closing and reopening the page brings it all back (the footer says restored); the piece itself is always generated fresh. "Forget saved state" below clears it.
Below this manual: Max voices / step caps how many notes may start on any one step — lower it on a Raspberry Pi if the audio stutters. Set mode turns the characters into a self-playing playlist (interval and order). Export records the master output — exactly what you hear — into one stereo WAV; stop cancels a running recording.
Every take draws a key, a progression template enriched by Harmony, a modulation plan, a euclidean rhythm and a motif with eight transformations for the lead, a euclidean pattern for the percussion, a fixed stab step for the shots, a bar cycle for the drone, and a 32-step syllable sequence for the voice. Evolution mutates these every 4–24 bars; Ultra re-rolls whole roles; Chaos drifts levels, accents and echo time with a Lorenz attractor. Accents follow a Gaussian spread, positions wander as Brownian walks.
Always on: a DC blocker and a coupled look-ahead limiter (−1 dBFS). The role filters, the extended Timbre and Space ranges and the +24 dB peaks are kept safe by it.
generate possibilities · not presets