← Back to the flow

Color becomes sound.

Chromaflow is an ambient instrument and a living fluid canvas. Droplets add dye and momentum to an incompressible fluid simulation. When they land, their horizontal position selects a note from the current chord. Each color plays a different sampled instrument. Choose a palette swatch to keep new droplets in that one color and voice, including automatic rain and blooms. Enable Cycle colors beside the palette to restore variety.

Sound is powered by WebAudioFont by Sergey Surikov, with 28 instruments from the FluidR3 GM soundfont by Frank Wen. All instrument samples and the playback engine are served with this site. The sustained voices use gentle attack envelopes and extended releases for softer, overlapping swells. Eight experimental textures add crystalline rain, soundtrack and atmosphere tones, spectral brightness, alien choruses, echoes, and sci-fi signals, with individual slow filter sweeps. Reverb uses a locally generated stereo impulse response; delay uses a filtered feedback loop synchronized to the tempo.

The fluid uses semi-Lagrangian advection, pressure projection, and vorticity confinement. Your live settings and recorded takes stay in this browser. The optional Community library lets you explicitly publish a selected take, listen to others and like favorites. Sign in with ChatGPT to publish or vote; browsing and listening are open to everyone. Today charts use midnight UTC, This week covers the last seven days, and All time counts every active like. Public names and titles pass basic server-side text checks. Your account email is never displayed. Shared sessions contain only notes, settings, gestures and visual data; audio uploads are not accepted. Chromaflow synthesizes session loops during playback. Export loop WAV renders one cycle locally in real time. Earlier browser audio takes remain playable locally. Shared sessions can be up to 8 MB; removing your public track leaves your browser copy intact.

A rhythm beneath the color

The optional Rhythm tab adds four percussion voices and a sixteen-step beat studio. Start with a groove, edit hits and accents, or generate evenly spaced patterns and rotate them into new rhythms. Ten percussion sounds are synthesized locally with Web Audio, with swing, humanize, and independent levels. Percussion has its own reverb and delay amounts. Voices and drums share one echo-spacing setting, available in Sound, Rhythm, and Beat studio. Both delay lines follow the effective percussion tempo, including half/double speed, with eighth-note, dotted-eighth, and quarter-note echoes. Their timed hits create visible ripples, add momentum to the existing fluid, or both. No new dye or melodic notes are added by percussion.

Play with your whole hand

The Perform tab explains six gestures. Position shapes pitch, stereo placement, weight, tone, and length. Slow strokes make soft ribbons; quick strokes and flicks create short accents and jets. Circles make whirlpools and stereo motion. Hold still, then release a bloom of long chord tones. Vertical sweeps conduct a filter across the entire composition, which gently settles after release. Gesture intensity, a whole-scene toggle, and a reset let you choose the amount of expression.

Source & credits

This application is available under the GNU General Public License, version 3. You can download the complete source or inspect the application, fluid solver, audio engine, rhythm engine, beat studio, gesture model, performance controls, and stylesheet.

Third-party notices: WebAudioFont · WebAudioFont data · FluidR3 GM. Interface fonts: DM Sans and Manrope from Google Fonts.