Shorter sample window (30ms), finer block characters, centered
on zero crossing. Flat line shows as ─, peaks as █.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Block character waveform (▁▂▃▄▅▆▇█) sampled from the audio buffer
at the current playback position. Amber colored. Updates in real time
above the progress bar.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Static site with nginx on fly.io. Features:
- Album art, track list with descriptions and metadata
- Persistent bottom player bar with seek, volume, next/prev
- Real-time oscilloscope via Web Audio API
- Deep linking via URL hash (#track_name)
- Share link per track (copy to clipboard)
- Keyboard shortcuts (space, arrows, n/p)
- Mobile responsive
- SEO meta tags, Open Graph, Twitter cards
- Streaming service link placeholders
- MP3s converted from WAVs for web delivery
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Callback-based playback with raw terminal input. Single char keys
only — no escape sequences. The Interruption: reese sidechain 0.55.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Silk Road: mellotron_flute in finale. The Dialogue: drift pad, mellotron ending.
Acid Reign: wavefold in breakdown. Chakra: drift at crown. Raga Midnight:
mellotron_strings over 808 drop. The Temple: granular_pad texture.
Sleight of Hand: mellotron_choir. Gravity: drift tambura.
Ghost Protocol: NES pulled back. An Exception: psycho bass 0.3.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ghost Protocol: arp → drift (analog wobble)
Deep Time: shimmer → drift, added granular_pad grain layer
Voltage: added hard_sync part at bar 49
The Interruption: reese bass → drift (analog menace)
An Exception Occurred: added ring_mod during psychosis
Intrusive: thought → wavefold with organ envelope (uglier, harder)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ghost Protocol: no more Portishead/Strobe references.
Apex: no more Beast Mode reference. Descriptions stand alone.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Picker shows docstring titles (RAGA MIDNIGHT, BEAST MODE) instead of
filenames. Non-440 reference pitch shown next to BPM.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Album arc: opener → cool down → world → energy peak → emotional
heart → exploration → sacred → closing. Track names link to source.
Table shows key, BPM, tuning system, vibe.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
First-run prompt and 'R' render-all both use 4 parallel workers.
Each track renders in its own subprocess. Colored first-run UI.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tracks auto-cache to wavs/ on first play. Subsequent plays load the
WAV instantly (no render wait). 'r' key in picker force-renders.
Checkmark shows cached tracks. Picker returns to loop after playback.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Music Box Factory: G major, 108 BPM — 8 tuned percussion instruments.
Kalimba, vibraphone, celesta, marimba, glockenspiel, xylophone,
crotales, timpani. No synths, no strings.
Cathedral: D minor, 60 BPM — tubular bells in taj_mahal, bagpipe
drone, mellotron choir, timpani thunder, pipe organ, kick in
cathedral reverb. Mellotron choir solo at the heart.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
E minor, 100 BPM. Singing bowls + tingsha opening, didgeridoo,
mellotron flute, sitar 16th arps with dynamic velocity and 32nd
shreds. Synths emerge at bar 33. Both worlds collide at the peak.
Mellotron solo bridges them. Bowls alone at the end.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tape Memory: Db minor, 90 BPM — mellotron flute, FM bells, drift,
crotales, granular texture, hard_sync, PWM, wavefold, ring_mod.
Theremin solo at the peak. Singing bowls + tingsha throughout.
Play.py now returns to track picker after playback finishes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New sections: FM solo melody (bars 65-72), saw + square harmony in
thirds (73-80), sine/triangle/PWM canon in a round (81-88), all
waveforms return for finale then dissolve (89-96). Lead melody louder.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>