sign in
×
GODSTRUMENT
an instrument played by the world
👁
👁
GODSTRUMENT
an instrument played by the world
the sun opens the filter · bitcoin plays the lead · an earthquake swells the reverb. one instrument, played by the planet — and now, by you.
✦ invite-only ✦ ask a friend for a code
read the grimoire
✦ the grimoire
×
THE GRIMOIRE
how to play the world

Godstrument is an instrument whose player is the living planet. Roughly forty real feeds — the solar wind streaming off the Sun, the price of bitcoin ticking sub-second on Binance, an earthquake off the coast of Japan, every edit to Wikipedia on Earth, the phase of the Moon, the churn of the U.S. national debt, a wildfire catching somewhere in the dark — arrive as raw numbers, are cleaned into control signals, and are fired at one central hub. There the hub smooths them, learns their ranges, and pours them through a modulation matrix — a patchbay where every feed can be wired to a sound. The world already moves; here it moves something. You don't play the notes. You decide what drives what. Imagine, but also know: the sound you hear is the sky doing exactly what the sky is doing, routed through choices you made.

⚡ Quick-start — make it sing in a minute
  1. Press T — the tracks & grooves panel opens.
  2. Pick a ♪ scale up top — or just switch skins (each cosmology is its own key).
  3. On a note voice (lead/bass): hit ⬢ euclid — pulses 11, steps 16 — for a busy, even rhythm.
  4. Click 2–3 notes in one column so they turn blue: ⬛ Play One picks one at random each pass.
  5. Open the ratchet lane and drag a couple of steps to 3–4 for instant rolls.
  6. Switch to a texture voice (filter, glitch), gate a few steps, and ⬗ p-lock them to blocky values.
  7. Press . In-key, never-repeating, self-glitching — the planet playing your machine.
Everything below is the full lore. Tap ☰ contents (top-right) to jump anywhere.

Getting in

Godstrument is invite-only. There is one shared planet — the same Sun, the same quakes, the same Moon reach every account, because there is only one world and everyone is standing on it. But your instrument is your own: the routing, the groups, the curves, the mix, the spells you save — that patch is yours.

How a feed becomes sound

A feed does not arrive as music. It arrives as a number in its own stubborn units — solar wind speed in kilometers per second (250800), BTC price in dollars, quake depth in kilometers, PM2.5 in micrograms over Delhi, debt.total in the tens of trillions. Between that raw honesty and a usable control signal sits a chain — five refinements, each earning its place — after which the signal enters the matrix and finds its voice.

Every cable pointed at the same voice is summed — so a destination is a chord of the world. pad.brightness alone is fed by Tokyo's warmth, the local daylight, the room's own brightness through the mic, aircraft altitude, a harmonious sky, fertile days on the biodynamic calendar, the birth rate, longer human lives, and the northern summer — nine feeds folded into one glow. The sum becomes a voice; the voice streams out as MIDI CC and notes, as OSC to Ableton or TouchDesigner, and to the live visualizer, where you watch the planet play the instrument you wired.

The eight shapes — every number the world sends has a temperament

Beneath the hundred sources there are only eight shapes of data. Name the shape and the whole question of "how should this become sound?" answers itself. This is the instrument's deepest grammar — every feed, present or future, is one of these eight temperaments, and each temperament has a canonical way of being cleaned, bounded, and spoken.

1 · Drift — smooth, slow, bounded. The moon's phase, the seasons, life expectancy, the sun's height. The world's breathing. It wants gentle smoothing and a known range, and it sounds like modulation: filters opening, space swelling, brightness turning. Drift is the tide under everything.

2 · Flux — continuous but restless. Wind, market velocity, bitcoin's fever, the room's loudness. It jitters, so it wants the One-Euro filter (calm when idle, quick when it truly moves) and an adaptive window that learns its recent range. Flux sounds like movement: LFO rate, grit, the busyness of the percussion.

3 · Events — silence, then a spike that carries a magnitude. An earthquake, a wiki edit, a new wildfire, a flash of light. Not a level but an occurrence. Events want envelopes — the quake's slow 3.5-second bloom, the edit's sharp spark — and they sound like triggers: hits, swells, gates thrown open, magnitude as velocity.

4 · Counts — small integers stepping up and down. Aircraft aloft, wildfires burning. Discrete by nature; smoothing them into a continuum wastes their character. Counts sound like steps: how many drone voices, how many hats, a census turned to rhythm.

5 · Accumulators — numbers that only ever grow. The national debt, the human population. As a level they are almost mute (normalized, they read "1.0, forever"), so the music lives in their derivative — which this instrument discovered by instinct when debt.vel and clock.popvel were built as their own feeds. The mass becomes a drone's weight; the velocity becomes its life.

6 · Angles — degrees on a wheel, 0 to 360, and then the wrap. Every planetary longitude, the zodiac hour. An angle is not a quantity but a position on a circle: it wants sawtooth treatment (an orbit completing is a downbeat — Saturn crossing 0° Aries should be felt), circular mappings (pan, phase), and quantizing — twelve signs are twelve notes waiting.

7 · Enums — a named phase from a small set. The almanac's earth/leaf/flower/fruit element, the hour's zodiac animal. Not quantities at all — categories — and treating them as sliders makes a fruit-day sound "33% louder" than a leaf-day, which is nonsense. An enum wants to switch things: the scale, the timbre, the sample bank. A categorical change is a mode change: the world modulating to a new key.

8 · Booleans — yes or no. Mercury retrograde, day or night, fertile or not. They want to toggle: mute a layer, flip major to minor, throw the delay in. When retrograde switches on, the state of the world has changed, and the instrument should change state with it.

The whole pipeline, then, in four verbs: SHAPE → CLEAN → BOUND → SPEAK. Know the shape; clean it by its temperament (One-Euro for flux, envelope for events, derivative for accumulators, wrap-awareness for angles, hands-off for enums and booleans); bound it by its temperament (fixed range for drift, rolling window for flux, log for magnitudes); and let it speak in its native register — drift modulates, flux moves, events strike, counts step, angles cycle, enums switch, booleans toggle. Eight temperaments of number. The planet has no other kinds.

The sources — the world, listening

Forty-odd feeds, and not one of them was invented to flatter you. Nearly every source is a real measurement of a real thing happening right now — a satellite over the Pacific, a trade clearing on Binance, a tremor under Honshu, the Moon at some true longitude computed to the arc-second. A few, honestly, are models rather than live gauges: the human birth-and-death tide is a demographic model, and the room sensors (your hand, the light) fall back to a gentle simulator until a real rig is plugged in. Where the world truly is measured the hub does not synthesize it; it listens, normalizes what it hears into a clean 0..1 stream, and hands that stream to the matrix as a modulator. What follows is the whole choir, grouped by where in the world each voice lives. For each: what it truly measures, the tempo it naturally moves at, and why this — of all things — deserved to be a voice.

