RHEOME / DOCUMENT RH-00 / DRUM-CIRCLES
drum-circles
00Summary
A Euclidean groovebox that runs in your browser. Everything is scale-locked, so it's impossible to play anything off beat or off key — but deep enough to get lost in.
01Why
I'm hooked on the immediacy of Euclidean sequencing on my Torso T-1 — it's built for noodling and exploration. I wanted that feeling on the open web, somewhere friends or strangers could co-create fluid rhythms in real time, bouncing off each other's changes. A musical chat room, for livestreams or teaching or just messing around.
The design bet is that removing the ways to fail makes people braver: lock everything to a scale, make wrong notes impossible, and beginners and pros meet in the same playground.
02Build log
Started as a class exercise — a Tone.js groovebox with six synth engines, a step sequencer each, a global scale, a mixer, master FX. I wanted to push it toward something you'd actually want to noodle in with other people: a musical chat room.
Replaced the step sequencers with dual Euclidean sequencers per channel, combined by a logic operator you pick from a dropdown — AND, OR, XOR. That breaks past the recognizable 'Euclidean flavor' that gets stale, giving each channel a lot more rhythmic room.
Euclidean algorithms are great at rhythm but say nothing about pitch. So each pulse walks through an 8×8 note grid — eight octaves visible at once — that's locked to the global scale and updates when you change it. You literally cannot pick an off-key note. No theory required, but deep enough for advanced players.
The honest part: I could not get WebSockets working, so the real-time multiplayer — the whole 'circle' — never landed for the deadline. It runs great as a single-player instrument; the shared rooms are still on the list.
Kept iterating after the deadline. The logic operator gave way to a sequential mode — the two patterns chain end to end, so a channel can run a 16-step phrase into a 12-step answer — and each pattern gained a distribution knob that smears its pulses toward the front or back of the bar. That distribution control is the one that later got ported into mutax's firmware.
Shipped the newer engine to the live site and rebuilt the interface in the rheome design language — the same terminal-lit panels as this site, with the sequencer LEDs borrowing kaolin's display colors.
03Spec
| Type | web Euclidean groovebox |
|---|---|
| Engine | Tone.js, Web Audio, six synth voices |
| Sequencing | dual Euclidean per channel, chained in sequence, with distribution + probability |
| Pitch | 8×8 scale-locked note grid, eight octaves |
| Status | live single-player · multiplayer rooms planned |
| Runs in | the browser, no install |
04The lineage
This is where mutax's Euclidean sequencer was first sketched. The distribution idea and the scale-locked logic I built here in JavaScript later got ported into the instrument's C++ firmware — the browser was the fast place to think it through.