NOT YET SUPPORTED ON MOBILE DEVICES AND BROWSERS OF THIS SIZE
FOR BEST RESULTS USE DESKTOP CHROME OR EDGE
ALPHA VERSION
⚠ ALPHA VERSION - THIS IS AN EXPERIMENTAL PLATFORM. EXPECT BUGS, BREAKING CHANGES, AND MISSING FEATURES. BEWARE AUDIO LEVELS ⚠

EW/OBJECTS

build 1.1.06.05.26
// COLLABORATIVE DISTRIBUTED MODULAR RELAY NETWORK SYNTHESIS ENVIRONMENT //
// System
NETWORK MAP
Visual patching interface for the entire distributed signal network. Spawn any module from the full 111-module catalog via + ADD OBJECT -- each opens as a draggable, resizable popup window with its full UI loaded inside the dashboard. Patch visually by clicking an outlet port on the top of a popup to start a wire, then clicking an inlet port on the bottom of the destination popup to complete the connection. Wires animate in real-time and track drag, scroll, and resize. The IO module inside the dashboard controls which objects produce audible output. Supports public and private dashboard nodes -- private dashboards can toggle visibility of public nodes and monitor private nodes added manually.
  • Open Network Map → spawn Osc + Filter + IO → wire visually — build a full patch without leaving the dashboard.
  • Share dashboard node URL with collaborator → both patch into same graph — real-time collaborative patching session.
  • Import .ewpatch.json → entire session restores with wires and layout — total recall of a previous performance setup.
  • PATCH URL → send link → recipient gets independent instance with fresh nodes — one-click patch sharing via URL.
START HERE PATCHING REAL-TIME
// Sources
AUDIO CAPTURE
AUDIO INPUT
Capture live audio from microphone or line input via getUserMedia. Routes external audio into the EW Objects signal network.
  • Audio Input → Filter → Delay → IO — live-processed microphone with filter sweep and delay.
  • Audio Input → Granular → Reverb → IO — granular freeze/stretch of live audio input.
  • Audio Input → Analysis → LFO freq — audio-reactive modulation driven by mic level.
IN: gain OUT: signal
FM OSCILLATOR
FM OSC
True FM synthesis oscillator with carrier and modulator in a single AudioContext for audio-rate frequency modulation. Carrier frequency (20 Hz -- 20 kHz), modulator ratio (0.25--16×), FM index (0--24), gain, and waveforms for both carrier and modulator are all automatable. Produces harmonic, inharmonic, and metallic timbres impossible with simple oscillators.
  • FM OSC (ratio 2, index 5) → IO — classic FM electric piano tone.
  • LFO → FM OSC index — evolving timbral modulation (brightness sweep).
  • Envelope → FM OSC index, Keyboard → FM OSC freq — percussive FM with playable pitch.
IN: freq IN: ratio IN: index IN: gain OUT: signal OUT: freq OUT: index
PHYSICAL MODELING
GENISH
Physical modeling synthesis: Karplus-Strong (plucked strings), modal resonance (bells), digital waveguide (bowed strings), FM feedback (metallic). Sample-accurate DSP.
  • Keyboard → Genish frequency + trigger — played Karplus-Strong plucked strings.
  • Sequencer → Genish frequency, Clock → Genish trigger — sequenced physical modeling tones.
  • LFO → Genish feedback, Euclid → Genish trigger — evolving metallic textures with euclidean triggers.
IN: trigger IN: frequency OUT: signal OUT: frequency OUT: playing
AUDIO I/O
IO
Hardware audio interface for the network. Captures from microphone, line-in, or screen/tab audio and injects the signal into the WebSocket graph. Also serves as the audio output controller inside the dashboard -- muting and unmuting individual object popups. Input/output device selectors, input and output gain, monitor toggle, and noise gate. All parameters are automatable via LINK.
  • IO (mic) → Reverb → Delay → IO (output) — live vocal processing chain with monitoring.
  • IO (line-in) → Granular → Mixer — feed a guitar or synth into granular processing.
  • IO (screen audio) → dB Meter → Compressor → IO (output) — capture and level system audio in real-time.
IN: gain IN: gate OUT: signal OUT: level
DATA SONIFICATION
NASA SONIFY
Sonify NASA data streams — APOD image brightness, solar flare intensity, near-Earth object distances. Maps data to pitch, amplitude, or filter parameters. Uses NASA API.
  • NASA Sonify → Filter → Reverb → IO — space data turned into filtered ambient textures.
  • NASA Sonify → Granular → Delay → IO — granular processing of astronomical data streams.
IN: trigger OUT: frequency OUT: signal OUT: brightness OUT: dataPoint
NOISE GENERATOR
NOISE
White, pink, and brown noise generator with real-time waveform and spectrum display. Use as an audio source or as a broadband modulation signal. Gain and noise type are automatable via LINK with bipolar modulation support. Outputs bipolar signal at ~100 Hz for downstream subscribers.
  • Noise (pink) → Filter (LP) → Reverb — oceanic ambient texture.
  • Noise → Sample & Hold → Quantizer → Synth freq — random melodic sequence from noise.
  • Noise (white) → Gate (Clock control) → Gain — rhythmic burst hi-hat sound.
IN: gain IN: type OUT: signal OUT: gain
WAVEFORM GENERATOR
OSCILLATOR
Continuous-tone oscillator with sine, sawtooth, triangle, and square waveforms. Frequency (20 Hz -- 20 kHz, log scale), detune (+/- 1200 cents), and gain are all automatable via LINK with bipolar modulation. Outputs a mathematically computed bipolar signal at ~100 Hz for FM and control-rate patching, plus frequency, waveform, detune, and gain as discrete port values. Supports modulation chain broadcasting for multi-oscillator FM setups.
  • Oscillator (saw) → Filter → Envelope → Gain — classic subtractive synth voice.
  • LFO → Oscillator detune, Keyboard → Oscillator freq — vibrato on a playable tone.
  • Oscillator A → Oscillator B freq (FM) — frequency modulation for metallic timbres.
IN: freq IN: detune IN: gain IN: waveform OUT: freq OUT: detune OUT: gain OUT: waveform
WAVETABLE EDITOR
VECTOR DRAW
Drawable waveform generator using Paper.js. Draw freehand paths on a canvas — a scan line sweeps left-to-right, sampling the path's Y value as a bipolar signal output. Clock input advances scan step by step, trigger resets to start. Adjustable scan speed, loop mode, and path smoothing. Draw custom LFO shapes, wavetables, or control curves by hand.
  • Draw a wave shape → Vector Draw signal → Filter cutoff — hand-drawn modulation curve.
  • Clock → Vector Draw clock input — step through the shape in sync with tempo.
  • Vector Draw signal → Oscillator detune — custom pitch drift pattern drawn by hand.
IN: trigger IN: clock IN: speed OUT: signal OUT: x OUT: y OUT: points
WAVETABLE SYNTH
WAVETABLE
Wavetable oscillator with morphable position between frames. Pre-loaded wavetable banks: analog classics, vocal formants, digital harsh, and spectral. Position parameter sweeps between frames in the active table for evolving timbres. Frequency, position, and gain are all automatable via LINK with bipolar modulation. Outputs a complex waveform signal at audio rate plus position and frequency as control ports.
  • LFO → Wavetable position — continuously evolving timbre.
  • Keyboard freq → Wavetable, Envelope → Wavetable gain — playable wavetable voice.
  • Sequencer → Wavetable position, Clock → Sequencer — stepped timbral sequence.
IN: freq IN: position IN: gain OUT: signal OUT: freq OUT: position
// Instruments
SEMI-MODULAR SYNTH
ARP 2600
Semi-modular analog synthesizer emulation. 3 VCOs, noise generator, ring modulator, 6-channel mixer, 24dB/oct lowpass VCF, dual envelope generators (ADSR + AR), spring reverb, glide. Monophonic.
  • Keyboard → ARP 2600 note + gate — classic ARP lead or bass with filter envelope.
  • Sequencer → ARP 2600 note, Clock → ARP 2600 trigger — sequenced analog synth patterns.
  • LFO → ARP 2600 vcfCutoff, Arpeggiator → ARP 2600 — filter-swept arpeggiated synth.
IN: trigger IN: gate IN: note IN: velocity OUT: signal OUT: frequency
POLY SYNTH
CS-80
Yamaha CS-80 (1977) — 8-voice polyphonic, famous for Vangelis and Blade Runner. Dual oscillators with feet selection (32'/16'/8'/4'). Ring modulation. Dual 12dB filters (HPF + LPF). Aftertouch input for expressive filter and amplitude modulation. Chorus/ensemble and tremolo effects.
  • Keyboard → CS-80 note + gate + aftertouch — expressive Vangelis-style polysynth.
  • CS-80 → Reverb → Delay → Mixer — Blade Runner ambient pad.
IN: note IN: gate IN: aftertouch OUT: signal OUT: frequency
LINEAR ARITHMETIC
D-50
Roland D-50 (1987) Linear Arithmetic synthesis — 8-voice polyphonic. Combines short attack transients with sustained oscillator tones. 7 attack types: strings, brass, breath, pluck, key, mallet, pad. Time-variant filter and amplifier with ADSR. Built-in chorus and reverb effects.
  • Keyboard → D-50 note + gate — classic LA synthesis pad with attack transient.
  • D-50 (pluck + reverb) → Mixer — lush Fantasia-style digital pad.
IN: note IN: gate IN: velocity OUT: signal OUT: frequency
SAMPLE DRUMS
DRUM MACHINE
Sample-based drum machine with 10 voices (kick, snare, toms, clap, hi-hats, cymbal, rim, ride) and full 909/808 sample kits. Resizable step grid (1--64 steps), 16-slot pattern bank with instant or queued switching, and 16-step chain sequencer for automatic pattern progression. Per-row sample selector, per-row volume fader. MIDI file import (drag-and-drop) and export. Internal clock with automatable BPM (20--300), or advance via external trigger input for clock-synced patterns. Outputs trigger pulses on each hit for downstream chaining. Waveform scope display.
  • Clock → Drums trigger, LFO → Drums BPM — tempo-modulated drum pattern.
  • Drums → Compressor → Reverb → Mixer — punchy processed drum bus.
  • Euclid → Drums trigger (external advance) — Euclidean rhythm driving drum steps.
IN: bpm IN: trigger OUT: signal OUT: bpm OUT: playing
FM SYNTH
DX7 FM
Yamaha DX7 FM synthesis emulation. 6-operator FM with 32 algorithms, envelope generators, and operator feedback. Classic 1983 digital synthesizer.
  • Keyboard → DX7 note + gate — classic FM electric piano and bell tones.
  • Sequencer → DX7 note, LFO → DX7 modIndex — evolving FM textures with modulation sweep.
  • Arpeggiator → DX7, Chorus → Reverb → IO — shimmering arpeggiated FM pads.
IN: trigger IN: gate IN: note IN: velocity OUT: signal OUT: frequency
FAUST DSP
FAUST SYNTH
FAUST functional audio language compiled to WebAssembly. Write DSP code, compile in-browser, run as AudioWorklet. Real-time parameter control.
  • Keyboard → Faust Synth note + gate — play custom FAUST DSP instrument live.
  • Sequencer → Faust Synth, LFO → Faust Synth param — sequenced custom synthesis with modulated parameters.
IN: trigger IN: gate IN: note IN: velocity OUT: signal
SAMPLE BROWSER
FREESOUND
Search and load from 500k+ Creative Commons samples via the Freesound API. Filter by duration, sort by relevance/rating/length. Preview and trigger loaded sounds.
  • Freesound → Granular → Reverb → IO — granular processing of found sounds.
  • Clock → Freesound trigger, Freesound → Filter → IO — rhythmic sample playback from Freesound library.
  • Freesound → Delay → Looper → IO — layered sound collage from online samples.
IN: trigger OUT: signal OUT: playing OUT: duration OUT: sampleRate
4-CH FM GROOVEBOX
GBA FM
Game Boy Advance-style 4-channel FM groovebox with classic green LCD screen. Three melodic 2-operator FM voices plus a noise-modulated percussion channel. 16-step sequencer per channel with 8-pattern bank. Per-channel carrier/modulator waveform, FM ratio, FM index, and full ADSR control. Global bit crusher (1-16 bit) and feedback delay. D-pad and A/B button interface with keyboard shortcuts (arrows + Z/X).
  • Clock → GBA FM clock — synced 4-channel lo-fi FM sequences with chiptune crunch.
  • GBA FM → Reverb → Delay → IO — ambient chiptune textures with spatial depth.
  • GBA FM → Mixer, JSMACHINEDRUM → Mixer — lo-fi FM melodies layered with analog drum patterns.
IN: trigger IN: clock IN: note OUT: signal OUT: playing OUT: step OUT: pattern
GENERATIVE SEQ
GENERATIVE
Ambient generative music system (Brian Eno-style). Five algorithms: Eno Ambient (prime-period tape loops), Drift (random walk), Cloud (bursts + silence), Pulse (rhythmic), Tidal (wave density). Built-in PolySynth with long envelopes, reverb, and auto-filter.
  • Clock → Generative trigger — self-generating melodic patterns at clock rate.
  • Generative → Synth note + trigger, Reverb → IO — algorithmic composition with reverb tail.
  • LFO → Generative density, Euclid → Generative trigger — evolving generative density with euclidean timing.
IN: trigger IN: gate IN: density IN: brightness OUT: note OUT: frequency OUT: trigger OUT: gate OUT: velocity
GRANULAR SYNTH
GRANULAR
Granular synthesis engine. Plays loaded audio as a cloud of tiny overlapping grains with controllable grain size, overlap, playback position, spread, and pitch. Built-in sample library with drag-and-drop support for custom audio files. All parameters are automatable via LINK with bipolar modulation. Trigger input for grain burst control.
  • LFO → Granular position, Clock → Granular trigger — scanning grain clouds triggered rhythmically.
  • Granular → Reverb → Delay → Mixer — lush textural ambient pad from a short sample.
  • Sequencer → Granular pitch, RNG → Granular position — melodic granular with randomized texture.
IN: trigger IN: grainSize IN: position IN: pitch OUT: signal OUT: playing
DRUM SYNTH
JSMACHINEDRUM
Multi-engine drum synthesizer inspired by the Elektron Machinedrum. 12 tracks with 6 selectable synthesis machines: TRX (analog), FM (2-op FM), NOISE (filtered noise), PHYS (physical modeling), SAMPLE (URL playback), WAVE (wavetable). 16-step sequencer with per-step parameter locks and 11 conditional trigger types. Per-step velocity, global swing, 16-pattern bank. Per-track volume, pan, mute, solo.
  • Clock → JSMACHINEDRUM clock — externally clocked drum pattern.
  • JSMACHINEDRUM → Compressor → Reverb → Mixer — processed multi-engine drum bus.
  • JSMACHINEDRUM tr1 → Sidechain Compressor — kick-driven sidechain pump.
IN: trigger IN: clock IN: bpm IN: reset OUT: signal OUT: step OUT: playing OUT: tr1-tr12
POLY SYNTH
JUNO-106
Roland Juno-106 emulation. DCO with saw/pulse/sub, chorus ensemble (I/II/I+II), 24dB/oct LPF, LFO, HPF. The definitive 80s polysynth.
  • Keyboard → Juno-106 note + gate — lush polysynth pads with chorus ensemble.
  • Chord Sequencer → Juno-106, Chorus → Reverb → IO — classic chord progressions with Juno shimmer.
  • LFO → Juno-106 cutoff, Arpeggiator → Juno-106 — sweeping filter arpeggios.
IN: trigger IN: gate IN: note IN: velocity OUT: signal OUT: frequency
POLY SYNTH
JUNO-60
Roland Juno-60 (1982) — 6-voice polyphonic, predecessor to the Juno-106. DCO with PWM, sub oscillator, noise. 24dB lowpass filter. Warmer BBD-style chorus (modes I/II) with wider delay and deeper modulation. Built-in arpeggiator (up/down/up-down). Stepped high-pass filter.
  • Keyboard → Juno-60 note + gate — lush polyphonic pad with BBD chorus.
  • Chord Sequencer → Juno-60 (arp UP) — animated arpeggiated chord sequence.
IN: note IN: gate OUT: signal OUT: frequency
POLY SYNTH
JUPITER-8
Roland Jupiter-8 (1981) — 8-voice polyphonic analog synthesizer. Dual VCOs per voice (saw/pulse/triangle) with cross-modulation (VCO2→VCO1 FM). Independent HPF and 24dB LPF. Dual LFOs: pitch vibrato and filter modulation. Separate filter and amp ADSR envelopes. Keyboard tracking.
  • Keyboard → Jupiter-8 note + gate — massive 8-voice analog pad.
  • Jupiter-8 → Chorus → Reverb → Mixer — legendary 80s polysynth with spatial depth.
IN: note IN: gate IN: velocity OUT: signal OUT: frequency
CONTROLLER
KEYBOARD
Virtual piano keyboard with 5-octave range (C2--C7), mouse/touch input, and full computer keyboard mapping (QWERTY layout with Z/X octave shift). Built-in polyphonic triangle synth for local preview. Outputs frequency (Hz), gate, velocity, MIDI note number, and trigger signal for driving synths, arpeggiators, and any frequency-responsive module in the network.
  • Keyboard freq → Synth, Keyboard gate → Envelope → Synth gain — playable synthesizer voice.
  • Keyboard freq → Oscillator, Keyboard gate → VCA — simple keyboard-controlled tone.
  • Keyboard velocity → Filter cutoff — velocity-sensitive brightness.
OUT: frequency OUT: gate OUT: velocity OUT: note OUT: signal
WORKSTATION
KORG M1
Korg M1 (1988) workstation — 8-voice polyphonic with 10 classic preset programs: Piano, Organ, Strings, Brass, E.Piano, Bass, Choir, Universe, Bell/Chime, Syn Pad. Each approximated via Tone.js synthesis recipes. Lowpass filter, ADSR envelope, selectable effects (chorus/reverb/delay).
  • Keyboard → M1 note + gate — classic M1 preset sounds.
  • Chord Sequencer → M1 (Universe) — animated M1 pad progression.
IN: note IN: gate OUT: signal OUT: frequency
DRUM MACHINE
LINNDRUM
LinnDrum (1982) sampled drum machine emulation. 11 voices (kick, snare, hihat, open hat, cabasa, tambourine, toms, crash, ride) synthesized to approximate the punchy, tight sampled character that defined 80s pop. 16-step pattern sequencer with per-instrument volume, tuning, and decay. Swing control. Internal clock or external clock/trigger.
  • Clock → LinnDrum clock — tempo-synced 80s drum pattern.
  • LinnDrum → Reverb → Compressor → Mixer — classic gated reverb drum bus.
IN: trigger IN: clock OUT: signal OUT: kick OUT: snare
LOOP RECORDER
LOOPER
Real-time audio looper with overdub and adjustable feedback decay. Record from any node source via standardized audio input, then layer additional passes on top. Trigger input for remote record/play/stop control. Automatable gain via LINK. Outputs audio signal and current state (recording, playing, overdubbing, stopped).
  • IO (mic) → Looper → Reverb → Mixer — live looping performance with reverb tail.
  • Synth → Looper, Clock → Looper trigger — clock-synced loop capture of synth phrases.
  • Granular → Looper (overdub) → Delay — layered granular textures building over time.