Read every source through three lenses at once. The feed: the actual API or computation behind it. The character: how fast it moves, because tempo is destiny in a modulation matrix — a sub-second feed is a rhythm engine, a decade-scale feed is ballast that barely breathes. The lore: what it means that this signal has a seat in the ensemble. A signal's normalization range (its lo/hi in config.json) is its tuning: it tells the hub what counts as "silent" and what counts as "full open" for that voice.

Sky & space — the feeds that fall from above

sun.speed — solar wind speed. The literal velocity of the solar wind, in km/s, pulled live from NOAA's Space Weather Prediction Center (SWPC). Normalized 250→800 km/s: quiet solar wind sits near the floor, a coronal-hole stream or the leading edge of a CME shoves it toward the ceiling. Its filter is heavily damped (min_cutoff 0.4, β 0.01) so it drifts rather than jumps — a slow LFO that changes over minutes to hours as the Sun's weather washes over the Earth. In the starter patch the Sun opens the master filter (amt 0.85, exp): the single largest hand on the brightness of the entire instrument belongs to a star 150 million km away. When the heliosphere gusts, the whole record opens up. It is the oldest possible reason for a sound to get brighter — the Sun did it.

iss.vel — ISS ground speed. The ground-track velocity of the International Space Station, derived from its live position (open-notify / orbital elements). The station laps the Earth every ~92 minutes at roughly 7.66 km/s, so raw speed is nearly constant — which is why it's normalized minmax over a 60-sample window, letting the hub auto-scale the tiny real variations into usable motion. Character: a smooth, patient drift. It morphs the wavetable (amt 0.4) — the timbre slowly bends as the one permanently-crewed outpost above us circles. A human hand is up there right now; here it turns a knob on the timbre.

planes.count / planes.avgalt / planes.avgspeed — aircraft aloft. A live census of aircraft from OpenSky: how many are in the air in a region, their average altitude (0→13000 m) and airspeed (0→300 m/s). Count is minmax-normalized over 100 samples because "how many planes" swings between night and rush hour. Character: a swarm — dozens to hundreds of tracked objects, breathing on the diurnal cycle of human travel. Aircraft aloft = drone density (amt 0.5): the more of humanity is airborne, the thicker the drone. Altitude tilts the pad (amt 0.3): a sky full of cruising jets brightens the pads, a sky of low departures dims them. The drone is literally the sound of everyone who is flying.

Weather & air — the local troposphere

weather.temp / wind / pressure / precip / humidity — Tokyo's weather. Open-Meteo, keyless, at a fixed venue (Tokyo in the starter patch). Temperature -10→45°C, wind 0→30 m/s, pressure 970→1040 hPa, precip 0→10 mm, humidity 0→100%. Weather is the archetypal slow / mood feed — it moves over hours, so temp carries a gentle damped filter (min_cutoff 0.3, β 0.005). The mappings are almost synaesthetic: warmth = brighter pads (scurve, amt 0.6), wind speed = LFO rate (amt 0.55, so a gale literally modulates faster), barometric pressure = drone weight (amt 0.4, the heaviness of the air becoming the heaviness of the drone). This is the weather you'd feel if you stepped outside in Tokyo, transposed into how the room feels.

air.pm25 / pm10 / aqi — Delhi's air. Open-Meteo's air-quality endpoint, pointed at Delhi: PM2.5 (0→250 µg/m³), PM10 (0→400), US AQI (0→300). Slow, like weather, but pointed at one of Earth's most polluted skies on purpose. Delhi's air becomes grit (amt 0.75, exp) — particulate matter drives the saturation/distortion, so the dirtier the air a fifth of humanity breathes, the more the sound corrodes. Worse air, more glitch (aqi → glitch, amt 0.3, exp3 — a steep curve that stays clean until the air turns genuinely toxic, then breaks). This is the instrument's conscience: pollution you can't see, made into a texture you can't ignore.

Markets — money in motion

crypto.price / crypto.vel — Bitcoin. Live trades off the Binance websocket firehose. Price is zscore-normalized over a 400-sample window (so it's "how unusual is this price vs the recent run," not an absolute dollar figure); volatility (crypto.vel) is minmax over 120 samples with an aggressive, snappy filter (min_cutoff 2.0, β 0.15) so it reacts in near-real-time. This is the fastest feed in the instrument: sub-second chaos, a genuine rhythm engine. BTC volatility drives the hats (amt 0.8, scurve) and nudges the tempo (amt 0.25) — when the market convulses, the percussion densifies and the track leans forward. And Bitcoin plays the lead melody (crypto.price → lead.note, quantized to minor pentatonic, root 60 / C, 2 octaves) — the price doesn't wobble formlessly, it picks notes in a key. The market's fear and greed, rendered as a melody line that's always in tune.

The trading desk — more markets, and the market's mood as signals. The same Binance tap now carries ETH and SOL (crypto.eth, crypto.sol, each with its own velocity) and — because Binance quotes the euro itself — EUR/USD live (fx.eurusd, on a steady one-second pulse). The slower currencies arrive as ECB daily reference rates: fx.gbpusd, fx.usdjpy, fx.audusd — glacial, tectonic feeds like the national debt; drones, not melodies. And Bitcoin now speaks its own technical analysis, computed on five-second closes so it is stable no matter how fast the trades storm in: crypto.macd is the MACD line (fast EMA minus slow — momentum, z-scored so above-half means a bullish push), crypto.rsi is Wilder's RSI(14) (a natural mean-reverting wave: near 1 overbought, near 0 oversold — practically a market-driven LFO), and the cross bells: crypto.cross_up fires a single impulse the moment the fast average climbs over the slow (a golden cross in miniature) and crypto.cross_down when it falls through — patch them to a bell, a chord, the reverb throwing open, and the market's turning points become events you hear happen. Every one of these routes through the Spirits like any money: to the solar plexus, to Hod, to the dwarves in Nidavellir, to ᚠ fehu — wealth is strife among kinsmen.

The stadium — the world at play (opt-in). Start the hub with --sports and TheSportsDB's free tier joins the orchestra. It stays off until invited because the free key is shared and rate-limited (30 calls a minute) — so the worker is polite by design: the day's fixtures arrive in a few calls per hour, and everything else is computed at home. sport.events_today counts the planet's fixtures; sport.inplay is how many matches are being played right now — the world's stadium lights as a stepped curve climbing through the evenings; and sport.kickoff fires the instant any match begins, swelling when many begin together — three o'clock on an English Saturday rings like a carillon. Somewhere, a whistle blows; patch it to a bell and hear the world step onto the pitch. It routes where play belongs: Netzach — Victory — on the Tree, the fifth house Leo on the wheel (the house of games), the funeral games of Lughnasadh's great fair, ᚹ wunjo the joy-rune, ☱ duì the joyous lake. (Live scores are the paid tier; the schedule is free, and the kickoff was always the musical part.)

market.velocity / market.turnover — your dealgod market. Your own deal-flow, read from the basegod warehouse (dealgod.price_events, ~4M rows) over the tailnet — a single read-only aggregate query, no writes. Binned into an activity curve (velocity) and an average-price curve (turnover), replayed compressed and jog-scrubbable. Both are pre-normalized 0→1. Character: a replay with a playhead, so it's scratchable like a record. Your market drives the hats (amt 0.7) and nudges tempo (amt 0.2), mirroring BTC; pricier gear moving = more grit (turnover → saturation, amt 0.5, exp); and your market plays the lead (turnover → lead.note, G dorian, root 55, 2 octaves). This is the one voice that is yours — your commerce, given a melody in a mode with a little melancholy built in.

Humanity — the species, in aggregate

wiki.rate / wiki.edit.event — the human pulse. The Wikimedia SSE stream — the real-time firehose of every edit to every Wikipedia, worldwide. Two signals fall out of it: wiki.rate, the smoothed global edit rate (minmax/200-window, a texture), and wiki.edit.event, a discrete impulse per edit (an event type with a fast attack of 0.005 and a 0.25s decay — a spike, not a level). Character: a relentless, chattering pulse, thousands of edits an hour. The internet's pulse = texture (wiki.rate → granular density, amt 0.6) is the ambient hum of collective attention; every human edit = a glitch burst (amt 0.9) means that somewhere on Earth, a person just fixed a typo or added a citation, and you heard it as a click. This is the loudest data source by volume — the README notes it's most of the recording footprint. It is humanity thinking out loud, made audible.

clock.pop / births / deaths / popvel — the vital rates. Modelled world vital statistics: population (8.0→8.3 billion), births/sec (0→8), deaths/sec (0→5), net growth/sec (popvel, 0→4). Not a live census — no such feed exists per-second — but a steady demographic model, so these are glacially smooth. Humanity's growth thickens the drone (popvel → drone.voices, amt 0.4); the birth rate lifts the pads (amt 0.2, brighter); the death rate adds weight (deaths → saturation, amt 0.2, grittier, heavier). The two ends of every human life are wired to opposite ends of the timbre — birth to light, death to grain — and both are always sounding, because both are always happening.

Earth & fire — the planet's violence

quake.event / quake.depth — earthquakes. The USGS all-hour GeoJSON feed — every earthquake on Earth in the last 60 minutes, refreshed live. quake.event is an event impulse scaled by magnitude (0→7) with a long 3.5s decay — a slow swell, not a click; quake.depth maps hypocenter depth (0→300 km). Character: rare, seismic, unpredictable — the definitive event-burst source. Earthquakes open the void (quake.event → reverb.size, amt 1.0, with a gate=0.35 so only real quakes trigger it) and swell the whole field (→ master.space, amt 0.9). Deep quakes choose the bass note (depth → bass.note, minor scale, root 28 / low E, 2 octaves) — a shallow tremor and a deep one pick different notes, so the Earth's fault lines are, quite literally, a bass sequencer you cannot predict. When the ground moves anywhere on the planet, the reverb blooms and the low end speaks.

fire.count / fire.event — wildfires. Active wildfires worldwide (fire.count, 0→600, damped filter) plus an impulse per newly-detected fire (fire.event, attack 0.01, 0.5s decay). Character: a slow-burning level with occasional flares. The world's wildfires burn the saturation (count → saturation, amt 0.4, exp — the more of the world is on fire, the more the sound scorches); each new fire flares a glitch (amt 0.8). Fire is elemental here in the plainest way: the planet's combustion becomes the instrument's distortion.

The economy — the ledger of the age

debt.total / debt.vel — the US national debt. Pulled keyless from the US Treasury: the total debt (normalized 38→42 trillion dollars, with the most damped filter in the config, min_cutoff 0.08) and the daily churn (debt.vel, 0→50 billion/day). Character: the slowest ballast in the instrument — the total barely moves, by design. The weight of the debt as a drone (total → drone.voices, amt 0.3): a number so large it's abstract, made into a low, ever-present mass in the mix. The debt churn grinds the saturation (vel → saturation, amt 0.4, exp): the daily motion of that number as grit. The debt is the drone you can't turn off — which is the point.

econ.inflation / econ.cpi_mom — inflation. US CPI from the BLS, keyless: year-over-year inflation (0→10%) and month-over-month CPI change (-1→2%). Slow, monthly-updated, damped. Inflation quietly presses the tempo (→ tempo.nudge, amt 0.2, scurve) and erodes the space (→ master.space, amt 0.3) — the reverb tightens and the track creeps faster as money loses value. It is a grinding pressure you feel before you name it, in the economy and in the mix alike.

world.poverty / hunger / fertility / lifeexp — the human condition. World Bank indicators, keyless: extreme poverty (0→20% of the world), undernourishment (0→15%), fertility rate (0→4), life expectancy (50→85 years). These change over years — the most glacial, almost-static feeds here, the deep tuning of the whole instrument's mood. Poverty weights the drone (amt 0.35), hunger grinds under everything (saturation, amt 0.25), longer lives, brighter pads (lifeexp, amt 0.2). The state of the species sets the baseline the fast feeds dance on top of.

The heavens — the sky, computed live

astro.moon / moon_lon / sun_lon / mars / venus / jupiter / saturn / mercury. Not fetched — computed, live, with the Swiss Ephemeris in Moshier mode (no data files, valid 3000 BC–3000 AD). The sky is generated on demand like the sun worker. Moon phase (0→1, most-damped filter min_cutoff 0.1); every planet's ecliptic longitude (0→360°). These are the purest LFOs in existence — real orbital motion, spanning the Moon's monthly wheel to Saturn's 29-year one. The Moon phase sets the tide of space (astro.moon → master.space, amt 0.6, scurve); the Moon's wheel drives the LFO (moon_lon → lfo.rate, amt 0.4); Saturn's slow wheel weights the drone (amt 0.4 — Saturn's longitude has its own ultra-damped filter, min_cutoff 0.08); Mars morphs the timbre (amt 0.3). The oldest instruments humans ever built were clocks for these bodies; here they're oscillators again.

astro.tension / harmony — the aspects. Computed from the same ephemeris: a count of hard aspects (squares, oppositions — tension, 0→8) and soft ones (trines, sextiles — harmony, 0→8). This is real geometry — the angular relationships between the planets right now — read through the old astrological grammar. Hard aspects = dissonant grit (tension → saturation, amt 0.45, exp); a harmonious sky brightens the pads (harmony → pad.brightness, amt 0.4, scurve). The literal shape of the solar system becomes consonance or friction in the sound.

astro.retro / mercury_retro — retrogrades. Boolean/count flags for planets in apparent retrograde motion, computed from velocity sign. Mercury retrograde smears the delay (mercury_retro → delay.feedback, amt 0.6 — the planet of communication turns backward and the echoes run long); the more retrogrades, the more glitch (astro.retro → glitch, amt 0.3, exp). Whatever you believe about the lore, the astronomy is exact — and the instrument leans into the myth on purpose.

The almanac — sowing by the moon

almanac.element / waxing / dec / fertile. The old plant-by-the-moon calendar, computed from the same sky by world_almanac.py — no data, no downloads. The zodiac's four elements cycle fire→earth→air→water, and biodynamic tradition maps them to crop types, so the Moon walks a slow four-step sequencer changing every ~2.25 days: earth=root, water=leaf, air=flower, fire=fruit/seed (almanac.element, damped). Also: waxing/waning (waxing — sow above vs below ground), the Moon's ascending/descending declination cycle (dec, ~27.3 days), and a fertility score (fertile). The Moon's element steps the timbre (element → wavetable.morph, amt 0.4 — a four-step timbral sequencer keyed to the garden); fertile days brighten the pads (amt 0.3, scurve); the Moon rising/falling sets the LFO (dec → lfo.rate, amt 0.25). A farmer's calendar older than the telescope, quietly conducting the instrument's character.

zodiac.year / element / hour — the Chinese zodiac. The twelve-animal cycle: the year's animal and element, and the hour animal (zodiac.hour), which turns every ~2 hours through the traditional double-hour cycle (0→1, damped). The hour animal turns the timbre (zodiac.hour → wavetable.morph, amt 0.3): across a day the timbre steps twelve times, through the Rat, Ox, Tiger and the rest. Time-of-day as a slow, mythic sequencer.

Your hand & room — the sensors in the space with you

tof.cx / cy / near — the hand sensor. A time-of-flight sensor (or its simulator) reading your hand's position: X and Y in frame (0→1) and proximity (near). All three carry snappy, responsive One-Euro filters (min_cutoff 1.5, β 0.1) so gesture tracks with low lag. Character: immediate, gestural, yours — the fastest human-scale input. Your hand X morphs the wavetable (amt 0.9 — the strongest single hand on the timbre), hand Y feeds the delay (cy → delay.feedback, amt 0.7, scurve), your hand pushes the filter further (near → filter.cutoff, amt 0.5, adding to the Sun's push). And tof.cx doubles as the warp-scrub control: it sets the playhead speed on the quake and dealgod replay loops. Your hand and a star both open the same filter — that's the whole thesis.

hand.open — hand openness (camera). From the vision worker: how open your palm is (0→1). Open palm opens the filter (amt 0.6) — and in config.json's controls it's also a macro: an open hand swells the entire @planet group's gain (0.2→1.4). One gesture leans on the whole local world at once.

light.lux / light.flash.event — ambient light. A light sensor: room brightness (0→1000 lux) and an impulse on sudden flashes (light.flash.event, attack 0.002, 0.15s decay — the sharpest, fastest envelope in the instrument). Room light sizes the reverb (lux → reverb.size, amt 0.5 — a bright room, a bigger space); a flash triggers a glitch (amt 1.0). The literal light in the room becomes the size of the imagined room in the sound.

audio.rms / audio.centroid — the room mic. From the audio worker: loudness (rms, minmax/120-window) and spectral centroid (centroid, 200→6000 Hz — "how bright the room sounds"). Room loudness feeds the space (rms → master.space, amt 0.4); room brightness → pad brightness (centroid → pad.brightness, amt 0.35). The room the instrument plays in is itself a source — clap, talk, or fall silent, and the mix answers. The space listens to its own space.

sky.day / sky.elev — the local sun. Computed from NOAA solar-position math for your venue: day/night state (sky.day, 0→1) and the Sun's elevation angle (sky.elev, -30→75°). Both ultra-damped (min_cutoff 0.15, β 0.002) — the slowest, most inevitable LFO there is: sunrise and sunset. Local daylight raises the pads (sky.day → pad.brightness, amt 0.7, scurve — the single strongest pull on the pads); the Sun's height sets the space (sky.elev → master.space, amt 0.3). Play the instrument at dawn and at midnight and it is a different instrument, because it knows where your Sun is. The room, the hand, and the planet — the same kind of thing, all the way up.

season.north / season.south — the seasons. Computed from the Sun's declination: how deep into summer each hemisphere is (0→1 each, damped). Northern summer brightens (season.north → pad.brightness, amt 0.3, scurve). The year's longest, slowest breath — a brightness that swells across months, opposite in the two halves of the world, so the instrument's high summer and deep winter are always both present, pulling against each other.

That is the choir. A star, a market, a fault line, the Moon, a species' birth and death rate, and your own open hand — each one a real number, each one wired to a real change in the sound, each one always sounding whether you attend to it or not. You do not add these voices. They are already singing. The instrument only asks: which of them are you listening for?

Your own sources — the Source is also you

The sacred is not only the sky. It is also the body, the wallet, the pulse — exercise and money and food and joy. The world's choir is the same for everyone; your own sources are the verse only you can sing. Everything in this layer is opt-in, yours, and private: nothing is read without your say-so, and your body's data goes to your browser and nowhere else.

♥ Your heart — live now. If you have a Bluetooth heart-rate device (a chest strap, many watches and fitbits in broadcast mode), right-click the sky and choose ♥ connect your heart. The browser itself asks your permission — that is the opt-in — and from that moment body.heart is a source like any other: your pulse in beats per minute, normalized 40→180, ready to be patched into anything. It routes where a heart belongs in every tradition: the anahata chakra, Tiferet at the Tree's solar centre, Qalb among the lata'if, the Fire phase (the heart is the fire-organ in Chinese medicine), the Sun gate on the Hermetic ladder, the Querent in the spread. And there is a second, deeper wiring: choose godtime follows your heart and the instrument's tempo becomes your actual pulse — the whole planet playing at the speed of your blood. Dance, and the world keeps up. Rest, and it rests. (Web Bluetooth needs Chrome or Edge; your pulse never touches the server.)

💰 Your holdings — live now. Right-click the sky → 💰 your holdings. Declare what you hold — coins, and metals through their tokens (PAXG is an ounce of gold) — and how much of each, and the amounts become weights: a bigger bag sings louder, each holding's influence auto-scaled by its share of the total. Prices poll straight from the public market to your browser — the server never learns your bag, and the ledger lives only on your machine. Each holding becomes me.btc, me.paxg…, the whole bag breathes as me.portfolio (drift) with me.portfolio.vel as its churn (flux) — and it routes where money lives in every tradition: Hod's quicksilver, the Wardens' wages in the West, the dwarves' gold in Nidavellir, the Metal phase, your hopes and fears in the spread. Stock tickers come later (they need a keyed API); your coins and your gold can sing today. Your finances were already an instrument; we only added the speakers.

