📖 name the softsynth OMNI + tech-manual sections (OMNI / Earth Echo / GODSONIQ)
Names the built-in browser synth OMNI (♪ tooltip, intro prose) and adds three scannable "tech manual" reference sections to the grimoire — OMNI (full voice roster + how-to), the Earth Echo (six world-driven tape knobs + Schumann), and GODSONIQ (resample + tab feed) — each a numbered how-to plus a two-column control/dest spec table (new .spec / ol.steps CSS; auto-indexed in the TOC). Every label, dest key and world→voice mapping extracted from code and verified. Fixes two drifted claims in the old Earth Echo prose the audit caught: tape wear drives hiss only (grit/saturation is static, not world-driven), and the Schumann sub is ×4 = two octaves (not "four times"). Manual: sections flow into PART I (extractor taught .spec/.row → markdown bullets) + an OMNI umbrella entry in Appendix J. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
78718e9459
commit
5db568d9da
@ -584,7 +584,7 @@ Because the orrery is rendered client-side, in each listener's own browser, **ev
|
||||
|
||||
The matrix pours out clean control values whether or not anyone is listening. Choosing *how* to hear it is choosing which instrument the planet plays.
|
||||
|
||||
**The built-in voice, up close.** Press `♪` and the browser synth wakes. Its plucked notes ring with a **DX7-style FM tine** — brighter the harder they're struck; its pads bloom into a **detuned supersaw**; a **Juno chorus** warms the whole thing. Prefer strings? Right-click the sky → **🎸 string voice** and every pluck becomes a real **Karplus-Strong** plucked string. And route anything to `crush` for a **12-bit-DAC bitcrusher** — the planet degrading its own converter into lo-fi grit. (Every one of these was tuned by spectral analysis before it shipped — rendered offline and measured, so it's in-tune and clean, not just plausible.)
|
||||
**The built-in voice, up close.** Press `♪` and **OMNI** — the built-in synth — wakes. Its plucked notes ring with a **DX7-style FM tine** — brighter the harder they're struck; its pads bloom into a **detuned supersaw**; a **Juno chorus** warms the whole thing. Prefer strings? Right-click the sky → **🎸 string voice** and every pluck becomes a real **Karplus-Strong** plucked string. And route anything to `crush` for a **12-bit-DAC bitcrusher** — the planet degrading its own converter into lo-fi grit. (Every one of these was tuned by spectral analysis before it shipped — rendered offline and measured, so it's in-tune and clean, not just plausible.)
|
||||
|
||||
**🎛 GODSONIQ — resample the world onto the keys.** A cheeky nod to the Ensoniq ASR-10: right-click the sky → **🎛 GODSONIQ** and it records ~3 seconds of the *live* master mix — whatever the world is playing right now, this exact never-repeating take — into a buffer. From then on every pluck **replays that capture, pitched across the keyboard** (middle C plays it at speed, an octave up plays it twice as fast). It runs through the full FX chain, so route `crush` at it and you get the classic 12-bit sampler grit. Right-click → 🎛 again to grab a fresh slice; **🎸 string voice** (or toggling it off) drops you back to the FM tine. The browser-native bounce: freeze a moment of the planet, then play the planet like an instrument.
|
||||
|
||||
@ -592,9 +592,9 @@ The matrix pours out clean control values whether or not anyone is listening. Ch
|
||||
|
||||
**Zero — the moods, the gentle front door.** On your very first visit the instrument greets you with **🌅 first light** instead of the full flood: a bass line, soft hats, a small melody, modest space — a thing shaped like a song, with the world still playing underneath it. Right-click the sky → **🌗 mood** to move between *first light*, *ambient drift* (no drums, all atmosphere, the planet as weather), and **the full storm** — the factory instrument with every one of the world's hands on it at once. Ease in, then open the door.
|
||||
|
||||
**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.
|
||||
**One — OMNI, 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. And underneath it all, always, the **Schumann resonance**: the cavity between the Earth's surface and the ionosphere rings at **7.83 Hz** (predicted by Winfried Otto Schumann, 1952), pumped by every lightning strike on the planet — the Earth's electromagnetic heartbeat. It sits below human hearing, so it plays the *machine* instead of the ear: a 7.83 Hz pulse forever breathing the echo's tone and laying a second, planetary wow under the moon's — and, octaved up four times to **31.32 Hz**, it hums as a true sub beneath the drone voice. It is the one dial the world never turns, because it is the size of the Earth itself — and the Earth's size does not change.
|
||||
**🌀 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, 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. And underneath it all, always, the **Schumann resonance**: the cavity between the Earth's surface and the ionosphere rings at **7.83 Hz** (predicted by Winfried Otto Schumann, 1952), pumped by every lightning strike on the planet — the Earth's electromagnetic heartbeat. It sits below human hearing, so it plays the *machine* instead of the ear: a 7.83 Hz pulse forever breathing the echo's tone and laying a second, planetary wow under the moon's — and, octaved up ×4 (two octaves) to **31.32 Hz**, it hums as a true sub beneath the drone voice. It is the one dial the world never turns, because it is the size of the Earth itself — and the Earth's size does not change.
|
||||
|
||||
**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:
|
||||
|
||||
@ -618,6 +618,82 @@ MIDI-learn any of these at your synth and the planet drives your favorite hardwa
|
||||
|
||||
---
|
||||
|
||||
## OMNI — the softsynth, in full
|
||||
|
||||
**OMNI** is the instrument's built-in voice: not one synth but a rack of classic machines in a single browser engine — a DX7-style FM tine, a JP-8000 supersaw, a Karplus-Strong string, a Juno-106 chorus, a morphing wavetable lead, a granular cloud, a 12-bit-DAC crusher, and the planet-driven tape echo below. Nothing to install; the world plays all of it at once. (Every voice was tuned by spectral analysis before it shipped — rendered offline and measured, so it's in-tune and clean, not just plausible.)
|
||||
|
||||
- Press `♪` (top-right, or `F2`) to wake OMNI — the whole audio graph builds on the first press.
|
||||
|
||||
- Your first visit opens gently in **🌅 first light**. Right-click the sky → **🌗 mood — how much world** to move between *first light*, *ambient drift* (all atmosphere, no drums) and *the full storm* (every hand at once).
|
||||
|
||||
- Play notes three ways: enter **chakra view** (`C`) and click a wheel's core for a 12-key console (play it with the `Q…P` row or a MIDI keyboard); open **🎛 tracks** (`T`) to sequence a song; or just wire the world's data to play it hands-free.
|
||||
|
||||
- Shape the character: swap the pluck voice (**🎸 string voice** / **🎛 GODSONIQ**), or drag any feed onto `crush`, `wavetable.morph` or `granular.density`.
|
||||
|
||||
- **lead** — Morphing **wavetable** melody (mellow ↔ bright saw, swept by `wavetable.morph`). *World:* bitcoin's price & your market's average both sing the note (minor pentatonic / G dorian).
|
||||
|
||||
- **bass** — Square **sub**. *World:* earthquake depth chooses the note (low minor) — and every bass note also conducts the pad & drone pitch.
|
||||
|
||||
- **pad** — Nine-oscillator detuned **supersaw** (JP-8000, ±14¢). *World:* daylight, warmth, harmony, the birth rate & longer lives brighten it.
|
||||
|
||||
- **drone** — Sawtooth bed + a 31.32 Hz Schumann **sub**. *World:* aircraft aloft, air pressure, Saturn's wheel, poverty & the national debt thicken it.
|
||||
|
||||
- **perc** — Filtered-noise **hats** + the granular grain cloud. *World:* bitcoin volatility & market activity drive the density.
|
||||
|
||||
- **pluck** — Hand-played notes ring as a **DX7 FM tine** by default (harder = brighter) — or a **🎸 Karplus string**, or a **🎛 GODSONIQ** sample. All keys, MIDI, mind-mode & sequencer notes flow through it.
|
||||
|
||||
- **chorus · crush** — An always-on **Juno-106 chorus** widens the dry oscillators; `crush` is a **12-bit-DAC bitcrusher** on the master — route any feed at it to degrade the whole mix into lo-fi grit.
|
||||
|
||||
- **world FX** — **reverb** (quakes open the void, room light sizes it), **delay** (your hand's Y, Mercury retrograde smears it), **saturation** (Delhi's air, wildfires, hunger), **glitch** (every Wikipedia edit, light-flash & new fire fires a burst).
|
||||
|
||||
## The Earth Echo — the planet on tape
|
||||
|
||||
A virtual **Roland Space Echo** the entire mix runs onto — except its six knobs aren't yours, they're the living world's. And under all of it rings the **Schumann resonance**: the cavity between the Earth's surface and the ionosphere, pumped by every lightning strike on the planet, humming at **7.83 Hz** — the Earth's electromagnetic heartbeat, the one dial the world never turns.
|
||||
|
||||
- Right-click the sky → **🌀 earth echo — the planet on tape** (or press `F9`). It reads **🌀 earth echo: on** once live.
|
||||
|
||||
- Press `♪` — the tape only sings while OMNI is running.
|
||||
|
||||
- The six knobs are ordinary **matrix voices** — drag any feed onto them, sequence them on the 16-step grid, or send them out as CV. The world's default cables are already patched:
|
||||
|
||||
- **echo.time** — Repeat rate / tape speed — and because a tape motor has inertia, changes *glide* and pitch-bend the tail (that dubby seasick bend). *World:* the wind (Tokyo's gusts).
|
||||
|
||||
- **echo.feedback** — Intensity — climbs toward, but never past, a screaming self-oscillation. *World:* bitcoin volatility.
|
||||
|
||||
- **echo.tone** — Treble roll-off — darkens the repeats into a suffocating dub soup. *World:* air PM2.5 (Delhi).
|
||||
|
||||
- **echo.flutter** — Wow & flutter — an eerie, drifting pitch vibrato. *World:* the Moon (the lunar cycle).
|
||||
|
||||
- **echo.wear** — Tape hiss — the machine growing more fragile as the planet burns. *World:* the world's wildfire count.
|
||||
|
||||
- **echo.wet** — Wet/dry mix — also the true on/off gate (forced to silence when the echo is off). *World:* a quake throws the whole echo forward.
|
||||
|
||||
- **Schumann 7.83 Hz** — A fixed sub-audio pulse forever breathing the echo's *tone*, and laying a second planetary *wow* under the Moon's. Below hearing, so it plays the machine, not the ear.
|
||||
|
||||
- **Schumann sub 31.32 Hz** — That same heartbeat ×4 (two octaves up) — an audible sub hum beneath the **drone** voice.
|
||||
|
||||
## GODSONIQ — resampling the world
|
||||
|
||||
The browser-native **bounce** — a cheeky nod to the Ensoniq ASR-10. Capture a few seconds of the *live* world (this exact never-repeating take of Euclid fills, ratchets and drift), then play that moment back **pitched across the keys**. Freeze a moment of the planet, then play the planet like an instrument. Its sibling **🌐 feed a tab** pours any other browser tab's audio into the world so you can resample *that* too.
|
||||
|
||||
- Press `♪` first — GODSONIQ needs the audio worklet awake.
|
||||
|
||||
- Right-click the sky → **🎛 GODSONIQ — resample the world onto the keys**. It records ~3 seconds of the live master mix.
|
||||
|
||||
- Play the keys — every pluck now **replays your capture, pitched** (middle C = original speed, an octave up = twice as fast). Route `crush` at it for the classic 12-bit sampler grit.
|
||||
|
||||
- Right-click → 🎛 again for a fresh slice. Exit back to the FM tine with **🎸 string voice**.
|
||||
|
||||
- **🎛 GODSONIQ** — Records ~3s of the full master (post-FX, post-crush) into a buffer; every pluck then replays it. Tap again to re-sample.
|
||||
|
||||
- **playback pitch** — Note-spread ASR-style — `playbackRate = 2^((midi−60)/12)`, so middle C plays it at speed and each octave doubles/halves it.
|
||||
|
||||
- **🌐 feed a tab** — Right-click → **feed a tab**, pick another tab in the share-picker and tick **“Share tab audio.”** That sound (a YouTube video, a live stream) is now *in the world* — crush it, reverb it, or GODSONIQ-resample it.
|
||||
|
||||
- **the fine print** — **Chrome / Edge only** (Safari & Firefox can't capture tab audio). On a Mac it grabs one *tab's* sound, not all-system (for that, route through a virtual device like BlackHole). DRM'd services (Netflix, Spotify, Apple Music) come through silent — ordinary YouTube is fine.
|
||||
|
||||
---
|
||||
|
||||
## Saving your instrument
|
||||
|
||||
A patch you have played into being — the cables you dragged, the amounts you leaned, the mutes and freezes, the tempo you locked — is a whole instrument, and it deserves to survive the tab closing.
|
||||
@ -1026,3 +1102,9 @@ Every feed the world sends is one of eight temperaments; the shape dictates how
|
||||
- **🔊 12-bit bitcrush** — a world-drivable lo-fi stage on the synth's master bus (an AudioWorklet doing true bit-depth quantise + sample-rate reduction). Route anything to `crush` and the planet degrades its own DAC — clean by default (16-bit).
|
||||
- **🎛 GODSONIQ (resampler)** — a cheeky nod to the Ensoniq ASR-10: right-click the sky → *GODSONIQ* records ~3s of the live master mix (a recorder AudioWorklet taps the full post-FX bus) into a buffer, then every pluck replays that capture pitched across the keys (playbackRate = 2^((midi-60)/12), middle C = unity). Plays through the full FX chain, so `crush` gives it the classic 12-bit sampler grit. 🎸 string voice exits back to the FM tine. The browser-native bounce — capture the world's never-repeating take, then play it.
|
||||
- **🌐 Tab feed (external audio in)** — right-click the sky → *feed a tab* calls `getDisplayMedia({video:true, audio:{...}})`; the user picks another browser tab and ticks 'Share tab audio', and its sound (a YouTube tab, a live stream) is wired via `createMediaStreamSource` into `preSat` → the full FX chain and master, so it's audible live, `crush`-able, and resampleable by GODSONIQ. Constraints disable echoCancellation/noiseSuppression/autoGainControl (voice DSP that mangles music) and set suppressLocalAudioPlayback (no double audio). Chromium-only (Chrome/Edge; Safari & Firefox don't deliver display audio); on macOS it captures a TAB not all-system (BlackHole/Loopback is the system-wide workaround); DRM'd services (Netflix/Spotify/Apple Music) usually capture silent, plain YouTube is fine. Video track is stopped immediately; a track 'ended' listener handles the browser's Stop-sharing.
|
||||
- **⬗ Parameter locks (p-locks)** — Pocket-Operator / Elektron style: a texture voice (filter, glitch, reverb, drive) gets a per-step `lock` lane that pins its value to a fixed level on that step (blocky, disjointed), overriding the world; drag a step below the lane to unlock it and hand that step back to the data. Applied in `computeDests` via `applyGroove`; travels with the patch.
|
||||
- **🎛 OMNI (the softsynth)** — the umbrella name for the built-in browser synth: five world-modulated core voices (lead/bass/pad/drone/perc) plus a rack of classic-synth characters in one Web Audio engine — DX7 FM tine, JP-8000 supersaw, Karplus-Strong string, Juno-106 chorus, morphing wavetable lead, granular cloud, 12-bit-DAC bitcrush, and the Earth Echo tape delay. Woken by ♪; the grimoire's 'OMNI — the softsynth, in full' section is the full reference.
|
||||
- **🌊 Juno-106 chorus** — an always-on subtle BBD-style stereo chorus on the synth's master bus (two short delays warbled by slow LFOs, panned wide) that warms and widens the dry oscillators.
|
||||
- **🔊 12-bit bitcrush** — a world-drivable lo-fi stage on the synth's master bus (an AudioWorklet doing true bit-depth quantise + sample-rate reduction). Route anything to `crush` and the planet degrades its own DAC — clean by default (16-bit).
|
||||
- **🎛 GODSONIQ (resampler)** — a cheeky nod to the Ensoniq ASR-10: right-click the sky → *GODSONIQ* records ~3s of the live master mix (a recorder AudioWorklet taps the full post-FX bus) into a buffer, then every pluck replays that capture pitched across the keys (playbackRate = 2^((midi-60)/12), middle C = unity). Plays through the full FX chain, so `crush` gives it the classic 12-bit sampler grit. 🎸 string voice exits back to the FM tine. The browser-native bounce — capture the world's never-repeating take, then play it.
|
||||
- **🌐 Tab feed (external audio in)** — right-click the sky → *feed a tab* calls `getDisplayMedia({video:true, audio:{...}})`; the user picks another browser tab and ticks 'Share tab audio', and its sound (a YouTube tab, a live stream) is wired via `createMediaStreamSource` into `preSat` → the full FX chain and master, so it's audible live, `crush`-able, and resampleable by GODSONIQ. Constraints disable echoCancellation/noiseSuppression/autoGainControl (voice DSP that mangles music) and set suppressLocalAudioPlayback (no double audio). Chromium-only (Chrome/Edge; Safari & Firefox don't deliver display audio); on macOS it captures a TAB not all-system (BlackHole/Loopback is the system-wide workaround); DRM'd services (Netflix/Spotify/Apple Music) usually capture silent, plain YouTube is fine. Video track is stopped immediately; a track 'ended' listener handles the browser's Stop-sharing.
|
||||
|
||||
@ -440,6 +440,18 @@
|
||||
#grimoire code { font-family: ui-monospace, Menlo, monospace; font-size: 12.5px; color: #b8e0c8; background: rgba(120,255,178,0.08); padding: 0 4px; border-radius: 4px; }
|
||||
#grimoire .hr { height: 1px; background: linear-gradient(90deg, transparent, rgba(140,170,230,0.25), transparent); margin: 30px 0; }
|
||||
#grimoire .foot { text-align: center; color: rgba(150,170,205,0.55); font-size: 12px; margin-top: 40px; font-style: italic; }
|
||||
/* tech-manual reference blocks — scannable control tables */
|
||||
#grimoire .spec { margin: 12px 0 6px; border: 1px solid rgba(140,170,230,0.18); border-radius: 12px; overflow: hidden; background: rgba(30,40,64,0.35); }
|
||||
#grimoire .spec .row { display: grid; grid-template-columns: 156px 1fr; gap: 14px; padding: 9px 15px; border-top: 1px solid rgba(140,170,230,0.10); font-size: 13px; align-items: baseline; }
|
||||
#grimoire .spec .row:first-child { border-top: none; }
|
||||
#grimoire .spec .k { color: #9fd0ff; font-family: ui-monospace, Menlo, monospace; font-size: 12px; font-weight: 600; word-break: break-word; }
|
||||
#grimoire .spec .v { color: rgba(205,218,240,0.9); line-height: 1.6; }
|
||||
#grimoire .spec .v b { color: #eaf1ff; }
|
||||
#grimoire .spec .v em { color: rgba(159,208,255,0.85); font-style: normal; }
|
||||
#grimoire ol.steps { margin: 8px 0 12px; padding-left: 24px; list-style: decimal; color: rgba(205,218,240,0.9); }
|
||||
#grimoire ol.steps li { padding-left: 4px; margin: 6px 0; font-size: 13.5px; line-height: 1.65; }
|
||||
#grimoire ol.steps li::before { content: none; }
|
||||
@media (max-width: 520px){ #grimoire .spec .row { grid-template-columns: 1fr; gap: 3px; } }
|
||||
body.zen > :not(#stage):not(#ctxmenu) { display: none !important; } /* zen — nothing but the sky */
|
||||
body.perform > :not(#stage):not(#ctxmenu) { display: none !important; } /* performance — pure visuals, no chrome */
|
||||
</style>
|
||||
@ -1016,7 +1028,7 @@
|
||||
|
||||
<p class="lead">The matrix pours out clean control values whether or not anyone is listening. Choosing <i>how</i> to hear it is choosing which instrument the planet plays.</p>
|
||||
|
||||
<p><b>The built-in voice, up close.</b> Press <kbd>♪</kbd> and the browser synth wakes. Its plucked notes ring with a <b>DX7-style FM tine</b> — brighter the harder they're struck; its pads bloom into a <b>detuned supersaw</b>; a <b>Juno chorus</b> warms the whole thing. Prefer strings? Right-click the sky → <b>🎸 string voice</b> and every pluck becomes a real <b>Karplus-Strong</b> plucked string. And route anything to <kbd>crush</kbd> for a <b>12-bit-DAC bitcrusher</b> — the planet degrading its own converter into lo-fi grit. (Every one of these was tuned by spectral analysis before it shipped — rendered offline and measured, so it's in-tune and clean, not just plausible.)</p>
|
||||
<p><b>The built-in voice, up close.</b> Press <kbd>♪</kbd> and <b>OMNI</b> — the built-in synth — wakes. Its plucked notes ring with a <b>DX7-style FM tine</b> — brighter the harder they're struck; its pads bloom into a <b>detuned supersaw</b>; a <b>Juno chorus</b> warms the whole thing. Prefer strings? Right-click the sky → <b>🎸 string voice</b> and every pluck becomes a real <b>Karplus-Strong</b> plucked string. And route anything to <kbd>crush</kbd> for a <b>12-bit-DAC bitcrusher</b> — the planet degrading its own converter into lo-fi grit. (Every one of these was tuned by spectral analysis before it shipped — rendered offline and measured, so it's in-tune and clean, not just plausible.)</p>
|
||||
|
||||
<p><b>🎛 GODSONIQ — resample the world onto the keys.</b> A cheeky nod to the Ensoniq ASR-10: right-click the sky → <b>🎛 GODSONIQ</b> and it records ~3 seconds of the <em>live</em> master mix — whatever the world is playing right now, this exact never-repeating take — into a buffer. From then on every pluck <b>replays that capture, pitched across the keyboard</b> (middle C plays it at speed, an octave up plays it twice as fast). It runs through the full FX chain, so route <kbd>crush</kbd> at it and you get the classic 12-bit sampler grit. Right-click → 🎛 again to grab a fresh slice; <b>🎸 string voice</b> (or toggling it off) drops you back to the FM tine. The browser-native bounce: freeze a moment of the planet, then play the planet like an instrument.</p>
|
||||
|
||||
@ -1024,9 +1036,9 @@
|
||||
|
||||
<p><b>Zero — the moods, the gentle front door.</b> On your very first visit the instrument greets you with <b>🌅 first light</b> instead of the full flood: a bass line, soft hats, a small melody, modest space — a thing shaped like a song, with the world still playing underneath it. Right-click the sky → <b>🌗 mood</b> to move between <i>first light</i>, <i>ambient drift</i> (no drums, all atmosphere, the planet as weather), and <b>the full storm</b> — the factory instrument with every one of the world's hands on it at once. Ease in, then open the door.</p>
|
||||
|
||||
<p><b>One — the built-in browser synth.</b> Click <b>♪</b> and a full voice rack wakes inside the page: <b>lead</b> (bitcoin's price and your market's average price both quantize to it — minor pentatonic and G dorian), <b>bass</b> (quake depth chooses its notes in a low minor), <b>pad</b> (brightened by Tokyo's warmth, daylight, harmony, the birth rate, longer lives), <b>drone</b> (thickened by aircraft aloft, barometric pressure, Saturn's slow wheel, the weight of the national debt), and <b>perc</b> (BTC volatility and market activity drive the hats). Over them sit the effects the world modulates: <b>reverb</b> (earthquakes open the void, room light sizes it), <b>delay</b> (your hand's Y feeds it, Mercury retrograde smears it), <b>saturation</b> (Delhi's air becomes grit, hard aspects add dissonance, wildfires burn it, hunger grinds beneath), and <b>glitch</b> (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.</p>
|
||||
<p><b>One — OMNI, the built-in browser synth.</b> Click <b>♪</b> and a full voice rack wakes inside the page: <b>lead</b> (bitcoin's price and your market's average price both quantize to it — minor pentatonic and G dorian), <b>bass</b> (quake depth chooses its notes in a low minor), <b>pad</b> (brightened by Tokyo's warmth, daylight, harmony, the birth rate, longer lives), <b>drone</b> (thickened by aircraft aloft, barometric pressure, Saturn's slow wheel, the weight of the national debt), and <b>perc</b> (BTC volatility and market activity drive the hats). Over them sit the effects the world modulates: <b>reverb</b> (earthquakes open the void, room light sizes it), <b>delay</b> (your hand's Y feeds it, Mercury retrograde smears it), <b>saturation</b> (Delhi's air becomes grit, hard aspects add dissonance, wildfires burn it, hunger grinds beneath), and <b>glitch</b> (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.</p>
|
||||
|
||||
<p><b>🌀 The Earth Echo — a Space Echo whose tape is the planet.</b> Right-click the sky → <b>🌀 earth echo</b>, press <b>♪</b>, and the whole mix runs onto a virtual Roland tape delay — but its knobs are wired to the living world. Its <b>repeat rate</b> is the wind (Tokyo's gusts whip the tape speed, and because a tape motor has inertia the pitch <i>glides</i> as it changes — that dubby seasick bend); its <b>intensity</b> is volatility (bitcoin's fever climbs the feedback toward a screaming, self-oscillating howl); its <b>tone</b> is the air (Delhi's PM2.5 rolls the treble off until the echoes melt into a dark, suffocating soup); its <b>wow & flutter</b> is the Moon (the lunar cycle warbles the pitch with an eerie, drifting vibrato); its <b>tape wear</b> is the world's fire (every wildfire adds hiss and grit, the machine growing more fragile as the planet burns); and a <b>quake</b> throws the whole echo forward. Best of all, these six knobs are ordinary <b>voices in the matrix</b> — <kbd>echo.time</kbd>, <kbd>echo.feedback</kbd>, <kbd>echo.tone</kbd>, <kbd>echo.flutter</kbd>, <kbd>echo.wear</kbd>, <kbd>echo.wet</kbd> — so you can drag <i>any</i> 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 <i>space</i> the instrument lives in. And underneath it all, always, the <b>Schumann resonance</b>: the cavity between the Earth's surface and the ionosphere rings at <b>7.83 Hz</b> (predicted by Winfried Otto Schumann, 1952), pumped by every lightning strike on the planet — the Earth's electromagnetic heartbeat. It sits below human hearing, so it plays the <i>machine</i> instead of the ear: a 7.83 Hz pulse forever breathing the echo's tone and laying a second, planetary wow under the moon's — and, octaved up four times to <b>31.32 Hz</b>, it hums as a true sub beneath the drone voice. It is the one dial the world never turns, because it is the size of the Earth itself — and the Earth's size does not change.</p>
|
||||
<p><b>🌀 The Earth Echo — a Space Echo whose tape is the planet.</b> Right-click the sky → <b>🌀 earth echo</b>, press <b>♪</b>, and the whole mix runs onto a virtual Roland tape delay — but its knobs are wired to the living world. Its <b>repeat rate</b> is the wind (Tokyo's gusts whip the tape speed, and because a tape motor has inertia the pitch <i>glides</i> as it changes — that dubby seasick bend); its <b>intensity</b> is volatility (bitcoin's fever climbs the feedback toward a screaming, self-oscillating howl); its <b>tone</b> is the air (Delhi's PM2.5 rolls the treble off until the echoes melt into a dark, suffocating soup); its <b>wow & flutter</b> is the Moon (the lunar cycle warbles the pitch with an eerie, drifting vibrato); its <b>tape wear</b> is the world's fire (every wildfire adds hiss, the machine growing more fragile as the planet burns); and a <b>quake</b> throws the whole echo forward. Best of all, these six knobs are ordinary <b>voices in the matrix</b> — <kbd>echo.time</kbd>, <kbd>echo.feedback</kbd>, <kbd>echo.tone</kbd>, <kbd>echo.flutter</kbd>, <kbd>echo.wear</kbd>, <kbd>echo.wet</kbd> — so you can drag <i>any</i> 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 <i>space</i> the instrument lives in. And underneath it all, always, the <b>Schumann resonance</b>: the cavity between the Earth's surface and the ionosphere rings at <b>7.83 Hz</b> (predicted by Winfried Otto Schumann, 1952), pumped by every lightning strike on the planet — the Earth's electromagnetic heartbeat. It sits below human hearing, so it plays the <i>machine</i> instead of the ear: a 7.83 Hz pulse forever breathing the echo's tone and laying a second, planetary wow under the moon's — and, octaved up ×4 (two octaves) to <b>31.32 Hz</b>, it hums as a true sub beneath the drone voice. It is the one dial the world never turns, because it is the size of the Earth itself — and the Earth's size does not change.</p>
|
||||
|
||||
<p><b>Two — Web MIDI, out into a DAW or hardware.</b> In Chrome or Edge, open the ⚙ panel's WEB MIDI section, <i>enable MIDI</i>, and pick an <b>out</b> 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:</p>
|
||||
|
||||
@ -1048,6 +1060,69 @@
|
||||
|
||||
<div class="hr"></div>
|
||||
|
||||
<h2>OMNI — the softsynth, in full</h2>
|
||||
|
||||
<p class="lead"><b>OMNI</b> is the instrument's built-in voice: not one synth but a rack of classic machines in a single browser engine — a DX7-style FM tine, a JP-8000 supersaw, a Karplus-Strong string, a Juno-106 chorus, a morphing wavetable lead, a granular cloud, a 12-bit-DAC crusher, and the planet-driven tape echo below. Nothing to install; the world plays all of it at once. (Every voice was tuned by spectral analysis before it shipped — rendered offline and measured, so it's in-tune and clean, not just plausible.)</p>
|
||||
|
||||
<ol class="steps">
|
||||
<li>Press <kbd>♪</kbd> (top-right, or <kbd>F2</kbd>) to wake OMNI — the whole audio graph builds on the first press.</li>
|
||||
<li>Your first visit opens gently in <b>🌅 first light</b>. Right-click the sky → <b>🌗 mood — how much world</b> to move between <i>first light</i>, <i>ambient drift</i> (all atmosphere, no drums) and <i>the full storm</i> (every hand at once).</li>
|
||||
<li>Play notes three ways: enter <b>chakra view</b> (<kbd>C</kbd>) and click a wheel's core for a 12-key console (play it with the <kbd>Q…P</kbd> row or a MIDI keyboard); open <b>🎛 tracks</b> (<kbd>T</kbd>) to sequence a song; or just wire the world's data to play it hands-free.</li>
|
||||
<li>Shape the character: swap the pluck voice (<b>🎸 string voice</b> / <b>🎛 GODSONIQ</b>), or drag any feed onto <kbd>crush</kbd>, <kbd>wavetable.morph</kbd> or <kbd>granular.density</kbd>.</li>
|
||||
</ol>
|
||||
|
||||
<div class="spec">
|
||||
<div class="row"><span class="k">lead</span><span class="v">Morphing <b>wavetable</b> melody (mellow ↔ bright saw, swept by <kbd>wavetable.morph</kbd>). <em>World:</em> bitcoin's price & your market's average both sing the note (minor pentatonic / G dorian).</span></div>
|
||||
<div class="row"><span class="k">bass</span><span class="v">Square <b>sub</b>. <em>World:</em> earthquake depth chooses the note (low minor) — and every bass note also conducts the pad & drone pitch.</span></div>
|
||||
<div class="row"><span class="k">pad</span><span class="v">Nine-oscillator detuned <b>supersaw</b> (JP-8000, ±14¢). <em>World:</em> daylight, warmth, harmony, the birth rate & longer lives brighten it.</span></div>
|
||||
<div class="row"><span class="k">drone</span><span class="v">Sawtooth bed + a 31.32 Hz Schumann <b>sub</b>. <em>World:</em> aircraft aloft, air pressure, Saturn's wheel, poverty & the national debt thicken it.</span></div>
|
||||
<div class="row"><span class="k">perc</span><span class="v">Filtered-noise <b>hats</b> + the granular grain cloud. <em>World:</em> bitcoin volatility & market activity drive the density.</span></div>
|
||||
<div class="row"><span class="k">pluck</span><span class="v">Hand-played notes ring as a <b>DX7 FM tine</b> by default (harder = brighter) — or a <b>🎸 Karplus string</b>, or a <b>🎛 GODSONIQ</b> sample. All keys, MIDI, mind-mode & sequencer notes flow through it.</span></div>
|
||||
<div class="row"><span class="k">chorus · crush</span><span class="v">An always-on <b>Juno-106 chorus</b> widens the dry oscillators; <kbd>crush</kbd> is a <b>12-bit-DAC bitcrusher</b> on the master — route any feed at it to degrade the whole mix into lo-fi grit.</span></div>
|
||||
<div class="row"><span class="k">world FX</span><span class="v"><b>reverb</b> (quakes open the void, room light sizes it), <b>delay</b> (your hand's Y, Mercury retrograde smears it), <b>saturation</b> (Delhi's air, wildfires, hunger), <b>glitch</b> (every Wikipedia edit, light-flash & new fire fires a burst).</span></div>
|
||||
</div>
|
||||
|
||||
<h2>The Earth Echo — the planet on tape</h2>
|
||||
|
||||
<p class="lead">A virtual <b>Roland Space Echo</b> the entire mix runs onto — except its six knobs aren't yours, they're the living world's. And under all of it rings the <b>Schumann resonance</b>: the cavity between the Earth's surface and the ionosphere, pumped by every lightning strike on the planet, humming at <b>7.83 Hz</b> — the Earth's electromagnetic heartbeat, the one dial the world never turns.</p>
|
||||
|
||||
<ol class="steps">
|
||||
<li>Right-click the sky → <b>🌀 earth echo — the planet on tape</b> (or press <kbd>F9</kbd>). It reads <b>🌀 earth echo: on</b> once live.</li>
|
||||
<li>Press <kbd>♪</kbd> — the tape only sings while OMNI is running.</li>
|
||||
<li>The six knobs are ordinary <b>matrix voices</b> — drag any feed onto them, sequence them on the 16-step grid, or send them out as CV. The world's default cables are already patched:</li>
|
||||
</ol>
|
||||
|
||||
<div class="spec">
|
||||
<div class="row"><span class="k">echo.time</span><span class="v">Repeat rate / tape speed — and because a tape motor has inertia, changes <em>glide</em> and pitch-bend the tail (that dubby seasick bend). <em>World:</em> the wind (Tokyo's gusts).</span></div>
|
||||
<div class="row"><span class="k">echo.feedback</span><span class="v">Intensity — climbs toward, but never past, a screaming self-oscillation. <em>World:</em> bitcoin volatility.</span></div>
|
||||
<div class="row"><span class="k">echo.tone</span><span class="v">Treble roll-off — darkens the repeats into a suffocating dub soup. <em>World:</em> air PM2.5 (Delhi).</span></div>
|
||||
<div class="row"><span class="k">echo.flutter</span><span class="v">Wow & flutter — an eerie, drifting pitch vibrato. <em>World:</em> the Moon (the lunar cycle).</span></div>
|
||||
<div class="row"><span class="k">echo.wear</span><span class="v">Tape hiss — the machine growing more fragile as the planet burns. <em>World:</em> the world's wildfire count.</span></div>
|
||||
<div class="row"><span class="k">echo.wet</span><span class="v">Wet/dry mix — also the true on/off gate (forced to silence when the echo is off). <em>World:</em> a quake throws the whole echo forward.</span></div>
|
||||
<div class="row"><span class="k">Schumann 7.83 Hz</span><span class="v">A fixed sub-audio pulse forever breathing the echo's <em>tone</em>, and laying a second planetary <em>wow</em> under the Moon's. Below hearing, so it plays the machine, not the ear.</span></div>
|
||||
<div class="row"><span class="k">Schumann sub 31.32 Hz</span><span class="v">That same heartbeat ×4 (two octaves up) — an audible sub hum beneath the <b>drone</b> voice.</span></div>
|
||||
</div>
|
||||
|
||||
<h2>GODSONIQ — resampling the world</h2>
|
||||
|
||||
<p class="lead">The browser-native <b>bounce</b> — a cheeky nod to the Ensoniq ASR-10. Capture a few seconds of the <em>live</em> world (this exact never-repeating take of Euclid fills, ratchets and drift), then play that moment back <b>pitched across the keys</b>. Freeze a moment of the planet, then play the planet like an instrument. Its sibling <b>🌐 feed a tab</b> pours any other browser tab's audio into the world so you can resample <i>that</i> too.</p>
|
||||
|
||||
<ol class="steps">
|
||||
<li>Press <kbd>♪</kbd> first — GODSONIQ needs the audio worklet awake.</li>
|
||||
<li>Right-click the sky → <b>🎛 GODSONIQ — resample the world onto the keys</b>. It records ~3 seconds of the live master mix.</li>
|
||||
<li>Play the keys — every pluck now <b>replays your capture, pitched</b> (middle C = original speed, an octave up = twice as fast). Route <kbd>crush</kbd> at it for the classic 12-bit sampler grit.</li>
|
||||
<li>Right-click → 🎛 again for a fresh slice. Exit back to the FM tine with <b>🎸 string voice</b>.</li>
|
||||
</ol>
|
||||
|
||||
<div class="spec">
|
||||
<div class="row"><span class="k">🎛 GODSONIQ</span><span class="v">Records ~3s of the full master (post-FX, post-crush) into a buffer; every pluck then replays it. Tap again to re-sample.</span></div>
|
||||
<div class="row"><span class="k">playback pitch</span><span class="v">Note-spread ASR-style — <code>playbackRate = 2^((midi−60)/12)</code>, so middle C plays it at speed and each octave doubles/halves it.</span></div>
|
||||
<div class="row"><span class="k">🌐 feed a tab</span><span class="v">Right-click → <b>feed a tab</b>, pick another tab in the share-picker and tick <b>“Share tab audio.”</b> That sound (a YouTube video, a live stream) is now <em>in the world</em> — crush it, reverb it, or GODSONIQ-resample it.</span></div>
|
||||
<div class="row"><span class="k">the fine print</span><span class="v"><b>Chrome / Edge only</b> (Safari & Firefox can't capture tab audio). On a Mac it grabs one <em>tab's</em> sound, not all-system (for that, route through a virtual device like BlackHole). DRM'd services (Netflix, Spotify, Apple Music) come through silent — ordinary YouTube is fine.</span></div>
|
||||
</div>
|
||||
|
||||
<div class="hr"></div>
|
||||
|
||||
<h2>Saving your instrument</h2>
|
||||
|
||||
<p class="lead">A patch you have played into being — the cables you dragged, the amounts you leaned, the mutes and freezes, the tempo you locked — is a whole instrument, and it deserves to survive the tab closing.</p>
|
||||
@ -7071,7 +7146,7 @@
|
||||
}
|
||||
|
||||
const btn = document.createElement("div");
|
||||
btn.id = "sound"; btn.textContent = "♪"; btn.title = "play the sound of the world";
|
||||
btn.id = "sound"; btn.textContent = "♪"; btn.title = "play OMNI — the sound of the world";
|
||||
Object.assign(btn.style, { position: "fixed", top: "12px", right: "52px", zIndex: 10,
|
||||
width: "30px", height: "30px", borderRadius: "8px", display: "flex", alignItems: "center",
|
||||
justifyContent: "center", background: "rgba(20,28,44,0.7)", color: "#9fb4d8", cursor: "pointer",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user