IN: audio IN: trigger IN: gain OUT: signal OUT: state
AI GENERATION
MAGENTA AI
Google Magenta.js AI music generation. MusicRNN for melody continuation, DrumsRNN for pattern generation. Configurable temperature, seed notes, and step count. Outputs note sequences to WebSocket bus.
  • Magenta AI → Synth note + trigger — AI-generated melodies driving a synthesizer.
  • Keyboard → Magenta AI seed, Magenta AI → Arpeggiator — AI continues your played melody.
  • Clock → Magenta AI, Magenta AI → Drum Machine trigger — AI-generated drum patterns.
IN: trigger IN: seed OUT: note OUT: velocity OUT: trigger OUT: sequence
MONO SYNTH
MINIMOOG
Minimoog Model D emulation. 3 oscillators, noise, mixer, 24dB/oct Moog ladder filter, dual contour generators, glide. Monophonic analog legend.
  • Keyboard → Minimoog note + gate — fat monophonic bass and lead tones.
  • Sequencer → Minimoog note, LFO → Minimoog filterCutoff — sequenced bass with filter wobble.
  • Arpeggiator → Minimoog, Delay → IO — arpeggiated Moog leads with echo.
IN: trigger IN: gate IN: note IN: velocity OUT: signal OUT: frequency
SEMI-MODULAR SYNTH
MS-20
Korg MS-20 (1978) semi-modular monophonic synthesizer. Dual oscillator with ring modulation. Distinctive dual-filter architecture: 12dB/oct highpass into lowpass. Both filters have independent resonance and envelope depth for aggressive, screaming timbres. LFO with selectable waveform. Single ADSR envelope.
  • Keyboard → MS-20 note + gate — aggressive filtered mono bass.
  • MS-20 (ring mod) → Delay → Reverb — metallic textures with space.
IN: note IN: gate OUT: signal OUT: frequency
AI GENERATION
MUSIC VAE
Magenta MusicVAE latent space interpolation. Sample two random sequences and morph between them with a single knob. Mel 2-bar, 4-bar, and drums models. Generates novel melodies in the space between.
  • Music VAE → Synth note + trigger — latent-space interpolated melodies.
  • Music VAE → Drum Machine trigger + track — AI-morphed drum patterns.
  • LFO → Music VAE temperature, Clock → Music VAE — temperature-modulated generative sequences.
IN: trigger IN: interpolation OUT: note OUT: velocity OUT: trigger OUT: sequence
POLY SYNTH
OBXD
Oberheim OB-X/OB-Xa emulation. 2 oscillators with cross-mod, multimode filter, voice stacking. Classic analog polysynth warmth.
  • Keyboard → OBXD note + gate — warm analog polysynth pads and leads.
  • Chord Sequencer → OBXD, Phaser → Reverb → IO — lush Oberheim chord stabs with spatial effects.
  • LFO → OBXD filterCutoff, Sequencer → OBXD note — filter-swept sequenced patterns.
IN: trigger IN: gate IN: note IN: velocity OUT: signal OUT: frequency
WAVETABLE SYNTH
PPG WAVE
PPG Wave 2.3 (1982) wavetable synthesizer — 8-voice polyphonic. 5 wavetable sets (Basic, Vocal, Organ, Digital, Harmonics) with 32 scannable waveforms each. Wave position scanned via LFO or envelope for evolving timbres. 24dB/oct analog-style lowpass filter. Real-time waveform display.
  • Keyboard → PPG Wave note + gate — evolving wavetable pad.
  • PPG Wave (Vocal, lfo scan) → Chorus → Reverb — animated vocal wavetable with effects.
IN: note IN: gate OUT: signal OUT: frequency
POLY SYNTH
PROPHET-5
Sequential Circuits Prophet-5 (1978) — the first fully programmable polysynth. 5-voice polyphonic with dual oscillators (saw/pulse/triangle), oscillator sync, poly-mod (OSC B modulating filter and pitch), 24dB/oct lowpass filter, separate filter and amp ADSR envelopes. Unison mode stacks all 5 voices with detune spread. Glide/portamento.
  • Keyboard → Prophet-5 note + gate — thick polyphonic analog pad.
  • Prophet-5 (unison) → Chorus → Delay — massive detuned lead with effects.
IN: note IN: gate IN: velocity OUT: signal OUT: frequency
SAMPLE PLAYER
SAMPLER
Audio file playback engine with independent pitch and speed control. Built-in library of 80+ drum samples (808/909) plus drag-and-drop for loading custom audio files. Trigger via node input from clocks and sequencers or manual button. Pitch, speed, and gain are automatable via LINK with bipolar modulation. Outputs playing state for downstream chaining.
  • Clock → Sampler trigger, Sequencer → Sampler pitch — pitched sample playback in a melodic sequence.
  • Euclid → Sampler trigger → Distortion → Mixer — euclidean-triggered percussive hits with grit.
  • LFO → Sampler speed → Reverb — warping time-stretch textures with modulated playback rate.
IN: trigger IN: pitch IN: gain IN: speed OUT: signal OUT: playing
6-CH FM GROOVEBOX
SEGA FM
Sega Genesis/Mega Drive-style 6-channel FM groovebox inspired by the Yamaha YM2612 + SN76489 PSG. Five monophonic FM synthesis channels plus a noise-modulated PSG percussion channel. 16-step sequencer per channel with 8-pattern bank. Per-channel carrier/modulator waveform, FM ratio, FM index, and full ADSR. Global bit crusher and feedback delay. Genesis 3-button controller (A/B/C + D-pad). 12 presets inspired by classic 16-bit game soundtracks.
  • Clock → SEGA FM clock — synced 6-channel 16-bit FM sequences locked to master clock.
  • SEGA FM → Reverb → Delay → IO — spacious Genesis FM textures with spatial depth.
  • SEGA FM → Mixer, GBA FM → Mixer — retro console FM orchestra: Genesis + GBA layered.
IN: trigger IN: clock IN: note OUT: signal OUT: playing OUT: step OUT: pattern
MONO SYNTH
SH-101
Roland SH-101 (1982) monophonic synthesizer with built-in 16-step sequencer. Single oscillator (saw/pulse/triangle) with PWM, sub oscillator (-1/-2 octaves), noise source. 24dB/oct self-oscillating lowpass filter. Triangle LFO routable to pitch, filter, or PWM. Full ADSR envelope. Glide control.
  • Clock → SH-101 clock — sequenced acid-style bass line.
  • SH-101 → Distortion → Delay → Mixer — aggressive techno lead with effects.
IN: note IN: gate IN: clock OUT: signal OUT: frequency
SUBTRACTIVE SYNTH
SYNTH
Complete monophonic synthesizer voice built on Tone.MonoSynth. Oscillator section with 9 waveform types including fat and PWM variants, octave shift (+/- 2), and detune. Multimode filter (lowpass, highpass, bandpass) with cutoff, Q, and full ADSR filter envelope (octaves, attack, decay, sustain, release). Amplitude ADSR envelope. All parameters are automatable via LINK with bipolar modulation. Responds to trigger and frequency inputs from clocks, sequencers, and arpeggiators with attack/release edge detection. Waveform and FFT scope display.
  • Arpeggiator → Synth freq + gate, LFO → Synth cutoff — arpeggiated synth line with moving filter.
  • Sequencer → Synth freq, Clock → Synth trigger → Distortion — gritty sequenced bass line.
  • Keyboard → Synth, Synth → Chorus → Reverb → Mixer — playable synth with lush stereo effects.
IN: trigger IN: frequency IN: cutoff IN: gain OUT: frequency OUT: waveform OUT: cutoff
ACID SYNTH
TB-303
Roland TB-303 bass synthesizer emulation. Single VCO (saw/square), 18dB/oct diode ladder filter, accent, slide, envelope mod. Acid house icon.
  • Sequencer → TB-303 note + trigger — classic acid bass lines.
  • Euclid → TB-303 trigger, LFO → TB-303 cutoff — euclidean acid with filter sweep.
  • TB-303 → Distortion → Delay → IO — overdriven acid with dub delay.
IN: trigger IN: gate IN: note IN: velocity OUT: signal OUT: frequency
HARMONY
VOICING
Intelligent chord voicing and voice-leading engine. Given chord symbols (Cmaj7, Dm7b5), generates optimal voicings with minimal-movement voice leading between chords. Progression presets: ii-V-I, Coltrane Changes, Rhythm Changes. PolySynth preview.
  • Chord Sequencer → Voicing → Synth note — voice-led chord progressions.
  • Keyboard → Voicing, Voicing → Juno-60 — smooth voice leading from keyboard input.
IN: chord IN: trigger IN: root IN: mode OUT: notes OUT: frequency OUT: trigger OUT: voicing
// Effects
SPATIAL AUDIO
BINAURAL
HRTF-based binaural spatializer for 3D audio positioning over headphones. Places audio sources in a virtual 3D space using Web Audio's HRTF panner. Azimuth, elevation, and distance controls with interactive spatial map -- click to reposition the source. Wet/dry crossfade and gain, all automatable via LINK with bipolar modulation.
  • Synth → Binaural, LFO → Binaural azimuth — circular spatial panning synth.
  • Drums → Binaural (-60°), Synth → Binaural (+60°) — stereo-field instrument separation.
  • IO (mic) → Binaural, Sequencer → Binaural azimuth — voice jumping between spatial positions.
IN: audio IN: azimuth IN: elevation OUT: azimuth OUT: elevation OUT: distance
BIT REDUCTION
BITCRUSHER
Bit depth reducer for lo-fi digital degradation, from 16-bit down to 1-bit. Bit depth and wet mix are automatable via LINK with bipolar modulation. Standardized audio input -- LINK an oscillator, synth, or any audio source node to the audio port and an auto-managed source mirrors it locally. Waveform and FFT scope display.
  • Synth → Bitcrusher (4-bit), LFO → Bitcrusher bits — animated lo-fi degradation on a synth voice.
  • Drums → Bitcrusher (8-bit) → Mixer — retro game-style drum crunch.
IN: audio IN: bits IN: wet OUT: bits OUT: wet
MODULATION FX
CHORUS
Stereo chorus effect with automatable rate (frequency), depth, delay time, and wet mix. Standardized audio input via LINK. All parameters support bipolar modulation from LFOs and other control sources. Waveform and FFT scope display.
  • Synth → Chorus → Reverb → Mixer — wide stereo pad with depth and space.
  • Oscillator (saw) → Chorus, LFO → Chorus depth — classic ensemble string thickening.
IN: audio IN: frequency IN: depth OUT: frequency OUT: depth
DYNAMICS
COMPRESSOR
Dynamics processor with threshold, ratio, attack, release, and knee controls -- all automatable via LINK with bipolar modulation. Visual gain reduction meter. Standardized audio input. Outputs current gain reduction and makeup gain values for downstream monitoring.
  • Drums → Compressor → Mixer — punchy, controlled drum bus dynamics.
  • Synth → Compressor, Drums → Compressor sidechain — sidechain pumping effect.
  • IO (mic) → Compressor → Reverb → IO (output) — even vocal level into effects chain.
IN: audio IN: threshold IN: ratio IN: attack IN: release OUT: reduction OUT: gain
CONVOLUTION REVERB
CONVOLVER
Impulse response convolution processor for realistic acoustic spaces and creative spectral imprinting. Six generated IR presets (hall, plate, spring, room, telephone, radio) plus custom IR file upload via drag-drop. Wet/dry mix and gain are automatable via LINK with bipolar modulation. SoundHack-inspired spectral mutation through convolution.
  • Synth → Convolver (hall) → Mixer — realistic concert hall reverb on a synth.
  • Drums → Convolver (custom IR: vocal) → Filter — drums with vocal formant coloring.
  • IO (mic) → Convolver (telephone) — lo-fi telephone bandpass vocal effect.
IN: audio OUT: ir OUT: wet
ECHO / DELAY
DELAY
Feedback delay (Tone.FeedbackDelay) with automatable delay time (10 ms -- 2 s, log scale), feedback (0 -- 95%), wet mix, and output gain. Standardized audio input via LINK -- connect any source node to the audio port and processing begins immediately. All parameters support bipolar modulation. Waveform and FFT scope display.
  • Synth → Delay, LFO → Delay time — chorus-like modulated delay with pitch wobble.
  • Drums → Delay (dotted 8th) → Mixer — rhythmic dotted-eighth echo on percussion.
  • Granular → Delay (high feedback) → Reverb — infinite cascading grain echoes into space.
IN: audio IN: time IN: feedback OUT: time OUT: feedback
OVERDRIVE / DIST
DISTORTION
Waveshaper distortion with automatable drive amount, wet mix, and selectable oversampling (none, 2x, 4x) for anti-aliased saturation. Standardized audio input via LINK. Output gain control. All continuous parameters support bipolar modulation. Waveform and FFT scope display.
  • Oscillator (sine) → Distortion (high drive) → Filter (LP) — buzzy square-like tone from pure sine.
  • Drums → Distortion → Compressor → Mixer — aggressive crushed drums with controlled peaks.
  • Synth → Distortion, Envelope → Distortion amount — drive that swells with each note attack.
IN: audio IN: amount OUT: amount OUT: wet
EQUALIZER
EQ
3-band equalizer with adjustable low, mid, and high gain controls (-12 to +12 dB) and configurable crossover frequencies. All bands are automatable via LINK with bipolar modulation -- connect an LFO to sweep any band in real-time. Standardized audio input. Waveform and FFT scope display.
  • Drums → EQ (boost low, cut mid) → Compressor → Mixer — sculpted drum tone with weight and clarity.
  • Synth → EQ, LFO → EQ mid — wah-like swept midrange on a synth.
  • IO (mic) → EQ (cut low, boost high) → Reverb — airy vocal presence before reverb.
IN: audio IN: low IN: mid IN: high OUT: low OUT: mid OUT: high
RESONANT FILTER
FILTER
Multimode filter (lowpass, highpass, bandpass, notch) with automatable cutoff (20 Hz -- 20 kHz, log scale), resonance Q (0.1 -- 30), and output gain. Standardized audio input with auto-managed source oscillator -- LINK any node's audio port and processing begins immediately. All parameters support bipolar modulation for LFO-driven filter sweeps and FM-style cutoff modulation. Waveform and FFT scope display.
  • Oscillator (saw) → Filter (LP), LFO → Filter cutoff — classic analog-style filter sweep.
  • Noise → Filter (BP, high Q) → Reverb — resonant pitched ping from white noise.
  • Synth → Filter, Envelope → Filter cutoff — envelope-controlled brightness per note.
IN: cutoff IN: Q IN: gain IN: type OUT: cutoff OUT: Q OUT: gain OUT: type
DYNAMICS
LIMITER
Brick-wall limiter for peak protection and output safety. Threshold sets the ceiling above which signals are clamped with zero overshoot. Adjustable release time controls how quickly gain returns after limiting. Makeup gain compensates for level loss. Ceiling control sets absolute maximum output. Real-time gain reduction metering and output level display. Place at the end of any signal chain to prevent clipping.
  • Mixer → Limiter → IO output — master bus protection before speakers/headphones.
  • Distortion → Limiter — tame unpredictable peaks from heavy waveshaping.
  • Feedback delay (high feedback) → Limiter — prevent runaway delay feedback from clipping.
IN: audio OUT: gr OUT: level
SPATIAL
PANNER
Stereo positioning with manual and auto-pan modes. Manual mode sets stereo position directly. Auto mode sweeps with adjustable rate, depth, and selectable LFO waveform. All parameters are automatable via LINK with bipolar modulation. Standardized audio input. Waveform scope display.
  • Synth → Panner (auto, sine), Clock → Panner rate — tempo-synced stereo auto-pan.
  • Delay → Panner, LFO (triangle) → Panner position — delay echoes sweeping across the stereo field.
  • Drums → Panner, Sequencer → Panner position — per-step stereo placement of drum hits.
IN: audio IN: pan IN: rate IN: depth OUT: pan OUT: mode
SPECTRAL
PHASE VOCODER
Phase vocoder time-stretcher with independent time and pitch control via STFT analysis/resynthesis. Loads audio files and processes them through a phase-locked vocoder for high-quality stretching without granular artifacts. Stretch ratio (0.25x -- 4x) controls time independently of pitch. Pitch shift (±12 semitones) via bin rotation with phase coherence.
  • Phase Vocoder (slow stretch) → Reverb → Mixer — extreme time-stretch ambient texture.
  • Phase Vocoder (pitch +7), Clock → Phase Vocoder trigger — pitch-shifted sample triggered in rhythm.
  • Phase Vocoder (4x stretch) → Spectral Freeze → Delay — layered frozen spectral landscape.
IN: trigger IN: stretch IN: pitch OUT: stretch OUT: pitch OUT: position
MODULATION FX
PHASER
Multi-stage phaser with automatable LFO frequency, octaves sweep range, base frequency, Q, and wet mix. Standardized audio input via LINK. All parameters support bipolar modulation. Waveform and FFT scope display.
  • Oscillator (saw) → Phaser, LFO (slow) → Phaser frequency — classic sweeping phaser on a raw oscillator.
  • Drums → Phaser → Panner → Mixer — psychedelic stereo drum processing.
  • Synth → Phaser, Envelope → Phaser octaves — phaser depth opens on each note attack.
IN: audio IN: frequency IN: octaves IN: wet OUT: frequency OUT: octaves OUT: wet
PITCH
PITCH SHIFT
Pitch shifter with automatable pitch offset (+/- 24 semitones), wet mix, and output gain. Standardized audio input via LINK. All parameters support bipolar modulation -- connect an LFO for vibrato or a sequencer for melodic transposition effects. Waveform and FFT scope display.
  • Synth → Pitch Shift (+7 semitones) → Mixer — parallel harmony a fifth above.
  • IO (mic) → Pitch Shift, LFO → Pitch Shift pitch — warbling vibrato on live vocal.
  • Sampler → Pitch Shift, Sequencer → Pitch Shift pitch — melodic transposition of a sample per step.
IN: audio IN: pitch IN: wet OUT: pitch OUT: wet
ROOM SIMULATION
REVERB
Algorithmic reverb (Tone.Reverb) with automatable decay time (0.1 -- 30 s, log scale), wet mix, and output gain. Standardized audio input via LINK -- connect any source node and the reverb processes it immediately. All parameters support bipolar modulation. Waveform and FFT scope display.
  • Synth → Reverb (long decay) → Mixer — expansive ambient synth pad.
  • Drums → Reverb (short decay, low wet) → Compressor — tight room ambience on drums.
  • Granular → Reverb, LFO → Reverb decay — breathing space that expands and contracts.
IN: audio IN: decay IN: wet OUT: decay OUT: wet
RING MODULATION
RING MOD
Ring modulator -- multiplies the input signal by an internal carrier oscillator. Automatable carrier frequency, selectable carrier waveform, and dry/wet depth control. Standardized audio input via LINK. All continuous parameters support bipolar modulation for complex spectral movement. Waveform and FFT scope display.
  • Synth → Ring Mod, LFO → Ring Mod frequency — sweeping metallic sideband textures.
  • IO (mic) → Ring Mod (low carrier freq) — robotic tremolo vocal effect.
  • Oscillator → Ring Mod, Sequencer → Ring Mod frequency — stepped inharmonic bell tones per beat.
