The GODSPEAK grammar: tempo/bpm with spoken numbers (one twenty → 120),
squash N percent, AMPLER capture/chop, open/close every panel, play/stop
the beat, mood, skin, zen — and take it back, the voice of god un-doing.
First match wins; unmatched words arrive in the ticker, never an error.
A 🗣 chip pulses while the mic is held. Polish: arp.up pruned, the arp
breathes with groove.velo, tempo edits mark undo, serializePatch carries
godtime.locked so undoing a mood restores the lock. Grimoire chapter for
all four gods + regenerated manual + worker permission notes.
Reviewed by fable: two fixes folded in — matchSkin normalizes candidate
names (so god-s-eye matches post-convergence) and a virgin session
saying play-the-beat gets the seed pattern first.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The user's wersperr, wired into the sky: hold Right ⌥, speak, release —
the transcript flows to the hub as OSC and reaches every client as a
voice event (Stage 3 gives it the grammar).
- workers/godspeak_worker.py: wersperr-derived (MLX Whisper, 16kHz mono,
Right ⌥ via pynput). Sends /godspeak/rec 1|0 on key edges and
/godspeak <text> after transcription instead of pbcopy/paste. House
worker pattern: argparse --host/--port, lazy imports with graceful
"not available — skipping (optional)" exit, --check self-test, warm-up.
MLX is Apple-Silicon-only so it's local-rig-only + opt-in; deps stay
OUT of requirements.txt (documented pip install in the docstring).
Transcription serialized (one MLX graph at a time); a busy mic can't
kill the hotkey listener.
- hub.py: _osc_handler special-cases /godspeak (text/state, not a float
signal), queues it, and control_loop relays {"godspeak":{...}} to ws
clients — dropped entirely in read-only mode (it's a command channel).
Bridged OSC-thread → asyncio via a queue, like every other ingest.
- run.py: --godspeak opt-in flag mirroring --sports; never a default.
Python-only — zero viz/index.html, zero requirements.txt/config.json.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Soccer, basketball, cricket (the long game), Australian football (the
winter Saturday roar at home), fighting, motorsport, ice hockey. Seven
calls per refresh — still ~2% of the free key's budget.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
TheSportsDB's free tier, invited with run.py --sports and off otherwise
(a shared, rate-limited key — 30/min — so the worker is polite by
design: the day's fixtures in a few calls per hour, everything else
computed at home). sport.events_today counts the planet's fixtures,
sport.inplay is the stadium lights climbing through the evenings, and
sport.kickoff fires the instant any match begins — swelling when many
kick off together. Routed where play belongs: Netzach the Victory,
Leo's fifth house of games, Lughnasadh's funeral games, wunjo the
joy-rune, dui the joyous lake.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Right-click any source: its actual number, live, with a two-minute
sparkline right in the menu — and 📌 pin it to the ticker, where your
watchlist scrolls ahead of the news with live values. The Binance tap
widens to ETH, SOL and the euro itself (EUR/USD on a 1s miniTicker,
since the pair trades thin), the ECB's daily fixes arrive as glacial
drones (GBP/USD, USD/JPY, AUD/USD), and Bitcoin speaks its own
technical analysis on 5s closes: the MACD line, Wilder's RSI(14), and
cross bells that ring once at every golden and death cross. All of it
routed through the Spirits like any money — to the solar plexus, to
Hod, to Nidavellir, to fehu.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Captures backend work already running on godstrument.pro but never committed:
- auth.py: invite-only accounts + per-user presets (SQLite, scrypt, signed
stateless sessions), mounted by hub.py at /api/*
- hub.py: /api static+API handler, readonly public mode, full route spec in hello
- socio-economic / market / fire / debt / crypto workers + normalize/transform
- .gitignore: never commit godstrument_users.db* or auth_secret
- test_fixes.py: framework-free self-check for the review fixes
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- world_zodiac.py: Chinese zodiac year/element + 2-hour animal, N/S summer (computed)
- world_fire.py: live wildfires from NASA EONET (the fire element)
- overlapping groups: a source can now belong to many concept groups at once
(elements fire/earth/air/water/spirit, plus wealth + summer vibes) — they stack
- transform.py: member_groups (1:many) replaces 1:1 grouping
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- world_bank.py: poverty, food security, fertility, life expectancy (World Bank)
folded into the "shadow" / "bright" concept groups
- spells: save/load now captures the full live mix (gains/mutes/freezes), not
just the wiring; TEMPLATES panel renamed SPELLS
- performance mode (press P): clean projection view + rotating "dispatches from
the world" text readout for live shows
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- world_debt.py + world_econ.py: US national debt + inflation (the dark half)
- concept groups: "the shadow" / "the bright" — group sources by feeling
- named templates: hub save_patch/load_patch + console TEMPLATES panel
- editing console: runtime add/remove/set route + make_group; drag-to-patch,
shift-click inspector, cmd-select grouping in the viz
- planetary orbital LFOs per group; almanac + ephemeris workers
- Web MIDI (out + learn) in the console; strudel/godstrument.md starter kit
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Everything — your hand, the room, a satellite, the markets, the sky — becomes an
OSC control signal fused through a modulation matrix. Includes:
- hub + normalize (One-Euro) + matrix (curves/gates/quantize) + transform (tweaks/groups)
- 20+ workers: sim sensors, 8 keyless world feeds, ephemeris/almanac/clock (computed),
time-warp replay (quakes/weather/db), and the dealgod market warehouse feed
- planetary orbital LFOs, SQLite recorder, city targeting
- live browser console: mute, group macros, drag-to-patch, inspector, Web MIDI
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>