✨ Your stars — live now. Right-click the sky → ✨ your stars: birth date, time to the ten-minute, the UTC offset where you were born — and the instrument casts your chart in the browser, with a real ephemeris (truncated Meeus for the lights, JPL orbital elements for the planets, precessed to the tropical zodiac; verified against eclipse timings and JPL positions to a fraction of a degree). Computed here, kept here: the server never sees a chart. Then the sky's living conversation with your sky becomes seven sources: natal.harmony (transiting trines & sextiles to your points — grace), natal.tension (squares & oppositions — friction), natal.hits (conjunctions — emphasis), natal.moon (the fast hand: the Moon crossing your chart, fresh every few hours), natal.saturn (the slow teacher, a months-long pressure), natal.birthday (the solar return, swelling as your day approaches) — and the deep one, natal.web: your chart's own tight aspects form a resonance network, and a transit striking one end of your natal opposition rings the whole figure, exactly as astrology reads it. Your natal planets also appear as gold ghosts under the godtime dial, so you can watch Saturn creep toward your natal Sun for weeks before you hear it arrive. Transit orbs are kept tight (aspects peak sharply at exactness, as transit practice demands) so these sources spike and breathe rather than drone. Load anyone's chart — yours, a lover's, a friend's; the instrument plays relationships too. Give it your birthplace (lat/lon) and the chart gains its angles: the ascendant and midheaven, computed from the sidereal time of your birth (the formula is verified against the sunrise itself — the Sun stands on the ascendant as it rises). Your rising sign is announced when the chart is cast, transits striking the angles become natal.angles (hard contacts to the ASC and MC — among the heaviest events in transit work), and the wheel skin draws your whole-sign houses, the oldest house system there is, with the ASC and MC marked in gold. One honest caveat from the mathematics: the angles move a degree every four minutes, so they are only as true as your birth time. And then, synastry: save two charts and press on the second — the instrument computes every aspect between the two charts (the inter-aspect web) and the relationship itself becomes sound: syn.harmony and syn.tension as the bond's standing grace and friction, syn.hits its meetings, syn.web ringing live whenever the moving sky strikes either person's end of any bond-aspect, and syn.moon — the bond's daily weather, freshened every few hours by the Moon. On the zodiac wheel the second chart appears as a silver ring inside the gold one, the bond's own chords strung between the two charts. Your oppositions to another person's planets, audible.

One Source, many Spirits, one Matter — and the Source was never only "out there." The instrument's ambition is simple: everything that varies can sing, and the first citizen of that everything is you.

The living patch — what drives what

This is the factory routing: every cable in config.json, source by source, voice by voice. Each cable is a real feed normalized to 0..1, bent by a curve, scaled by an amount, and poured into one destination of the modulation matrix. lin is honest and linear; scurve eases in and out (a soft, musical S); exp and exp3 hug the floor and only bloom near the top (so grit and glitch stay clean until the world genuinely spikes). A gate silences the cable until the source crosses a threshold. quantize snaps a wandering number onto the notes of a scale, so a data stream sings in a key instead of wobbling formlessly. What follows is the whole instrument, wire by wire — imagine, but also know.

THE FILTER — the sky's hand on the brightness. The master low-pass filter is the instrument's eyelid: closed, everything is muffled and near; open, the whole field turns bright and present. Four cables reach for it, and every one is a thing that opens.

THE LEAD & THE BASS — the market sings the top, the deep Earth sings the bottom. Only three cables carry pitch, and all three are quantized so the planet plays in key rather than sliding between notes.

THE RHYTHM — volatility is the pulse. Nothing here is a metronome; the hats and the tempo are driven by how agitated two markets are. Fast money makes fast rhythm.

THE PADS — daylight, warmth, life, and harmony make it bright. The pads are the instrument's emotional weather: their brightness is a chord of everything that means day, warmth, growth, and grace. Eight cables converge here, each a small vote for light.

THE DRONE — weight, mass, and the slow bad news. The drone's thickness is set by drone.voices: how many oscillators are stacked into the sustained bed. Everything that routes here is something heavy — pressure, crowds, debt, poverty, the slowest planet. The more of it there is in the world, the denser and darker the floor.

THE GRIT — saturation is where the world's suffering and combustion live. saturation is the distortion/drive stage — the instrument's grit and grind. Almost everything routed here is pollution, dissonance, death, fire, hunger, or debt, and most of it goes through exp curves so the grit stays clean until the world genuinely worsens, then bites hard.

THE GLITCH — every discrete shock in the world is a burst. glitch is momentary digital rupture — stutters, buffer-shatter, transient chaos. Its sources are almost all events: impulse feeds that spike to 1.0 the instant something happens, then decay. This is where the world interrupts the music.

THE SPACE & THE REVERB — the size of the void. Two related destinations sculpt depth: reverb.size is the room the sound sits in; master.space is the overall sense of scale and field. Earthquakes, moonlight, sunlight, and the room itself decide how vast the instrument feels.

THE TEXTURE & TIMBRE — the internet's pulse and the drifting waveform. Two destinations shape the grain and shape of the sound. granular.density controls the cloud of tiny grains that make up the pad's texture; wavetable.morph sweeps the oscillator through its bank of waveforms, continuously changing the fundamental character of the tone.

THE LFO — the wind and the moon set the wobble. lfo.rate is the speed of the instrument's low-frequency modulation — the rate of its breathing, its wobble, its slow sweep. Three cables set it, and all three are things that cycle.

THE DELAY — the echoes smear when Mercury turns and your hand descends. delay.feedback controls how much of the echo feeds back into itself — low is a single slap, high is a long, smearing, self-devouring tail.

How it all sums. Every cable that shares a destination adds — the pads are the sum of daylight and Tokyo's warmth and a harmonious sky and the room's own brightness and the birth rate; the grit is Delhi's air plus the wildfire count plus the death rate plus hard aspects plus hunger, all at once. Nothing here is a solo. At any given second the instrument is playing the whole state of the world: the Sun holding the filter open, bitcoin singing the lead while the deep Earth answers in the bass, the Wikipedia firehose glittering, an earthquake ready to blow the void wide, the moon setting the tide of space, the debt sitting in the floor, your hand morphing the waveform and feeding the delay. This is the factory patch — and config.json is where you rewire any of it.

The vibes — grouping by feeling

A vibe is not a folder. It is a mood you can grab. Godstrument's ~40 real feeds are already sorted once by what they are — the modulation matrix, source to voice. The vibes sort them a second time by how they feel, and that second sorting is where the instrument becomes playable by hand.

The rule that makes vibes powerful is the rule that makes them strange: a single source lives in several vibes at once. BTC volatility (crypto.vel) is a member of cosmos, of market, and of fire — three feelings, one feed. The moon phase (astro.moon) belongs to heavens, to light, and to water. So when you lean on one vibe, the source it shares with another vibe ripples sideways: press fire and the market glows hotter too, because they are wired to the same volatility. Nothing here is a clean partition — it is a web of overlapping intents, exactly the way a real feeling is never only one thing.

Each vibe carries three macros you can seize at any moment:

The orbits. Some vibes are bound to a planet, and when a vibe is on a planetary orbit its gain waxes and wanes on its own — a slow tremolo at that planet's real orbital rate, scaled from orbit_base_seconds: 60. Mercury whips around in a blink; Mars breathes at roughly 113 seconds; Saturn takes about 29 minutes to complete one swell; Neptune drifts across hours. You are not hearing a metaphor for the planets — you are hearing the planets keep time. Six vibes are pinned to a sky; the other eight are elemental and archetypal, waiting for your hand or a MIDI knob to move them.

The six orbiting vibes — the ones that move themselves, each turning at its planet's true period.

The shadow and the bright — the central polarity of the whole instrument. These two vibes are the ballast and the buoyancy; play them against each other and you set the emotional water-line of everything.

The four elements — fire, earth, air, water. The oldest way of sorting the world, wired straight into the sound. Each gathers the feeds that belong to its element, whatever category they came from.

The archetypes — two last vibes that answer each other the way dark answers light: one of pure meaning, one of pure money.

Fourteen feelings, ~40 feeds, endless overlap. Grab one and the whole planet tilts toward it.

The heavens

Above the instrument turns the oldest sequencer there is. world_ephemeris.py does not fetch the sky — it computes it, with the Swiss Ephemeris running in Moshier mode: no data files, no downloads, no network, good from 3000 BC to 3000 AD. The planets are generated on demand from the current Julian day, exactly the way the sun worker generates the dawn. This is the opposite of big data — a whole cosmos conjured from a single timestamp, refreshed every 20 seconds. As above, so below; as computed, so sounded.

Astrology is perfect fuel for an instrument for one honest reason: it is inherently cyclic at wildly different rates. The Moon wheels through all twelve signs in a month; Saturn takes twenty-nine years to close its ring. Feed those angles in and you have a bank of natural LFOs spanning seconds to a lifetime — oscillators no software could make you wait long enough to hear, except that the real sky has already been running them since before the room existed.

The moon phase — the tide of space. The worker takes the Moon's ecliptic longitude minus the Sun's, the phase angle, and turns it into illumination with illum = (1 − cos(angle)) / 2 — a clean cosine swell from 0 at new moon to 1 at full. That single number rides astro.moon into master.space at amount 0.6 on an s-curve: the moon phase sets the tide of space. When the disc fills, the whole field floods and the reverb grows oceanic; at the dark of the moon the space contracts to a held breath. It is the slowest breath the instrument takes — one full inhale-and-exhale every 29.5 days — and everything else plays inside it.

The seven wheels. The worker emits ecliptic longitude (0–360°) for Moon, Sun, Mercury, Venus, Mars, Jupiter and Saturn — each a sawtooth ramp that resets once per orbit as the body crosses 0° Aries. These are the LFOs:

Venus and Jupiter are computed too but held in reserve — they feed the aspect engine rather than a cable, present in the sky's math even when they aren't singing.

Aspects — the angles between the wanderers. Every 20 seconds the worker measures the angular distance between all pairs of bodies and asks how close each pair sits to a named aspect, weighting by orb (nearer = stronger). It sorts them into two moods:

So the same instant of sky is read twice — once for what strains and once for what agrees — and grit and glow are dealt out in exact proportion to the geometry overhead. Both signals are gently smoothed (min_cutoff 0.2) so an aspect arrives as a swell, not a switch.

Retrogrades — the backward planets. The ephemeris runs with FLG_SPEED, so it knows not just where each body is but which way it's moving. Any planet (never the Moon) with negative longitude speed is retrograde — apparently walking backward against the stars. Two signals fall out:

In the heavens concept group these live together (astro.moon, tension, harmony, saturn, mars), and can be assigned Neptune's orbit — the whole sky-layer then waxing and waning on Neptune's ~2.7-hour relative pulse, a cosmos breathing inside the cosmos.

The almanac

From the very same computed sky, world_almanac.py reconstructs the oldest working calendar humans ever kept: the biodynamic planting almanac, sowing by the moon. Nothing is fetched — the Moon's sign, phase and declination all fall out of the same Swiss-Ephemeris call, refreshed every 30 seconds. The Moon becomes a gardener walking the beds, and the instrument follows her from row to row.

For millennia the rule was simple: the sign the Moon is passing through tells you what to plant, and her phase tells you whether to plant it. The zodiac's twelve signs cycle through four elements in a fixed order — fire, earth, air, water — and biodynamic tradition binds each element to a part of the plant. As the Moon crosses roughly one sign every ~2.25 days, she steps through a slow four-part sequence of crop-types:

The worker computes this with sign = moon_longitude // 30, then elem = sign % 4 (0 fire, 1 earth, 2 air, 3 water), and maps it to the crop ["fruit", "root", "flower", "leaf"]. It emits almanac.element as a quantized staircase — 0, ⅓, ⅔, 1 — heavily smoothed (min_cutoff 0.1) so each step is a soft glide. That staircase drives wavetable.morph (amount 0.4): the moon's element steps the timbre. This is the heart of the almanac's sound — the Moon walks the garden as a four-step sequencer of timbre. Root days give one waveform, leaf days another, flower and fruit their own; every ~2¼ days the instrument's fundamental character clicks over to the next bed, and there is no way to rush it, because the Moon sets the pace.

Waxing and waning — above ground or below. The same phase angle the ephemeris uses splits the month in two: waxing = 1 when the angle is under 180°. The old rule — sow above-ground crops as the moon fills, root crops as it empties — the sap thought to rise toward a growing moon and sink toward a dwindling one. The instrument carries almanac.waxing as this clean above/below flag, the calendar's simplest bit.

Ascending and descending — the second month. Beyond phase, the Moon has a whole other cycle the almanac watches: her declination, how high or low she rides against the celestial equator, swinging north and south over ~27.3 days — a rhythm distinct from the 29.5-day phase, so the two beat slowly against each other. The worker pulls it from an equatorial-coordinate call and normalizes declination into almanac.dec (0..1, min_cutoff 0.1), which drives lfo.rate (0.25): the moon rising and falling sets the LFO. In the tradition an ascending Moon is the season of harvest and grafting, a descending Moon the time to plant and transplant — and here it becomes a second, slower hand on the modulation's speed, gently offset from the phase-tide so nothing in the sky ever lines up twice.

The fertility score. The worker blends three of these into one favourability number — fertile = 0.45·illumination + 0.35·ascending + 0.20·(root-or-leaf day): fullest and brightest when the Moon is bright, climbing north, and standing in a root or leaf sign — the classic good-sowing conjunction. It rides almanac.fertile into pad.brightness on an s-curve (0.3): fertile days brighten the pads. On the almanac's most propitious days the instrument's pads open of their own accord, as if the sound itself were readier to grow.

These four — element, waxing, declination, fertility — gather in the spirit and light concept groups (almanac.fertile beside astro.harmony, clock.births, zodiac.hour), the bright and living half of the world, where the Moon's slow tour of the garden lends its patience to everything it touches.