IN: audio IN: frequency IN: depth OUT: frequency OUT: waveform
SPATIAL AUDIO
SPATIAL
3D spatial audio via Google Resonance Audio. Position sources in virtual 3D space with binaural rendering, room simulation, and configurable materials. Interactive top-down canvas, spherical coordinates (azimuth/elevation/distance). Click-drag source positioning.
  • Synth → Spatial, LFO → Spatial azimuth — auto-panning synthesis in 3D space.
  • Drum Machine → Spatial, Sequencer → Spatial position — drums placed at sequenced positions in stereo field.
IN: trigger IN: frequency IN: signal IN: azimuth IN: elevation IN: distance OUT: signal OUT: left OUT: right
SPECTRAL
SPECTRAL FREEZE
Real-time STFT spectral freeze/smear processor inspired by SoundHack. Captures FFT frames from live audio and blends between live and frozen spectra. Freeze control crossfades between live and captured spectrum. Smear smooths the frozen spectrum over time for evolving drones. Configurable FFT size. CAPTURE button grabs and holds the current spectral frame.
  • Oscillator → Spectral Freeze (capture + smear) → Reverb — infinite evolving drone from a single moment.
  • IO (mic) → Spectral Freeze, LFO → Spectral Freeze freeze — rhythmic spectral gating on live audio.
  • Drums → Spectral Freeze (8192 FFT, high smear) → Delay — ghostly smeared percussion textures.
IN: audio IN: trigger OUT: freeze OUT: smear
TIME-STRETCH
TIMESTRETCH
Independent time-stretching and pitch-shifting via granular processing. Drag-and-drop audio files, control tempo (0.25x-4x) and pitch (±12 semitones) independently. Configurable grain size and overlap.
  • Sampler → Timestretch, LFO → Timestretch rate — granular time-stretch with modulated speed.
  • Looper → Timestretch → Reverb → IO — stretched loops into ambient textures.
  • Audio Input → Timestretch (freeze) → Filter → IO — frozen granular clouds from live input.
IN: trigger IN: tempo IN: pitch OUT: signal OUT: playing OUT: position OUT: tempo OUT: pitch
WAVESHAPING
WAVEFOLDER
Complex waveshaping for harmonic richness through iterative signal folding. Drive, fold count, and symmetry controls -- all automatable via LINK with bipolar modulation. Transfer curve visualization shows the current waveshaping function in real-time. Standardized audio input. High fold counts at high drive produce dense, metallic overtone spectra.
  • Oscillator (sine) → Wavefolder (high folds), LFO → Wavefolder drive — evolving harmonic complexity from a pure tone.
  • Synth → Wavefolder → Filter (LP) → Mixer — rich West Coast-style timbre shaping.
  • Oscillator → Wavefolder, Envelope → Wavefolder drive — overtone bloom on each note attack.
IN: audio IN: drive IN: folds IN: symmetry OUT: drive OUT: folds
// Modulation
ADSR ENVELOPE
ENVELOPE
ADSR amplitude envelope with automatable attack, decay, sustain, and release. Standardized audio input -- LINK a source node to shape its amplitude. Trigger via node input (positive edge = attack, negative edge = release) or manual button. All parameters support bipolar modulation.
  • Keyboard gate → Envelope trigger, Oscillator → Envelope audio — shaped note with attack and release.
  • Clock → Envelope trigger, Envelope → Filter cutoff — rhythmic filter plucks on each beat.
  • Euclid → Envelope trigger, Envelope → Gain (VCA) — euclidean-patterned amplitude gating.
IN: audio IN: trigger OUT: ADSR
FUNCTION GENERATOR
FUNC GEN
Triggered function generator. Outputs configurable curves over time -- ramp up, ramp down, triangle, exponential, S-curve, and attack-decay shapes. Automatable duration and output level. Hold, return, or loop end-behavior modes. Outputs signal value, phase position, and active state. All parameters support bipolar modulation via LINK.
  • Clock → Func Gen trigger, Func Gen → Filter cutoff — repeating shaped filter sweeps on each beat.
  • Keyboard gate → Func Gen (ramp down), Func Gen → Pitch Shift — pitch drop on each note release.
  • Euclid → Func Gen (S-curve, loop), Func Gen → Panner position — smooth rhythmic stereo movement.
IN: trigger IN: duration IN: level OUT: signal OUT: phase OUT: active
LOW FREQ OSCILLATOR
LFO
Low-frequency oscillator with 12 waveform types: sine, triangle, sawtooth, square, 25% pulse, 10% pulse, exponential rise, exponential fall, staircase, sample-and-hold random, smooth random (cosine interpolated), and brownian wander. Rate (0.01 -- 100 Hz, log scale) and depth are automatable via LINK. Control-only output -- broadcasts bipolar signal at ~100 Hz for modulating any downstream parameter. Does not produce audible audio by default.
  • LFO (sine, 0.5 Hz) → Filter cutoff — slow sweeping filter movement.
  • LFO (S&H random) → Oscillator freq → Quantizer — random pitch sequence quantized to scale.
  • LFO (triangle, fast) → Gain — tremolo effect on any audio source.
IN: rate IN: depth IN: waveform OUT: signal OUT: rate OUT: waveform
RANDOM
PROBABILITY
Probabilistic trigger filter. Passes incoming triggers with a configurable probability (0--100%). Trigger mode (single pulse) and gate mode (sustained high). Automatable probability via LINK. Displays pass/total statistics and current pass rate. Use between a clock and a synth/drums to create stochastic rhythmic variation.
  • Clock → Probability (60%) → Sampler trigger — hi-hat ghost notes that drop in and out.
  • Euclid → Probability → Synth trigger, LFO → Probability % — density of notes rises and falls over time.
  • Clock → Probability (25%) → Delay feedback boost — occasional long echoes on random beats.
IN: trigger IN: probability OUT: signal OUT: passCount
RANDOM
RNG
Random number generator with multiple statistical distributions: uniform, gaussian, bipolar, binary, and brownian walk. Triggered mode (generates on each incoming trigger) or free-running mode with adjustable rate. Configurable output range (min/max). Histogram visualization of output distribution. All parameters automatable via LINK.
  • Clock → RNG (gaussian) → Quantizer → Synth freq — probabilistic melody centered around a note.
  • RNG (brownian) → Filter cutoff — wandering filter that drifts organically.
  • Euclid → RNG trigger (uniform) → Panner position — random stereo placement on each hit.
IN: trigger IN: rate IN: min IN: max OUT: signal
VOLTAGE SAMPLER
SAMPLE & HOLD
Samples an incoming signal on each trigger edge and holds the value until the next trigger. Adjustable slew rate for smooth glide between held values. LINK any signal source as input and any clock or trigger source as the sample clock.
  • Noise → Sample & Hold, Clock → S&H trigger → Quantizer → Synth freq — classic random melody generator.
  • LFO (sine) → Sample & Hold, Euclid → S&H trigger → Filter cutoff — stepped filter values from smooth source.
  • Oscillator signal → Sample & Hold, Clock (fast) → S&H trigger — bitcrusher-like sample rate reduction effect.
IN: signal IN: trigger OUT: signal
SLEW / GLIDE
SLEW LIMITER
Signal smoother with independent rise and fall times. Eliminates clicks and staircase transitions from stepped control signals. Three response curves: linear, exponential, and logarithmic. Use for portamento/glide on pitch CV, smoothing noisy modulation, or creating custom attack/decay shapes. Times range from 1ms (near-instant) to 5 seconds.
  • Sequencer → Slew → Osc freq — portamento melody.
  • S&H random → Slew (slow rise) → Filter cutoff — lazy wandering filter.
  • Clock → Slew (fast rise, slow fall) → VCA CV — punchy attack with soft decay.
IN: signal OUT: signal
AMPLIFIER
VCA
Voltage Controlled Amplifier -- multiplies a signal by a control voltage. The fundamental building block for applying envelopes to oscillators, creating tremolo with LFOs, or gating audio. Linear and exponential response curves. CV bias control shifts the operating point for unipolar modulation. Two-input design: signal in, CV in, shaped signal out.
  • Osc → VCA (signal), Envelope → VCA (CV) — standard synth voice with shaped amplitude.
  • Noise → VCA, LFO (fast) → VCA CV — amplitude-modulated noise for hi-hat textures.
  • Reverb out → VCA, Sequencer → VCA CV — rhythmic gating of reverb tails.
IN: signal IN: cv OUT: signal OUT: level
// Sequencing
ARPEGGIATOR PATTERN
ARPEGGIATOR
Clock-driven note pattern generator. Builds sequences from a configurable root note, scale, and octave range. UP, DOWN, UP-DOWN, DOWN-UP, and RANDOM pattern modes with adjustable gate length. Outputs frequency (Hz), gate signal, and current step index. LINK a clock or trigger source to drive the pattern. All parameters automatable via LINK with bipolar modulation.
  • Clock → Arpeggiator trigger, Arpeggiator freq → Synth — classic arpeggiated synth line.
  • Euclid → Arpeggiator trigger, Arpeggiator freq → Filter cutoff — rhythmically irregular melodic filter control.
  • Clock → Arpeggiator, LFO → Arpeggiator gate length — evolving staccato-to-legato note lengths.
IN: trigger IN: root IN: scale OUT: frequency OUT: gate OUT: step
GENERATIVE SEQ
CELLULAR AUTOMATA
1D elementary cellular automata (Rules 0-255) mapped to notes. Visual grid evolution generates melodic sequences from simple rules. Click cells to seed, choose scale and rule number. Rule 30, 90, 110 produce complex patterns.
  • Clock → Cellular Automata, CA → Synth note + trigger — Rule 30/110 patterns as melodies.
  • Cellular Automata → Drum Machine trigger — emergent rhythmic patterns from automata.
IN: clock IN: trigger IN: rule OUT: note OUT: trigger OUT: gate OUT: row OUT: density OUT: step
CHORD PATTERNS
CHORD SEQUENCER
Step sequencer that outputs chords rather than single notes. Each step holds a chord voicing (root + intervals). Select from major, minor, diminished, augmented, 7th, and custom voicings per step. LINK the MIDI CALC node output for scale-aware chord generation and note-to-frequency conversion. Outputs root frequency, chord type, and up to 4 individual voice frequencies simultaneously. Advance via trigger input from Clock or Euclid.
  • Clock → Chord Seq, MIDI Calc → Chord Seq scale, Chord Seq voices → 4 Oscillators — harmonic progression.
  • Euclid → Chord Seq trigger, Chord Seq root → Filter cutoff — rhythmic filter movement from chord roots.
IN: trigger IN: scale (MIDI Calc) OUT: root OUT: voice1–4 OUT: chord type
MASTER CLOCK
CLOCK
Master clock and trigger generator. Broadcasts regular trigger pulses at configurable BPM (20--300) with division (1/1 through 1/32), swing amount, and tap tempo. BPM is automatable via LINK with bipolar modulation. Outputs trigger signal, current BPM, division, and playing state. LINK to drive drums, sequencers, arpeggiators, and any trigger-responsive module.
  • Clock → Sequencer → Synth freq, Clock → Synth trigger — sequenced melody advancing on beat.
  • Clock (1/16) → Drums trigger + Euclid trigger — unified timing source for full rhythm section.
  • LFO → Clock BPM — tempo that speeds up and slows down cyclically.
IN: bpm IN: division OUT: signal OUT: bpm OUT: division OUT: playing
TEMPO DIVIDER
CLOCK DIVIDER
Takes incoming clock pulses and outputs divided or multiplied versions. Division mode (/2 through /16) counts rising edges and fires every N-th pulse. Multiplication mode (x2, x3, x4) interpolates sub-pulses between incoming edges. Configurable pulse width and phase offset for polyrhythmic sequencing.
  • Clock → Divider (/4) → Envelope → Synth — half-note triggered amplitude shapes.
  • Clock → Divider (/3) + Clock → Divider (/4) → two Drums — polyrhythmic percussion layers.
  • Clock → Divider (x2) → Hi-hat sampler — double-time hi-hat pattern from a single clock.
IN: clock OUT: signal OUT: count
EUCLIDEAN SEQ
EUCLID
Euclidean rhythm generator using Bjorklund's algorithm. Distributes a configurable number of beats as evenly as possible across a configurable number of steps, with rotation offset. Steps, beats, and offset are automatable via LINK. LINK a clock to the trigger input to generate rhythmically spaced trigger patterns. Outputs trigger signal and current pattern as a binary array.
  • Clock → Euclid (5 beats / 8 steps) → Synth trigger — asymmetric rhythmic pattern driving a synth.
  • Clock → Euclid (3/8) + Euclid (7/16) → two Samplers — polyrhythmic layered percussion.
  • Clock → Euclid, LFO → Euclid offset — rotating pattern that shifts phase over time.
IN: trigger IN: steps IN: beats IN: offset OUT: signal OUT: pattern
GENERATIVE SEQ
GENETIC
Evolve populations of note sequences toward fitness goals. Tournament selection, crossover, mutation. 6 fitness functions: melodic, rhythmic, smooth, chaotic, range, repetition. Interactive breeding — listen and select favorites.
  • Clock → Genetic trigger, Genetic → Synth note — evolving melodies through genetic selection.
  • Genetic → Sequencer pattern, Keyboard → Genetic fitness — interactive evolution of sequences.
IN: clock IN: trigger IN: fitness OUT: note OUT: velocity OUT: trigger OUT: gate OUT: generation OUT: bestFitness
GENERATIVE SEQ
GRAMMAR
Context-free grammar melody generator. Define musical rules as interval patterns with recursive symbol expansion. Rules map symbols to semitone intervals with alternative choices. Closer to counterpoint logic than random generation. 5 presets including Fibonacci Intervals and Chromatic Cascade.
  • Clock → Grammar trigger, Grammar → Synth note — rule-based melodic generation.
  • Grammar → Drum Machine trigger + track — grammar-defined rhythmic patterns.
IN: trigger IN: clock IN: root IN: reset OUT: note OUT: frequency OUT: trigger OUT: gate OUT: velocity OUT: sequence
GENERATIVE SEQ
L-SYSTEM
Lindenmayer system string rewriting mapped to melodies. Fractal self-similar sequences from simple production rules. 8 presets (algae, fibonacci, dragon, koch, plant) plus custom rule editor.
  • Clock → L-System step, L-System → Synth note — fractal melodic structures from Lindenmayer rules.
  • L-System → Filter cutoff, Sequencer → Synth note — fractal modulation of filter sweeps.
IN: clock IN: trigger OUT: note OUT: velocity OUT: trigger OUT: gate OUT: octave OUT: sequence
GENERATIVE SEQ
MARKOV CHAIN
Learn note transition probabilities from input streams, then generate new sequences that are statistically similar. Configurable order (1-4), temperature, and sequence length. Transition matrix visualization.
  • Keyboard → Markov learn, Markov → Synth note — learns your playing, generates variations.
  • Clock → Markov trigger, Markov → Arpeggiator note — probabilistic note sequences at clock rate.
IN: note IN: trigger IN: clock OUT: note OUT: velocity OUT: trigger OUT: gate OUT: sequence
PITCH QUANTIZER
QUANTIZER
Pitch quantizer. Snaps a continuous frequency signal to the nearest degree of a selected scale. Chromatic, major, minor, pentatonic, blues, and all modal scales supported. Root note and scale are configurable or can be received from a MIDI CALC module via LINK. Outputs quantized frequency (Hz) and raw signal. Use after an LFO or random source to produce musically coherent pitch sequences.
  • LFO (random) → Quantizer (minor) → Synth freq — random but in-key melodic movement.
  • Noise → Sample & Hold → Quantizer → Oscillator freq — classic quantized random sequence.
  • MIDI Calc → Quantizer scale, Sequencer → Quantizer signal — force a CV sequence into a specific scale.
IN: signal IN: root IN: scale OUT: frequency OUT: signal
GENERATIVE SEQ
RHYTHM PATTERN
Multi-algorithm rhythm generator: Euclidean (Bjorklund), Hexbeat, Probabilistic, Rotation, Binary, Interference (XOR/AND), and Fibonacci. Visual step grid with accents, mutation for evolving patterns, and clickable manual editing. 7 algorithms in one module.
  • Clock → Rhythm Pattern, Pattern → Drum Machine trigger — algorithmic rhythm generation.
  • Rhythm Pattern → Gate control, Synth → Gate signal — patterned gating of sustained synth.
IN: clock IN: trigger IN: reset IN: density OUT: trigger OUT: gate OUT: accent OUT: pattern OUT: step
SCALE MAPPER
SCALE / MAP
Range remapper -- transforms a signal from one value domain to another. Configure input range (e.g. -1 to +1) and output range (e.g. 200 to 2000 Hz) with linear, exponential, or logarithmic transfer curves. Essential for routing modulation between modules with different value expectations. Optional clamping prevents out-of-range values.
  • LFO (-1..+1) → Scale/Map (200..2000 Hz) → Filter cutoff — full-range filter sweep from bipolar source.
  • Envelope (0..1) → Scale/Map (48..72 MIDI, exp) → Osc freq — pitch envelope with exponential curve.
  • RNG (0..1) → Scale/Map (100..800ms) → Delay time — randomized delay times within musical range.
IN: signal OUT: signal
GENERATIVE SEQ
SCRIBBLETUNE
Pattern-based music scripting with intuitive x/- notation. Type "x-x-x---x-x-" for rhythm, map to scales or chord progressions. Notes and pattern cycle independently for polymetric effects. 12 built-in scales, internal clock, and swing.
  • Scribbletune → Synth note + trigger — Scribbletune clip patterns driving synthesis.
  • Clock → Scribbletune, Scribbletune → MIDI Server — generative patterns to external hardware.
IN: trigger IN: clock IN: reset IN: bpm OUT: note OUT: frequency OUT: trigger OUT: gate OUT: velocity OUT: pattern
STEP SEQUENCER
SEQUENCER
8-step CV sequencer. Each step holds an adjustable value that is output when that step is active. Advances on trigger input from a clock or external source. Forward, reverse, pendulum, and random playback modes. Outputs current step value and step index. Step values are individually editable.
  • Clock → Sequencer → Oscillator freq — 8-step melody from manually set pitches.
  • Clock → Sequencer → Filter cutoff — stepped filter pattern per beat.
  • Euclid → Sequencer trigger, Sequencer → Delay time — irregular rhythmic delay time changes.
IN: trigger IN: reset OUT: signal OUT: step
GENERATIVE SEQ
SERIALISM
Algorithmic composition with Total-Serialism. Twelve-tone rows, retrograde, inversion, rotation, permutation, Euclidean/hexbeat rhythms, stochastic methods (random walk, drunk), Fibonacci, Pisano, and Collatz sequences. Transform and step through generated sequences.
  • Clock → Serialism step, Serialism → Synth note — twelve-tone row sequences.
  • Serialism → Filter cutoff + resonance — serial parameter control of effects.
