From 7a444c396591f915431c25411e84a9dc44d7b0a2 Mon Sep 17 00:00:00 2001 From: type-two Date: Mon, 6 Jul 2026 15:22:59 +1000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=80=20Earth=20Echo=20=E2=80=94=20a=20S?= =?UTF-8?q?pace=20Echo=20whose=20tape=20is=20driven=20by=20the=20planet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A tape-delay effect in the built-in synth, RE-201 flavoured, with its knobs exposed as matrix voices so any feed can drive them (and they groove/CV like any voice). Audio chain: a delay with a feedback loop (lowpass tone roll + highpass + tanh tape saturation), an LFO on delayTime for wow&flutter, and a white-noise hiss bed for wear; the mix taps post -> echoIn -> wet -> out. params() maps: echo.time -> delay 60-500ms with a LONG glide time-constant (tape-motor pitch-bend), echo.feedback -> feedback HARD-CAPPED at 0.97 (self-oscillates, never runs away), echo.tone -> loop lowpass 6800->500Hz, echo.flutter -> LFO depth, echo.wear -> hiss, echo.wet gated by earthEchoOn. Sky menu "🌀 earth echo" toggles it (gs_echo persists); enabling installs the earthy default cables: wind->time, volatility->feedback, air.pm25->tone, moon->flutter, fire.count->wear, quake->wet. Verified: 6 echo voices appear in the matrix with cables, zero console errors; param math unit-tested (feedback capped, all ranges bounded, safe). Grimoire section added. Co-Authored-By: Claude Fable 5 --- viz/index.html | 67 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/viz/index.html b/viz/index.html index 345c644..92cbdb6 100644 --- a/viz/index.html +++ b/viz/index.html @@ -940,6 +940,8 @@

One — the built-in browser synth. Click ♪ and a full voice rack wakes inside the page: lead (bitcoin's price and your market's average price both quantize to it — minor pentatonic and G dorian), bass (quake depth chooses its notes in a low minor), pad (brightened by Tokyo's warmth, daylight, harmony, the birth rate, longer lives), drone (thickened by aircraft aloft, barometric pressure, Saturn's slow wheel, the weight of the national debt), and perc (BTC volatility and market activity drive the hats). Over them sit the effects the world modulates: reverb (earthquakes open the void, room light sizes it), delay (your hand's Y feeds it, Mercury retrograde smears it), saturation (Delhi's air becomes grit, hard aspects add dissonance, wildfires burn it, hunger grinds beneath), and glitch (every Wikipedia edit on Earth, every light flash, every new wildfire fires a burst). Nothing to install; the planet plays a synth in your tab.

+

🌀 The Earth Echo — a Space Echo whose tape is the planet. Right-click the sky → 🌀 earth echo, press ♪, and the whole mix runs onto a virtual Roland tape delay — but its knobs are wired to the living world. Its repeat rate is the wind (Tokyo's gusts whip the tape speed, and because a tape motor has inertia the pitch glides as it changes — that dubby seasick bend); its intensity is volatility (bitcoin's fever climbs the feedback toward a screaming, self-oscillating howl); its tone is the air (Delhi's PM2.5 rolls the treble off until the echoes melt into a dark, suffocating soup); its wow & flutter is the Moon (the lunar cycle warbles the pitch with an eerie, drifting vibrato); its tape wear is the world's fire (every wildfire adds hiss and grit, the machine growing more fragile as the planet burns); and a quake throws the whole echo forward. Best of all, these six knobs are ordinary voices in the matrix — echo.time, echo.feedback, echo.tone, echo.flutter, echo.wear, echo.wet — so you can drag any feed onto any of them, groove them on the 16-step grid, or send them out as CV. Turn it on and the world doesn't just play the instrument; it plays the space the instrument lives in.

+

Two — Web MIDI, out into a DAW or hardware. In Chrome or Edge, open the ⚙ panel's WEB MIDI section, enable MIDI, and pick an out port. Every destination now streams as CC or notes straight to your rig — no Python, no IAC bus. The map is fixed and MIDI-learnable at the far end: