📖 one integrated grimoire — the manual, comprehensive and in sync
Rebuild GODSTRUMENT_MANUAL_SOURCE.md as a single finished grimoire, no drift: - PART I is the current in-app grimoire (viz/index.html — the source of truth) converted verbatim, so it now covers the Groove, follow actions, and every feature the live prose does. - Appendices A/C/D regenerated straight from config.json (83 sources, 56 cables, 14 vibes); B/E–J carried and refreshed, with the Groove / per-step expression / follow actions added to the feature-systems appendix. - dropped the old "brief for the manual writer (Gemini)" scaffolding — this document IS the finished grimoire now, not a brief to write one. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
18e03d3c82
commit
2fba980556
@ -1,6 +1,6 @@
|
||||
# GODSTRUMENT — Complete Manual Source
|
||||
# GODSTRUMENT — The Grimoire
|
||||
|
||||
> This document is the full source material for writing a detailed, full-featured user manual for **Godstrument** — a live, browser-based generative instrument "played by the world." It contains (1) the in-app Grimoire in its own voice, and (2) exhaustive machine-readable appendices: every data source, every voice, every factory cable, every concept-group, every belief-system "skin," all keyboard/mouse controls, the MIDI/OSC output map, the data-shape taxonomy, and the personal-source systems. Everything here reflects the actual shipped code and config as of 2026-07-06. Public site: https://godstrument.pro
|
||||
*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
|
||||
|
||||
@ -10,11 +10,11 @@ The signal chain, in four verbs: **SHAPE → CLEAN → BOUND → SPEAK.** A raw
|
||||
|
||||
---
|
||||
|
||||
# PART I — THE GRIMOIRE (the in-app manual, verbatim voice)
|
||||
# PART I — THE GRIMOIRE
|
||||
|
||||
# THE GRIMOIRE
|
||||
## THE GRIMOIRE
|
||||
|
||||
*how to play the world*
|
||||
_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.
|
||||
|
||||
@ -46,7 +46,7 @@ A feed does not arrive as music. It arrives as a number in its own stubborn unit
|
||||
|
||||
- **The modulation matrix — where each cable is a decision.** This is the patchbay, and where you compose. A `route` is 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.
|
||||
- **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. `lin` is honest and even, one-to-one. `exp` and `exp3` stay 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). `log` is the mirror — it leaps early then flattens, generous with small values. `scurve` eases 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). `inv` flips the sense entirely.
|
||||
|
||||
@ -112,6 +112,10 @@ Read every source through three lenses at once. **The feed**: the actual API or
|
||||
|
||||
**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.
|
||||
|
||||
---
|
||||
@ -512,7 +516,13 @@ Learn these seven gestures and the whole planet is under your hands:
|
||||
|
||||
- **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.** The editing chrome vanishes, the readouts declutter, and a rotating line of dispatches from the world (*bitcoin at $62,902 · the moon is 81% lit · mercury is retrograde · M4.2 earthquake*) rises for the audience. Put the console on the projector, hit `P`, and conduct.
|
||||
- **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, hit `P`, and conduct. (Want even the labels and dispatches gone? `Z` is 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. `W` again 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. `Z` or `esc` brings the words back.
|
||||
|
||||
- **The keyboard is yours — `F1`–`F10` and beyond.** A default set of function keys is ready to fly: `F1` the grimoire, `F2` play/stop the synth, `F3` the skin view, `F4` next skin, `F5` cycle mood, `F6` tracks, `F7` performance mode, `F8` lock the godtime, `F9` the earth echo, `F10` the 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. Want `a` and `s` to raise and lower a drone's level like a fader? Right-click that voice → *map a key → raise its level*, press `a`; again for *lower*, press `s` — 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. `C` again and the sources glide home.
|
||||
|
||||
@ -528,6 +538,10 @@ Learn these seven gestures and the whole planet is under your hands:
|
||||
|
||||
- **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 two expression lanes: **velocity** (how hard each step hits) and **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). The feel and the per-step shaping **save with your patch**.
|
||||
|
||||
- **⤳ 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.
|
||||
@ -552,6 +566,8 @@ The matrix pours out clean control values whether or not anyone is listening. Ch
|
||||
|
||||
**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
|
||||
@ -568,6 +584,8 @@ MIDI-learn any of these at your synth and the planet drives your favorite hardwa
|
||||
|
||||
**The Ableton recipe — same Mac, three minutes, your whole plugin collection becomes the instrument.** Native VST/AU plugins can't run *inside* a browser page — the sandbox forbids it, by design. But they don't need to: Ableton is the plugin host, and the Godstrument drives it. **1)** Open *Audio MIDI Setup → Window → Show MIDI Studio*, double-click **IAC Driver**, tick *Device is online* — that's a virtual MIDI cable inside your Mac. **2)** Here: ⚙ → WEB MIDI → enable → out port = **IAC Bus 1**. **3)** In Ableton: *Settings → Link/Tempo/MIDI* → the IAC input: **Track** and **Remote** on (and **Sync** on, if you want godtime — or your heartbeat — to be Ableton's tempo: then press EXT in the transport). **4)** Drop any instrument on a MIDI track, monitor *In*, and the **lead** (ch 1) and **bass** (ch 2) play it live; hit ⌘M and MIDI-map the CCs above to any macro, any plugin knob, any send. Bitcoin playing your Serum, earthquakes riding your favorite reverb's decay, Delhi's air on a distortion — every plugin you own, played by the planet. The reverse works too: MIDI-learn here binds your hardware knobs to the console's own controls.
|
||||
|
||||
**⚡ Control voltage — the world as raw electricity, into modular gear.** Two ways to make the planet move a Eurorack. **The easy way, already live:** the note voices *are* 1V/oct pitch + gate and the CCs *are* modulation, so route them out (⚙ → Web MIDI, or the Ableton/IAC recipe above) into any **MIDI-to-CV module** — a Befaco CV Thing, a Behringer CM1A, an Expert Sleepers FH-2, a Mutable Yarns — and BTC's price is bending an oscillator, the earthquake is opening a filter, the clock is your analog sync. Nothing to install; it works today. **The pure way:** right-click the sky → **⚡ control voltage** and the browser emits *true DC voltage* straight from Web Audio into a **DC-coupled interface** (an Expert Sleepers ES-8 or ES-9 in your case). Map any feed to any output channel, choose **unipolar** (0→+V), **bipolar** (−V→+V) or **1V/oct** pitch, and leave the calibration knob where your oscillator actually tracks — because a real interface and a real VCO never agree with the maths. Stock price to a drone's pitch, volatility to its filter, volume to its drive: sit back and listen to the global economy breathe and crash through an analog voice. (DC out needs a DC-coupled interface; a normal soundcard blocks it — that's what the MIDI path is for.)
|
||||
|
||||
**Three — Strudel, TouchDesigner, OSC.** The hub streams */out/<destination>* floats to `127.0.0.1:9001` — point TouchDesigner's OSC In or a Max-for-Live device at that port and drive visuals or a modular from the same matrix. And `strudel/godstrument.md` is a starter kit that plays a live Strudel track (free, open, no Ableton) straight off the CC map, with a no-MIDI websocket path for a custom web-audio synth. One matrix, many mouths.
|
||||
|
||||
---
|
||||
@ -586,82 +604,96 @@ So: the sun holds the filter, the earthquake opens the void, bitcoin sings the l
|
||||
|
||||
# PART II — MACHINE-READABLE APPENDICES
|
||||
|
||||
## Appendix A — Every data source (from config.json `signals`, plus computed/personal)
|
||||
## 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 minmax/zscore adaptive). `filter` is the One-Euro smoother (min_cutoff/beta). `type`+attack/decay marks event sources (impulses with an envelope).
|
||||
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 (min_cutoff, beta) | type / env |
|
||||
| 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 |
|
||||
| `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 |
|
||||
| `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 |
|
||||
| `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 |
|
||||
| `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 |
|
||||
|
||||
Additional live/computed sources not in the static signals table: the ephemeris planet longitudes `astro.sun_lon/moon_lon/mercury/venus/mars/jupiter/saturn` (0–360°), `astro.moon` (phase), `astro.harmony`/`astro.tension` (soft/hard aspect sums), `astro.retro`/`astro.mercury_retro` (booleans), `almanac.dec/element/fertile` (biodynamic), `zodiac.hour` (2h animal), `season.north`, the dealgod `market.velocity/turnover`, wildfire `fire.count/event`, world vital rates `clock.births/deaths/popvel`, `world.hunger/lifeexp/poverty`, hand/room sensors `hand.*`, `tof.*`, `audio.*`, `ambient.light`, `light.flash`. Personal sources (opt-in, client-side): `body.heart` (BPM 40–180), `me.<SYM>` + `me.portfolio` + `me.portfolio.vel` (holdings), `natal.*` and `syn.*` (chart transits & synastry).
|
||||
|
||||
## Appendix B — The destination voices (the Matter)
|
||||
|
||||
Destinations are the synth/MIDI parameters the matrix drives. Continuous voices (CC-like) and two note voices.
|
||||
@ -684,24 +716,24 @@ Destinations are the synth/MIDI parameters the matrix drives. Continuous voices
|
||||
| `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 (all 56 cables, from config.json `routes`)
|
||||
## Appendix C — The factory routing (regenerated from config.json `routes`)
|
||||
|
||||
Each cable: a source normalized 0..1, bent by `curve`, scaled by `amount` (can be negative = inverted), optionally `gate`d (silent until the source crosses a threshold) or `quantize`d (snapped to a scale). Curves: `lin` linear; `scurve` eases in/out; `exp`/`exp3` hug the floor, bloom near the top; `log`; `inv`.
|
||||
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 | → destination | amount | curve | gate/quant | meaning |
|
||||
| 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 | quant minor_pent root60 | bitcoin plays the lead melody |
|
||||
| `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 | gate 0.35 | earthquakes open the void |
|
||||
| `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 | quant minor root28 | deep quakes choose the bass note |
|
||||
| `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 |
|
||||
@ -723,7 +755,7 @@ Each cable: a source normalized 0..1, bent by `curve`, scaled by `amount` (can b
|
||||
| `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 | quant dorian root55 | your market plays the lead |
|
||||
| `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 |
|
||||
@ -747,26 +779,25 @@ Each cable: a source normalized 0..1, bent by `curve`, scaled by `amount` (can b
|
||||
| `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" (from config.json `groups`)
|
||||
## Appendix D — Concept groups / "vibes" (regenerated from config.json `groups`)
|
||||
|
||||
Groups are hand-curated macros — sets of sources you mute/gain as one feeling. Some are bound to a planetary `orbit` (their gain waxes/wanes at that planet's real period, scaled from orbit_base_seconds=60).
|
||||
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`
|
||||
|
||||
| group | label | orbit | members |
|
||||
|---|---|---|---|
|
||||
| `planet` | the local world | earth | weather.temp, weather.wind, weather.pressure, air.pm25, sky.day, sky.elev |
|
||||
| `cosmos` | the shared sky | saturn | sun.speed, iss.vel, planes.count, crypto.vel |
|
||||
| `human` | humanity | mars | wiki.rate, clock.popvel, clock.births |
|
||||
| `market` | your market | mercury | crypto.vel, market.velocity, market.turnover |
|
||||
| `heavens` | the sky | neptune | astro.moon, astro.tension, astro.harmony, astro.saturn, astro.mars |
|
||||
| `dark` | the shadow | — | debt.vel, econ.inflation, air.pm25, quake.event, clock.deaths, astro.tension, world.poverty, world.hunger |
|
||||
| `light` | the bright | — | 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, 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.
|
||||
@ -937,18 +968,6 @@ Every feed the world sends is one of eight temperaments; the shape dictates how
|
||||
|
||||
---
|
||||
|
||||
# PART III — BRIEF FOR THE MANUAL WRITER (Gemini)
|
||||
|
||||
Please write a **complete, well-structured, friendly-but-precise user manual** for Godstrument from the material above. Suggested structure:
|
||||
1. **Welcome / what it is** — the Source/Spirit/Matter idea; "an instrument played by the world"; that it runs in a browser and needs no install to hear.
|
||||
2. **Getting started** — signing in (invite-only), first load & the moods, pressing ♪ to hear it, the godtime dial.
|
||||
3. **The core concepts** — sources, voices, cables, the modulation matrix, curves/amounts/gates/quantize; the eight data shapes.
|
||||
4. **Playing by hand** — all mouse gestures & keyboard shortcuts (Appendix F), the inspector, grouping/vibes, the hover-zoom loupe.
|
||||
5. **The skins** — one clear section per skin (Appendix E), what each means, how feeds map, going inside (mind mode) and playing the scale keys. Respect each tradition; note the honest provenance where given (e.g. Golden Dawn attributions; the modern eightfold Wheel of the Year).
|
||||
6. **Making songs** — groove grids, the arranger/tracks, moods, saving patches.
|
||||
7. **Your own world** — heart, holdings, natal chart, synastry (Appendix I); emphasize privacy (client-side).
|
||||
8. **Playing with others** — the commune (host/invite/allocate/leave).
|
||||
9. **Getting it out** — the synth, MIDI (full CC map, channels, clock), OSC, Strudel, the Ableton recipe, .mid export, the stage/projector.
|
||||
10. **Reference tables** — sources, voices, routes, CC map, shortcuts.
|
||||
|
||||
Tone: warm, a little poetic (matching the Grimoire) but always accurate and practical. Include step-by-step instructions for the fiddly bits (Web Bluetooth heart, IAC/Ableton, casting a natal chart with lat/lon). Assume readers range from curious newcomers (lead with the moods and ♪) to producers (lead them to MIDI/Ableton). Use the exact key names, CC numbers, and menu labels from the appendices. Do not invent features not listed here.
|
||||
- **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 an `amount` master (0..130%). Presets: straight / swing 16 / mpc 8-4 / drunk. Applied globally in the clock + `seqTick`; travels with the patch.
|
||||
- **Per-step expression** — a `velocity` lane (how hard each step hits) and a `chance` lane (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.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user