IN: sequence IN: trigger IN: clock IN: reset OUT: note OUT: trigger OUT: gate OUT: sequence OUT: velocity
EDGE DETECTOR
TRIGGER
Signal edge detector and gate/trigger converter. Five modes: rising edge, falling edge, both edges, trigger-to-gate (with adjustable gate length), and gate-to-trigger. Configurable threshold sets the crossing point. Retrigger control allows or prevents re-firing during an active gate. Dual scope shows input signal and output pulses with threshold line overlay.
  • LFO (square) → Trigger (rising edge) → Sampler — convert continuous LFO into clean one-shot triggers.
  • Keyboard gate → Trigger (gate-to-trigger) → Envelope — re-trigger envelope on each new keypress.
  • Noise → Trigger (threshold 0.8) → Probability → Drums — stochastic rhythms from noise crossings.
IN: signal OUT: trigger OUT: gate OUT: signal
// Routing
THRESHOLD DETECT
COMPARATOR
Signal comparator and threshold detector. Outputs a gate/trigger when input A exceeds input B or a configurable threshold. Modes: A>B, A<B, A==B (within tolerance), and window (A between low and high bounds). Outputs gate on threshold crossing and trigger on each rising edge. Hysteresis control prevents chattering near the threshold.
  • dB Meter level → Comparator (threshold -12dB) → Trigger → Sampler — fire a sample when audio gets loud.
  • LFO → Comparator (window 0.3–0.7) → Gate → Synth — gate a synth only during part of the LFO cycle.
  • Envelope follower → Comparator → Clock Divider reset — reset rhythm on transient.
IN: A IN: B / threshold OUT: gate OUT: trigger
A/B BLEND
CROSSFADER
Mixes between two audio inputs A and B. Crossfade position is automatable via LINK with bipolar modulation -- connect an LFO for automated transitions or a sequencer for rhythmic crossfade patterns. Each channel has independent gain control. Standardized audio inputs on both A and B ports.
  • Synth A → Crossfader A, Synth B → Crossfader B, LFO → Crossfader fade — automated morph between two timbres.
  • Dry signal → Crossfader A, Reverb → Crossfader B, Sequencer → fade — stepped dry/wet mix per beat.
IN: audio A IN: audio B IN: fade OUT: fade
ARRANGEMENT
DAWCORE
4-track timeline/arrangement recorder. Arm tracks to capture signals as clips, play back with transport, loop markers, and tempo sync. Canvas timeline with clip waveforms, mute/solo per track, click-to-seek, and external clock sync.
  • Synth → DAWcore track 1, Drums → DAWcore track 2 — multitrack arrangement and recording.
  • DAWcore → IO (export WAV) — bounce full patch to audio file.
IN: signal1-4 IN: clock IN: transport OUT: signal OUT: trigger OUT: beat OUT: bar
GAIN STAGE
GAIN
Simple gain stage / VCA. Amplify, attenuate, or dynamically modulate signal level. Gain is automatable via LINK with bipolar modulation -- connect an LFO for tremolo, an envelope for amplitude shaping, or a sequencer for rhythmic gating. Standardized audio input.
  • Oscillator → Gain, LFO (fast) → Gain — tremolo effect from modulated amplitude.
  • Synth → Gain, Envelope → Gain — envelope-shaped volume contour per note.
  • Reverb → Gain, Sequencer → Gain — rhythmic gating of reverb tail.
IN: audio IN: gain OUT: gain
SIGNAL GATE
GATE
Signal gate / switch. Passes or blocks a signal based on a control input. Configurable pass and block modes with adjustable threshold and slew controls for smooth transitions. LINK the signal input and a separate control source to create voltage-controlled gates, ducking, or rhythmic chopping.
  • Synth → Gate signal, Clock → Gate control — rhythmic chopping of sustained synth tones.
  • Reverb → Gate signal, Drums → Gate control — gated reverb that opens only on drum hits.
  • Noise → Gate signal, Euclid → Gate control — euclidean-patterned noise bursts.
IN: signal IN: control OUT: signal OUT: state
SIGNAL LINK
LINK
Ableton Link bridge for network tempo synchronization. Connects to a local Link WebSocket bridge to sync tempo, beat position, and transport with Ableton Live, other DAWs, and any Link-enabled app on the network. Outputs beat pulses, phase, downbeat triggers, and peer count. Works standalone as an internal clock when no bridge is connected. Quantum sets beats per bar for phase alignment.
  • Link → Synth trigger, Link bpm → Clock bpm — tempo-synced triggers locked to Ableton Live.
  • Link signal → Clock Divider → Drums trigger — Link-synced subdivided drum pattern.
  • Link downbeat → Sequencer reset, Link signal → Sequencer advance — phrase-aligned sequencer synced to Link session.
IN: bpm IN: quantum IN: playing OUT: signal OUT: beat OUT: phase OUT: bpm OUT: downbeat OUT: numPeers
MATRIX ROUTER
MATRIX
Modulation routing matrix with 4 inputs and 4 outputs. Each crosspoint has a bipolar attenuator controlling how much of each input reaches each output. Route any combination of modulation sources to any combination of destinations with per-path scaling and polarity invert. The mult, attenuverter, and signal router of the system in one module.
  • LFO + Envelope + S&H → Matrix → Filter cutoff + Osc detune + Panner — complex multi-source modulation.
  • Single LFO → Matrix (different attenuations) → 4 Oscillators — one modulator, four scaled targets.
IN: in1–in4 OUT: out1–out4
SIGNAL SUMMING
MIXER
Multi-channel audio mixer with dynamically addable input channels. Each channel has an independent fader and mute toggle. LINK any number of node sources as input channels. Master gain is automatable via LINK with bipolar modulation. Output level metering.
  • Drums + Synth + Granular → Mixer → Compressor → IO (output) — submix of all sources into a mastered output.
  • Multiple effects returns → Mixer, LFO → Mixer master — modulated master bus for tremolo on entire mix.
IN: audio (dynamic) IN: master mod OUT: master
SUB-PATCH
NESTED
Sub-patch container that encapsulates a group of objects as a single reusable module. Define named inlets and outlets to create a custom interface, then wire any configuration of objects inside. From outside, it looks and wires like any single object. Audio from internal objects passes through automatically. Pop-out full editor for complex sub-patches.
  • LFO → Nested [pitch → OSC → outlet] → Mixer — encapsulated oscillator with external pitch control.
  • Nested [Noise → Filter → VCA → outlet] → Reverb → IO — self-contained subtractive voice patch.
IN: user-defined inlets OUT: user-defined outlets
AUDIO RECORDER
RECORDER
Audio capture module. Records from microphone, system audio, or node signal to downloadable audio files. Configurable maximum duration (5–300 seconds). Real-time level metering during recording. Multiple takes stored in session with individual download and delete controls. The missing link between patching and producing.
  • Mixer out → Recorder — capture a full mix for export to DAW.
  • Granular → Reverb → Recorder — render a texture pass as a reusable sample.
  • IO (mic) → Recorder — grab field recordings for later use in Sampler or Granular.
OUT: recording OUT: duration
SIGNAL SPLITTER
SPLITTER
Signal duplicator and distributor. Takes one input and fans it to 2–4 outputs, each with an independent attenuator and polarity invert. Essential for sending one modulation source to multiple destinations at different depths without requiring each destination to subscribe to the same node independently.
  • LFO → Splitter (out1: 100%, out2: 50%, out3: -30%) → Filter + Panner + Gain — one source, three scaled targets.
  • Keyboard gate → Splitter → Envelope + Drums trigger + VCA — fan out a single gate to multiple modules.
IN: signal OUT: out1–out4 OUT: level1–4
SIGNAL SWITCH
SWITCH
CV-controlled signal selector. Routes one of 2–4 inputs to a single output. Manual, CV, sequential, or random selection modes. In CV mode, bipolar input maps across available channels. Sequential mode advances on each trigger. Random mode picks a new channel on each trigger. Smoothing control for click-free transitions between channels.
  • 3 Osc (different waveforms) → Switch, Clock → Switch CV — rotating timbres on each beat.
  • 4 Delay (different times) → Switch (random), Euclid → Switch trigger — stochastic multi-tap delay.
  • 2 Sequencers → Switch, LFO (slow square) → Switch CV — alternating melodic phrases A/B.
IN: in1–in4 IN: cv OUT: signal OUT: active
// Live Coding
LIVE CODING
DITTYTOY
Minimalist generative music DSL. Entire compositions in ~20 lines using loop(), play(), sleep(). Independent loops for polyrhythm, built-in synths (sine, saw, pluck, fm), note constants (c4, d4...). Steve Reich-style phasing in one preset.
  • Dittytoy → Filter → Reverb → IO — Dittytoy synthesis processed through effects chain.
  • LFO → Dittytoy param, Clock → Dittytoy bpm — modulated live-coded synthesis.
IN: trigger IN: gate IN: bpm IN: cv1 OUT: signal OUT: note OUT: trigger OUT: frequency
LIVE CODING
ELEMENTARY AUDIO
Functional reactive audio DSP using Elementary.js. Write JavaScript with Elementary's el.* functions to define signal graphs that render to WebAudio in real-time. el.const() declarations become controllable parameters with full EW modulation support. Supports the complete Elementary library: oscillators, filters, delays, dynamics, math, sample playback, and composable signal chains. Hot-reloads without audio glitches.
  • LFO → Elementary frequency → el.cycle() FM synth — modulate Elementary params from EW Objects.
  • Elementary (el.delay + el.lowpass) → signal → Scope — build custom effects with functional composition.
  • cv1-cv4 → Elementary → el.select() conditional routing — data-driven DSP graphs with EW control signals.
IN: trigger IN: frequency IN: gate IN: cv1-cv4 OUT: signal OUT: frequency OUT: gate OUT: cv1-cv4
LIVE CODING
FAUST DSP
In-browser Faust compiler and DSP runtime. Write Faust code in the built-in editor, compile to WebAssembly AudioWorklet, and run high-performance DSP directly in the browser — no external tools needed. Parameters declared in Faust code (hslider, vslider, nentry, button) are auto-discovered and exposed as controllable sliders with full EW modulation support. Supports the entire Faust standard library (oscillators, filters, effects, analysis).
  • LFO → Faust DSP frequency → custom FM synth — modulate Faust parameters from EW Objects.
  • Faust DSP (reverb) → signal → Scope — use Faust as an inline DSP effect processor.
  • Sequencer gate + freq → Faust DSP → physical model — drive Faust instruments from EW sequencers.
IN: trigger IN: frequency IN: gate IN: cv1-cv4 OUT: signal OUT: frequency OUT: gate OUT: cv1-cv4
LIVE CODING
GIBBER
Browser-based live coding with AudioWorklet synthesis. Synth, FM, Monosynth, Drums with .seq() pattern sequencing. Immediate feedback, expressive API by Charlie Roberts.
  • Gibber → Delay → Reverb → IO — live-coded audio with spatial effects.
  • MIDI I/O → Gibber note, Gibber → IO — MIDI-controlled live coding.
IN: code IN: bpm OUT: signal OUT: running OUT: bpm
LIVE CODING
GLICOL
Rust-to-WASM live coding language. Graph-oriented, sample-accurate synthesis. Type code, compile, run as AudioWorklet. MIT licensed, browser-native.
  • Glicol → Filter → IO — Rust/WASM live-coded synthesis with filtering.
  • Clock → Glicol bpm, Glicol → Reverb → IO — synced live-coded audio with reverb.
IN: code IN: bpm OUT: signal OUT: running OUT: bpm
LIVE CODING
KABELSALAT
Single-sample feedback DSP live coding. True sample-level feedback loops for feedback FM, physical modeling, chaotic oscillators, and waveguide strings. Write expressions with sine(), delay(), feedback() — impossible in standard Web Audio.
  • Kabelsalat → Filter → IO — node-graph synthesis with downstream filtering.
  • LFO → Kabelsalat param, Kabelsalat → IO — modulated patch-based synthesis.
IN: trigger IN: frequency IN: gate IN: cv1 IN: cv2 OUT: signal OUT: frequency OUT: trigger OUT: cv1
LIVE CODING
MERCURY
Minimal live coding language with ring-based sequencing and Euclidean rhythms. Tone.js backend. Simple syntax for rapid algorithmic music composition.
  • Mercury → Reverb → IO — ring-based live coding with reverb wash.
  • Clock → Mercury bpm, Mercury → Delay → IO — synced minimal live coding with delay.
IN: code IN: bpm OUT: signal OUT: note OUT: trigger OUT: running
GRID SEQUENCER
ORCA
Esoteric 2D grid-based sequencer. Each cell is an operator (Clock, Note, Trigger, Add, etc.). Visual programming for generative MIDI patterns. Keyboard-driven editing.
  • Orca → Synth note + trigger — 2D grid sequencer driving synthesis.
  • Orca → MIDI Server → hardware synth — Orca patterns to external gear.
  • Clock → Orca bpm, Orca → Drum Machine trigger — grid-sequenced drum triggers.
IN: clock IN: bpm OUT: note OUT: velocity OUT: cc OUT: trigger OUT: bang
LIVE CODING
STRUDEL
In-browser Tidal Cycles pattern language (Strudel). Write mini-notation patterns that generate rhythmic and melodic sequences, outputting trigger, note, velocity, and control signals to other EW Objects. Includes built-in WebAudio synths for direct audio output or can operate as a pure control signal source. Transport with BPM control, cycle position display, and event log. Supports the full Strudel pattern library: mini-notation, tonal functions (scales, chords), euclidean rhythms, and pattern combinators.
  • Strudel trigger + freq → Synth — algorithmic sequences driving EW synths.
  • Strudel cv1-cv4 → Filter + Delay params — pattern-driven parameter automation.
  • Clock bpm → Strudel → polyrhythmic triggers → Drums — sync Strudel to EW clock for live performance.
IN: bpm IN: trigger IN: gate IN: pattern OUT: trigger OUT: frequency OUT: note OUT: velocity OUT: cv1-cv4
// Coding Bridges
BRIDGE
CHUCK
ChucK strongly-timed audio language bridge via OSC (ports 6449/6450). Use OscIn/OscOut in ChucK to send/receive EW signals. Includes code editor for live-coding ChucK programs.
  • ChucK → Filter → Reverb → IO — strongly-timed audio with effects processing.
  • Sequencer → ChucK (OSC), ChucK → IO — EW-sequenced ChucK instrument.
IN: trigger IN: frequency IN: gate IN: cv1-cv4 OUT: signal OUT: frequency OUT: gate OUT: cv1-cv4
BRIDGE
CSOUND
Bidirectional bridge between Csound and the EW Object signal network via OSC/WebSocket translation. Runs a Node.js bridge process locally that connects Csound's native OSC opcodes (OSClisten/OSCsend) to EW rooms. Includes a base orchestra (EWBridge.csd) with always-on infrastructure instruments for signal routing, a browser-based code editor for live-injecting instruments via Csound's UDP eval port, signal monitoring, and NTP clock sync forwarding. User instruments start at instr 10+ and read/write global k-rate buses.
  • LFO → Csound Bridge freq → gk_frequency → Csound instrument — modulate Csound instruments from EW Objects.
  • Csound ptrack analysis → gk_out_frequency → Csound Bridge → Scope — visualize Csound audio analysis in the EW network.
  • Sequencer → Csound Bridge gate + freq → Csound event_i triggers — drive Csound instruments from EW sequencers.
  • Csound granular → gk_out_signal → Csound Bridge → Filter → Scope — route Csound synthesis into EW effects chain.
IN: trigger IN: frequency IN: gate IN: amp IN: cv1-cv4 OUT: signal OUT: frequency OUT: gate OUT: amp OUT: cv1-cv4
BRIDGE
FOXDOT
Python live-coding bridge via OSC. FoxDot patterns send note/amp/dur events that map to EW signals. Includes code editor for live-coding Python patterns that drive SuperDirt synthesis.
  • FoxDot → Reverb → IO — Python live coding with spatial effects.
  • Clock → FoxDot bpm, FoxDot → Delay → IO — synced FoxDot patterns with echo.
IN: trigger IN: frequency IN: gate IN: cv1-cv4 OUT: signal OUT: frequency OUT: gate OUT: cv1-cv4
BRIDGE
OVERTONE
Clojure live-coding bridge via SuperCollider server. Overtone talks to scsynth directly over OSC. Includes code editor for Clojure-based synthesis and pattern definitions.
  • Overtone → Filter → IO — Clojure/SuperCollider synthesis with filtering.
  • Sequencer → Overtone (OSC), Overtone → IO — EW-sequenced Overtone instrument.
IN: trigger IN: frequency IN: gate IN: cv1-cv4 OUT: signal OUT: frequency OUT: gate OUT: cv1-cv4
BRIDGE
PURE DATA
Bidirectional bridge between Pure Data (Pd) and the EW Object signal network via OSC/WebSocket translation. Runs a Node.js bridge process locally that connects Pd's mrpeach OSC externals to EW rooms. Includes a browser-based WebPd compiler object that runs .pd patches directly in the browser via AudioWorklet — no Pd install needed for basic patches. The bridge supports room subscriptions from Pd via OSC commands, NTP clock sync forwarding, and optional Pd subprocess management. Ships with a helper patch (ew-bridge.pd) for quick integration.
  • LFO → Pd Bridge freq → [osc~] frequency — modulate Pd patches from EW Objects.
  • Pd [send ew-signal] → Pd Bridge → Scope — visualize Pd output in the EW network.
  • Sequencer → Pd Bridge gate + freq → Pd [metro] triggers — drive Pd instruments from EW sequencers.
  • WebPd (browser) → paste .pd patch → AudioWorklet DSP — run Pd patches in-browser without installing Pd.
IN: trigger IN: frequency IN: gate IN: amp IN: cv1-cv4 OUT: signal OUT: frequency OUT: gate OUT: amp OUT: cv1-cv4
BRIDGE
SONIC PI
Sonic Pi live-coding bridge via OSC (server port 4560, GUI cues 4559). Use osc_send in Sonic Pi or receive via sync "/osc*/ew/...". Includes code editor for Ruby-based live patterns.
  • Sonic Pi → Reverb → IO — Ruby live coding with reverb processing.
  • Clock → Sonic Pi bpm, Sonic Pi → Delay → IO — synced Sonic Pi with delay tail.
IN: trigger IN: frequency IN: gate IN: cv1-cv4 OUT: signal OUT: frequency OUT: gate OUT: cv1-cv4
BRIDGE
SUPERCOLLIDER
Bidirectional bridge between SuperCollider and the EW Object signal network via OSC/WebSocket translation. Runs a Node.js bridge process locally that connects SC's native OSC protocol to EW rooms. Includes a browser-based code editor for live-coding SC from the dashboard, signal monitoring, and an sclang class library (EWBridge.sc) for easy integration. Supports room subscriptions from SC via OSC commands, NTP clock sync forwarding, and optional sclang process management.
  • LFO → SC Bridge freq → SuperCollider SynthDef param — modulate SC synths from EW Objects.
  • SC amplitude analysis → SC Bridge signal → Scope — visualize SC audio data in the EW network.
  • Sequencer → SC Bridge gate + freq → SC pattern triggers — drive SuperCollider instruments from EW sequencers.
