Build a timbre.
Play
it.
The top half is the sculptor. 32 harmonic bins. Draw the spectrum and you define the sound's character. Every bar is a partial of whatever note you play.
The bottom half is a chromatic keyboard mapped to your computer keys. Two octaves, C3 to E4. Eight-voice polyphony with per-voice ADSR envelopes. Shape how each note begins, holds, and fades.
One shared state holds timbre, voice allocation, and envelope parameters. The AudioWorklet reads all three and produces shaped polyphonic audio. The Canvas reads envelope levels back for visual feedback. Dual reconciliation v7. Sculpt a timbre in the Fourier Sculptor and load it here.
Each voice runs the same additive synthesis algorithm — 32 sine partials weighted by the bin amplitudes. But each voice has its own fundamental frequency, determined by the key pressed. Eight voices can sound simultaneously. Power normalization keeps volume stable as voices stack.
Every voice has its own ADSR envelope — attack ramps up, decay falls to sustain, sustain holds, release fades to silence. The envelope runs per-sample in the AudioWorklet. Presets shape the character: organ (instant), piano (percussive decay), pad (slow swell), pluck (fast transient, no sustain).
The SharedArrayBuffer carries three kinds of state: timbre (32 bins), performance (8 voice frequencies + gates), and envelope parameters (ADSR). The worklet writes per-voice envelope levels back. The Canvas reads them for keyboard glow that tracks the exact amplitude of each sounding voice.
The sculptor proves you can draw sound. The tone lab proves you can perform with it. ADSR gives each note a shape — the difference between a piano strike and a pad swell, using the same timbre. Sound design, envelope shaping, and performance share a substrate. The instrument IS the visualizer IS the synthesizer.