152 KiB
GODSTRUMENT — The Grimoire
One comprehensive, integrated grimoire for Godstrument — a live, browser-based generative instrument "played by the world." Part I is the in-app grimoire in its own voice; the appendices are the machine-readable precision behind it: every data source, voice, factory cable, concept-group, belief-system skin, control, output route, data shape, and feature system. Appendices A, C and D are generated directly from config.json; everything reflects the shipped code. Public site: https://godstrument.pro
What Godstrument is, in one breath
Live data from the real world (the Source) is read through a chosen symbolic lens — a chakra body, the Kabbalistic Tree, a tarot spread, the zodiac, and more (the Spirit / "skin") — and turned into sound and MIDI (the Matter). One planet, many spirits, one matter. The world always plays; you choose what you listen for, wire it into voices, and shape it. It runs entirely in the browser with an optional built-in synth, and speaks MIDI/OSC out to any DAW.
The signal chain, in four verbs: SHAPE → CLEAN → BOUND → SPEAK. A raw feed is identified by its shape, smoothed/enveloped per that shape, normalized to 0..1, then bent by a curve, scaled by an amount, and poured into a destination voice of the modulation matrix. Destinations sum their inputs (a voice is a chord of the world).
PART I — 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.
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.
-
Your instrument is computed in your browser. The feeds flow in, the matrix evaluates, the voices sound — the whole live console runs on your machine, watching the planet in real time.
-
Your patch is saved to your account, so the wiring you compose — which quake opens which reverb, which market plays which lead — persists and travels with you.
-
Shared planet, personal instrument. We all hear the same M4.2 off the same fault line; what it does — a swell of void, a chosen bass note, nothing at all — is your composition.
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 (250–800), 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.
-
The raw number, in its own units. Each source is one small worker process that does nothing but read the world and emit it: USGS GeoJSON for quakes, Open-Meteo for Tokyo's weather, a Binance websocket for crypto, the Wikimedia SSE firehose for edits, the Swiss Ephemeris computed on demand for the sky. Honest, but mechanical, and wildly mismatched in scale and speed.
-
The One-Euro filter — jitter without lag. Real signals shiver. A hand sensor trembles, a price feed flickers with noise. The One-Euro filter removes the shiver without the sluggish lag a normal smoother would add: it filters hard when the signal is still and opens up the instant the signal genuinely moves. In
config.jsoneach signal tunes it withmin_cutoff(how much resting jitter to erase) andbeta(how eagerly to let real motion through) — the Sun set gentle and slow (min_cutoff 0.4), the ToF hand fast and responsive (1.5), so the planet's slow feeds glide while your hand snaps. -
Adaptive normalization — auto-scaling an unknown range. A feed's range is often unknown or drifting: today's BTC volatility means nothing without knowing yesterday's. So the hub auto-scales everything to
0..1. Signals with a known span declare it (weather.temp maps-10..45°C); the restless ones learn their own —minmaxtracks the highs and lows over a rolling window (BTC volatility over the last 120 samples),zscorecenters on the recent mean (BTC price over 400). A drifting, boundless feed becomes a clean0..1that always uses its full musical range. -
Event envelopes — a rupture becomes a decaying pulse. Some things don't have a value; they happen. A quake, a Wikipedia edit, a camera flash, a new wildfire — a discrete event with no duration. The hub gives each a shape: a fast
attackand a chosendecay, turning the instant into a pulse that swells and fades. A wiki edit is a sharp spark (attack 0.005,decay 0.25— thousands per second, each a glitch); a quake is a slow bloom (decay 3.5, scaled by magnitude0..7) that opens the void and takes seconds to close. The moment gets a body. -
The modulation matrix — where each cable is a decision. This is the patchbay, and where you compose. A
routeis one cable from a source to a voice, and every cable carries four choices: -
an amount (
-1..1) — how hard the feed leans, and which way. Negative inverts it: a feed that closes a filter as it rises. -
a response curve — the feel of the lean.
linis honest and even, one-to-one.expandexp3stay low and then surge at the top, so the effect hides until the source is strong (the Sun opening the master filter, worse air erupting into glitch).logis the mirror — it leaps early then flattens, generous with small values.scurveeases in and out with a firm middle, the most musical for pads and swells (warmth brightening the pads, the Moon setting the tide of space).invflips the sense entirely. -
an optional gate (a threshold) — the cable stays silent until the source crosses it. Quakes open the reverb only past
gate 0.35, so the small tremors of the everyday Earth pass unheard and only a real rupture opens the void. -
an optional quantize — snap the signal to a scale so a data stream picks notes in a key instead of wobbling formlessly. You name a
scale, aroot(MIDI note), and a span ofoctaves. Available scales:chromatic,major,minor,dorian,phrygian,lydian,mixolydian,pentatonic,minor_pent,wholetone,hirajoshi. Bitcoin's price plays the lead in a minor pentatonic; deep quakes choose the bass note in a low minor — the Earth kept in key.
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.
-
sun.speed → filter.cutoff · amt 0.85 · exp — "the sun opens the master filter." The dominant cable in the whole patch. This is real solar wind speed from NOAA SWPC (250–800 km/s), the plasma actually streaming off the Sun past Earth right now. The exp curve keeps the filter half-shut through the quiet solar breeze and only throws it wide when a genuine gust arrives — so the Sun literally decides how bright the instrument sounds. It is the loudest voice because it is the largest object.
-
tof.near → filter.cutoff · amt 0.5 · lin — "your hand pushes it further." Hand proximity from the time-of-flight sensor (or its simulator). Where the Sun sets the ceiling, your hand leans in linearly and pushes past it — the one place where a human body and a star pull the same lever, which is the entire thesis of the instrument.
-
hand.open → filter.cutoff · amt 0.6 · lin — "open palm opens the filter (cam)." The webcam's read of hand openness. An open palm is an open sound: spreading your fingers spreads the spectrum. A second, independent human hand on the same eyelid.
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.
-
crypto.price → lead.note · amt 1.0 · quantize: minor_pent, root 60 (middle C), 2 octaves — "bitcoin plays the lead melody." The live BTC price from Binance, z-scored over a 400-tick window so only its motion matters, snapped onto a two-octave C minor pentatonic from middle C. The minor pentatonic is the scale that cannot hit a wrong note — so the most volatile number on Earth becomes a melody that is always, defiantly, musical. The market's mania, rendered singable.
-
market.turnover → lead.note · amt 1.0 · quantize: dorian, root 55 (G3), 2 octaves — "your market plays the lead." The dealgod feed's average deal price, snapped to G dorian. Dorian is minor-but-hopeful — a minor scale with a raised sixth, the mode of folk laments that still feel like they're walking uphill. Your own deal-flow gets its own lead line in its own key, a second melodist sharing the top of the mix with bitcoin.
-
quake.depth → bass.note · amt 1.0 · quantize: minor, root 28 (E1), 2 octaves — "deep quakes choose the bass note." The focal depth of the last earthquake (0–300 km) snapped to a two-octave E natural minor down in the sub-bass at E1. Literal and perfect: the deeper the rupture inside the planet, the deeper the note. The Earth's fracture depth is the pitch of the foundation. Natural minor because a quake is not hopeful.
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.
-
crypto.vel → perc.density · amt 0.8 · scurve — "BTC volatility drives the hats." BTC volatility (min-max over a 120-tick window, heavily smoothed) mapped through a soft S onto percussion density. When bitcoin thrashes, the hi-hats multiply; when it flatlines, they thin to almost nothing. The chaos of the order book is the busyness of the groove.
-
crypto.vel → tempo.nudge · amt 0.25 · scurve — "the market nudges the tempo." The same volatility, at a quarter strength, leans on the tempo itself — never seizing control, just pressing the track slightly faster when the market runs hot.
-
market.velocity → perc.density · amt 0.7 · scurve — "your dealgod market drives the hats." Your own market activity from the dealgod warehouse, running the hats in parallel with bitcoin — two independent economies co-authoring the rhythm.
-
market.velocity → tempo.nudge · amt 0.2 · scurve — "market activity nudges the tempo." And your market's busyness, too, presses gently on the clock.
-
econ.inflation → tempo.nudge · amt 0.2 · scurve — "inflation quietly presses the tempo." US inflation, year-over-year from BLS CPI (0–10%). Inflation is time speeding up on your money, so here it speeds up the track — a slow, structural pressure on the pulse rather than a jolt, exactly as it feels in a life.
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.
-
sky.day → pad.brightness · amt 0.7 · scurve — "local daylight raises the pads." A computed day/night value for your venue (NOAA solar position). The single strongest brightener: when the real sun is up where you're standing, the pads are luminous; at night they go dim and inward. The instrument knows what time it is outside.
-
weather.temp → pad.brightness · amt 0.6 · scurve — "warmth in Tokyo = brighter pads." Live temperature in Tokyo (Open-Meteo, −10 to 45°C). Warmth is warmth — a hot day in Tokyo literally warms the pad's tone, wherever you are.
-
astro.harmony → pad.brightness · amt 0.4 · scurve — "a harmonious sky brightens the pads." The count of soft aspects (trines and sextiles) among the real planets, computed from the Swiss Ephemeris (0–8). When the sky is geometrically agreeable, the pads glow. Astrology rendered as consonance — a flattering angle overhead becomes a brighter chord.
-
audio.centroid → pad.brightness · amt 0.35 · lin — "room brightness → pad brightness." The spectral centroid of the room mic (200–6000 Hz) — how trebly the room actually sounds. A bright room makes bright pads; the instrument listens to its own acoustic and answers in kind.
-
planes.avgalt → pad.brightness · amt 0.3 · lin — "altitude tilts the pad." The average altitude of aircraft overhead (OpenSky, 0–13,000 m). The higher the planes are flying, the higher the pad is tilted — thinner air, thinner and brighter tone.
-
almanac.fertile → pad.brightness · amt 0.3 · scurve — "fertile days brighten the pads." The biodynamic fertility score from the planting almanac. On a fertile day in the old sow-by-the-moon calendar, the pads open up — the garden's good days become good tone.
-
season.north → pad.brightness · amt 0.3 · scurve — "northern summer brightens." A computed northern-summer value. As the northern hemisphere tilts into summer across the year, the pads slowly brighten — the largest, slowest brightener in the room, a wheel that turns once annually.
-
clock.births → pad.brightness · amt 0.2 · lin — "the birth rate lifts the pads." Humanity's modelled births per second (~0–8). Every new life on Earth adds a sliver of light to the chord.
-
world.lifeexp → pad.brightness · amt 0.2 · lin — "longer lives, brighter pads." World life expectancy from the World Bank (50–85 years). The slow civilizational good news — that people live longer than they used to — is a quiet, persistent brightness under everything.
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.
-
planes.count → drone.voices · amt 0.5 · lin — "aircraft aloft = drone density." The raw count of aircraft currently airborne (OpenSky). A swarm is a drone: every plane in the sky adds a voice to the bed. The world's air traffic becomes a literal choir of hums.
-
weather.pressure → drone.voices · amt 0.4 · lin — "barometric pressure = drone weight." Barometric pressure (970–1040 hPa). High pressure is heavy air, heavy air is a heavy drone — you can feel a weather front in the density of the bass.
-
clock.popvel → drone.voices · amt 0.4 · lin — "humanity's growth thickens the drone." Population growth per second — net humans added to Earth every tick. The species getting larger makes the floor thicker.
-
astro.saturn → drone.voices · amt 0.4 · lin — "Saturn's slow wheel weights the drone." Saturn's ecliptic longitude (0–360°), filtered nearly to a standstill (min_cutoff 0.08). Saturn is the planet of weight, limit, and time — its 29-year march around the zodiac becomes the slowest-turning voice in the drone, a gravity you'll never hear move but always feel.
-
world.poverty → drone.voices · amt 0.35 · lin — "the world's poverty weights the drone." The share of humanity in extreme poverty (World Bank, 0–20%). A structural sorrow held in the bass — the more of it, the heavier the world sounds.
-
debt.total → drone.voices · amt 0.3 · lin — "the weight of the debt as a drone." The US national debt itself (38–42 trillion), filtered to a crawl. Not its churn — its sheer mass, sitting in the floor as ballast. A number too large to feel, made audible as weight.
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.
-
air.pm25 → saturation · amt 0.75 · exp — "Delhi's air becomes grit." Real PM2.5 in Delhi (Open-Meteo, 0–250 µg/m³) — one of the most polluted airsheds on Earth. The dominant grit source. The exp curve means clean-ish air passes clean, but as Delhi's air thickens with particulates the sound literally cakes with distortion. You are hearing the smog.
-
market.turnover → saturation · amt 0.5 · exp — "pricier gear moving = more grit." Your dealgod average price. When expensive things change hands, the mix grinds harder — high-stakes trade as texture.
-
astro.tension → saturation · amt 0.45 · exp — "hard aspects = dissonant grit." The count of hard aspects (squares and oppositions) in the real sky (0–8). Astrology's stressful angles become literal audible stress — the more the planets are at war overhead, the more the sound distorts. Dissonance in the heavens, dissonance in the drive.
-
debt.vel → saturation · amt 0.4 · exp — "the debt churn grinds the saturation." The daily churn of the national debt (up to 50 billion/day) — its rate, not its mass. The debt growing is a grinding sound; the faster it churns, the harder it grinds.
-
fire.count → saturation · amt 0.4 · exp — "the world's wildfires burn the saturation." The count of active wildfires worldwide (0–600). Combustion becomes distortion — the more the planet is literally on fire, the more the sound burns. The most direct metaphor in the patch: fire is drive.
-
world.hunger → saturation · amt 0.25 · lin — "hunger grinds under everything." World undernourishment (0–15%). A low, linear grind that never quite leaves — hunger as the grit beneath the whole mix.
-
clock.deaths → saturation · amt 0.2 · lin — "the death rate adds weight." Humanity's modelled deaths per second (~0–5). Where births lift the pads into light, deaths add grit to the drive — the two demographic rates pull the instrument in opposite directions, exactly as they pull the world.
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.
-
light.flash.event → glitch · amt 1.0 · fast attack (2 ms), 150 ms decay — "a flash triggers a glitch." A sudden flash of light in the room (sensor or sim). Full-strength, near-instant: a camera flash or a lightning strike shatters the audio for a blink. Light becoming a stutter.
-
wiki.edit.event → glitch · amt 0.9 · attack 5 ms, decay 250 ms — "every human edit = a glitch burst." The Wikipedia edit firehose (Wikimedia SSE stream) — every single time any human anywhere edits Wikipedia, a glitch fires. This is the busiest event source in the instrument: a relentless, chattering sparkle of collective human attention rewriting itself in real time. The pulse of the species, rendered as texture.
-
fire.event → glitch · amt 0.8 · attack 10 ms, decay 500 ms — "each new fire flares a glitch." Distinct from the slow fire.count grit: the moment a new wildfire is detected, a glitch flares and rings out over half a second. Ignition as an audible spark.
-
air.aqi → glitch · amt 0.3 · exp3 — "worse air, more glitch." Delhi's US AQI (0–300) through a steep cubic curve — so it contributes essentially nothing at moderate air and then erupts into instability only when the air becomes genuinely hazardous. Bad air doesn't just grind (that's PM2.5 → saturation); at its worst it makes the whole signal unstable.
-
astro.retro → glitch · amt 0.3 · exp — "the more retrogrades, the more glitch." The count of planets currently retrograde in the real sky. Retrograde motion is the illusion of a planet moving backward — apparent malfunction of the cosmos — so more retrogrades mean more glitch. When the whole solar system seems to stutter, so does the instrument.
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.
-
quake.event → reverb.size · amt 1.0 · gate 0.35 · decay 3.5 s — "earthquakes open the void." A live earthquake from USGS, normalized against magnitude (0–7). The gate is the crucial detail: nothing happens until the quake crosses 0.35 — small tremors are ignored — and then a real quake throws the reverb wide open and lets it ring out for three and a half seconds. The Earth cracks and the void yawns. Only serious quakes are allowed to move the room.
-
quake.event → master.space · amt 0.9 · "and swell the whole field." The same seismic event, ungated, also swells the total sense of space — so a big quake doesn't just add reverb, it makes the entire instrument feel momentarily enormous. The planet's rupture, felt as scale.
-
astro.moon → master.space · amt 0.6 · scurve — "the moon phase sets the tide of space." The real lunar phase (0 = new, 1 = full), filtered glacially (min_cutoff 0.1). The moon pulls tides on Earth; here it pulls the tide of space — the fuller the moon, the wider the field. A month-long swell you feel more than hear.
-
light.lux → reverb.size · amt 0.5 · lin — "room light sizes the reverb." Ambient light in the room (0–1000 lux). A brighter room reads as a bigger room — the reverb grows with the light you're actually standing in.
-
audio.rms → master.space · amt 0.4 · lin — "room loudness feeds the space." The mic's loudness (RMS). The louder the room actually is, the larger the field opens — the instrument breathes with the noise around it.
-
sky.elev → master.space · amt 0.3 · lin — "the sun's height sets the space." The sun's elevation above your local horizon (−30° to 75°), filtered nearly still. High noon feels expansive; a low sun draws the space in. The arc of the day, as depth.
-
econ.inflation → master.space · amt 0.3 · lin — "inflation erodes the space." Inflation's second cable: beyond pressing the tempo, it feeds the field — a slow structural pressure that inflation, fittingly, is everywhere in.
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.
-
wiki.rate → granular.density · amt 0.6 · lin — "the internet's pulse = texture." The global rate of Wikipedia edits (min-max over a 200-sample window) — not each edit (that's the glitch) but the overall tempo of human editing, right now. When the world is busy writing itself down, the texture thickens into a dense granular cloud; in the quiet hours it thins. The collective attention of the species as grain.
-
tof.cx → wavetable.morph · amt 0.9 · lin — "your hand X morphs the wavetable." The strongest morph cable: your hand's X position over the ToF sensor sweeps the waveform bank directly. This is the most immediate, physical, "instrument" gesture in the whole patch — move your hand sideways and the tone visibly transforms under your fingers.
-
almanac.element → wavetable.morph · amt 0.4 · lin — "the moon's element steps the timbre." The planting element of the current moon sign, which cycles fire → earth → air → water (fruit → root → flower → leaf) every ~2.25 days. So the timbre walks a slow four-step sequencer keyed to the old biodynamic garden calendar — the moon literally steps the waveform through four characters as it crosses the zodiac.
-
iss.vel → wavetable.morph · amt 0.4 · lin — "the ISS drifts the timbre." The ground speed of the International Space Station as it orbits (min-max, 60-sample window). A gentle, orbital drift in the tone — the fastest human-crewed object, felt as a slow wander in the waveform.
-
astro.mars → wavetable.morph · amt 0.3 · lin — "Mars morphs the timbre." Mars's longitude (0–360°). Mars's ~2-year circuit adds another slow hand on the morph — the red planet's wheel, turning the tone.
-
zodiac.hour → wavetable.morph · amt 0.3 · lin — "the hour animal turns the timbre." The Chinese hour-animal, which changes every two hours through the twelve-animal cycle. Every two hours a new animal takes the shift and nudges the waveform — the day divided into twelve timbral moods.
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.
-
weather.wind → lfo.rate · amt 0.55 · lin — "wind speed = modulation rate." Wind speed in Tokyo (0–30 m/s). The dominant LFO driver, and the most intuitive one: the harder the wind actually blows, the faster the instrument sways. You can hear a gale as a quickening wobble.
-
astro.moon_lon → lfo.rate · amt 0.4 · lin — "the Moon's wheel drives the LFO." The Moon's longitude through the zodiac (0–360°), a full turn every ~27 days. Not the moon's phase but its position — the fastest of the celestial wheels, driving the slow breath of the modulation.
-
almanac.dec → lfo.rate · amt 0.25 · lin — "the moon rising/falling sets the LFO." The Moon's ascending/descending declination cycle (~27.3 days) — whether it's climbing or sinking in the sky. A second lunar wheel on the LFO, subtly out of phase with the first.
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.
-
tof.cy → delay.feedback · amt 0.7 · scurve — "your hand Y feeds the delay." Your hand's height over the ToF sensor. Raise and lower your hand and the echoes lengthen and shorten under a soft S-curve — the vertical partner to the horizontal wavetable morph, so both axes of your hand shape the sound at once.
-
astro.mercury_retro → delay.feedback · amt 0.6 · lin — "Mercury retrograde smears the delay." Whether Mercury is retrograde right now (0 or 1), from the real ephemeris. Mercury rules communication and messages; retrograde Mercury is the folklore of things echoing back, repeating, garbling. So when Mercury actually turns retrograde in the sky, the delay's feedback climbs and every echo smears into the next. The lore made literally audible — for the weeks it's true, and only then.
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:
-
mute — silence every member of the vibe at once. Cut dark and the whole shadow ballast drops out; the field lifts.
-
freeze — hold every member at its current value, a photograph of the world. The frozen sources stop breathing while everything outside the vibe keeps moving. (This is the same freeze exposed on
pad 20for @planet — "freezes the planet in place.") -
gain — swell or fade the vibe's total contribution. In the factory patch an open palm rides @planet's gain from 0.2 to 1.4, and hand proximity leans on @cosmos — you conduct a whole feeling with one hand.
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.
-
planet — "the local world" · orbit: earth. The feeling of right here, right now, outside your window. Members: temperature (Tokyo), wind speed (Tokyo), air pressure, PM2.5 (Delhi), local day/night, local sun elevation. This is the weather-body of the instrument — warmth brightening the pads, wind driving the LFO, pressure weighting the drone, daylight lifting everything, the local grit of unbreathable air. It rides Earth's own year, and it is the vibe your palm conducts directly: open your hand and the local world swells.
-
cosmos — "the shared sky" · orbit: saturn (~29 min swell). The feeling of the vast machinery we all sit under. Members: solar wind speed, ISS ground speed, aircraft aloft, BTC volatility. The sun opening the master filter, the station drifting the timbre, ten thousand planes thickening the drone, the market's fever — the great shared traffic of the heavens and the atmosphere, all breathing on Saturn's patient 29-minute tide. Reaching your hand toward the sensor "leans on the cosmic layer."
-
human — "humanity" · orbit: mars (~113 s). The feeling of the species, alive and busy, in aggregate. Members: global edit rate (the pulse of everyone editing the encyclopedia at once), population growth / sec, births / sec. The internet's texture, humanity's growth thickening the drone, the birth rate lifting the pads. It swells and fades every ~113 seconds on the war-planet's wheel — Mars, because we are a restless, multiplying, world-shaking animal.
-
market — "your market" · orbit: mercury (a whip). The feeling of commerce at speed — money changing hands faster than thought. Members: BTC volatility, dealgod market activity, dealgod avg price. It drives the hats, nudges the tempo, grinds the saturation when pricier gear moves. Bound to Mercury — messenger, trader, quicksilver — so this vibe whips, waxing and waning almost too fast to track, the way a market does. Fittingly,
knob 2"liquifies the market" by smoothing its volatility. -
heavens — "the sky" · orbit: neptune (hours). The feeling of fate, aspect, the slow turning of the actual planets overhead. Members: moon phase, sky tension (hard aspects), sky harmony (soft aspects), Saturn longitude, Mars longitude. The moon setting the tide of the master space, hard aspects grinding dissonance, soft aspects brightening the pads, Saturn's slow wheel weighting the drone. This is the astrological body — and it drifts on Neptune's oceanic, hours-long swell, the dreamiest and least hurried gain in the instrument.
-
summer — "☀ summer" · no orbit. The feeling of the year at its warm apex — light and heat as a single glow. Members: northern summer, southern summer, temperature (Tokyo), local day/night. Two hemispheres' summers plus warmth plus daylight, all of them pushing pad brightness — so this vibe is almost pure luminance. Because
season.northandseason.southare always in opposition, one hemisphere's summer is always answered by the other's winter: the vibe never fully sleeps, it just migrates across the equator with the calendar.
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.
-
dark — "the shadow" · no orbit. The feeling of the world's weight — everything grinding, eroding, ending. Members: debt daily churn, US inflation, PM2.5 (Delhi), earthquake, deaths / sec, sky tension, extreme poverty, undernourishment. Look at where these route and the darkness is literal grit: debt, deaths, dirty air, hunger, hard aspects all pile into saturation — distortion as suffering. Quakes tear open the reverb and swell the whole field; inflation erodes the master space; poverty weights the drone. This is the low, grinding, dissonant undertow, the ballast that keeps the instrument from floating away into prettiness. Mute it and the sun comes out.
-
light — "the bright" · no orbit. The feeling of the world answering back — life, tenderness, growth. Members: births / sec, moon phase, sky harmony, biodynamic fertility, local day/night, world life expectancy, world fertility rate. Where dark grinds the saturation, light lifts the pad brightness: births, harmony, fertile days, daylight, longer lives all raise the glow. The moon phase sits in both vibes at once — it is the hinge between shadow and bright, the one body that is both night and light. Play light up against dark down and the instrument becomes hopeful; invert them and it becomes a dirge. This single opposition is the loudest lever in the Grimoire.
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.
-
fire — "🔥 fire" · no orbit. The feeling of heat, ignition, the thing that burns. Members: wildfires worldwide, new wildfire (event), Mars longitude, solar wind speed, BTC volatility. Literal fire (the world's live wildfire count burning the saturation, each new blaze flaring a glitch) joined to the fire-planet Mars, to the sun's own wind, and to the market's volatility — because a hot market is fire. This is the most aggressive element: grit and glitch and heat.
-
earth — "⛰ earth" · no orbit. The feeling of mass, depth, the immovable and the crushing. Members: quake depth, US national debt, extreme poverty, Saturn longitude. Deep quakes choosing the bass note from far underground, the sheer 40-trillion-dollar weight of the debt as a drone, poverty as ballast, and Saturn — lord of stone, limit, and gravity — weighting the low end. Earth is the vibe of everything heavy and buried and slow.
-
air — "💨 air" · no orbit. The feeling of the moving atmosphere and everything carried on it. Members: wind speed (Tokyo), PM2.5 (Delhi), aircraft aloft, global edit rate. Real wind driving the LFO, real particulates hanging in real air, thousands of planes literally aloft, and the internet's edit-rate as the invisible signal on the wind. Air is motion, breath, and transmission — the medium things travel through.
-
water — "💧 water" · no orbit. The feeling of flow, tide, moisture, the pull of the moon. Members: precipitation, humidity, moon phase, southern summer. Falling rain, hanging humidity, the moon that moves the tides, and the southern hemisphere's warm wet season. Water is the softest, most fluid element — and it shares the moon with both heavens and light, so the tide is never far from the sky.
The archetypes — two last vibes that answer each other the way dark answers light: one of pure meaning, one of pure money.
-
spirit — "✨ spirit" · no orbit. The feeling of the sacred, the fertile, the omen-in-the-hour. Members: sky harmony, biodynamic fertility, hour animal (2h cycle), births / sec. A harmonious sky, the biodynamic almanac's fertile days, the Chinese zodiac's hour-animal turning the timbre every two hours, and the raw fact of new life arriving. Spirit is the vibe of grace and meaning — soft, bright, generative. It is the near-opposite of wealth: value without price.
-
wealth — "💰 wealth" · no orbit. The feeling of money as a thing with weight and melody. Members: BTC price, dealgod avg price, dealgod market activity, US national debt. Bitcoin literally playing the lead melody (quantized to a minor pentatonic), your own market's turnover playing its own lead in dorian, activity driving the hats, and the national debt droning underneath as the shadow-side of all wealth. Where spirit is value-without-price, wealth is price-made-audible — and the debt sitting inside it is the reminder that every fortune casts a shadow.
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:
-
✦ astro.moon_lon — the fast wheel, ~13° a day, a full turn a month → lfo.rate (amount 0.4). The Moon's position in the zodiac literally sets the modulation rate; the wheel drives the wobble.
-
✦ astro.mars — a red two-year cycle → wavetable.morph (0.3). Mars morphs the timbre — a slow drift of the waveform's shape, keyed to the war-planet's march.
-
✦ astro.saturn — the 29-year ring, heavily smoothed (
min_cutoff 0.08, the most glacial filter in the config) → drone.voices (0.4). Saturn's slow wheel weights the drone. Saturn is time, limit, gravity, the lord of heaviness — so it is the one hand on the drone's mass, thickening it across a span most players will never live to hear complete.
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:
-
✦ HARD — conjunction (0°, orb 8°), opposition (180°, orb 8°), square (90°, orb 7°): the aspects of tension, friction, the grind of forces pulling against each other. Their summed closeness rides astro.tension into saturation on an exponential curve (0.45): hard aspects = dissonant grit. When Mars squares Saturn the sky itself distorts the signal.
-
✦ SOFT — trine (120°, orb 7°), sextile (60°, orb 5°): the aspects of ease and flow. Their closeness rides astro.harmony into pad.brightness on an s-curve (0.4): a harmonious sky brightens the pads. A well-aspected heaven opens the light.
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:
-
✦ astro.mercury_retro — 1 when Mercury is retrograde, else 0 → delay.feedback (0.6). Mercury retrograde smears the delay. Mercury is the messenger, the ruler of signal and communication; when it turns backward the folklore says messages garble and echo — and so the delay's feedback climbs, the past keeps returning, the signal will not resolve. Three or four times a year, for weeks, the instrument's echoes literally get muddier.
-
✦ astro.retro — the fraction of all bodies currently retrograde → glitch on an exp curve (0.3). The more retrogrades, the more glitch. A sky where many wanderers reverse at once is a sky out of joint, and the instrument stutters in sympathy.
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:
-
✦ EARTH signs → ROOT days — Taurus, Virgo, Capricorn. Tend what grows below: carrots, potatoes, the hidden weight.
-
✦ WATER signs → LEAF days — Cancer, Scorpio, Pisces. Tend the green: lettuce, the parts that drink.
-
✦ AIR signs → FLOWER days — Gemini, Libra, Aquarius. Tend the bloom, the reaching-outward.
-
✦ FIRE signs → FRUIT / SEED days — Aries, Leo, Sagittarius. Tend the ripening: tomatoes, grain, the seed that carries on.
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.
Learn these seven gestures and the whole planet is under your hands:
-
Click any node — toggle it on or off. A source sphere (the sun, an earthquake, Delhi's air, bitcoin's volatility) or a voice (lead, bass, pad, drone, perc): one click mutes it, and the node takes a red slash. Silence the sun and the master filter stops breathing with the solar wind; silence perc and BTC's chaos stops driving the hats. Click again — it returns.
-
Drag a source onto a voice — lay a new cable. This is composition by hand. Drag quake.depth onto lead.note and deep earthquakes start choosing the melody; drag weather.wind onto drone.voices and Tokyo's gusts thicken the choir. The cable is born live at a default amount, ready to bend.
-
Hover a crowded column — the zoom finds the one you want. The left column can hold dozens of sources packed a few pixels apart, too tight to click just one. Rest the cursor near it and a magnified strip unfolds beside it — the nine feeds nearest your cursor, spaced out and fully named with their live values, the one under you highlighted. Every row is the real thing: click to mute, ⇧-click for its tab, ⌘-click to group, or drag it straight onto a voice to patch. Reach across into the strip and it holds still for you. (Right-click the sky → hover zoom to turn it off.)
-
Shift-click any node — open its tab. The inspector tells you what the thing is (its real feed and label — solar wind speed, PM2.5 over Delhi, the dealgod market's average price), its vibe (which groups claim it), its live value ticking in real time, and every cable in and out — each with an amount slider to lean harder or lighter and a × to unpatch it entirely. This is where a rough idea becomes a mix.
-
⌘/Ctrl-click several sources, then group them — mint your own vibe. Multi-select spheres by feeling, not category — a shadow of debt and inflation and quakes and the death rate, a bright of births and moonlight and fertility — and group them into a new named macro you can then mute, freeze, or gain as one hand-sized thing. The factory ships fourteen such vibes (planet, cosmos, human, market, heavens, dark, light, and the seven elemental + seasonal blends); yours join them.
-
♪ (top-right) — wake the sound. Browsers hold audio until a human asks. This is the ask. One click and the in-browser synth spins up, and the planet — already flowing as data — becomes audible.
-
The godtime dial (top) — set the pulse. Drag it to choose a tempo from 40 to 180 BPM, with the real planets of tonight's sky wheeling around it as you turn. Click the dial to lock the tempo where you left it — otherwise the data itself keeps nudging it (bitcoin's velocity, the dealgod market, inflation, each with a small hand on the clock).
-
Press
P— performance mode. Everything that is not the world vanishes: the wordmark, the header, the counts, the godtime readout, the ticker, every button and chip — pure visuals, with only a rotating line of dispatches from the world (bitcoin at $62,902 · the moon is 81% lit · mercury is retrograde · M4.2 earthquake) rising for the audience. Put the console on the projector, hitP, and conduct. (Want even the labels and dispatches gone?Zis zen — nothing but the sky.) -
Press
W— the sky wheel. The zodiac rises behind the whole instrument, huge and faint, drawn the way a natal chart is drawn: a sign band with the twelve glyphs in their element colours and degree ticks running the rim, the living planets just inside it exactly where they stand tonight, the sky's aspects strung as chords across the wheel — red for the hard angles, green for the soft, gold for the meetings — and the sign the Sun is walking right now lit in its own colour (Cancer in early July), so one glance says where in the year you are. Cast a chart (✨ your stars) and the layer deepens: your whole-sign houses divide the wheel, the ASC and MC stand in gold, your natal planets sit as gold ghosts on the inner ring, and transit chords strike them as the sky moves. The same wheel the zodiac skin draws, now living under the main view.Wagain to put it away; it remembers. -
Press
Z— zen. Every word vanishes: labels, readouts, panels, the header, the ticker, the dial — all of it — and only the visuals remain, full screen. The spheres, the cables, the shockwaves, the sky wheel if it's up, still moving to the world; nothing left to read, everything left to watch.Zorescbrings the words back. -
The keyboard is yours —
F1–F10and beyond. A default set of function keys is ready to fly:F1the grimoire,F2play/stop the synth,F3the skin view,F4next skin,F5cycle mood,F6tracks,F7performance mode,F8lock the godtime,F9the earth echo,F10the stage. But every key is remappable: right-click the sky → ⌨ keys to bind any key to any action, or map a key from a voice's own right-click menu. Wantaandsto raise and lower a drone's level like a fader? Right-click that voice → map a key → raise its level, pressa; again for lower, presss— now they nudge it live, hold to sweep. Your whole flow, under your fingers. -
Press
C— chakra view. The sources leave their column and take up their stations on the subtle body: seven wheels on a spine of light, crown to root, each feed orbiting the chakra it belongs to — the sky's machinery at the crown, the omens at the third eye, the species talking at the throat, weather and air at the heart, fire and money at the solar plexus, birth and water at the sacral, quakes and debt and the mortal weight at the root. Each wheel glows with the live average of its members and spins its traditional petals, counter-rotating wheel to wheel. Drag empty space to spin the whole body 360°, drag up/down to tilt, flick and let momentum carry it. Everything still works in there: click a node to mute it, drag it onto a voice to patch, shift-click for its tab.Cagain and the sources glide home. -
Right-click anything — the everything menu. Every node carries its full settings under the right button: mute, solo, a level fader (0–2×), a trim offset, every cable it carries with its amount slider and an unpatch ×, and a nested patch to → list for laying new cables without dragging. Right-click the empty sky for the view menu. And the modifiers, for the fast hands: click mutes · ⇧-click opens the node's tab · ⇧-drag rides the level up and down · ⌥-click solos a source · ⌘-click multi-selects for grouping · ⌘⇧-click resets a node to neutral. People play differently; the instrument shouldn't care which hand you reach with.
-
Click a wheel — go inside it (mind mode). In chakra view, click any chakra's core and the camera steps into the wheel: its mandala of petals turns around your whole field of view, and that chakra's feeds circle you — drag to look around the full 360°. A vector console appears under your hands: 12 keys of that wheel's own scale (C minor pentatonic at the root, rising key by key to B hirajoshi at the crown), played by clicking, by the
Q–]row, or by any connected MIDI keyboard — every note runs through the world's own reverb and grit, so you are jamming inside the instrument, in that chakra's mode, while the planet plays around you.↑↓travel the spine wheel to wheel;escsteps back out. And for powerful machines, right-click the sky and set graphics to ultra ✦: every orbiting feed grows a glowing comet trail, and the orbits breathe so the trails weave slow spirals. -
Skins — the same spine, another cosmology. Right-click the sky and cycle skin. Beyond the seven chakras there is the planes: the Seven Planes & forty-nine sub-planes of the Cosmic Physical Plane from the Alice Bailey / D.K. teachings — I Divine (white light) down through Monadic (violet), Atmic, Buddhic, Mental (where the egoic lotus sits), Astral, to VII Physical (red). The spine becomes the 49-sub-plane spectrum ladder; the side-brackets mark the Monad, the Spiritual Triad and the Personality; and every feed climbs to the plane that matches its rarefaction — the sun's own wind at the Divine, orbits and the sky's geometry at the Monadic, the great cyclic wheels at the Atmic, omen and aspect at the Buddhic, abstract thought and money-as-idea at the Mental, desire and fire and felt sensation at the Astral, and the dense body of the world — weather, quakes, the mortal rates, your own hands — at the Physical. Go inside any plane (mind mode) and its keys play a scale pitched to its altitude: airy whole-tone up at the Divine, grounded minor-pentatonic down at the Physical.
-
One Source, many Spirits, one Matter. That is the whole architecture: the Source is the world's data, the same for everyone; the Spirit is the skin — the belief system through which you read it; the Matter is the sound. Choose your spirit, and the same planet plays through it — literally re-tuned: each tradition carries its own scale, so when you turn the wheel of skins the whole world re-harmonises into that cosmology's key (your grooves and the data's own melodies alike). The chakras sing one way, the Wu Xing another, the runes another still — one planet, many keys. The shelf so far, each rendered from its own published lore, literally and without frills: the Tree of Life (Hermetic Qabalah, Golden Dawn attributions — ten sephirot on three pillars, all twenty-two canonical paths, Mercury's data at Hod, the Moon's at Yesod, the body of the world at Malkut); the Lodge (from published Masonic sources only — Worshipful Master in the East, Wardens West and South, the North dark, Boaz and Jachin at the porch where your own hands stand as the candidate, the Blazing Star, the Volume of the Sacred Law as humanity's open book, and music given to the South, for Beauty holds the arts); the Hermetic ladder of the seven planetary gates, lead to silver; Yggdrasil and its nine worlds, the dwarves keeping the markets in Nidavellir; the Sufi lata'if, where the wind data literally breathes at Ruh, spirit-as-breath; and the Wu Xing, five phases in their generating ring and controlling star, the metal birds of the air routed to Metal; and the Spread — the Celtic Cross of the tarot (Waite's published layout), dealt live and never finished: the heavens in what crowns you, the deep debts and quake-roots in what is beneath you, the retrogrades in what is behind you, births and seasons in what is before you, money and fire in your hopes and fears — and your own hands in the Querent's place, because you are the one asking. Right-click the sky → skin to turn the wheel of traditions. Each map stands as its true figure — the Tree as a tree, the Lodge as a lodge — and every station opens into mind mode with its own scale under your hands. Newest on the shelf: the wheel — the astrologer's own view, twelve signs in a circle with 0° Aries at the ascendant's place, every feed routed to its sign by traditional rulership (wildfires to Aries, your holdings to Taurus, the word to Gemini, the far-travelling planes to Sagittarius…), the live planets riding the rim, your natal chart on the inner ring, and the aspects drawn as chords across the circle — red the squares and oppositions, green the trines and sextiles, gold the conjunctions, dashed where the living sky strikes your natal points. And everywhere else, those same aspects now draw as faint cables between the planets' own spheres in any skin — the sky's geometry made visible in whatever cosmology you're standing in. And every Spirit now speaks its own tongue: the sephirot in Hebrew (כתר, חכמה, בינה…), the chakras in Devanagari (सहस्रार, अनाहत…), the lata'if in Arabic (قلب, روح, سر…), the nine worlds in Old Norse (ásgarðr, miðgarðr, helheimr…), the planetary gates in their glyphs (☽ ☿ ♀ ☉ ♂ ♃ ♄), the five phases in their characters (木 火 土 金 水). The lore, in the letters it was written in. Two more Spirits joined the shelf: the runes — the Elder Futhark, all twenty-four in the Kylver-stone row, ringed as a rune-band, every feed seated by its rune-poem meaning (wealth's strife at ᚠ fehu, Odin's word at ᚨ ansuz, the giant's blow at ᚦ thurisaz for the quakes, need's narrow band at ᚾ nauthiz for hunger and want, the lot-cup ᛈ perthro holding your natal fate, and your raised hands at ᛉ algiz, the warding rune that is itself a figure with arms lifted); and the Wheel of the Year — the eight Celtic festivals at their true solar longitudes (the astronomical reckoning: quarters at the equinoxes and solstices, cross-quarters at fifteen degrees of the fixed signs), deaths and the deep things at Samhain where the veil thins, births at Imbolc, the fires and the dance and the bond at Beltane, the great fair of commerce and chatter at Lughnasadh — with the live sun walking the rim, showing exactly where the year stands today. Honesty note kept from the scholarship: the unified eightfold wheel is a modern synthesis of the attested Irish fire festivals and older solstice customs — true lore, honestly labeled. And newest of all, the first Spirit with no temple: the artist — Kandinsky's Concerning the Spiritual in Art (1911) taken at its word, his colour-sound table rendered as a wireframe easel. Six pigments squeezed round the palette — gelb the trumpet blown louder and louder (the news, the markets' mania), orange the Angelus bell (the clocks, the hours), rot the drumbeat (your heartbeat, the quakes, the flame), grün the violin's placid middle strings (the weather at rest), blau deepening from flute toward the organ (the whole heavenly circle), violett the bassoon (the retrogrades, Saturn, the sorrows) — with weiß, the great silence pregnant with possibility, waiting as the canvas itself (your unpainted chart lives there, and your own hands hold the brush), and schwarz, the pause after which nothing follows, at the palette's edge with the deaths and the debt. His four great contrasts strung dashed between the drops, and as each colour's data sings, its paint strokes itself up onto the canvas — the world painting, live. Labels in German, the tongue he wrote it in. And beside the easel now hangs the bagua — the I Ching's eight trigrams in the King Wen "Later Heaven" ring, south at the top as the old compasses have it, every feed seated by the Shuogua's own attributions: the earthquakes at ☳ zhèn, the trigram that literally means thunder-shock; the word at ☱ duì, for "Dui is the mouth and tongue"; the moon's data at ☵ kǎn, the sun's at ☲ lí; and your own hands at ☶ gèn, for the Shuogua says plainly: Gen is the hand. And at the centre, the oracle never rests: the two loudest trigrams of the moment stack into a live hexagram — the strongest below as the ground of the moment, the second above — drawn line by line in their own colours and named from all sixty-four by the King Wen table, re-cast as the world's weather shifts. When the planet falls silent it settles at hexagram 11, Peace: heaven below, earth above. The book that reads itself, forever.
-
The groove grids — sequence the voices. Open any voice's tab (shift-click it) and there's a 16-step grid on the godtime clock. The note voices (lead, bass) get a mini piano roll — eight rows of minor pentatonic, click to place a note, click again to clear — and while your groove is on, your melody replaces the data's: bitcoin lets go of the lead and you take it. Every other voice gets an 808-style gate row that rhythmically chops the world's signal — the reverb, the grit, the percussion breathing in your pattern while the planet still decides how hard. Grooves ride the godtime tempo (lock the dial, or let your heart drive it), and they save with your patch. And the sources get the grid too, with a different power: sample & hold — while a source's groove is on, the world's number is only sampled on your lit steps and held between them, so a smooth drifting feed becomes stepped, rhythmic, quantized in time. Bitcoin arpeggiating in your pattern. The wind as a sequence. If an out port is chosen in ⚙, godtime also sends MIDI clock (24 ppqn), so a DAW can slave its tempo to the planet — or to your pulse. And the grids play outward too: with an out port chosen, piano-roll notes go out as real MIDI on the lead and bass channels (each note one sixteenth long), and the mind-mode console plays on its own third channel — so your grooves and your chakra-scale jams drive Ableton, Strudel, or hardware exactly as they drive the built-in synth. The three mouths drink at once: ♪ for the browser synth, the out port for MIDI, both or neither — there is no switch, only where you point the sound.
-
Press
T— tracks, for making actual songs. A conventional tracks-and-clips view for anyone who finds the cathedral overwhelming: every voice is a track, eight bars run across, and each cell cycles ● live (the world plays that lane) → A → B → C (clip patterns on the groove grids — A and B come pre-seeded so it makes music immediately) → silent. Double-click any clip to edit its groove in the piano roll. Press ▶ and the arrangement loops on the godtime clock — the planet still plays through your song, because live lanes stay wired to the world. Arrangements save with your patch, play out over MIDI like everything else, and export .mid hands you a Standard MIDI File of the note lanes to drag into Ableton, Logic, anything. Not a DAW — a sketchpad where the world sits in on your session. The panel earns its keep like one, too: a 🎛 tracks button sits bottom-right always; drag the panel's top edge to resize (remembered); the top bar tabs between clips and grooves — the grooves tab is a full-size pattern editor (pick a track, pick a letter, big piano roll or 16 steps; double-clicking any clip jumps you straight there); and right-click any track name for that voice's full routing menu — every cable, every level, patch and unpatch without leaving the panel. -
The Groove — one feel for the whole pattern. The grooves tab carries Ableton's Groove Pool, reduced to the 16-step grid: swing lays the off-beats back, humanize is a touch of random timing so nothing is machine-stiff, velocity lets each hit breathe in loudness, and an amount master scales the lot — with one-click presets (straight, swing 16, MPC 8-4, drunk). Under the roll sit three expression lanes: velocity (how hard each step hits), chance (how likely each step fires at all — drop a step to 40% and it plays four times in ten, so the loop varies itself), and ratchet (how many times a step re-fires, 1–4 — an instant roll or 32nd-note glitch from a single step, and if that step is a Play-One stack each sub-hit re-rolls the note). The feel and the per-step shaping save with your patch. And the texture voices (the filter, the glitch, the reverb, the drive) get their own lane: a ⬗ p-lock, the Pocket-Operator move — pin that voice to a blocky value on any step, so the filter jumps to a different cutoff on every hit, disjointed and alive; drag a step below the lane to hand it back to the world. And any lane takes a ⬢ Euclidean fill — say how many pulses to spread across the steps and they distribute themselves as evenly as possible (E(3,8) is the tresillo, E(5,8) the cinquillo, E(4,16) four-on-the-floor), with steps and rotate to taste: the oldest rhythms of the world fall straight out of the arithmetic.
-
♪ One scale for the whole planet, and ⬛ Play One for the glitch. Set a root and scale at the top of the grooves tab and every melody you draw is in that key — the piano roll is only ever the scale's own notes, so nothing lands wrong; change the scale and your patterns re-harmonise in place. And a column isn't limited to one note: stack several and it turns blue — a Play One group, from which the sequencer picks a single note at random each time it fires. Stack a handful of in-key notes under a fast Euclidean fill and the line glitches itself into something new on every pass, always in tune. (Adapted from Ableton's Group Notes → Play One.)
-
⤳ Follow actions — the song composes itself. Give any clip (A/B/C) a follow action in the grooves tab — play again, next, any, any other, stop — with a chance, and once the arrangement is playing that clip can hand off to another at the bar line instead of just repeating. Set two clips to "any other" and they trade the lane back and forth; sprinkle a low-chance divert and the piece drifts. As Ableton's manual puts it, "structures that repeat but can also be surprising… never exactly repeat." A ⤳ marks any clip that can divert. Nothing changes for arrangements without follow actions — they loop exactly as written.
-
📽 The stage — send the visual to any screen. Right-click the sky → the stage and a clean black mirror window opens, fed live from the canvas. Drag it to a projector, an AirPlay display, a second monitor — macOS treats it like any window — and double-click for fullscreen. The stage has a camera: the whole view by default (whatever you're in — a skin, the wheel, mind mode's POV), or right-click any node → project this node and the camera glides after that one sphere through its orbits, or project its station to frame a whole wheel and its satellites. Change cameras live from the menus while the projector runs; the audience sees the camera breathe from subject to subject.
-
🕸 The commune — play together, properly. Right-click the sky → the commune. This is for signed-in players: your session rides the connection, so the hub knows exactly who everyone is — no impostors, no setup, no Bluetooth. One of you hosts: name the room, then ✉ invite the others by their username (they must be on the site — invitations reach the present). The invited see the invitation arrive live and join or decline; anyone may leave whenever they wish, and if the host leaves, the room closes with them. Then the sections: members claim voices (right-click any voice, or the panel's picker), or the host allocates them — this bass to her, those pads to him, the godtime itself to whoever conducts — and the hub enforces it: only the section's holder can speak for it. From that moment your levels, mutes, grooves and arranger lanes for what you hold follow your hands on every screen, same living room or opposite sides of the earth. The world — the Source — stays identical for everyone, because it always was. Three people, one planet, one instrument.
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.
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.
🌀 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.
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:
-
Filter cutoff → CC 74 — the sun and your hand open it
-
Pad brightness → CC 71 · Wavetable morph → CC 70 — timbre and light
-
Delay → CC 93 · Reverb → CC 91 · Saturation → CC 75 · Granular → CC 76 · Glitch → CC 73 — the space and the grit
-
Perc density → CC 77 · Drone voices → CC 79 · Tempo nudge → CC 78 · LFO rate → CC 72 · Master space → CC 94 — the body and the pulse
-
Lead note → channel 0 · Bass note → channel 1 — the two melodic voices, as real note-on/note-off
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/ 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.
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.
Open ⚙ → MY PATCHES 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. (Locally, spells live as patches/*.json on the host; MY PATCHES is that same power for signed-in players, carried to your account and back.)
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.
PART II — MACHINE-READABLE APPENDICES
Appendix A — Every data source (regenerated from config.json signals)
Each source is a real feed normalized to 0..1. norm gives the raw range mapped to 0..1 (or an adaptive minmax/zscore window). filter is the One-Euro smoother (min_cutoff, beta). Event sources fire an impulse with an attack/decay envelope.
| key | label | norm / range | filter | type / env |
|---|---|---|---|---|
sun.speed |
solar wind speed | lo=250, hi=800 | mc=0.4, beta=0.01 | continuous |
air.pm25 |
PM2.5 (Delhi) | lo=0, hi=250 | mc=0.5, beta=0.01 | continuous |
air.pm10 |
PM10 (Delhi) | lo=0, hi=400 | continuous | |
air.aqi |
US AQI (Delhi) | lo=0, hi=300 | continuous | |
weather.temp |
temperature (Tokyo) | lo=-10, hi=45 | mc=0.3, beta=0.005 | continuous |
weather.wind |
wind speed (Tokyo) | lo=0, hi=30 | continuous | |
weather.precip |
precipitation | lo=0, hi=10 | continuous | |
weather.pressure |
air pressure | lo=970, hi=1040 | continuous | |
weather.humidity |
humidity | lo=0, hi=100 | continuous | |
crypto.price |
BTC price | mode=zscore, window=400 | mc=0.6, beta=0.02 | continuous |
crypto.vel |
BTC volatility | mode=minmax, window=120 | mc=2.0, beta=0.15 | continuous |
crypto.eth |
ETH price | mode=zscore, window=400 | mc=0.6, beta=0.02 | continuous |
crypto.eth_vel |
ETH volatility | mode=minmax, window=120 | mc=2.0, beta=0.15 | continuous |
crypto.sol |
SOL price | mode=zscore, window=400 | mc=0.6, beta=0.02 | continuous |
crypto.sol_vel |
SOL volatility | mode=minmax, window=120 | mc=2.0, beta=0.15 | continuous |
crypto.macd |
BTC momentum (MACD) | mode=zscore, window=400 | mc=0.4, beta=0.01 | continuous |
crypto.rsi |
BTC RSI(14) | lo=0, hi=100 | mc=0.4, beta=0.01 | continuous |
crypto.cross_up |
golden cross (BTC) | lo=0, hi=1 | event attack=, decay=4.0 | |
crypto.cross_down |
death cross (BTC) | lo=0, hi=1 | event attack=, decay=4.0 | |
fx.eurusd |
EUR/USD live | mode=zscore, window=600 | mc=0.4, beta=0.01 | continuous |
fx.eurusd_vel |
EUR/USD velocity | mode=minmax, window=120 | mc=2.0, beta=0.15 | continuous |
fx.gbpusd |
GBP/USD (ECB fix) | mode=zscore, window=200 | mc=0.08, beta=0.001 | continuous |
fx.usdjpy |
USD/JPY (ECB fix) | mode=zscore, window=200 | mc=0.08, beta=0.001 | continuous |
fx.audusd |
AUD/USD (ECB fix) | mode=zscore, window=200 | mc=0.08, beta=0.001 | continuous |
sport.events_today |
matches today | mode=minmax, window=50 | continuous | |
sport.inplay |
matches in play | mode=minmax, window=200 | mc=0.3, beta=0.01 | continuous |
sport.kickoff |
kickoff! | lo=0, hi=5 | event attack=, decay=3.0 | |
quake.event |
earthquake | lo=0, hi=7 | event attack=, decay=3.5 | |
quake.depth |
quake depth | lo=0, hi=300 | continuous | |
wiki.edit.event |
wiki edit | lo=0, hi=3000 | event attack=0.005, decay=0.25 | |
wiki.rate |
global edit rate | mode=minmax, window=200 | mc=0.8, beta=0.03 | continuous |
planes.count |
aircraft aloft | mode=minmax, window=100 | continuous | |
planes.avgalt |
avg altitude | lo=0, hi=13000 | continuous | |
planes.avgspeed |
avg airspeed | lo=0, hi=300 | continuous | |
iss.vel |
ISS ground speed | mode=minmax, window=60 | continuous | |
tof.cx |
hand X (ToF) | lo=0, hi=1 | mc=1.5, beta=0.1 | continuous |
tof.cy |
hand Y (ToF) | lo=0, hi=1 | mc=1.5, beta=0.1 | continuous |
tof.near |
hand proximity | lo=0, hi=1 | mc=1.5, beta=0.1 | continuous |
light.lux |
ambient light | lo=0, hi=1000 | continuous | |
light.flash.event |
light flash | event attack=0.002, decay=0.15 | ||
hand.open |
hand openness (cam) | lo=0, hi=1 | continuous | |
audio.rms |
room loudness | mode=minmax, window=120 | continuous | |
audio.centroid |
room brightness | lo=200, hi=6000 | continuous | |
sky.elev |
local sun elevation | lo=-30, hi=75 | mc=0.15, beta=0.002 | continuous |
sky.day |
local day/night | lo=0, hi=1 | mc=0.15, beta=0.002 | continuous |
clock.births |
births / sec | lo=0, hi=8 | continuous | |
clock.deaths |
deaths / sec | lo=0, hi=5 | continuous | |
clock.popvel |
population growth / sec | lo=0, hi=4 | continuous | |
clock.pop |
world population | lo=8000000000, hi=8300000000 | continuous | |
market.velocity |
dealgod market activity | lo=0, hi=1 | mc=0.6, beta=0.02 | continuous |
market.turnover |
dealgod avg price | lo=0, hi=1 | mc=0.5, beta=0.01 | continuous |
astro.moon |
moon phase | lo=0, hi=1 | mc=0.1, beta=0.001 | continuous |
astro.moon_lon |
Moon in the zodiac | lo=0, hi=360 | continuous | |
astro.sun_lon |
Sun in the zodiac | lo=0, hi=360 | continuous | |
astro.mars |
Mars longitude | lo=0, hi=360 | continuous | |
astro.venus |
Venus longitude | lo=0, hi=360 | continuous | |
astro.jupiter |
Jupiter longitude | lo=0, hi=360 | continuous | |
astro.saturn |
Saturn longitude | lo=0, hi=360 | mc=0.08, beta=0.001 | continuous |
astro.mercury |
Mercury longitude | lo=0, hi=360 | continuous | |
astro.tension |
sky tension (hard aspects) | lo=0, hi=8 | mc=0.2, beta=0.002 | continuous |
astro.harmony |
sky harmony (soft aspects) | lo=0, hi=8 | mc=0.2, beta=0.002 | continuous |
astro.retro |
planets retrograde | lo=0, hi=1 | continuous | |
astro.mercury_retro |
Mercury retrograde | lo=0, hi=1 | continuous | |
almanac.element |
planting element (root/leaf/flower/fruit) | lo=0, hi=1 | mc=0.1, beta=0.001 | continuous |
almanac.waxing |
sow above ground (waxing) | lo=0, hi=1 | continuous | |
almanac.dec |
moon ascending / descending | lo=0, hi=1 | mc=0.1, beta=0.001 | continuous |
almanac.fertile |
biodynamic fertility | lo=0, hi=1 | mc=0.12, beta=0.002 | continuous |
debt.total |
US national debt | lo=38000000000000, hi=42000000000000 | mc=0.08, beta=0.001 | continuous |
debt.vel |
debt daily churn | lo=0, hi=50000000000 | continuous | |
econ.inflation |
US inflation (YoY %) | lo=0, hi=10 | mc=0.1, beta=0.002 | continuous |
econ.cpi_mom |
CPI month-over-month % | lo=-1, hi=2 | continuous | |
world.poverty |
extreme poverty (world %) | lo=0, hi=20 | mc=0.05, beta=0.001 | continuous |
world.hunger |
undernourishment (world %) | lo=0, hi=15 | mc=0.05, beta=0.001 | continuous |
world.fertility |
world fertility rate | lo=0, hi=4 | continuous | |
world.lifeexp |
world life expectancy | lo=50, hi=85 | continuous | |
zodiac.year |
zodiac year animal | lo=0, hi=1 | continuous | |
zodiac.element |
zodiac year element | lo=0, hi=1 | continuous | |
zodiac.hour |
hour animal (2h cycle) | lo=0, hi=1 | mc=0.1, beta=0.001 | continuous |
season.north |
northern summer | lo=0, hi=1 | mc=0.08, beta=0.001 | continuous |
season.south |
southern summer | lo=0, hi=1 | mc=0.08, beta=0.001 | continuous |
fire.count |
wildfires worldwide | lo=0, hi=600 | mc=0.2, beta=0.002 | continuous |
fire.event |
new wildfire | event attack=0.01, decay=0.5 | ||
midi.note.event |
MIDI note velocity | lo=0, hi=127 | event attack=0.005, decay=0.4 |
Appendix B — The destination voices (the Matter)
Destinations are the synth/MIDI parameters the matrix drives. Continuous voices (CC-like) and two note voices.
| voice | what it does | output |
|---|---|---|
filter.cutoff |
master brightness — opens/closes the whole sound | CC 74 |
reverb.size |
the size of the space | CC 91 |
delay.feedback |
echo — repeats & smears | CC 93 |
saturation |
grit & warmth / distortion | CC 75 |
granular.density |
fine textural shimmer | CC 76 |
perc.density |
how busy the percussion is | CC 77 |
tempo.nudge |
pushes & pulls the tempo | CC 78 |
drone.voices |
weight — low drone thickness | CC 79 |
pad.brightness |
the glow of the pads | CC 71 |
wavetable.morph |
timbre morph of the lead | CC 70 |
lfo.rate |
movement — wobble speed | CC 72 |
glitch |
digital glitch bursts | CC 73 |
master.space |
overall sense of space & air | CC 94 |
lead.note |
the lead melody note (quantized to a key) | MIDI note, channel 0 |
bass.note |
the bass note (quantized to a key) | MIDI note, channel 1 |
Appendix C — The factory routing (regenerated from config.json routes)
All 56 factory cables: a source, bent by a curve, scaled by an amount, poured into a destination voice. gate silences the cable below a threshold; quantize snaps the value onto a scale.
| source | → dest | amount | curve | gate | note |
|---|---|---|---|---|---|
sun.speed |
filter.cutoff |
0.85 | exp | the sun opens the master filter | |
tof.near |
filter.cutoff |
0.5 | lin | your hand pushes it further | |
crypto.vel |
perc.density |
0.8 | scurve | BTC volatility drives the hats | |
crypto.vel |
tempo.nudge |
0.25 | scurve | the market nudges the tempo | |
crypto.price |
lead.note |
1.0 | lin | bitcoin plays the lead melody · quantized | |
air.pm25 |
saturation |
0.75 | exp | Delhi's air becomes grit | |
air.aqi |
glitch |
0.3 | exp3 | worse air, more glitch | |
wiki.rate |
granular.density |
0.6 | lin | the internet's pulse = texture | |
wiki.edit.event |
glitch |
0.9 | lin | every human edit = a glitch burst | |
quake.event |
reverb.size |
1.0 | lin | 0.35 | earthquakes open the void |
quake.event |
master.space |
0.9 | lin | and swell the whole field | |
quake.depth |
bass.note |
1.0 | lin | deep quakes choose the bass note · quantized | |
weather.temp |
pad.brightness |
0.6 | scurve | warmth in Tokyo = brighter pads | |
weather.wind |
lfo.rate |
0.55 | lin | wind speed = modulation rate | |
weather.pressure |
drone.voices |
0.4 | lin | barometric pressure = drone weight | |
iss.vel |
wavetable.morph |
0.4 | lin | the ISS drifts the timbre | |
tof.cx |
wavetable.morph |
0.9 | lin | your hand X morphs the wavetable | |
tof.cy |
delay.feedback |
0.7 | scurve | your hand Y feeds the delay | |
light.lux |
reverb.size |
0.5 | lin | room light sizes the reverb | |
light.flash.event |
glitch |
1.0 | lin | a flash triggers a glitch | |
planes.count |
drone.voices |
0.5 | lin | aircraft aloft = drone density | |
planes.avgalt |
pad.brightness |
0.3 | lin | altitude tilts the pad | |
hand.open |
filter.cutoff |
0.6 | lin | open palm opens the filter (cam) | |
audio.rms |
master.space |
0.4 | lin | room loudness feeds the space | |
audio.centroid |
pad.brightness |
0.35 | lin | room brightness -> pad brightness | |
sky.day |
pad.brightness |
0.7 | scurve | local daylight raises the pads | |
sky.elev |
master.space |
0.3 | lin | the sun's height sets the space | |
clock.popvel |
drone.voices |
0.4 | lin | humanity's growth thickens the drone | |
clock.births |
pad.brightness |
0.2 | lin | the birth rate lifts the pads | |
clock.deaths |
saturation |
0.2 | lin | the death rate adds weight | |
market.velocity |
perc.density |
0.7 | scurve | your dealgod market drives the hats | |
market.velocity |
tempo.nudge |
0.2 | scurve | market activity nudges the tempo | |
market.turnover |
saturation |
0.5 | exp | pricier gear moving = more grit | |
market.turnover |
lead.note |
1.0 | lin | your market plays the lead · quantized | |
astro.moon |
master.space |
0.6 | scurve | the moon phase sets the tide of space | |
astro.moon_lon |
lfo.rate |
0.4 | lin | the Moon's wheel drives the LFO | |
astro.tension |
saturation |
0.45 | exp | hard aspects = dissonant grit | |
astro.harmony |
pad.brightness |
0.4 | scurve | a harmonious sky brightens the pads | |
astro.saturn |
drone.voices |
0.4 | lin | Saturn's slow wheel weights the drone | |
astro.mars |
wavetable.morph |
0.3 | lin | Mars morphs the timbre | |
astro.mercury_retro |
delay.feedback |
0.6 | lin | Mercury retrograde smears the delay | |
astro.retro |
glitch |
0.3 | exp | the more retrogrades, the more glitch | |
almanac.element |
wavetable.morph |
0.4 | lin | the moon's element steps the timbre (root/leaf/flower/fruit) | |
almanac.fertile |
pad.brightness |
0.3 | scurve | fertile days brighten the pads | |
almanac.dec |
lfo.rate |
0.25 | lin | the moon rising/falling sets the LFO | |
debt.vel |
saturation |
0.4 | exp | the debt churn grinds the saturation | |
debt.total |
drone.voices |
0.3 | lin | the weight of the debt as a drone | |
econ.inflation |
tempo.nudge |
0.2 | scurve | inflation quietly presses the tempo | |
econ.inflation |
master.space |
0.3 | lin | inflation erodes the space | |
world.poverty |
drone.voices |
0.35 | lin | the world's poverty weights the drone | |
world.hunger |
saturation |
0.25 | lin | hunger grinds under everything | |
world.lifeexp |
pad.brightness |
0.2 | lin | longer lives, brighter pads | |
fire.count |
saturation |
0.4 | exp | the world's wildfires burn the saturation | |
fire.event |
glitch |
0.8 | lin | each new fire flares a glitch | |
season.north |
pad.brightness |
0.3 | scurve | northern summer brightens | |
zodiac.hour |
wavetable.morph |
0.3 | lin | the hour animal turns the timbre |
Appendix D — Concept groups / "vibes" (regenerated from config.json groups)
14 named feelings. Leaning on a vibe scales all its member sources together; a source can belong to several vibes at once, so they ripple sideways.
- the local world (
planet) · orbit: earth —weather.temp,weather.wind,weather.pressure,air.pm25,sky.day,sky.elev - the shared sky (
cosmos) · orbit: saturn —sun.speed,iss.vel,planes.count,crypto.vel - humanity (
human) · orbit: mars —wiki.rate,clock.popvel,clock.births - your market (
market) · orbit: mercury —crypto.vel,market.velocity,market.turnover - the sky (
heavens) · orbit: neptune —astro.moon,astro.tension,astro.harmony,astro.saturn,astro.mars - the shadow (
dark) —debt.vel,econ.inflation,air.pm25,quake.event,clock.deaths,astro.tension,world.poverty,world.hunger - the bright (
light) —clock.births,astro.moon,astro.harmony,almanac.fertile,sky.day,world.lifeexp,world.fertility - 🔥 fire (
fire) —fire.count,fire.event,astro.mars,sun.speed,crypto.vel - ⛰ earth (
earth) —quake.depth,debt.total,world.poverty,astro.saturn - 💨 air (
air) —weather.wind,air.pm25,planes.count,wiki.rate - 💧 water (
water) —weather.precip,weather.humidity,astro.moon,season.south - ✨ spirit (
spirit) —astro.harmony,almanac.fertile,zodiac.hour,clock.births - 💰 wealth (
wealth) —crypto.price,crypto.eth,fx.eurusd,market.turnover,market.velocity,debt.total - ☀ summer (
summer) —season.north,season.south,weather.temp,sky.day
Appendix E — The Skins (the Spirits) — all 14 belief-system lenses
A skin is the same station-engine read through a tradition. Each = N stations (a vertical "spine" or a true 2D "map" figure) + a source→station mapper + a per-station musical scale. Press C to enter the view; right-click the sky → skin to choose. Every station opens into "mind mode" (click its core) with its own scale on a playable 12-key vector console. Sources route to stations by meaning/rarefaction. All lore was cross-checked against canonical sources; native scripts verified codepoint-by-codepoint.
chakra — the subtle body
- Geometry: spine (7)
- Language on labels: Sanskrit (Devanagari)
- Stations: crown·sahasrara, third-eye·ajna, throat·vishuddha, heart·anahata, solar-plexus·manipura, sacral·svadhisthana, root·muladhara
- Source→station mapping: cosmic machinery→crown; omen/astro→third-eye; the word/wiki→throat; weather/air/life→heart; fire/markets→solar; birth/water→sacral; quakes/debt/body→root
- Per-station scales: hirajoshi(crown)…minor-pent(root)
planes — the Bailey / D.K. Seven Planes
- Geometry: spine (7), 49-sub-plane spectrum ribbon; MONAD / SPIRITUAL TRIAD / PERSONALITY brackets
- Language on labels: English + Sanskrit
- Stations: I Divine·adi(white), II Monadic·anupadaka(violet), III Spiritual·atmic(blue), IV Intuitional·buddhic(cyan), V Mental·manasic/egoic-lotus(yellow), VI Emotional·astral(orange), VII Physical·sthula(red)
- Source→station mapping: by rarefaction: solar wind→Divine; orbits/sky→Monadic; cyclic wheels→Atmic; aspects→Buddhic; abstract thought & money-as-idea→Mental; desire/fire→Astral; dense body→Physical
- Per-station scales: wholetone(Divine)…minor-pent(Physical)
tree — Tree of Life (Hermetic Qabalah, Golden Dawn attributions)
- Geometry: MAP: 10 sephirot, 3 pillars, all 22 canonical paths
- Language on labels: Hebrew
- Stations: Keter·crown, Chokmah·wisdom, Binah·understanding(Saturn), Chesed·mercy(Jupiter), Gevurah·severity(Mars), Tiferet·beauty(Sun), Netzach·victory(Venus), Hod·splendour(Mercury), Yesod·foundation(Moon), Malkut·kingdom(earth)
- Source→station mapping: Saturn/debt→Binah; Jupiter/mercy(lifeexp)→Chesed; Mars/fire/quake→Gevurah; sun/sky→Tiferet; Venus/season→Netzach; Mercury/wiki/markets→Hod; Moon/ambient→Yesod; body/world→Malkut
- Per-station scales: wholetone(Keter)…minor(Malkut)
lodge — Craft Freemasonry (published symbolism only)
- Geometry: MAP: officers E/W/S, dark North, Boaz & Jachin porch, Blazing Star, mosaic pavement, altar/VSL
- Language on labels: English
- Stations: The East·Worshipful Master·Wisdom, The West·Senior Warden·Strength, The South·Junior Warden·Beauty, The North·Darkness, Boaz·strength, Jachin·establishment, the Blazing Star, the Altar·VSL, the Mosaic Pavement
- Source→station mapping: heavens read from the East; wages(markets)→West; music/arts/births→South(Beauty); death/quake/poverty→North; player's hands→Boaz/Jachin (the candidate); Providence(sun/harmony)→Star; wiki→altar(open book); light/tension→pavement
- Per-station scales: major(East), lydian(Star/altar), phrygian(North)…
ladder — Hermetic ladder of the seven planetary spheres
- Geometry: spine (7), lead→silver
- Language on labels: planet glyphs
- Stations: ♄ Saturn·lead, ♃ Jupiter·tin, ♂ Mars·iron, ☉ Sol·gold(heart), ♀ Venus·copper, ☿ Mercury·quicksilver, ☽ Luna·silver
- Source→station mapping: Saturn/debt→Saturn; life/fertility→Jupiter; Mars/fire→Mars; sun/sky→Sol; season/timbre→Venus; wiki/markets→Mercury; the sublunary flux→Luna
- Per-station scales: wholetone(Saturn)…minor(Moon)
yggdrasil — The Nine Worlds of Yggdrasil
- Geometry: spine (9) tree
- Language on labels: Old Norse
- Stations: Ásgarðr·Aesir, Vanaheimr·Vanir, Álfheimr·light-elves, Miðgarðr·humankind, Jötunheimr·giants, Niðavellir·dwarves, Múspellsheimr·fire, Niflheimr·ice/mist, Helheimr·dead
- Source→station mapping: sky/astro→Asgard; fertility/births→Vanaheim; light/harmony→Alfheim; wiki/hands/planes→Midgard; storm(wind/pressure/quake)→Jotunheim; markets/gold→Nidavellir; fire/heat→Muspelheim; poison-mists(pm2.5)→Niflheim; death/hunger/poverty→Helheim
- Per-station scales: lydian(Asgard)…phrygian(Helheim)
lataif — Lata'if-e-Sitta (Naqshbandi Sufi subtle centres)
- Geometry: spine (6)
- Language on labels: Arabic
- Stations: Akhfa·most-hidden, Khafi·hidden, Sirr·secret, Ruh·spirit, Qalb·heart, Nafs·self
- Source→station mapping: most-rarefied(solar)→Akhfa; hidden influences(astro)→Khafi; secret geometry(sky/lon)→Sirr; breath=air/wind/planes→Ruh; humanity(wiki/clock/world)→Qalb; appetite/money/fire/body→Nafs
- Per-station scales: lydian(Akhfa)…minor(Nafs)
wuxing — Wu Xing — the Five Phases
- Geometry: MAP: sheng generating pentagon + dashed ke controlling star; Fire/south at top
- Language on labels: Chinese characters
- Stations: Wood 木·Jupiter, Fire 火·Mars, Earth 土·Saturn, Metal 金·Venus, Water 水·Mercury
- Source→station mapping: births/season/wind→Wood; fire/heat/light→Fire; saturn/quake/hunger/pressure/debt→Earth; markets/planes/audio/coin→Metal; the deep (moon/word)→Water
- Per-station scales: dorian(Wood)…pentatonic(Water)
tarot — The Spread — Waite's Celtic Cross
- Geometry: MAP: 10 positions, cross + ascending staff
- Language on labels: English
- Stations: I present, II crossing/obstacle, III crown/aim, IV beneath, V behind/past, VI before, VII querent(you), VIII house/environment, IX hopes & fears, X outcome
- Source→station mapping: hands→Querent; retrogrades/deaths→behind; heavens→crown; debt/quake-depth/poverty→beneath; tension/pm25/inflation/hunger→crossing; births/season→before; money & fire→hopes-and-fears; weather/planes/wiki→house; lifeexp/moon/harmony→outcome
- Per-station scales: per position (major @ present, wholetone @ outcome …)
zodiac — The Wheel — the astrologer's chart
- Geometry: MAP: 12 signs in a circle (0° Aries at left, CCW); live planets on the rim; natal chart on inner ring; aspects as chords (red hard / green soft / gold conjunction); whole-sign houses + gold ASC/MC when a birthplace is given
- Language on labels: zodiac glyphs
- Stations: Aries…Pisces by traditional rulership
- Source→station mapping: fire→Aries; holdings/prices→Taurus(2nd house); wiki→Gemini; weather→Cancer; sun/light→Leo; air-quality/health→Virgo; harmony/season→Libra; death/debt→Scorpio; planes/ISS→Sagittarius; inflation(Jupiterian); quake/hunger/poverty→Capricorn(Saturn); crypto/collective→Aquarius; dream-tide→Pisces
- Per-station scales: circle-of-fifths up the signs, scale by element
futhark — The Runes — Elder Futhark
- Geometry: MAP: 24 runes ringed as a rune-band, 3 ættir
- Language on labels: runic glyphs (Elder Futhark)
- Stations: Fehu·wealth … Othala·inheritance (all 24, Kylver order)
- Source→station mapping: Fehu·wealth(holdings); Ansuz·the word(wiki); Thurisaz·the giant(quake); Nauthiz·need(hunger/poverty); Perthro·fate(natal); Algiz·the warding hands(hand sensors); Sowilo·sun; Tiwaz·Tyr/Mars; Berkano·birth; Laguz·water/tides; Ehwaz·the bond(synastry); Dagaz·day; …
- Per-station scales: pentatonic/minor/dorian by ætt, rising
wheelyear — Wheel of the Year (Celtic 8 festivals)
- Geometry: MAP: 8 festivals at true solar longitudes (quarters at equinox/solstice, cross-quarters at 15° fixed signs); the live Sun walks the rim
- Language on labels: English
- Stations: Ostara·equinox(0°), Beltane·fires(45°), Litha·midsummer(90°), Lughnasadh·first-fruits(135°), Mabon·reckoning(180°), Samhain·veil(225°), Yule·returning-light(270°), Imbolc·first-stirrings(315°)
- Source→station mapping: weather/season/harmony→Ostara; fire/hands/union→Beltane; sun→Litha; markets/wiki/commerce→Lughnasadh(the fair); death/quake/debt/astro→Samhain; light→Yule; births/natal→Imbolc; else→Mabon
- Per-station scales: major/lydian(light half) … phrygian/minor(dark half)
artist — The Artist (Kandinsky, Concerning the Spiritual in Art, 1911)
- Geometry: MAP: a wireframe easel; 6 pigment drops round a palette (thumb-hole and all), white as the canvas on the easel, black at the palette's edge. Solid paths: the pigments smearing into their rim-neighbours; dashed: Kandinsky's four great contrasts (yellow–blue, red–green, orange–violet, white–black). Live overlay: each colour's paint strokes itself up onto the canvas as its data sings, the daub swelling with energy; signed "nach kandinsky · 1911".
- Language on labels: German (the tongue he wrote it in)
- Stations: weiß·the-great-silence(canvas), gelb·the-trumpet, orange·the-angelus-bell, rot·the-drumbeat, grün·the-middle-violin, blau·the-organ, violett·the-bassoon, schwarz·the-final-pause
- Source→station mapping: by Kandinsky's own colour-feelings: hands/natal/syn/harmony/births/light→weiß (the pregnant silence — your hands hold the brush); news/wiki/markets/crypto→gelb (the trumpet blown louder and louder); clocks/seasons/hours/audio→orange (the Angelus bell); body/fire/quake-event/Mars→rot (the drumbeat); weather/air/planes→grün (nature at rest); sun/sky/moon/ISS→blau (the heavenly circle); retrogrades/Saturn/hunger/tension→violett (the cooled red); deaths/debt/poverty→schwarz (the silence with no future)
- Per-station scales: each colour in the register of its instrument: wholetone-84(weiß) · lydian-76(gelb·trumpet) · dorian-62(orange·alto bell) · mixolydian-45(rot·tuba&drum) · major-60(grün·violin middle) · pentatonic-48(blau·toward the organ) · phrygian-52(violett·bassoon) · minor-pent-36(schwarz)
bagua — The Bagua (I Ching, Wilhelm translation)
- Geometry: MAP: the eight trigrams ringed in the King Wen "Later Heaven" arrangement, south (Li) at top per the traditional compass, east (Zhen) at left; solid paths trace the octagon rim. Live overlay: the moment's hexagram — the two most energetic trigrams stack (strongest below as the ground of the moment, second above), drawn as six yang/yin lines in the two trigrams' colours, named from all 64 via the King Wen table with its Unicode hexagram glyph (e.g. "䷩ hexagram 42 · increase"), re-cast at most every 2s. With no data: hexagram 11 · Peace (heaven below, earth above).
- Language on labels: trigram glyphs + hanzi + pinyin (☰ 乾 qián …)
- Stations: qián·heaven·the-creative, duì·lake·the-joyous, lí·fire·the-clinging, zhèn·thunder·the-arousing, xùn·wind·the-gentle, kǎn·water·the-abysmal, gèn·mountain·keeping-still, kūn·earth·the-receptive. Petals follow the Fuxi binary order, Qian 8 → Kun 1.
- Source→station mapping: by the Shuogua's attributions: hands→gèn ("Gen is the hand"); deaths/retrogrades/seasons→gèn (end-and-beginning, the standstill); quakes/body/tension→zhèn (the shock); fire/sun/light/aurora→lí (the sun, the eye); rain/tides/moon/debt→kǎn (water, the moon; the abyss — licence on the debt); wiki/news/audio/harmony/syn→duì ("the mouth and tongue"; joy); weather/air/planes→xùn (what rides the wind); sky/orbits/natal/markets→qián (the heavens; "Qian is jade, is gold" — licence on the markets); births/world/almanac→kūn (the mother, the multitude)
- Per-station scales: lydian-74(qián) · major-64(duì) · mixolydian-60(lí) · phrygian-43(zhèn) · pentatonic-67(xùn) · minor-38(kǎn) · hirajoshi-55(gèn) · minor-pent-36(kūn)
Appendix F — Controls: keyboard & mouse
Keys: C chakra/skin view · P performance mode (clean projection + rotating world-dispatch line) · T the tracks arranger · ↑/↓ travel the spine (inside mind mode) · esc step out of mind mode / close overlays · in mind mode the Q W E R T Y U I O P [ ] row plays the 12 keys of the station's scale.
Mouse on a node/source: click = mute/unmute · ⇧-click = open its inspector tab · ⇧-drag = ride its output level (0–2×) · ⌥-click = solo (source) · ⌘/Ctrl-click = multi-select for grouping · ⌘⇧-click = reset to neutral · drag a source onto a voice = lay a new cable · right-click = the full "everything menu" (mute/solo/level/trim, every cable with its amount slider + unpatch, patch-to list, inspector, reset; on a voice in a commune: claim/release).
Hover zoom (the loupe): hovering the dense source column unfolds a magnified 9-row strip of the nearest feeds; each row is a live target (click/⇧/⌘/drag). Toggle in sky menu.
The godtime dial (top arc): drag left/right = tempo 40–180 BPM; click = lock (unlocked, data nudges tempo). The 7 real planets ride it at live zodiac longitudes; a loaded natal chart adds gold "ghost" planet positions beneath it.
Right-click the empty sky = the view menu: chakra view · skin (submenu, all 14) · performance mode · 🌗 mood (submenu) · graphics (auto/full/ultra/lite) · hover zoom · ♥ connect your heart · 💰 your holdings · ✨ your stars · 🕸 the commune · 📽 the stage · 🎛 tracks.
Appendix G — Output: MIDI, OSC, Strudel, Ableton
Godstrument decouples control from sound. Three "mouths" run simultaneously — there is no switch, only where you point the sound.
1. Built-in Web Audio synth — press ♪. 5 voices (lead, bass, pad, drone, perc) + FX (convolver reverb, delay, tanh saturation, glitch stutter). Works on the public site; no install.
2. Web MIDI out (Chrome/Edge) — ⚙ panel → enable → pick an out port. CC map (all channel-agnostic unless noted):
| voice | CC | voice | CC | |
|---|---|---|---|---|
filter.cutoff |
CC 74 | reverb.size |
CC 91 | |
delay.feedback |
CC 93 | saturation |
CC 75 | |
granular.density |
CC 76 | perc.density |
CC 77 | |
tempo.nudge |
CC 78 | drone.voices |
CC 79 | |
pad.brightness |
CC 71 | wavetable.morph |
CC 70 | |
lfo.rate |
CC 72 | glitch |
CC 73 | |
master.space |
CC 94 | `` |
Note voices: lead.note → MIDI channel 0 (real note-on/off, quantized to a key) · bass.note → channel 1. Groove-grid piano-roll notes also emit on ch 0/1; the mind-mode console plays on channel 2. MIDI clock out: 24 ppqn (0xF8) whenever an out port is chosen, so a DAW slaves its tempo to godtime (or to your heartbeat). MIDI-learn: pick an in port, arm learn, click a control, twist a knob → bound (saved in the browser).
3. OSC — the hub streams /out/<destination> floats to 127.0.0.1:9001 (TouchDesigner, Max for Live). OSC in on 9000. Strudel — strudel/godstrument.md starter kit plays a live Strudel track off the CC map.
Ableton recipe (same Mac): Audio MIDI Setup → IAC Driver online → Godstrument out port = IAC Bus 1 → Ableton MIDI prefs: Track + Remote (+ Sync) on the IAC input → drop instruments on tracks with input channels 1/2/3 (lead/bass/console), ⌘M to map CCs to any plugin knob, press EXT to slave tempo. Native VST/AU cannot run inside the browser (sandbox) — Ableton hosts the plugins, the planet plays them. Export .mid from the arranger for offline DAW import.
Appendix H — The eight data shapes (the taxonomy)
Every feed the world sends is one of eight temperaments; the shape dictates how it becomes sound:
- Drift — smooth, slow, bounded (moon phase, seasons, life expectancy). → modulation (filters, space, brightness).
- Flux — continuous but jittery (wind, volatility, room loudness). → movement (LFO rate, grit, perc density). Cleaned by the One-Euro filter + adaptive window.
- Events — silence then a magnitude-carrying spike (quakes, wiki edits, new wildfires). → triggers (hits, swells, gates); envelope (attack/decay).
- Counts — small integers (planes aloft, active wildfires). → steps (voice count, hat busyness).
- Accumulators — only grow (debt, population). Music lives in the derivative — built as
debt.vel,clock.popvel. Level = drone weight; velocity = the living signal. - Angles — 0–360° that wrap (planetary longitudes, zodiac hour). → cycles / sawtooth / quantize to 12 notes; a completed orbit is a downbeat.
- Enums — a named category (almanac element earth/water/air/fire, hour animal). → switch scale/timbre/bank; a categorical change is a mode change.
- Booleans — yes/no (Mercury retrograde, day/night, fertile). → toggles (mute a layer, flip minor, engage delay).
Appendix I — Personal sources (opt-in, private, client-side)
- ♥ Heart (
body.heart): Web Bluetooth standard Heart-Rate service; BPM normalized 40–180. The browser permission prompt is the consent; the pulse never leaves the page. Option: godtime follows your heart (tempo = your live BPM). Routes to the heart in every skin (anahata, Tiferet, Qalb, Fire/TCM, Sol's gate, the Querent, the Lodge altar). - 💰 Holdings (
me.<SYM>,me.portfolio,me.portfolio.vel): declare coins/tokenized metals (e.g. PAXG = gold) + quantities; quantity = weight (a bigger bag sings louder, per-holding gain = share of total). Prices poll Binance public spot API straight to the browser; localStorage only, server never sees it. Routes where money lives per skin (Hod, the West, Nidavellir, Metal, hopes-and-fears). - ✨ Natal chart (
natal.harmony/tension/hits/moon/saturn/birthday/angles/web): birth date/time/UTC-offset (+ optional lat/lon) → a real in-browser ephemeris (truncated Meeus for Sun/Moon, JPL/Standish Keplerian elements for planets, precessed to the tropical zodiac; verified against eclipse timings & JPL positions to a fraction of a degree). Live transits vs your chart become sources; the natal aspect web rings the whole figure when a transit strikes either end; lat/lon unlock ascendant + midheaven + whole-sign houses. Multiple charts (yours, a lover's, a friend's). All computed & stored client-side. - 🕸 Synastry (
syn.harmony/tension/hits/web/moon): bind two saved charts (⚭); every inter-chart aspect becomes sound; the partner chart draws as a silver inner ring on the zodiac wheel with the bond's chords.
Appendix J — Feature systems
- Moods (🌗): song-shaped presets. first light (bass/hats/melody, tempo-locked, gnarly voices muted) auto-applies on first visit; ambient drift (no drums, atmosphere); the full storm (factory instrument). Eases newcomers in before the full flood.
- The arranger / tracks (T): Ableton-shaped tracks×8-bars. Cells cycle live → A/B/C clip patterns → silent; "live" = the world plays that lane. Grooves (piano roll for notes, 16-step gate for CC voices) editable in a clips/grooves tabbed panel; drag-resize; right-click a track = its routing. Loops on godtime; export .mid (Standard MIDI File).
- Groove grids: per-voice 16-step sequencers on the godtime clock. Note voices get an 8-row minor-pentatonic piano roll (your melody replaces the data's); CC voices get an 808-style gate that chops the data; sources get sample-&-hold (the world only speaks on lit steps → stepped/quantized-in-time).
- The commune (🕸): real-time multiplayer via the hub (not Bluetooth — the hub relays state between roommates). Signed-in players only; identity from the session cookie (spoof-proof). One player hosts & names a room, invites present users by username, who accept/decline; the host allocates sections (or members claim free ones); the hub relays voice-state only from a section's holder. Anyone leaves; host leaving disbands.
- The stage (📽): a live mirror window (canvas capture stream) to drag onto a projector / AirPlay display; double-click fullscreen. Camera modes: whole view / follow one node through its orbits / frame a station and its satellites — switchable live.
- Godtime: the client-side transport (40–180 BPM). Data nudges it unless locked; drives the synth, the grooves, the arranger, and MIDI clock out. Can follow the heart.
- Accounts: invite-only; per-user saved "patches" (full instrument state: routes, tweaks, grooves, arrangement, tempo) to the cloud (MY PATCHES). Public hub is read-only (edits are computed client-side and never touch the shared hub).
- Graphics tiers: auto/full/ultra/lite. Auto drops to lite under ~42fps (weaker/ultrawide machines): no shadow-blur, flat cores, DPR≤1. Ultra adds comet-trail spirals on orbiting nodes.
- The Groove — Ableton's Groove Pool on the 16-step grid:
swing(delays the off-beats),humanize(the manual's Random timing jitter),velocity(per-note deviation), and anamountmaster (0..130%). Presets: straight / swing 16 / mpc 8-4 / drunk. Applied globally in the clock +seqTick; travels with the patch. - Per-step expression — a
velocitylane (how hard each step hits) and achancelane (0..100% probability the step fires) under the piano roll, per voice. Drop a step's chance and the loop varies itself. - ⤳ Follow Actions — each arranger clip (A/B/C) can hand off to another at the bar line by chance: again / next / any / any-other / stop. A live overlay diverts playback without rewriting the authored grid; arrangements with no follow actions loop exactly as written. Turns an 8-bar loop into a self-composing structure.
- ⬢ Euclidean fills — Live 12's Euclidean generator (§11.3.5): spread N
pulsesas evenly as possible over the pattern, with adjustablesteps(cycle length) androtate. E(3,8) tresillo, E(5,8) cinquillo, E(4,16) four-on-the-floor — the world's oldest rhythms falling straight out of the arithmetic. Fills any groove or gate lane. - ♪ Global Scale — Live 12 Scale Awareness (§3.13): one root + scale (major, dorian, minor pentatonic, hirajoshi, …) that the whole groove editor sings in. The piano roll's rows ARE the scale degrees, so it's always folded-to-scale; change the scale and drawn patterns re-harmonise in place. Travels with the patch.
- ⬛ Play One — adapted from Ableton's Group Notes → Play One: a piano-roll column can hold several candidate degrees (stack them; they turn blue). On each fire the sequencer picks one at random — stack in-scale notes under a fast Euclidean fill and the line glitches itself, always in key.
.midexport prints the first candidate. - ⚡ Ratchets — a per-step
ratchetlane (1–4): each step can re-fire that many sub-hits within its slot, for instant rolls and 32nd-note glitch from a single step. Combined with Play One, every sub-hit re-rolls the note. This completes the generative-glitch loop: Euclidean picks the rhythm, Play One the pitch, ratchets the subdivision. - ⬗ Parameter locks (p-locks) — Pocket-Operator / Elektron style: a texture voice (filter, glitch, reverb, drive) gets a per-step
locklane 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 incomputeDestsviaapplyGroove; travels with the patch. - 🌊 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.
- ⬗ Parameter locks (p-locks) — Pocket-Operator / Elektron style: a texture voice (filter, glitch, reverb, drive) gets a per-step
locklane 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 incomputeDestsviaapplyGroove; travels with the patch. - 🌊 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.