IN: trigger IN: frequency IN: gate IN: amp IN: cv1-cv4 OUT: signal OUT: frequency OUT: gate OUT: amp OUT: cv1-cv4
BRIDGE
THRUM
Bridge to thrum-next — an LLM-driven live-coded jam engine. Embeds a thrum-next jam session in a same-origin iframe (via reverse proxy), captures its audio output, and injects it into the EW Object signal network. The LLM (Gemini, Claude, or ChatGPT) generates patterns turn-by-turn using kyn fingerprints (stored musical identities) and framings (tarot, lunar phase, time-of-day). Select a jam by ID or load the launcher to start a new one. Audio is captured transparently — the jam plays normally while its output is tapped and metered for downstream processing.
  • Thrum jam → level → Hydra a.rms — AI-generated music drives live-coded visuals.
  • Thrum jam → Filter → Reverb → IO (output) — post-process AI jams through the EW effects chain.
IN: volume OUT: level OUT: active
// AI / ML
UNIFIED ANALYSIS
ANALYSIS
Unified audio analysis with selectable engines: Meyda (spectral features, chroma, MFCC), Aubio (WASM pitch/onset/tempo with 5 pitch algorithms), Essentia (key/scale detection, beat tracking). Mic or system audio. Superset of outputs across all engines.
  • Audio Input → Analysis, Analysis loudness → LFO rate — audio-reactive modulation speed.
  • Synth → Analysis, Analysis spectralCentroid → Filter cutoff — self-filtering based on spectral content.
OUT: pitch OUT: note OUT: onset OUT: bpm OUT: beat OUT: energy OUT: rms OUT: loudness OUT: spectralCentroid OUT: key OUT: scale OUT: chroma OUT: confidence
BEAT DETECTION
BPM DETECT
Unified BPM detection with selectable algorithms (spectral flux or energy-based). Mic, system audio, or EW signal input. Outputs BPM, beat triggers, downbeat markers, confidence, energy, and phase. Tap tempo and BPM lock.
  • Audio Input → BPM Detect, BPM Detect → Clock bpm — sync clock to external audio tempo.
  • Looper → BPM Detect → Arpeggiator bpm — match arpeggiator speed to loop tempo.
IN: signal IN: trigger OUT: bpm OUT: beat OUT: downbeat OUT: confidence OUT: energy OUT: phase
NLP
COMPROMISE
Lightweight NLP via compromise.js. Part-of-speech tagging, noun/verb/adjective extraction, sentence counting, tense detection, and basic sentiment analysis. Text-to-data for generative patches.
  • Compromise → Sequencer note (text-to-pitch mapping) — NLP-driven melodic generation from text.
  • Compromise sentiment → Filter cutoff — mood-reactive timbral control.
IN: text IN: trigger OUT: nouns OUT: verbs OUT: sentiment OUT: wordCount OUT: topics OUT: tense
ML PITCH DETECTION
CREPE
Neural network pitch detection via TensorFlow.js SPICE model. More accurate than autocorrelation for noisy/polyphonic sources. Outputs frequency, MIDI note, confidence, and normalized bipolar signal.
  • Audio Input → Crepe, Crepe pitch → Oscillator freq — voice-controlled pitch tracking to synth.
  • Audio Input → Crepe → Quantizer → Synth note — quantized pitch following.
OUT: frequency OUT: note OUT: noteName OUT: cents OUT: confidence OUT: signal
FACIAL EXPRESSION
FACE API
Facial expression detection via face-api.js. Outputs continuous 0-1 values for happy, sad, angry, surprised, neutral. Head position and roll angle. Use your face as a controller.
  • Face API expression → Filter cutoff + resonance — facial expression controls filter.
  • Face API mouth → VCA gain, Face API eyebrow → LFO rate — face-controlled dynamics and modulation.
OUT: happy OUT: sad OUT: angry OUT: surprised OUT: expression OUT: x OUT: y OUT: roll
HAND TRACKING
MEDIAPIPE
Real-time hand landmark tracking via MediaPipe. 21 keypoints per hand at 30fps. Gesture detection (pinch, fist, spread). Use hand position and gestures as modulation sources for any parameter.
  • MediaPipe hand X → Filter cutoff, hand Y → reverb mix — hand gestures control effects.
  • MediaPipe pinch → trigger, MediaPipe wrist Y → Synth note — gesture-played instrument.
OUT: x OUT: y OUT: z OUT: pinch OUT: spread OUT: fist OUT: gesture OUT: landmarks
MULTI-MODAL ML
ML5
Friendly ML via ml5.js. Sound classification (18 speech commands), image classification (MobileNet), and PoseNet body tracking. Outputs labels, confidence, and position coordinates as control signals.
  • Audio Input → ML5 classify, ML5 label → Select → Sampler — sound classification triggers samples.
  • ML5 (PoseNet) → XY position → Synth note + cutoff — body-controlled synthesis.
IN: trigger OUT: label OUT: confidence OUT: classes OUT: x OUT: y OUT: trigger
UNIVERSAL ML
ONNX RUNTIME
Load and run any .onnx model in the browser. WASM/WebGL/CPU backends. Paste a model URL, send input arrays via signal, get classification or regression outputs. Universal neural inference node.
  • Audio Input → ONNX model → parameter outputs — custom neural network audio analysis.
  • ONNX output → Sequencer pattern — ML-driven sequence generation.
IN: trigger IN: input OUT: output OUT: class OUT: confidence OUT: latency OUT: ready
GENERATIVE TEXT
RITA
RiTa.js generative text toolkit. Rhyme finding, syllable counting, phoneme analysis, Markov chain generation, grammar expansion. Convert text structure to rhythm — syllable counts become trigger patterns.
  • Rita rhyme → Synth note mapping — phonetic/rhyme-based pitch sequences.
  • Rita syllables → Rhythm Pattern — text-derived rhythmic patterns.
IN: text IN: trigger OUT: generated OUT: rhymes OUT: syllables OUT: phonemes OUT: pos
GENERATIVE DRAWING
SKETCH-RNN
Magenta Sketch-RNN generative drawing. AI draws cats, faces, guitars, and 30+ categories from learned strokes. Draw a seed and let the AI continue, or generate autonomously. Outputs x/y coordinates as control signals.
  • Sketch-RNN X → Oscillator freq, Y → Filter cutoff — AI drawing controls sound parameters.
  • Sketch-RNN → XY Scope display + Synth freq/amp — visible AI art as audible synthesis.
IN: trigger IN: temperature OUT: x OUT: y OUT: pen OUT: stroke OUT: drawing OUT: done
GENERATIVE VIDEO
STYLE TRANSFER
Real-time neural style transfer on webcam. Arbitrary style — upload any image or use built-in presets. Style strength is automatable (0-1), so audio can modulate how much stylization is applied per frame.
  • Style Transfer → GL texture input — neural style applied to visual output.
  • Audio Input → Analysis → Style Transfer blend — audio-reactive style mixing.
IN: strength IN: trigger OUT: fps OUT: ready OUT: frame
NLP / AI
TRANSFORMERS
HuggingFace Transformers.js pipelines in-browser. Sentiment analysis, text generation, summarization, zero-shot classification. Runs DistilBERT, GPT-2, DistilBART client-side via ONNX.
  • Transformers (text) → Sequencer notes — language model generates note sequences.
  • Transformers (audio) → classification → Select → Sampler — AI audio classification triggers samples.
IN: trigger IN: text OUT: result OUT: label OUT: score OUT: text OUT: latency
// Visualization
SPECTRUM ANALYZER
AUDIOMOTION
High-resolution audio spectrum analyzer (audiomotion-analyzer). 7 modes: bars, octave bands, line, mirror, radial, dual-mirror, radial-line. Custom gradient support. LED bars, lumi bars, peak indicators. Configurable smoothing, bar spacing, reflex. Outputs RMS and peak energy as signals.
  • Synth → IO, IO → Audiomotion — frequency spectrum visualization of synthesis.
  • Drum Machine → IO, IO → Audiomotion — real-time spectrum analyzer for drum mix.
IN: audio IN: mode IN: signal IN: sensitivity OUT: running OUT: rms OUT: peak
MILKDROP VISUALIZER
BUTTERCHURN
WebGL Milkdrop2 implementation with thousands of audio-reactive presets. Classic Winamp-era visualizations rendered in real-time. Microphone input or signal-driven. Browse presets, auto-advance, or trigger random changes from external signals.
  • IO audio → Butterchurn, LFO → Butterchurn preset — Milkdrop-style visuals with auto-cycling presets.
  • Drum Machine → IO → Butterchurn — beat-reactive Winamp visualizer.
IN: audio IN: preset IN: signal OUT: running OUT: presetName
LEVEL METER
DB METER
Real-time dB level meter with microphone input or node audio input via LINK. VU-style bar display with peak hold indicator. Configurable input source selection. Can output the measured level as a control signal for downstream modules -- use as an envelope follower to drive other parameters from audio dynamics.
  • Mixer → dB Meter, dB Meter level → Gain (sidechain) — envelope follower driving a VCA for ducking.
  • IO (mic) → dB Meter → Filter cutoff — voice dynamics controlling filter brightness.
  • Drums → dB Meter, dB Meter → Reverb wet — louder hits get more reverb automatically.
IN: audio OUT: signal
SPECTRUM
FFT ANALYZER
Logarithmic frequency spectrum analyzer. Displays real-time FFT magnitude from 20 Hz to Nyquist on a log-scaled axis with dB grid overlay. Configurable FFT size (1024–8192), smoothing, and dB range. Peak hold markers with decay. Outputs peak frequency and spectral centroid as control signals. Mic or node input source. Based on the SCOPE project's spectrum engine.
  • Synth → FFT Analyzer, FFT peak → Scale/Map → Filter cutoff — self-tracking filter follows dominant pitch.
  • Drums → FFT Analyzer, FFT centroid → LFO rate — brightness of drums controls modulation speed.
  • IO (mic) → FFT Analyzer, FFT peak → Quantizer → Osc freq — pitch tracking from live audio input.
IN: audio OUT: peak OUT: centroid
3D NETWORK GRAPH
FORCE GRAPH
Three.js-powered 3D force-directed graph. 6 topologies: random, ring, grid, tree, star, mesh. Audio-reactive — RMS pulses node size, signal rotates camera, trigger adds new nodes dynamically. Outputs node/link counts. Interactive drag and orbit controls.
  • Dashboard nodes → Force Graph — visualize patch topology as physics simulation.
  • LFO → Force Graph gravity — modulated graph physics.
IN: signal IN: rms IN: trigger IN: nodes IN: topology OUT: running OUT: nodeCount OUT: linkCount
3D ENGINE
GL
Real-time 3D visualizer inspired by Max/MSP Jitter. Renders one of 9 geometric primitives (box, sphere, torus, knot, icosahedron, octahedron, cylinder, cone, plane) with full HSL color control, emissive glow, and optional wireframe. Three independent rotation axes with speed-based animation. OrbitControls camera with adjustable distance and auto-orbit. UnrealBloomPass post-processing with automatable strength and radius. All 16 parameters use registerParam — connect LFOs, envelopes, sequencers, or any control source for fully modulated audio-reactive 3D visuals.
  • LFO (slow) → GL rotSpeedY, LFO (fast) → GL colorH — slowly rotating geometry with cycling hue.
  • dB Meter level → GL bloomStrength, Envelope → GL scale — audio-reactive bloom and pulsing geometry.
  • Sequencer → GL shape, RNG → GL subdivisions — generative morphing geometry driven by sequence.
IN: all 16 params
VISUAL LIVE CODING
HYDRA
Live-codeable GLSL video synthesizer. Audio-reactive visuals driven by WebSocket inputs (RMS, spectral centroid, onset). Composable visual transformations. Access audio values via a.rms, a.centroid, etc.
  • LFO → Hydra param, Audio Input → Analysis → Hydra — audio-reactive live-coded GLSL visuals.
  • Hydra → Video Mix with webcam — shader visuals composited with camera.
IN: rms IN: spectralCentroid IN: onset IN: signal IN: code OUT: running
SHADER PLAYER
ISF SHADER
Interactive Shader Format player with GLSL editor. Audio-reactive uniforms (RMS, signal). Preset library: plasma, tunnel, waveform, fractal. Custom shader compilation with error reporting.
  • LFO → ISF Shader param, Clock → ISF Shader trigger — modulated shader uniforms synced to beat.
  • Analysis → ISF Shader audio input — audio-reactive shader effects.
IN: rms IN: signal IN: param1 IN: param2 OUT: running
SCORE DISPLAY
NOTATION
VexFlow music notation rendering. Displays incoming MIDI notes as standard notation in real-time. Configurable clef and time signature. Dark-mode SVG rendering.
  • Sequencer → Notation note + trigger — real-time score display of sequences.
  • Keyboard → Notation, Notation → display — live notation of played notes.
IN: note IN: trigger IN: clear OUT: noteCount
PARTICLE SYSTEM
PARTICLE VIZ
Audio-reactive particle system built on PixiJS 8. Amplitude controls emission rate, frequency maps to particle color (log-scaled hue), onset triggers burst emissions, and bipolar signal applies wind force. 5 physics presets: fountain, explosion, rain, firefly, vortex. Up to 5000 particles with configurable lifetime, gravity, and size.
  • dB Meter → Particle Viz rms, FFT peak → frequency — full audio-reactive particle display.
  • Drums → onset, LFO → signal (wind) — beat-triggered bursts with swaying motion.
  • Clock → trigger (preset: explosion) — rhythmic particle bursts on every beat.
IN: rms IN: frequency IN: onset IN: signal IN: trigger OUT: particle-count
PITCH TRACKING
PITCH DETECT
Autocorrelation-based monophonic pitch detection with tuner display. Outputs frequency, MIDI note number, note name, cents deviation, and confidence. Pitch history visualization.
  • Audio Input → Pitch Detect, Pitch Detect → Oscillator freq — voice-tracked pitch following.
  • Audio Input → Pitch Detect → Quantizer → Synth note — auto-tuned pitch tracking to notes.
OUT: frequency OUT: note OUT: noteName OUT: cents OUT: confidence OUT: signal
GENERATIVE GEOMETRY
PTS
Pts.js creative coding framework. 6 modes: noise field, Delaunay triangulation, catmull-rom curves, orbital circles, Lissajous figures, Voronoi tessellation. All modes audio-reactive — signal warps geometry, RMS drives scale/intensity, frequency affects Lissajous ratios. Adjustable density parameter.
  • Analysis → PTS points, LFO → PTS rotation — audio-reactive 3D point visualization.
  • FFT Analyzer → PTS heights — spectrum-driven 3D landscape.
IN: signal IN: rms IN: frequency IN: mode IN: density OUT: running
GLSL POST-FX
REGL-FX
Custom fragment shader effects via regl (functional WebGL). 6 built-in effects: plasma, feedback, kaleidoscope, CRT simulation, tunnel, and wave. Live GLSL editor with Ctrl+Enter compile. Uniforms: time, signal, rms, frequency, resolution. Feedback buffer for recursive effects.
  • LFO → REGL-FX param, Clock → REGL-FX trigger — beat-synced WebGL post-processing.
  • Analysis → REGL-FX intensity — audio-reactive visual effects.
IN: signal IN: rms IN: frequency IN: effect IN: code OUT: running
OSCILLOSCOPE
SCOPE
Oscilloscope with adjustable time base (zoom) and vertical gain scaling. Trigger modes for stable waveform display. LINK any audio source node to visualize its waveform in real-time. Input-only -- does not produce audio output.
  • Oscillator → Scope — visualize raw waveform shape and verify synthesis output.
  • LFO → Scope — confirm modulation waveform and rate visually.
  • Wavefolder output → Scope — see the folded waveform shape in real-time.
IN: audio
FREQUENCY DISPLAY
SPECTRUM
Audio spectrum analyzer powered by audiomotion-analyzer. Multiple visualization modes (bars, radial, line, area, octave bands, LED). Extracts and outputs peak frequency, RMS level, and bass/mid/high band energies as control signals at 60 Hz. Configurable sensitivity (-120 to -20 dB), smoothing, and gradient styles. Theme-synced colors.
  • Mixer → Spectrum, Spectrum bass → Gain — bass-driven VCA for sidechain-style ducking.
  • IO (mic) → Spectrum, Spectrum peak → Oscillator freq — pitch tracking via peak frequency detection.
  • Drums → Spectrum, Spectrum high → Hydra signal — hi-hat energy driving visual brightness.
IN: audio OUT: peak OUT: rms OUT: bass OUT: mid OUT: high
ASCII ART ENGINE
TEXTMODE
Real-time ASCII/textmode art generator. 6 modes: plasma, matrix rain, wave, fire, scrolling text, Lissajous scope. Multiple charsets (blocks, ASCII, binary, hex, matrix, braille). Audio-reactive — RMS drives intensity, signal modulates patterns. Configurable grid resolution. Perfect CRT aesthetic.
  • Analysis → Textmode intensity, FFT → Textmode pattern — audio-reactive ASCII art visualization.
  • Sequencer → Textmode char, Clock → Textmode step — sequenced text-mode animation.
IN: signal IN: rms IN: frequency IN: mode IN: text OUT: running
PARTICLE SYSTEM
TSPARTICLES
Full-featured particle engine with 6 presets: links, stars, fire, snow, bubbles, attract. Signal input modulates velocity, RMS drives energy, trigger causes burst emissions. Configurable count, speed, size, and colors. Interactive — hover to repulse/attract particles.
  • Analysis loudness → TSParticles emission rate — audio-reactive particle bursts.
  • LFO → TSParticles gravity, Clock → TSParticles burst — modulated particle physics on beat.
IN: signal IN: rms IN: trigger IN: preset IN: color OUT: running OUT: count
XY DISPLAY
XY SCOPE
Lissajous / X-Y oscilloscope. Takes two signal inputs and plots one against the other on a 2D canvas. Classic for visualizing phase relationships, stereo correlation, and creating audiovisual art from oscillator pairs. Adjustable persistence (trail decay), line thickness, and color. Input-only -- purely visual, does not produce audio output.
  • Oscillator (sine 300 Hz) → X, Oscillator (sine 400 Hz) → Y — 3:4 Lissajous figure from harmonic ratio.
  • Left channel → X, Right channel → Y — stereo correlation meter for mix analysis.
  • LFO (slow sine) → X, LFO (fast sine) → Y — modulation phase relationship visualizer.
IN: X IN: Y
NEURAL PATTERN NETWORK
CPPN
Compositional Pattern-Producing Network — a neural net that maps coordinates to colors, creating infinite-resolution procedural textures. Mixed activation functions (sin, tanh, triangle, softsign). Continuous weight mutation produces evolving alien patterns. Rotational symmetry (1-12 fold) for mandala generation. Each randomize creates a unique visual genome.
  • Clock → CPPN trigger — new pattern every beat.
  • CPPN → Video Feedback — evolving neural feedback tunnel.
IN: rms, signal, trigger OUT: video
AI DEPTH-TO-3D
DEPTH 3D
MiDaS monocular depth estimation via ONNX Runtime converts any 2D video input into a displaced 3D mesh. Neural network infers per-pixel depth at ~5fps; Three.js renders at 60fps. Audio-reactive camera orbit and tilt. Three render modes: solid, wireframe, points.
  • Hydra → Depth 3D — shader visuals extruded into 3D.
  • Plasma → Depth 3D — plasma patterns as 3D terrain.
