One calm surface for the day.
Agenda, patterns, and the things that should already be in motion. The twin's first read of where you are right now.
;
Patterns the twin has noticed
Three signals from the last 30 days. Each is a quiet observation, not a rule — the twin proposes, you decide.
A catalog you can actually search.
The indexer walks your audio directories, reads ID3 + WAV metadata, and writes a searchable catalog at /data/songs/catalog.json. Rebuild it with npm run index-songs.
Tools
Pair the catalog with transcription + export services. Each opens in a new tab; nothing leaves this machine until you upload.
Upload audio → get MIDI, per-instrument sheet-music PDFs, full score, and MusicXML. Open-source, MIT-licensed; runs locally via uvx muscriptor serve if you'd rather keep it offline.
Turn any image into a prompt — or rank it against artist, medium, movement, trending and flavor vocabularies. Local gradio app + CLI under lib/clip-interrogator/; run it with npm run clip:ui.
MP3 → MP4 with mood-keyword auto-covers, fully offline — single track, custom image, or batch a folder. One HTML file, three render engines (WebCodecs / FFmpeg.wasm / MediaRecorder), deterministic cover from track name.
open the Refael MP4 Maker →Split a long MP4 into N mirror-loopable clips aligned to musical beats (librosa) — forward + reverse, no visible seam. Local gradio app + CLI under lib/loopable-video-segmenter/; run it with npm run lvs:ui.
No audio in the configured roots.
The indexer ran but found no .mp3 or .wav files in:
Update lib/sources.config.json to point at where your audio actually lives, then re-run npm run index-songs.
Loading catalog…
AI Video Loops
FLUX-generated seamless loops from data/flux/loops-final/. Built with npm run flux:still → flux:i2v → flux:segment.
Loading loops…
No loops generated yet.
Run npm run flux:still to generate FLUX stills, then npm run flux:i2v to animate.
Transcription corpus
The Weimar Jazz Database solo archive — 456 transcribed solos with MIDI and engraved PDF per entry. Indexed from its manifest by npm run index-jazz-solos.
Loading corpus…
Corpus not indexed yet.
No solos match these filters.
Try another style or instrument, widen the tempo range, or clear the search box.
The runtime, at a glance.
Three live counters — agents running, events today, spend — surfaced from the orchestrator. Sprint 1 is the shell; the live numbers arrive when the indexer + scheduler land.