mofongo

Sandbox

experiments & prototypes

Experiments
001
252e Polyphonic Rhythm Generator
A web implementation of the Buchla 252e module. Three independent clocks drive concentric rings of cells to produce interlocking polyrhythmic patterns with pulse and CV outputs.
audio sequencer canvas
002
266e Source of Uncertainty
Buchla bongo machine. A 266e random voltage source drives a 259e complex oscillator through a 292e lowpass gate, producing classic Buchla plonk and bongo sounds with generative control.
audio synthesis generative
003
Generative Landscape
A self-playing audiovisual piece. An ml5.js neural network evolves terrain parameters in a feedback loop, p5.js renders flowing 3D landscapes, and Tone.js generates ambient drones and shimmer textures that respond to the terrain.
audio visual ml generative
004
Mountains of Puerto Rico
A soundwave slideshow of Puerto Rico's mountain ranges. Each peak's silhouette is sculpted from live audio waveforms generated by Tone.js, while ml5.js shapes the musical character of each scene. Six mountains, six moods.
audio visual ml slideshow puerto rico
005
Euclidean Playground
Six polyrhythmic Euclidean sequencers tuned to D minor pentatonic gamelan. Each voice has a distinct LPG timbre from deep sub-bass to shimmering bell, with ghost notes, pattern morphing, per-voice controls, and master reverb/delay effects.
audio sequencer euclidean gamelan polyrhythm
007
Euclidean Circles
Four concentric ring sequencers with drawable amplitude. Each ring is a Euclidean rhythm — click and drag segments to sculpt per-step velocity. SVG radial UI with LPG synthesis, ghost notes, morphing, and master effects.
audio sequencer euclidean svg interactive
006
ASR 2000 — Analog Shift Register
A quad-channel analog shift register with four VCOs. Values cascade through stages on each trigger. Scale quantizer with 32 scales in two banks. HOLD mode loops existing values. Wavefolding sine oscillators via Tone.js.
audio sequencer synthesis tone.js
008
LOOP-01 — Decay Looper
A MIDI looper that fades. Each loop pass attenuates note velocities by a configurable decay rate, simulating an analog tape looper losing energy. Overdub on the fly via Web MIDI or the on-screen piano. Sample-accurate scheduling via Tone.Transport.
audio midi looper tone.js
009
SHUF-01 — MIDI Shuffler
Upload a MIDI file and reshuffle it. Seven strategies: permute notes, pitches, rhythm, bar-sized chunks, reverse, chord scramble, and stutter. Dual piano-roll visualization, Tone.js playback, and MIDI export of the shuffled result.
audio midi generative tone.js