IN: video1, rms, signal OUT: video
GPU FRACTAL EXPLORER
FRACTAL
Real-time GPU-accelerated fractal renderer. Four fractal types: Mandelbrot, Julia, Burning Ship, and Tricorn. Deep zoom up to 5000x with smooth coloring and palette cycling. Julia set c-values are audio-modulatable for live morphing. Four color palettes: inferno, rainbow, electric, monochrome.
  • LFO → Fractal juliaReal — slowly morphing Julia set patterns.
  • Fractal → Video Feedback — infinite fractal feedback loops.
  • Fractal → Video Stylize (kaleidoscope) — kaleidoscopic fractal mandalas.
IN: rms IN: signal IN: param1 IN: param2 OUT: video
IFS FRACTAL FLAME
FRACTAL FLAME
Iterated Function System fractal flame renderer using the Flam3/Apophysis algorithm. Eight nonlinear variations (sinusoidal, spherical, swirl, horseshoe, polar, handkerchief, spiral) blendable in pairs. Log-density tone mapping with gamma control. Onset input randomizes transforms for beat-reactive shape changes. Rotational symmetry up to 8-fold.
  • Analysis onset → Fractal Flame onset — new flame shape every beat.
  • LFO → Fractal Flame blend — slowly morphing between variations.
  • Fractal Flame → Video Color (high sat) — vivid neon fractal flames.
IN: rms IN: signal IN: onset OUT: video
BEAM SIMULATOR
LASER
Laser beam pattern simulator with realistic glow, persistence trails, and additive blending. Four modes: Lissajous curves, spirograph hypotrochoids, rotating scanner, and regular polygon shapes. Frequency ratios determine pattern geometry. Rainbow mode cycles hue along the beam path.
  • LFO → Laser freqX — slowly evolving Lissajous patterns.
  • Clock → Laser trigger — beat-synced brightness flashes.
  • Laser → Video Feedback — infinite neon feedback tunnels.
IN: rms IN: signal IN: trigger OUT: video
NEURAL 3D SHAPES
NEURAL SDF
A neural network defines 3D shapes as signed distance fields, raymarched entirely in a WebGL fragment shader. Six base shapes with real-time weight mutation. The shape IS the network — morphing weights transforms one form into another. Audio-reactive deformation and camera orbit. Trigger randomizes all weights for instant new shapes.
  • Clock → Neural SDF trigger — new random shape every beat.
  • LFO → Neural SDF signal — rhythmic shape deformation.
IN: rms, signal, trigger OUT: video
DEMOSCENE PLASMA
PLASMA
Classic demoscene plasma with five modes: classic layered sine waves, diamond angular symmetry, spiral rotating arms, interference circular waves, and liquid flowing noise. Five color palettes: rainbow, fire, ice, acid, neon. Configurable distortion warp and layer count. Audio-reactive brightness and scale modulation.
  • LFO → Plasma distortion — pulsing warp animation.
  • Plasma → Video Feedback (high decay) — infinite plasma tunnels.
  • Audio Input → Analysis → Plasma rms — music-reactive plasma glow.
IN: rms IN: signal IN: frequency OUT: video
PSYCHEDELIC GENERATOR
PSYCHEDELIC
Multi-mode psychedelic visual generator. Five modes: reaction-diffusion organic patterns, moiré interference fringes, op-art concentric geometry, sacred geometry with configurable symmetry, and classic color cycling. All modes GPU-accelerated and audio-reactive. Onset input triggers hue shifts on each beat.
  • LFO → Psychedelic colorShift — continuous rainbow cycling.
  • Psychedelic → Video Feedback — infinite psychedelic tunnels.
  • Analysis onset → Psychedelic onset — beat-reactive color shifts.
IN: rms IN: signal IN: onset OUT: video
3D GAUSSIAN SPLATTING
SPLAT VIEWER
Point cloud viewer for 3D Gaussian Splatting scenes. Five procedural demo scenes (room, sphere, galaxy, terrain, crystal) plus drag-and-drop for .ply/.splat files from Polycam, Luma AI, etc. Audio-reactive camera orbit with distance, height, rotation, point size, and brightness controls. Up to 200K splats.
  • LFO → Splat Viewer camHeight — automated camera flyover.
  • Splat Viewer → Video Color — color-graded 3D point cloud.
IN: rms, signal, trigger OUT: video
TEXT RENDERER
TEXT VIDEO
Text-to-video generator with 150+ Google Fonts covering display, monospace, sans-serif, serif, handwritten, pixel, and decorative typefaces. Eight animation modes: static, scroll (left/right/up), typewriter, bounce, wave, and glitch. Full typographic control with font size, weight, alignment, color, outline, and glow shadow. Text input port for remote-controlled messages.
  • Text Video → Video Mix (over Hydra) — text overlaid on live visuals.
  • Message → Text Video text — remote-controlled text display.
  • Text Video (wave, rainbow) → Video Feedback — infinite chromatic text tunnel.
IN: text IN: rms IN: signal IN: trigger OUT: video
// Video FX
BLUR EFFECT
VIDEO BLUR
Three blur modes: normal (GPU CSS filter), zoom (radial multi-pass), and directional (motion along angle). Configurable passes, angle, and wet/dry mix. Modulate amount with audio for beat-reactive blur.
  • Hydra → Video Blur (zoom) → GL — radial motion blur on visuals.
  • RMS → Video Blur amount — audio-reactive blur pulses.
IN: video1 OUT: video OUT: mode OUT: amount OUT: mix
COLOR ADJUSTMENT
VIDEO COLOR
GPU-accelerated color correction via CSS canvas filters. Hue rotation, saturation, brightness, contrast, invert, sepia, and opacity. All parameters automatable — connect LFOs or audio signals for reactive color shifts. Chainable video effect.
  • Hydra → Video Color → GL — color-graded shader visuals.
  • LFO → Video Color hue — animated rainbow cycling.
IN: video1 OUT: video OUT: hue OUT: saturation OUT: brightness OUT: contrast
DISTORTION (WebGL)
VIDEO DISTORT
GPU fragment shader distortion effects. Five modes: wave (sine displacement), ripple (radial waves), bulge (lens magnification), swirl (vortex), and self-displacement (luminance-driven). Animated with configurable speed. All params automatable.
  • Hydra → Video Distort (ripple) → GL — water ripple effect.
  • RMS → Video Distort amount (wave) — audio-reactive wave wobble.
IN: video1 OUT: video OUT: mode OUT: amount OUT: frequency OUT: speed
TIME / FEEDBACK
VIDEO FEEDBACK
Ping-pong buffer feedback with decay, zoom, rotation, and offset. Creates trails, echoes, infinite tunnels, and spiral effects. Freeze mode holds the current frame. Small zoom/rotation values compound dramatically over time.
  • Hydra → Video Feedback (zoom 1.005) → GL — infinite tunnel zoom effect.
  • Onset → Video Feedback freeze — beat-synced frame capture.
IN: video1 OUT: video OUT: decay OUT: zoom OUT: rotation OUT: mix
GLITCH ART
VIDEO GLITCH
Multi-layer glitch effects combining WebGL and Canvas 2D. Four types: RGB shift (chromatic aberration), scan displacement (VHS-style), block corruption (datamosh), and noise overlay. Rate controls intermittent triggering for organic feel.
  • Hydra → Video Glitch → GL — glitched shader visuals.
  • Onset → Video Glitch rate — beat-triggered glitch bursts.
IN: video1 OUT: video OUT: rgbShift OUT: scanDisplace OUT: blockCorrupt
CHROMA / LUMA KEY
VIDEO KEY
WebGL chroma key (green screen) and luma key with adjustable tolerance, softness, and threshold. Output includes alpha transparency for compositing. Use with Video Mix to layer keyed footage over backgrounds.
  • Camera → Video Key (chroma) → Video Mix → GL — green screen compositing.
  • Hydra → Video Key (luma) → GL — brightness-based cutout.
IN: video1 OUT: video OUT: mode OUT: keyHue OUT: tolerance
TWO-SOURCE BLEND
VIDEO MIX
Two-input video mixer with 8 blend modes: normal, add, multiply, screen, difference, overlay, hard-light, exclusion. Crossfade between sources. GPU-accelerated via Canvas 2D composite operations.
  • Hydra → video1, ISF → video2 (screen) — additive blend of two sources.
  • LFO → Video Mix blend — automated crossfade transition.
IN: video1 IN: video2 OUT: video OUT: blend OUT: mode
VIDEO EXPORT
VIDEO RECORDER
Canvas video capture module. Records from any GL/canvas visual object via captureStream + MediaRecorder. WebM (VP9), MP4 (H.264), or animated GIF output. Configurable FPS (10-60) and bitrate (0.5-8 Mbps). Live preview, takes list with file sizes, and instant download.
  • Any video source → Video Recorder (capture) — record processed video to WebM.
  • Hydra → Video Recorder, Clock → start/stop — beat-synced recording of shader output.
IN: video1 OUT: recording OUT: duration
STYLIZE (WebGL)
VIDEO STYLIZE
GPU shader stylization effects. Five modes: halftone (CMYK dot pattern), edge detect (Sobel filter), kaleidoscope (polar segments), scanlines (CRT overlay), and posterize (reduced color depth). Control intensity, size, and segment count.
  • Hydra → Video Stylize (halftone) → GL — newspaper print dot effect.
  • LFO → Video Stylize segments (kaleidoscope) — morphing mandala patterns.
IN: video1 OUT: video OUT: mode OUT: intensity OUT: size OUT: segments
GEOMETRIC TRANSFORM
VIDEO TRANSFORM
Geometric video transformations: mirror (H/V/quad), flip, rotate, scale, tile (1-8x per axis), and offset/pan. All parameters automatable for animated geometric effects. Creates kaleidoscope-style tessellations when combined with tiling and rotation.
  • Hydra → Video Transform (mirror) → GL — symmetric reflection of visuals.
  • LFO → Video Transform rotation — continuously spinning video.
IN: video1 OUT: video OUT: mode OUT: rotation OUT: scale OUT: tileX OUT: tileY
VJ PERFORMANCE
VJ STROBE
Beat-synced strobe and flash tool for VJ performances. Four modes: free-running strobe, smooth sine pulse, one-shot flash, and blackout. Trigger, gate, and clock inputs for beat-locked operation. Strobe brightness output drives downstream video mix opacity for beat-reactive compositing. Manual FLASH button for live performance. Rainbow mode cycles hue per flash.
  • Clock → VJ Strobe trigger — beat-synced flash.
  • VJ Strobe strobe → Video Mix opacity — flash reveals second video.
  • Keyboard gate → VJ Strobe gate — hold-to-flash performance.
IN: trigger IN: gate IN: clock IN: rms IN: signal OUT: video OUT: strobe
// Utility
SIGNAL MATH
ATTENUVERTER
Scale, offset, and invert any signal. The most-used utility in modular synthesis. Configurable scale (-2x to +2x), offset (-1 to +1), and invert toggle. CV input modulates the scale amount for voltage-controlled attenuation. Clamp option constrains output to bipolar range. Visual bar meter shows input vs output in real-time.
  • LFO → Attenuverter (scale 0.3, offset 0.5) → Filter cutoff — gentle modulation around a center frequency.
  • Envelope → Attenuverter (invert) → Filter cutoff — inverted envelope for filter closing on note-on.
  • Sequencer → Attenuverter (scale 0.5, offset -0.2) → Osc freq — compress and shift a sequence into a specific pitch range.
IN: signal IN: cv OUT: signal
TRIGGER BURST
BURST
Trigger multiplier. On each input trigger, emits a rapid burst of N trigger pulses (1-32) with configurable interval (5ms to 1s). Acceleration parameter speeds up or slows down successive pulses within the burst. Outputs trigger pulse, current index within the burst, and end-of-burst signal. Use for fills, rolls, flams, and ratcheting effects.
  • Euclid → Burst (4, 30ms) → Sampler trigger — drum roll / buzz roll on euclidean hits.
  • Clock /4 → Burst (8, 60ms, accel +50%) → Synth trigger — accelerating ratchet fill every bar.
  • Fire → Burst (16, 20ms) → Counter → Switch CV — rapid-fire channel cycling on manual trigger.
IN: trigger IN: stop OUT: trigger OUT: index OUT: eob
CLOCK MULTIPLIER
CLOCK MULTIPLY
Multiplies an incoming clock signal by 1x to 16x. Measures the incoming clock period and generates evenly-spaced sub-ticks between input pulses. Swing parameter offsets even-numbered sub-ticks for groove. Phase output tracks position within the multiply cycle. Use with Clock Divider for polyrhythmic relationships.
  • Clock → Clock Multiply (×3) → Hi-Hat trigger — triplet hi-hats over a straight kick pattern.
  • Clock → Clock Multiply (×4) → Arpeggiator clock — 16th-note arpeggiation from quarter-note master clock.
  • Euclid → Clock Multiply (×2, swing 40%) → Synth trigger — swung double-time hits on euclidean pattern.
IN: clock IN: reset OUT: clock OUT: phase
AUDIO-TO-COLOR
COLOR ORGAN
Frequency-to-color mapper using Chroma.js. Converts incoming frequency signals to hue (log-scaled 20 Hz–20 kHz → 0°–360°), amplitude to brightness, and outputs full RGB, HSL, hex, and CSS color values at 30 Hz. Configurable color scales (rainbow, warm, cool, viridis, magma), hue offset, saturation, and brightness range. All params automatable.
  • Oscillator freq → Color Organ → Hydra (signal) — pitch-driven color for live visuals.
  • dB Meter → Color Organ rms, FFT peak → Color Organ freq — full audio-reactive color mapping.
  • LFO → Color Organ signal — smoothly cycling through the color spectrum.
IN: frequency IN: rms IN: signal OUT: r OUT: g OUT: b OUT: h OUT: s OUT: l OUT: hex OUT: css
ANNOTATION
COMMENT
Patch annotation tool. Leave text notes inside a patch to document signal flow, label sections, or record ideas. Outputs text as a string on trigger. Notes persist in saved patches and shared URLs.
  • Clock → Comment (trigger) → Debug — emit stored text on each beat.
  • Add Comment next to a complex signal chain — document intent for collaborators.
IN: trigger OUT: text
LOGIC
CONDITIONAL
If/else signal router. Compares input A against input B with a selectable operator (>, <, >=, <=, ==, !=, &&, ||) and routes a value to either the TRUE or FALSE output. The optional VALUE input determines what gets routed (defaults to A). Accepts any type for comparison and routing. Essential for branching logic in generative patches.
  • LFO → Conditional A, Number (0.5) → B, (>) true → Synth, false → Drums — route to synth when LFO is high, drums when low.
  • Counter → Conditional A, Number (7) → B, (==) true → Reset — fire a reset signal when counter hits 7.
  • RNG → Conditional A + VALUE, Number (0) → B, (>) true → Gain — half-wave rectifier: only positive values pass.
IN: A (any) IN: B (any) IN: value (any) OUT: true OUT: false OUT: result
STEP COUNTER
COUNTER
Counts triggers up or down. Configurable min, max, step, and mode (wrap, clamp, bounce). Reset input returns to start. Carry output fires on wraparound. Build step sequencers, clock dividers, or nested loops from this primitive.
  • Clock → Counter (0-7) → Select → 8 Messages — 8-step sequencer from basic building blocks.
  • Clock → Counter (wrap) → carry → second Counter — nested loop for multi-bar patterns.
IN: trigger IN: signal IN: reset IN: direction OUT: signal OUT: value OUT: carry
SIGNAL INSPECTOR
DEBUG
Signal inspector and protocol analyzer. Subscribe to any node and log every incoming signal with timestamp, port name, value type, and raw value. Pause, clear, and autoscroll controls. Shows message rate (msgs/sec) and total count stats. Essential for diagnosing signal flow, verifying port names, and debugging connections between modules.
  • Subscribe Debug to any node → view raw signal messages — verify port names and value formats being sent.
  • Debug on Clock node → confirm trigger timing and BPM data — verify clock is broadcasting at expected rate.
IN: input (any) OUT: (display only)
SIGNAL DELAY
DELAY LINE
Control signal delay. Buffers incoming values and replays them after a configurable delay time (10ms to 5s). Two taps at adjustable positions provide earlier access to buffered values. TIME mode delays by milliseconds; TRIGGER mode holds values and releases one on each trigger input. Accepts any type. Use for offsetting timing between control signals.
  • Sequencer note → Delay Line (200ms) → Synth B freq — second voice echoes the first by one beat.
  • Envelope → Delay Line, tap1 → Filter, tap2 → Panner — staggered envelope copies driving different parameters.
  • Clock → Delay Line (trigger mode), Fire → trigger — manual step-through of buffered clock events.
IN: signal (any) IN: trigger IN: clear OUT: signal OUT: tap1 OUT: tap2
CURVE SHAPER
EXP
Exponential curve shaper. Applies nonlinear transfer functions to signals for waveshaping, response curves, and saturation. Four modes: power (x^n), exponential (normalized e^x), logarithmic (normalized log), and tanh (soft saturation). Configurable exponent, gain, offset, bipolar sign-preservation, and output clamping. Includes a live transfer curve preview showing the current shaping function.
  • LFO → Exp (power, exp=2) → VCA — squared modulation for natural-feeling amplitude curves.
  • Oscillator → Exp (tanh, exp=3) → Gain — soft clipping / saturation distortion.
  • Envelope → Exp (logarithmic) → Filter cutoff — logarithmic response for perceptually even filter sweeps.
IN: signal OUT: signal
TRIGGER BUTTON
FIRE
Manual trigger button. Click to emit a single impulse on the trigger output. Any signal arriving at the trigger input also fires through, making it a visual indicator for upstream events. Use as a patch starting point to manually initiate sequences, test downstream modules, or inject one-shot events into a running patch.
  • Fire → Sampler trigger — manually trigger a sample on demand.
  • Fire → Message trigger → Synth — click to send a stored value to any destination.
  • Clock → Fire (passthrough) → Envelope — visual monitor of clock pulses with LED flash.
IN: trigger OUT: trigger
CODE
JS CONSOLE
Sandboxed JavaScript execution environment for live coding, signal inspection, and programmable transforms. All user code runs in an isolated Web Worker with no DOM or network access. Three modes: REPL (evaluate expressions), TRANSFORM (process every incoming signal through a user-defined function), and SCRIPT (run multi-line code once). Includes emit(), log(), getInput(), and getInputs() APIs for interacting with the signal network.
  • Subscribe Console to any node → view signal values in real-time log — inspect signal flow without disruption.
  • Transform mode: emit("out", signal.value * 2, "hz") → frequency doubler — create custom DSP logic inline.
  • REPL: emit("trigger", 1) → manually fire signals on demand — test and debug downstream modules.
