Commit Graph
16 Commits
Author SHA1 Message Date
teahubxyzandClaude Fable 5.1 57d448443f gandora: a real previous-track button; skip walks forward through the session before cooking new tracks
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 20:05:22 +00:00
teahubxyzandClaude Fable 5.1 9c9a0dd377 gandora: library grouped by station (channel), each with its seed mark and count; kept tracks on top
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 20:00:52 +00:00
teahubxyzandClaude Fable 5.1 f967f739e4 gandora: only wire the analyser once the audio context is running (a suspended one would mute iOS)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 20:00:20 +00:00
teahubxyzandClaude Fable 5.1 a8e8d0efbd gandora: the cover is a visualizer while music plays; reactions show on library tiles
Analyser on the player: bass breathes the rings and the seed mark, highs sharpen the lines, slow drift on the
phases; ground and grain are cached per song so the frame loop only redraws rings and core. Reactions are saved
with the track on each tap (they were only in memory before), and the tiles show them (💬 for words, ⏭ for a skip).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:59:57 +00:00
teahubxyzandClaude Fable 5.1 c54522678b gandora: lyrics on the back of the cover (tap the cover or LYRICS to flip)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:48:31 +00:00
teahubxyzandClaude Fable 5.1 df98581056 gandora: lyrics under the title (tap LYRICS or the cover); section markers styled; stays open across tracks
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:47:50 +00:00
teahubxyzandClaude Fable 5.1 8806f56907 gandora: a repeat button
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:46:56 +00:00
teahubxyzandClaude Fable 5.1 86a9ec10d3 gandora: say why a track didn't render (a budget cap reads differently from a Venice hiccup)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:43:51 +00:00
teahubxyzandClaude Fable 5.1 81805e1a25 gandora: stations and an explicit KEEP
Stations: a seed, its name, taste and recent history are saved (IndexedDB v2) and listed on the seed screen as
seed marks to resume; a new seed opens a new station, picking a station resumes it with its taste intact.
KEEP: a labelled pill under the controls pins the current track (toggle), beside the ❤️ reaction which still keeps.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:38:18 +00:00
teahubxyzandClaude Fable 5.1 8d21bf11ff gandora: every played track is kept in the library (last 40), hearts pin for good; KEPT and PLAYED sections
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:27:42 +00:00
teahubxyzandClaude Fable 5.1 64fa4fc0b7 gandora: the now-playing strip follows track changes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:22:04 +00:00
teahubxyzandClaude Fable 5.1 6bdb300adb gandora: leaving the player keeps the station playing; a now-playing strip on the seed screen leads back
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:21:48 +00:00
teahubxyzandClaude Fable 5.1 050aa296a5 gandora: hedge a stalled render after 60 s with a second queue, take whichever lands first
Three timed renders through the worker took 8-24 s; the one that sat for 2+ min was Venice's queue stalling that
job. A second copy after 60 s bounds the wait at about normal + 60 s for an extra 3 cents on a bad day.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:18:48 +00:00
teahubxyzandClaude Fable 5.1 52edca2774 gandora: run on the shared inference worker by default, a personal Venice key optional
No key in the page and none needed: calls go to inference.yolopreneur.lol with an x-app header, quota'd per person
per day; a saved personal key still goes straight to api.venice.ai. DJ defaults to claude-haiku-5-5 (llama-3.3-70b
is gone from Venice's list). The ?demo key path is removed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 19:09:18 +00:00
teahubxyzandClaude Fable 5.1 1b4641c1a4 gandora: honour a shared demo key from demo.js on ?demo links
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-20 18:48:44 +00:00
teahubxyz 3a8bdf5f56 ventures: gandora, a generative station (PoC on Venice ACE-Step)
Type a seed → a DJ (Venice chat, JSON) writes tags, lyrics, bpm, key, energy for each track → ACE-Step 1.5 on
Venice renders 60 s → Pandora-style player with render-ahead. Covers are deterministic: hue from key, rings from
bpm, grain from energy, symmetry and core mark from the seed. Emoji + text reactions edit the station's taste;
❤️ keeps a track in an IndexedDB library (free replays). Venice key stays in the browser (CSP: api.venice.ai only).

Claude-Session: gandora-poc
2026-10-20 18:16:17 +00:00