Playing it — the gestures

The console is not a picture of the instrument. It is the instrument. Every sphere, every cable, every dial answers to the hand. Nothing here writes to config.json — the edits ride the same websocket the data rides (add_route · remove_route · set_route · make_group), so the modulation matrix rewires beneath your fingers in real time, live, on stage, mid-note.

Zoom in. Scroll (or pinch on a trackpad) to zoom the whole sky toward your cursor — get right up into the orbits, the cables, the chakra wheels. Once you're in, drag empty space to pan around, and double-click to snap back out to the full view.

Learn these seven gestures and the whole planet is under your hands:

The godtime dial

At the top of the console turns a small orrery — a real map of tonight's sky, the Moon and planets in their true longitudes, computed live by the Swiss Ephemeris (Moshier mode, no downloads, valid 3000 BC to 3000 AD). It is beautiful, and it is also the transport. The clock of the whole instrument is a picture of the heavens.

This is deliberate. In Godstrument time itself is planetary. The dial is the godtime — drag it and you set the tempo anywhere from 40 to 180 BPM, the orrery wheeling to follow your hand; click it to lock that tempo in place. Leave it unlocked and the world conducts: several feeds carry a small hand on the clock — crypto.vel nudges tempo at amount 0.25, the dealgod market's velocity at 0.2, US inflation quietly presses it at 0.2. Lock the dial and you take the baton back; the data still plays, but no longer on the beat.

Because the orrery is rendered client-side, in each listener's own browser, every listener conducts their own godtime. Two people on the same hub can run the same planetary data at different tempos, each with their own locked or drifting clock. The sky is shared; the pulse is yours.

Making it audible — three ways

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 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.

🌐 Feed a tab into the world. Right-click the sky → 🌐 feed a tab and the browser's share-picker opens — choose another tab (a YouTube video, a live radio stream, a Bandcamp page), tick “Share tab audio,” and that sound pours straight into Godstrument's FX chain. It's in the world now: route crush to grit it, drench it in the world's reverb, or hit 🎛 GODSONIQ to resample it and play it pitched across the keys. Click 🌐 again (or the browser's Stop sharing) to cut it. The fine print: this is a Chrome / Edge trick (Safari and Firefox can't capture tab audio at all); on a Mac it grabs one tab's sound, not the whole system (for that you'd route audio through a virtual device like BlackHole); and DRM'd services (Netflix, Spotify, Apple Music) usually come through silent — ordinary YouTube is fine.

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 — 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, 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 matrixecho.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:

MIDI-learn any of these at your synth and the planet drives your favorite hardware. You can also pick an in port and hit MIDI learn here: click a slider, mute, or sphere in the console, then twist a physical knob, and that knob is bound to that control (saved to your browser). A knob over your open palm becomes a macro over four data feeds at once. Web MIDI needs a secure context — localhost works as-is; a hosted console needs HTTPS. The browser runs the MIDI, so even a remote page drives the MIDI on your laptop.

The Ableton recipe — same Mac, three minutes, your whole plugin collection becomes the instrument. Native VST/AU plugins can't run inside a browser page — the sandbox forbids it, by design. But they don't need to: Ableton is the plugin host, and the Godstrument drives it. 1) Open Audio MIDI Setup → Window → Show MIDI Studio, double-click IAC Driver, tick Device is online — that's a virtual MIDI cable inside your Mac. 2) Here: ⚙ → WEB MIDI → enable → out port = IAC Bus 1. 3) In Ableton: Settings → Link/Tempo/MIDI → the IAC input: Track and Remote on (and Sync on, if you want godtime — or your heartbeat — to be Ableton's tempo: then press EXT in the transport). 4) Drop any instrument on a MIDI track, monitor In, and the lead (ch 1) and bass (ch 2) play it live; hit ⌘M and MIDI-map the CCs above to any macro, any plugin knob, any send. Bitcoin playing your Serum, earthquakes riding your favorite reverb's decay, Delhi's air on a distortion — every plugin you own, played by the planet. The reverse works too: MIDI-learn here binds your hardware knobs to the console's own controls.

⚡ Control voltage — the world as raw electricity, into modular gear. Two ways to make the planet move a Eurorack. The easy way, already live: the note voices are 1V/oct pitch + gate and the CCs are modulation, so route them out (⚙ → Web MIDI, or the Ableton/IAC recipe above) into any MIDI-to-CV module — a Befaco CV Thing, a Behringer CM1A, an Expert Sleepers FH-2, a Mutable Yarns — and BTC's price is bending an oscillator, the earthquake is opening a filter, the clock is your analog sync. Nothing to install; it works today. The pure way: right-click the sky → ⚡ control voltage and the browser emits true DC voltage straight from Web Audio into a DC-coupled interface (an Expert Sleepers ES-8 or ES-9 in your case). Map any feed to any output channel, choose unipolar (0→+V), bipolar (−V→+V) or 1V/oct pitch, and leave the calibration knob where your oscillator actually tracks — because a real interface and a real VCO never agree with the maths. Stock price to a drone's pitch, volatility to its filter, volume to its drive: sit back and listen to the global economy breathe and crash through an analog voice. (DC out needs a DC-coupled interface; a normal soundcard blocks it — that's what the MIDI path is for.)

Three — Strudel, TouchDesigner, OSC. The hub streams /out/<destination> floats to 127.0.0.1:9001 — point TouchDesigner's OSC In or a Max-for-Live device at that port and drive visuals or a modular from the same matrix. And strudel/godstrument.md is a starter kit that plays a live Strudel track (free, open, no Ableton) straight off the CC map, with a no-MIDI websocket path for a custom web-audio synth. One matrix, many mouths.

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.)

  1. Press (top-right, or F2) to wake OMNI — the whole audio graph builds on the first press.
  2. 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).
  3. 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.
  4. Shape the character: swap the pluck voice (🎸 string voice / 🎛 GODSONIQ), or drag any feed onto crush, wavetable.morph or granular.density.