IN: input (any) OUT: signal
SAMPLE LATCH
LATCH
Value store with trigger capture. Holds a value in memory until a trigger input captures the current input value. Two modes: TRIGGER (store only on trigger) and SAMPLE (continuous pass-through until trigger freezes). Accepts any type -- numbers, strings, booleans. Reset input clears to zero. Essential for freezing a value at a specific moment.
  • LFO → Latch value, Clock → Latch trigger → Synth freq — stepped pitch from continuous source, quantized to beat.
  • Noise → Latch value, Fire → Latch trigger → Delay time — freeze a random delay time on manual click.
  • Message → Latch value, Comparator → Latch trigger — capture a string/command when a condition is met.
IN: value (any) IN: trigger IN: reset OUT: signal (any)
BOOLEAN LOGIC
LOGIC
Boolean logic gate for combining trigger and gate signals. AND, OR, XOR, NAND, NOR, and NOT operations with configurable input thresholds. LINK two signal sources to inputs A and B. Output is a bipolar trigger signal. Use to build conditional trigger routing, clock dividers, and pattern combinators.
  • Euclid A → Logic A, Euclid B → Logic B (AND) → Sampler — trigger fires only when both patterns align.
  • Clock → Logic A, Probability → Logic B (XOR) → Synth trigger — complex rhythmic variation from boolean combination.
  • Gate A → Logic (OR), Gate B → Logic → Envelope trigger — envelope fires from either of two sources.
IN: A IN: B OUT: signal
VALUE MAPPER
LOOKUP TABLE
Drawable transfer function / waveshaper. Maps input (-1 to +1) to output (-1 to +1) through a user-defined 64-point curve. Draw directly on the canvas to create custom response curves, or choose from 8 presets: linear, exponential, logarithmic, sine, S-curve, staircase, rectify, and invert. Interpolated lookup for smooth output. Curve is saved with patch state.
  • Oscillator → Lookup Table (S-curve) → Gain — soft saturation waveshaping distortion.
  • LFO → Lookup Table (staircase) → Osc freq — quantized LFO creates stepped pitch patterns.
  • Envelope → Lookup Table (custom curve) → Filter cutoff — hand-drawn envelope shape for unique filter sweeps.
IN: signal IN: reset OUT: signal
SIGNAL MATH
MATH
Signal math processor -- combines two inputs with a selectable operation: add, subtract, multiply, divide, min, max, or average. LINK any two signal sources to inputs A and B. Output updates in real-time. Use for signal scaling, offset, ring modulation (multiply), or creating complex control voltages from simple sources.
  • LFO A → Math A, LFO B → Math B (multiply) → Filter cutoff — ring-modulated control signal for complex modulation.
  • Sequencer → Math A, constant offset → Math B (add) → Osc freq — transpose a sequence up by a fixed interval.
  • Envelope → Math A, LFO → Math B (max) → Gain — whichever signal is louder wins.
IN: A IN: B OUT: signal
VALUE SENDER
MESSAGE
Stores a value and sends it when triggered. Type any string, number, or command into the text field, then click SEND, press Enter, or connect an upstream trigger to fire the stored content on the message output. The set input changes the stored value without sending. Use for sending note names, frequencies, commands, file paths, or any constant to downstream modules on demand.
  • Message ("C4") → Fire trigger → Synth note — send a specific note on each trigger.
  • Fire → Message ("reset") → Sequencer command — manually reset a sequencer with one click.
  • Clock → Message ("kick.wav") → Sampler load — retrigger sample load on every beat.
IN: trigger IN: value IN: set OUT: message
MIDI UTILITY
MIDI CALC
Scale and chord reference calculator. Select any root note and mode (major, minor, dorian, phrygian, lydian, mixolydian, locrian, pentatonic, blues, chromatic, and more) to see all scale degrees with their MIDI note numbers and frequencies in Hz. Outputs root, mode, and scale data to the node for downstream modules like the quantizer.
  • MIDI Calc (C minor) → Quantizer scale → Synth freq — constrain any pitch source to C minor.
  • MIDI Calc → Arpeggiator scale + root — set arpeggiator key and mode from one reference.
  • MIDI Calc (pentatonic) → Chord Sequencer scale — pentatonic chord voicings for the sequence.
OUT: root OUT: mode OUT: scale
NETWORK SYNC
MIDI SERVER
Web MIDI I/O bridge between hardware MIDI devices and the EW Object signal network. Transport with play/stop/record. Built-in clock generator with BPM control. Clock sync and channel filter/remap. MIDI recording with .mid file export. Full MIDI monitor logging CC, program change, pitch bend, and all events. Routes hardware note-on/off into frequency and gate signals for the network, and converts EW Object signals back out to hardware MIDI devices.
  • MIDI keyboard (hardware) → MIDI Server → Synth freq + gate — play hardware keyboard into the network.
  • Arpeggiator → MIDI Server → hardware synth — drive external MIDI gear from EW Objects.
  • MIDI Server clock → Drums + Sequencer — sync entire patch to hardware MIDI clock.
IN: trigger IN: frequency IN: gate IN: bpm OUT: midi OUT: frequency OUT: gate OUT: bpm OUT: signal
THEORY ANALYSIS
MUSIC THEORY
Tonal.js music theory engine. Scale generation, chord detection from input notes, chord progression suggestions, key analysis. Outputs scale notes as MIDI arrays for quantizers and sequencers.
  • Theory scale → Quantizer, Keyboard → Theory key — set quantizer scale from theory analysis.
  • Theory chord → Chord Sequencer voicing — theory-informed chord progressions.
IN: note IN: chord OUT: scale OUT: chord OUT: progression OUT: root OUT: key
UI CONTROL
NEXUS BUTTON
NexusUI momentary button firing a trigger impulse on press. Use for manual triggers, resets, and one-shot events.
  • Nexus Button → Envelope trigger → Synth — manual note trigger.
OUT: trigger
UI CONTROL
NEXUS DIAL
NexusUI rotary knob outputting normalized 0-1 value. Drag to set, accepts remote value input for bidirectional control.
  • Nexus Dial → Filter cutoff — manual filter sweep.
IN: value OUT: value
UI CONTROL
NEXUS SEQ
NexusUI 16x4 step sequencer grid. Toggle cells to set pattern. Advances on clock input rising edge. Outputs step index and row bitmask per step.
  • Clock → Nexus Seq clock, row → Drums — 4-voice drum pattern.
IN: clock IN: step OUT: step OUT: row
UI CONTROL
NEXUS SLIDER
NexusUI vertical slider outputting normalized 0-1 value. Drag to set, accepts remote value input for bidirectional control.
  • Nexus Slider → Gain level — manual volume fader.
IN: value OUT: value
UI CONTROL
NEXUS TOGGLE
NexusUI on/off switch outputting 0 or 1. Click to flip state. Accepts remote value for bidirectional control.
  • Nexus Toggle → Gate open — manual signal gate.
IN: value OUT: value
UI CONTROL
NEXUS UI
Unified NexusUI control surface. Add any combination of dials, sliders, buttons, toggles, XY pads, and sequencers on a free-drag canvas. Each widget gets independent output/input ports plus a merged "any" output.
  • Nexus UI dial-1 → Filter, slider-1 → Gain — custom mixer control surface.
IN: per-widget OUT: per-widget + any
UI CONTROL
NEXUS XY
NexusUI 2D position pad outputting separate X and Y values (0-1). Map each axis to a different parameter for two-dimensional control.
  • Nexus XY x → Filter cutoff, y → Filter Q — 2D filter exploration.
IN: x IN: y OUT: x OUT: y
VALUE DISPLAY
NUMBER
General-purpose number box. Enter a value via keyboard, slider, scroll wheel, or +/- buttons. Outputs immediately on change. Receives numbers on the value input and passes them through (display updates). Trigger input re-sends the current stored value. Configurable range (min/max) and step size — use for setting frequencies, MIDI notes, BPM, gain levels, or any numeric parameter.
  • Number (440) → Oscillator freq — manually set oscillator frequency with a slider.
  • Number (120) → Clock BPM — set tempo from a number box.
  • LFO → Number (passthrough) → Filter cutoff — monitor LFO values in real-time while patching through.
IN: value IN: trigger OUT: value
SIGNAL PACK
PACK
Combines multiple values into one message (PACK) or splits a message into separate outlets (UNPACK). Four slots: A is hot (triggers output on change), B/C/D are cold (set without firing). Switchable mode. Use for building compound messages or parsing them.
  • Sequencer → Pack A, Number → Pack B → Synth — combine note + velocity into one message.
  • Message → Pack (unpack) → separate outlets — split compound data into individual values.
IN: signal IN: a IN: b IN: c IN: d IN: trigger OUT: signal OUT: packed OUT: a OUT: b OUT: c OUT: d
ENVELOPE FOLLOWER
PEAK HOLD
Tracks and holds peak (maximum) and minimum values of an incoming signal. Outputs peak, min, and range (peak minus min) continuously. Configurable decay rate (hold forever or gradually release) and hold time (auto-reset after duration). Three-bar meter visualization showing current value, peak marker, and min marker. Reset input clears all tracked values.
  • LFO → Peak Hold → range → Filter Q — filter resonance tracks the amplitude range of the LFO.
  • dB Meter level → Peak Hold (decay 2/s) → peak → Compressor threshold — adaptive compression threshold from signal peaks.
  • RNG → Peak Hold (hold 1s) → peak → Gain level — gain follows the loudest random hit in the last second.
IN: signal IN: reset OUT: peak OUT: min OUT: range OUT: signal
POLYMETRIC CLOCK
POLY CLOCK
Multi-rate clock generator. Outputs 4 independent clock signals at configurable ratio multipliers (0.25x to 16x) relative to a master BPM. Each output runs at its own rate for polyrhythmic and polymetric patterns. Visual dot indicators flash on each output pulse. Start/stop/reset inputs for synchronized control. Built-in BPM control (20-300 BPM).
  • Poly Clock (120 BPM: ×1, ×1.5, ×2, ×3) → 4 Drums — polyrhythmic drum pattern from a single tempo source.
  • Poly Clock out1 → Kick, out2 → Hi-Hat, out3 → Snare, out4 → Perc — each drum voice at a different subdivision.
  • Poly Clock (×1, ×3, ×5, ×7) → 4 Sequencers — prime-ratio polymetric sequencing (phasing patterns).
IN: start IN: stop IN: reset OUT: out1–out4
RANGE SCALER
SCALE
Signal range mapper. Remaps an input signal from one numeric range to another with optional curve shaping. Configurable input range (IN MIN / IN MAX), output range (OUT MIN / OUT MAX), and a continuously variable curve control from logarithmic through linear to exponential. Clamp option constrains output to the target range. Use for converting between signal standards (bipolar to unipolar), frequency mapping, or any range translation.
  • LFO (-1..1) → Scale (0..1) → Filter cutoff — convert bipolar LFO to unipolar for frequency control.
  • Sequencer (0..7) → Scale (200..800, exp) → Osc freq — exponential pitch mapping from step values.
  • Envelope (0..1) → Scale (20..2000, log) → Filter — logarithmic envelope-to-cutoff for perceptually even sweep.
IN: signal OUT: signal
SELECTOR
SELECT
Routes input to numbered outlets based on value matching. Define a list of match values — when input matches, the corresponding outlet fires. Non-matching values go to 'nomatch'. Use for conditional routing, command dispatch, or demuxing.
  • Counter → Select (0,1,2,3) → four Synths — round-robin note distribution across voices.
  • Message → Select ('play','stop') → triggers — dispatch text commands to separate actions.
IN: value IN: signal OUT: 0 OUT: 1 OUT: 2 OUT: 3 OUT: nomatch
DELAY CHAIN
SHIFT REGISTER
Sequential value pipeline. On each clock pulse, pushes a new value into position 0 and shifts all existing values down. 8 tapped outputs provide access to each stage. Configurable length (2-16 stages). Accepts any type. Classic analog sequencing technique -- feed a single source through a shift register for cascading delayed copies of evolving patterns.
  • RNG → SR value, Clock → SR clock, out1-4 → 4 Synths — 4-voice canon with random notes cascading through voices.
  • Quantizer → SR value, Clock → SR clock, out1 + out5 → Mixer — melody with 4-step delayed echo at different pitch.
  • LFO → SR value, Clock /4 → SR clock → 8 Filter cutoffs — phase-shifted modulation across 8 parallel filters.
IN: value (any) IN: clock IN: reset OUT: out1–out8
SIGNAL STACK
STACK
LIFO/FIFO value queue. Push values onto the stack; pop them off in last-in-first-out (stack) or first-in-first-out (queue) order. Configurable max size (2-32). Accepts any type. Outputs current value on pop/peek, plus size, empty, and full status signals. Use for building undo buffers, note stacks, event queues, or delayed value recall.
  • Keyboard note → Stack push, Note-off → Stack pop → Synth freq — polyphonic note stack (last note priority).
  • Sequencer → Stack push (FIFO), Clock /4 → Stack pop → Synth — time-shifted playback of buffered sequence values.
  • RNG → Stack push, Fire → Stack pop → Delay time — recall stored random values on demand.
IN: push (any) IN: pop IN: peek IN: clear OUT: value OUT: size OUT: empty OUT: full
TEMPO DETECT
TAP TEMPO
Manual BPM detection via tapping. Tap the button (or send triggers to the tap input) to establish a tempo. Averages the last 2-8 tap intervals for stable BPM detection. Once established, outputs a continuous clock at the detected rate. Output multiplier scales the clock (0.25x to 4x). Spacebar support for hands-free tapping. Auto- resets after 3 seconds of inactivity.
  • Tap Tempo → clock → Sequencer clock — manually set the patch tempo by tapping along.
  • Tap Tempo → bpm → Delay time (60000/bpm/4) — sync delay time to tapped tempo.
  • MIDI note → Tap Tempo tap → clock → Drums — drums sync to the rate of incoming MIDI notes.
IN: tap IN: stop OUT: clock OUT: bpm OUT: ms
ON/OFF STATE
TOGGLE
On/off switch. Click or send a trigger to flip between 1 and 0. Outputs state on every change. Value input sets state directly (0 = off, nonzero = on). Use for start/stop, mute/unmute, mode switching, or any binary control.
  • Toggle → Gate control — manual mute/unmute for any signal path.
  • Fire → Toggle → Oscillator on/off — start/stop an oscillator with each click.
IN: trigger IN: value OUT: signal OUT: value
NETWORK VIEW
TOPOLOGY
Live signal-graph visualizer using Cytoscape.js. Queries the WebSocket server for all active modules and their subscriptions, renders them as an interactive node graph. Nodes colored by category, edges show signal flow. Click nodes to inspect. Multiple layout algorithms (cose, circle, grid, breadthfirst, concentric). Auto-refreshes on configurable interval.
  • Open Topology alongside Dashboard — see your entire patch as a graph diagram.
  • Click a node → selected-node output — use as a controller for other modules.
OUT: selected-node OUT: node-count OUT: edge-count
SPEECH RECOGNITION
VOICE CONTROL
Speech recognition module powered by Annyang and the Web Speech API. Recognizes voice commands ("play", "stop", "tempo 120", "up", "down", "louder", "softer", "mute", "reset") and outputs command name, trigger pulse, confidence level, and extracted numeric values. Hands-free performance control. Supports multiple languages.
  • Voice "play" → trigger output → Sampler trigger — trigger samples with your voice.
  • Voice "tempo 140" → value output → Clock BPM — set tempo by speaking the number.
  • Voice "louder"/"softer" → command → custom routing — hands-free gain control during performance.
OUT: command OUT: trigger OUT: value OUT: confidence
// Hardware I/O
EMBEDDED AUDIO
BELA
Bela embedded audio platform bridge via OSC. Analog inputs (0-7) map to cv outputs. Digital I/O maps to gate/trigger. Use liboscpack or oscpkt in your Bela C++ sketch to send/receive.
  • Bela analog in → EW Filter cutoff (CV control) — hardware sensors controlling software parameters.
  • LFO → Bela analog out → hardware modular — EW modulation sent to hardware.
IN: trigger IN: frequency IN: gate IN: cv1-cv4 OUT: signal OUT: analog0-1 OUT: cv1-cv4
CONTROLLER
GAMEPAD
Universal game controller and keyboard input. Supports Xbox, PlayStation, Switch Pro, 8BitDo, and generic HID gamepads. Analog sticks, triggers, 16 buttons, D-pad, and keyboard mapping with LEARN mode and named profiles.
  • Gamepad left-y → Osc freq, right-x → Filter cutoff — joystick-controlled synth
  • Gamepad buttons → Sampler triggers — rhythm game-style sample launching
IN: rumble OUT: left-x OUT: left-y OUT: right-x OUT: right-y OUT: triggers OUT: buttons OUT: key-gate OUT: mapped-1..8
MIDI
MIDI I/O
Full WebMidi.js v3 MIDI interface. Device enumeration, channel filtering, transpose, MIDI learn for CC mapping. Keyboard visualization. Note/velocity/gate/CC/pitchbend output.
  • Keyboard → MIDI I/O out → hardware synth — play external gear from EW keyboard.
  • MIDI I/O in (controller) → Synth note + trigger — hardware controller playing EW synth.
  • Sequencer → MIDI I/O out, MIDI I/O in → Sampler — bidirectional hardware integration.
IN: note IN: velocity OUT: note OUT: velocity OUT: gate OUT: cc0 OUT: cc1 OUT: pitchBend OUT: aftertouch
MONOME BRIDGE
NORNS
monome norns bridge via OSC (port 10111). Encoders map to enc1-3 outputs. Keys map to gate/trigger. Lua scripts can send/receive via osc.send and osc.event. Includes code editor for remote Lua eval.
  • Norns audio → EW Filter → Reverb → IO — Norns scripts processed in EW effects chain.
  • EW Sequencer → Norns (OSC), Norns → IO — EW-sequenced Norns instruments.
IN: trigger IN: frequency IN: gate IN: cv1-cv4 OUT: signal OUT: enc1-enc3 OUT: cv1-cv4
OSC BRIDGE
OSC
Generic Open Sound Control (OSC) bridge for bidirectional communication with any OSC-compatible software — Max/MSP, Ableton Live, TouchOSC, Pure Data, Resolume, or any custom application. Configurable listen port (incoming UDP) and send host/port (outgoing UDP) with editable address-to-port mapping tables in both directions. 8 CV ports (cv1–cv8) map to arbitrary OSC addresses. Real-time activity monitor shows all traffic. Auto-start option restores OSC on patch load. Requires local server (UDP not available on cloud deployments).
  • TouchOSC faders → OSC /1/fader1-8 → cv1-cv8 → Filter/Synth params — control EW synths from a tablet.
  • LFO → OSC cv1 → /synth/cutoff → Max/MSP — send EW modulation to external software.
IN: cv1-cv8 OUT: cv1-cv8
HARDWARE
SERIAL I/O
Web Serial API bridge for Arduino/Teensy/ESP32. 8 normalized input channels, configurable baud rate and protocol (CSV, JSON, raw, binary). Bidirectional communication with microcontrollers.
  • Serial I/O (Arduino sensor) → Filter cutoff — physical sensors controlling sound parameters.
  • LFO → Serial I/O out → LED/motor — EW modulation driving physical outputs.
IN: send IN: ch0 IN: ch1 OUT: ch0-ch7 OUT: raw OUT: connected
TOUCH CONTROL
TOUCHOSC
Physical/tablet OSC controller bridge. Faders map to fader1-4, XY pads to xy-x/xy-y, buttons to toggle/trigger. Works with TouchOSC, Protokol, Lemur, OSC/PILOT, or any OSC app.
  • TouchOSC fader → Synth cutoff + resonance — tablet/phone controlling synth parameters.
  • TouchOSC XY pad → Reverb mix + Delay time — two-axis effect control from mobile device.
IN: trigger IN: frequency IN: cv1-cv4 OUT: fader1-4 OUT: xy-x/y OUT: toggle1-2 OUT: trigger
PLUGIN HOST
WAM HOST
Web Audio Modules 2.0 plugin host. Load any WAM2 plugin (synths, effects, utilities). Standard plugin format with parameter automation and MIDI input.
  • Keyboard → WAM Host (plugin), WAM Host → IO — play Web Audio Module plugins from EW.
  • Sequencer → WAM Host note, LFO → WAM Host param — sequenced and modulated plugin instrument.
IN: note IN: velocity IN: gate IN: param OUT: signal OUT: loaded OUT: pluginName
// DAWs & Hosts
DAW BRIDGE
ARDOUR
Ardour open-source DAW via Web MIDI. Bidirectional note and CC routing. Use virtual MIDI ports (JACK MIDI, ALSA, IAC Driver) for connection. Notes map to frequency/gate/velocity, CC 1-4 to cv1-4.
  • Ardour → EW Filter → Reverb → IO — process Ardour tracks through EW effects.
  • EW Sequencer → Ardour MIDI track — EW-generated patterns recorded in Ardour.
IN: frequency IN: gate IN: velocity IN: cv1-cv4 OUT: frequency OUT: gate OUT: velocity OUT: cv1-cv4
DAW BRIDGE
LMMS
LMMS open-source DAW via Web MIDI. Use virtual MIDI ports for routing between LMMS and the browser. Notes map to frequency/gate/velocity, CC 1-4 to cv1-4.
  • LMMS → EW Filter → IO — LMMS output processed through EW effects.
  • EW Clock → LMMS tempo sync — synchronized tempo between EW and LMMS.
IN: frequency IN: gate IN: velocity IN: cv1-cv4 OUT: frequency OUT: gate OUT: velocity OUT: cv1-cv4
DAW BRIDGE
REAPER
REAPER DAW via Web MIDI. Bidirectional note and CC routing via virtual MIDI ports. ReaControlMIDI plugin useful for custom CC routing. Notes map to frequency/gate/velocity, CC 1-4 to cv1-4.
  • Reaper → EW Granular → Reverb → IO — granular processing of Reaper tracks.
  • EW Sequencer → Reaper (ReaControlMIDI) — EW sequences driving Reaper instruments.
IN: frequency IN: gate IN: velocity IN: cv1-cv4 OUT: frequency OUT: gate OUT: velocity OUT: cv1-cv4
MODULAR BRIDGE
VCV RACK
Bidirectional MIDI bridge between VCV Rack and the EW Object signal network. Configurable CC mapping with 8 incoming slots (VCV to EW) and 4 outgoing slots (EW to VCV). Supports bipolar and unipolar scaling per slot. Full note/gate/velocity routing in both directions. MIDI clock generation and sync (24ppqn) with selectable division. Built-in activity monitor, panic button, and per-channel filtering. Connects via virtual MIDI ports (IAC Driver on macOS, loopMIDI on Windows).
  • VCV Rack MIDI-CV → VCV Bridge → Synth freq + gate — play VCV sequencers into the EW network.
  • LFO → VCV Bridge cv1 → VCV Rack CC1 → Filter cutoff — modulate VCV Rack parameters from EW Objects.
  • VCV Rack CC outputs → VCV Bridge cv1-cv8 → Oscillator + Filter — use VCV Rack as a modulation source for the network.
IN: trigger IN: frequency IN: gate IN: cv1-cv4 IN: bpm OUT: frequency OUT: gate OUT: cv1-cv8 OUT: clock OUT: bpm
SOFT SYNTH BRIDGE
YOSHIMI
Yoshimi/ZynAddSubFX soft synth via Web MIDI. Receives note/CC data and generates audio externally. Route MIDI from EW Objects to drive synthesis voices. CC 1-4 map to filter, resonance, etc.
  • Keyboard → Yoshimi (MIDI), Yoshimi → IO — play Yoshimi/ZynAddSubFX synth from EW.
  • Sequencer → Yoshimi, Yoshimi → Filter → IO — sequenced Yoshimi with EW filtering.
IN: frequency IN: gate IN: velocity IN: cv1-cv4 OUT: frequency OUT: gate OUT: velocity OUT: cv1-cv4
// Emulators
TRACKER PLAYER
CHIPTUNE
libopenmpt compiled to WASM via AudioWorklet. Plays all classic tracker module formats: Amiga ProTracker (MOD), ScreamTracker (S3M), FastTracker 2 (XM), Impulse Tracker (IT), OpenMPT (MPTM), and 30+ others. Real-time tempo and pitch adjustment independent of each other. Drop any tracker file to play. Progress tracking and repeat modes for live performance.
  • Chiptune → Reverb → Delay → IO — classic tracker music with spatial effects.
  • LFO → Chiptune pitch, Clock → trigger — pitch-wobbled chiptune triggered on beat.
  • Chiptune → Bitcrusher → Distortion — extra-crunchy lo-fi tracker sound.
IN: trigger IN: tempo OUT: signal OUT: playing OUT: position OUT: tempo
DOS EMULATOR
JSDOS (DOS)
DOS emulator in the browser via js-dos. Run classic DOS games and software. Audio output routed through the EW Objects signal network.
  • JSDOS → Filter → Reverb → IO — retro DOS game audio with effects.
  • JSDOS → Bitcrusher → IO — lo-fi processed DOS audio output.
IN: trigger OUT: signal
NES EMULATOR
JSNES
Full Nintendo Entertainment System emulator running in the browser. NES APU with 2 pulse waves, 1 triangle, 1 noise, and 1 DPCM channel — the sound that defined 8-bit gaming. Audio captured via onAudioSample callback at 44.1kHz and routed to Web Audio graph. Drop any .NES ROM file to play. Video renders to Canvas 2D at native 256x240. Keyboard controls mapped to NES controller.
  • JSNES → Filter → Reverb → IO — NES game audio processed through effects chain.
  • JSNES → Bitcrusher → Delay — extra-crunchy retro game audio with echo.
  • Clock trigger → JSNES (play/pause) — rhythmic start/stop of NES emulation.
IN: trigger OUT: signal OUT: playing
SOUND CHIP
NES APU
Pure emulation of the Nintendo Entertainment System's Audio Processing Unit — the iconic chip behind every NES soundtrack. 5 channels: 2 pulse waves (variable duty), 1 triangle wave, 1 noise (LFSR), 1 DPCM. Per-channel mute buttons for isolating voices. Built-in demo sequence or load NSF files from the High Voltage SID Collection. Track navigation for multi-song files.
  • NES APU → Filter → Reverb → IO — warm 8-bit tones with spatial processing.
  • Clock → NES APU trigger, Sequencer → track — clock-synced track switching for live sets.
  • NES APU → Chorus → Delay — thickened chiptune with stereo width.
IN: trigger IN: track OUT: signal OUT: playing OUT: track
SPEECH SYNTH
SAM
The legendary 1982 Software Automatic Mouth text-to-speech engine from the Commodore 64, Apple II, and Atari era. Generates raw PCM audio from English text using formant synthesis. Adjustable speed, pitch, throat, and mouth shape. 9 voice presets: Default, Elf, Robot, Extra-Terrestrial, Old Lady, Whisper, Stuffy, Gravel, Alien. Trigger input fires speech; text input auto-speaks on receive.
  • Clock → SAM trigger (text: "BEEP") — rhythmic robotic speech as percussion.
  • SAM → Reverb → Delay → IO — atmospheric robot voice with space.
  • Sequencer text → SAM, LFO → SAM pitch — singing robot with pitch modulation.
IN: text IN: trigger OUT: signal OUT: playing
CONSOLE EMULATOR
SEGA MD (GENESIS)
Sega Genesis / Mega Drive emulator. YM2612 FM + SN76489 PSG sound chips. Run ROM files with authentic hardware audio emulation.
  • Sega MD → EQ → IO — Genesis FM audio with EQ shaping.
  • Sega MD → Chorus → Delay → IO — retro FM chips with modern effects.
IN: trigger OUT: signal
GM CHIP SYNTH
TINYSYNTH
General MIDI synthesizer with all 128 instruments + drum kit via pure oscillator synthesis — no samples required. Accepts standard MIDI messages. Two quality modes: chiptune (1 osc/note) for retro sound, or FM synthesis for richer tones. All 16 MIDI channels. Instant program change from the full GM instrument grid.
  • Keyboard → TinySynth note + velocity — playable GM instrument with velocity sensitivity.
  • Sequencer → TinySynth note, LFO → program — auto-cycling through instruments per sequence step.
  • MIDI I/O → TinySynth note + velocity + program — hardware MIDI controller driving all 128 GM patches.
IN: note IN: velocity IN: trigger IN: frequency IN: program OUT: signal OUT: playing OUT: program
© 2026 ENTROPY WORSHIP
// COLLABORATIVE DISTRIBUTED MODULAR RELAY NETWORK SYNTHESIS ENVIRONMENT //

Modular audio environments — Max/MSP, SuperCollider, Pure Data — are powerful but fundamentally monolithic: they run as single processes on single machines, their patch state is opaque binary or serialized text that requires identical software to open, and real-time collaboration means screen-sharing rather than actually sharing signal flow. If you want to patch an oscillator on your laptop into a filter on someone else's, or let a collaborator tweak a sequencer while you shape the timbre, the existing tools offer no native path.

EW/OBJECTS treats each synthesis module as an independent browser page and replaces patch cables with WebSocket node subscriptions, making signal routing a network primitive rather than an application feature. The result is a modular environment where patches are URLs, connections can span tabs or machines, and the only installation requirement is a browser. 111 modules across synthesis, effects, sequencing, modulation, routing, analysis, AI, live coding, visualization, and emulation.

Control signals flow between modules at ~100 Hz — the same publish/subscribe pattern that Max/MSP uses with send/receive, SuperCollider uses with buses, or Pd uses with send/receive, except the connection layer is the network itself. Audio-rate DSP runs locally in each browser tab via Tone.js and the Web Audio API. Modules can live in tabs on one machine, across machines on a LAN, or across the internet with multiple players patching into the same signal graph simultaneously.

Beyond the core synthesizer modules, the platform integrates with external open-source libraries and audio languages — all running entirely in the browser via CDN with no build step. AI-powered melody and drum generation (Google Magenta.js), real-time audio feature extraction (Meyda, Essentia.js), pitch detection, music theory (Tonal.js), and notation rendering (VexFlow). Live coding environments including Glicol (Rust-to-WASM), Mercury, and Orca. Physical modeling synthesis (Karplus-Strong, modal, waveguide) and granular time-stretching. Hardware bridges for MIDI (WebMidi.js), serial (Arduino/ESP32), and Web Audio Module 2.0 plugins. Visual synthesis with Hydra (live-codeable GLSL video synth) and ISF shaders. Every integration speaks the same WebSocket signal protocol — outputs from AI generation feed into sequencers, audio analysis drives visual synthesis, and hardware sensors modulate any parameter in the graph.


// HOW TO CONNECT //

1. Open the NETWORK MAP dashboard -- this is your patching interface. Click + ADD OBJECT to spawn any module from the full 111-module catalog. Each module opens as a draggable, resizable popup window inside the dashboard, loading the full module UI and automatically connecting to the WebSocket server.

2. Each module claims a unique node name on load (something like osc-A2WG9E). Click the node name in a popup's header bar to copy it.

3. To connect two modules, click an outlet port (the dots along the top edge of a popup window) to start a wire. A cable appears and follows your cursor. Click an inlet port (the dots along the bottom edge of the destination popup) to complete the connection. Hovering over any port reveals a tooltip with the port name, type, and range.

4. Alternatively, you can paste a node name directly. Click any unconnected inlet port to reveal a text field, paste or type a node name, and press Enter. The port dot turns green once data flows and yellow while waiting for signals. Connected ports can be clicked to reveal a disconnect option.

5. Parameter changes on the source module propagate in real-time to every subscriber. Sweep the oscillator's frequency and the downstream filter tracks it. Chain as many modules as you want -- the signal graph is arbitrary and there is no fixed limit on connection depth or fan-out. Wires animate and track popup positions as you drag, scroll, and resize.

6. To bring someone else into the patch, send them a node name or URL. They click an inlet port on their own module and paste the node name into the text field -- they are now subscribed to your signal output. Multiple users can monitor or process the same node simultaneously -- same as sharing a Bus in SuperCollider, except the Bus spans the network.

7. Nodes can be set to private, restricting signal flow to only those who know the node name -- useful for isolating sub-patches or running a closed session. Private dashboards can toggle visibility of public nodes with the PUBLIC NODES button. The server itself is a standard Node.js WebSocket process -- clone the repo, run npm install and npm start inside the EW-objects/ directory, and you have your own signal relay running on localhost:3001. Point your modules at that local address instead of the public server and all traffic stays on your machine or LAN -- no internet round-trip, minimal latency, and only devices you allow on your network can connect. This is ideal for live performance setups, private jam sessions, or development without depending on an external host.


// PARAMETER AUTOMATION //

Every parameter on every module is built on a standardized registerParam system. Each registered parameter is exposed as an inlet port on the popup window, with support for incoming automation from any other module in the network.

When you connect a source outlet to a parameter's inlet port, two things can happen: if the source sends a bipolar signal (ranging from -1 to +1, like an LFO), the parameter is modulated around its current base value by a configurable depth -- the knob position stays the same but the actual value oscillates above and below it. If the source sends a direct value (like a frequency in Hz), the parameter is set to that value outright.

The port dot indicates connection state: grey = no connection, yellow = connected but waiting for signals, green = receiving live data. When automation stops (the source goes silent for ~150 ms), the parameter smoothly ramps back to its base value automatically.

Effect and instrument modules that process audio use a standardized audio input system. When you connect a source node to the audio inlet port, the module auto-creates a local oscillator that mirrors the remote signal's frequency, waveform, and gain -- all DSP runs locally at audio rate, with only control data traversing the network.


// PATCH EXPORT / IMPORT //

The entire state of a patch -- every module, every connection, every parameter value, and every layout position -- can be saved to a single .ewpatch.json file and restored later. This is total recall for your signal graph.

Exporting: Click EXPORT PATCH in the dashboard header. The system queries every open module for its current state (registered params, subscriptions, custom state, and layout coordinates) and downloads a timestamped JSON file. Everything needed to reconstruct the patch is captured -- node names, connection mappings, parameter values, window positions and sizes, even collapse state.

Importing: Click IMPORT PATCH and select a .ewpatch.json file. The dashboard tears down the current session, spawns every module from the patch with its original node name, waits for all WebSocket connections to establish, then restores parameters in Phase 1 and subscriptions (connections) in Phase 2. The two-phase restore ensures all nodes exist on the server before any module tries to subscribe to another -- connections always resolve cleanly.

URL sharing: Click PATCH URL in the dashboard header to compress the current patch into a shareable URL. The full patch state is LZ-String compressed into the URL hash fragment (#patch=...) and copied to clipboard. Anyone who opens the link gets an independent instance of your patch -- fresh node names are generated on every load so multiple viewers never collide on WebSocket nodes. If the patch exceeds ~32 KB when encoded, use EXPORT PATCH (file download) instead.

Example patches via URL: Append ?example=name to the dashboard URL to load a named example patch directly (e.g. dashboard.html?example=basic-fm). The dashboard fetches the patch from EW-objects/example-patches/, remaps all nodes to fresh names, and imports it. The #patch= hash takes priority over ?example= if both are present.

Example patches: Use the dropdown in the dashboard header to load pre-built patches (Basic FM, Basic Drums, Filter Sweep) that demonstrate common signal routing patterns. These ship with the repo in EW-objects/example-patches/ and serve as templates for building your own.

What gets saved: All registerParam values (frequency, gain, waveform, threshold -- everything), all subscriptions with port mappings (which node feeds which parameter), custom state (object-specific data like sequencer patterns or IO routing mode), and full layout (x, y, width, height, collapsed). Patches are portable -- share a .ewpatch.json file with anyone running the same server and they get your exact configuration.


// SIGNAL TIMING & LIMITATIONS //

EW/OBJECTS is a control-rate network, not an audio-rate bus. Understanding what this means will save you from unexpected behavior when patching:

What works well: LFO modulation, parameter sweeps, sequencer triggers, MIDI-speed note events, knob automation, gate/trigger signals, clock pulses. Any signal that changes at roughly human-interaction speed (< 100 changes/sec) will transmit faithfully.

Limitation 1 — Fast transients are lost: Continuous ports dispatch at a maximum of 100 Hz (one value per 10ms). If a parameter changes faster than this — for example, a 1ms attack envelope, an audio-rate FM modulator, or a fast sample-and-hold — only the most recent value in each 10ms window is transmitted. The intermediate peaks and valleys are silently dropped. You will see a ~N DROP indicator in the header bar when this happens.

Limitation 2 — Message ordering is non-deterministic across connections: Unlike Max/MSP or Pd where message fan-out within a logical tick follows a fixed evaluation order, signals arriving from different WebSocket rooms have no guaranteed relative order. The system mitigates this by tick-batching: all signals that arrive within one microtask are sorted deterministically (by room name, then port name) before callbacks fire. This makes evaluation order repeatable within a processing frame, but it is still not equivalent to the strict depth-first ordering of Pd.

Limitation 3 — Network latency is variable: NTP sync establishes a common clock reference across peers, but actual delivery time varies with network conditions. Expect 5–50ms jitter on a LAN, higher over the internet. For tight rhythmic sync, use a shared clock module rather than relying on simultaneous signal arrival.

How the system compensates:

• Ports named trigger, gate, clock, bang, or reset bypass throttling entirely — every value is transmitted immediately with no loss.
• Output ports can be declared with throttle: false to bypass the 10ms window.
• Incoming signals are tick-batched and sorted for deterministic evaluation order within each processing frame.
• Each signal carries a monotonic sequence number for detecting out-of-order delivery.
• Audio-rate DSP (FM synthesis, envelope following, sample-accurate timing) runs locally in each module's AudioContext — use the FM OSC or Genish modules for true audio-rate modulation rather than sending fast signals across the network.

Rule of thumb: If you need it faster than 100 Hz, it should happen inside one module (local DSP), not between modules (network signals). The network is for control. The AudioContext is for audio.


// TECH STACK //
// Audio
DSP ENGINE
Tone.js
AUDIO API
Web Audio
MIDI
Web MIDI
SIGNAL RATE
~100 Hz
// Network
PROTOCOL
WebSocket
CLOCK SYNC
NTP
SERVER
Node.js / ws
OBJECTS
106
// Frontend
LANGUAGES
JS / HTML / CSS
UI SYSTEM
EWUILIB
CSS
cyberpunk / augmented-ui
GRAPHICS
Three.js

2026 ENTROPY WORSHIP