leadMorphing 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).
bassSquare sub. World: earthquake depth chooses the note (low minor) — and every bass note also conducts the pad & drone pitch.
padNine-oscillator detuned supersaw (JP-8000, ±14¢). World: daylight, warmth, harmony, the birth rate & longer lives brighten it.
droneSawtooth bed + a 31.32 Hz Schumann sub. World: aircraft aloft, air pressure, Saturn's wheel, poverty & the national debt thicken it.
percFiltered-noise hats + the granular grain cloud. World: bitcoin volatility & market activity drive the density.
pluckHand-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 · crushAn 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 FXreverb (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.

  1. Right-click the sky → 🌀 earth echo — the planet on tape (or press F9). It reads 🌀 earth echo: on once live.
  2. Press — the tape only sings while OMNI is running.
  3. 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.timeRepeat 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.feedbackIntensity — climbs toward, but never past, a screaming self-oscillation. World: bitcoin volatility.
echo.toneTreble roll-off — darkens the repeats into a suffocating dub soup. World: air PM2.5 (Delhi).
echo.flutterWow & flutter — an eerie, drifting pitch vibrato. World: the Moon (the lunar cycle).
echo.wearTape hiss — the machine growing more fragile as the planet burns. World: the world's wildfire count.
echo.wetWet/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 HzA 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 HzThat 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.

  1. Press first — GODSONIQ needs the audio worklet awake.
  2. Right-click the sky → 🎛 GODSONIQ — resample the world onto the keys. It records ~3 seconds of the live master mix.
  3. 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.
  4. Right-click → 🎛 again for a fresh slice. Exit back to the FM tine with 🎸 string voice.
🎛 GODSONIQRecords ~3s of the full master (post-FX, post-crush) into a buffer; every pluck then replays it. Tap again to re-sample.
playback pitchNote-spread ASR-style — playbackRate = 2^((midi−60)/12), so middle C plays it at speed and each octave doubles/halves it.
🌐 feed a tabRight-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 printChrome / 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.

Building from zero — the empty instrument

The full instrument is a sensory flood by design. Zero is the other door: an empty field with nothing wired, where you build the whole thing by hand, one cable at a time. Same matrix underneath — a calmer face on it. On your first visit the three-door card offers it (🌱 start from zero); after that, press F11, or ⚙ → DIMENSIONS → ✦ dimension zero, or the 🌗 mood menu → 0 zero.

  1. Down each side sit seven vibe-rings — the world grouped into the seven elements (left) and seven domains (right). Each ring breathes with its group's live average. Click one to open its drawer.
  2. In the drawer, ⊕ pick the feeds you want. Every picked group becomes a spinning orb on the stage — its petals are the feeds, its core glows with the group's pulse. Gather more and the orbs multiply.
  3. Wire an orb to a voice: drag it onto a socket in the rack (lead, bass, pad… / filter, reverb, crush…), or — on a touch screen — tap the orb to arm it, then tap a voice. A lit green socket means it's carrying cable.
  4. Right-click a socket to assign the "synth roll" — a scale, root & octaves for a note voice, or amount & curve for an effect. Press and the thing you built plays.
  5. Right-click an orb for its menu — drop a feed (× takes its cables with it), unpatch the orb, or 💾 save it as a vibe. When you leave (⛈ enter the storm, or a mood), zero asks whether to keep your build, bring the old world back, or weave them together — your work is never thrown away silently, and it survives a reload.
the ringsThe 14 config groups, split 7 (elements: light, dark, fire, water, earth, air, spirit) + 7 (domains). Hues are the chakra palette. A ring shows its live feed-average as a breathing glow.
the orbsOne spinning orb per picked group. Petals = the chosen feeds (opacity rides each feed's value); the core pulses with the group average. Drag or tap-arm to route; right-click for feeds / unpatch / save-as-vibe.
the rackThe player-facing outputs. A socket lights green when a cable lands on it; right-click it to shape what's patched (scale/root/octaves for lead·bass, amount/curve for the rest).
leaving zerokeep my build (it becomes the whole instrument) · bring the old world back (restore what you had before zero) · weave them together (your build layered on the old world). Esc stays in zero.
persistenceYour picks + cables persist across a reload; a returning zero-builder lands back in exactly the field they left.

OMNI — the synth panel

The planet's voice, laid out like a synth. Press O or the 🎹 OMNI button (bottom-right, above 🎛 tracks). It is a view over the same voices and effects the field already drives — no new sound, just a instrument-panel face on it. Every knob does two things at once: its arc shows the voice's live world-driven value (it breathes with the planet), and its dot marks your hand.

  1. Drag a knob up or down to shape that voice — turn reverb up for more space, crush up for grit. A dot appears to mark your setting; it rides the voice's trim, so it works even before the world is wired to it, and it saves with your dimension.
  2. Double-click a knob to hand it back to the world (neutral). Right-click any knob for that voice's full node menu — every cable, level and patch.
  3. Pick the pluck's character up top: FM tine (default), 🎸 string (Karplus), or 🎛 GODSONIQ (resample the world). Beside it: start/stop, the live BPM, and the godtime 🔒 lock.
  4. 🌀 Earth echo has its own strip — flip it on and its six tape knobs (time, feedback, tone, flutter, wear, wet) appear.
the arcThe voice's current value, live — the same number the field's meter shows. Note voices (lead·bass) show their pitch here; shape those with scale, not a knob.
the dot · dragYour trim on that voice. Drag rides it up (a floor / more) or down (less); a positive trim gives a voice a level even with no cable — so OMNI plays like a real synth. Double-click resets. Saved in the dimension.
VOICESlead · bass · pad · drone · perc — the ensemble.
FX RACKfilter · reverb · delay · saturation · glitch · granular · crush · morph · lfo · space.
engine · transportFM tine / 🎸 string / 🎛 GODSONIQ for the pluck; ♪ audio, live BPM, 🔒 tempo lock.

Saving your instrument — dimensions & vibes

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. There are two sizes of keepsake: a dimension is everything; a vibe is a feeling you can hand a friend.

Dimensions — the whole world, saved. Open ⚙ → DIMENSIONS and save. The entire live state is written to your account, keyed to your login (monsterrobotparty@gmail.com): every route with its amount and curve, every group and orbit, the running mix of gains and mutes and freezes, and the godtime tempo. From any device, load it back and the exact instrument returns — the same planet, wired the same way, pulsing at the same locked BPM. The top of the list is always ✦ dimension zero — the empty field, the place you build from nothing. (Locally, spells live as patches/*.json on the host; DIMENSIONS is that same power for signed-in players, carried to your account and back.)

Vibes — a feeling, shareable. A dimension is a hard scene save of the whole instrument; a vibe is smaller and lighter — a little bundle of specific source→voice cables, the exact combo that made a moment sing. Right-click a spinning orb in zero (or any node in the full field) → 💾 save as vibe, or open ✨ vibes (the zero pill, or ⚙). Applying a vibe is additive — it lays its cables on top of whatever you already have and can be toggled straight back off, and it never touches a cable you built by hand. Then ⧉ copy the vibe's code (a short GSV1… string) and paste it to a friend, or share a godstrument.pro/#vibe=… link — they see “someone shared a vibe” and choose whether to add it. Build a vibe, save a vibe, share a vibe.

So: the sun holds the filter, the earthquake opens the void, bitcoin sings the lead and Delhi's air turns it to grit, every human edit on Earth flickers as a glitch, and the Moon walks slowly through the garden weighting the drone. You did not build these forces — they were already playing. What you built is the listening: a cable dragged here, an amount leaned there, a tempo locked to tonight's true sky. Wake the sound with , conduct with the godtime dial, hide the chrome with P, and save what you've made to carry it anywhere. The instrument was always going to play. Now it plays you back.