Task
Export two pieces of audio that the music integration was built to accept but that were never supplied, then audition each against a real episode. Both are explicitly deferred follow-ups from the original handoffs, not defects.
Context
render.py already supports both shapes — "mode": "bed" (a loopable theme ducked under the bookends) and "mode": "sting" (a short signature that never overlaps speech). See skills/daily-podcast/SKILL.md § Intro/outro music and skills/frontier-commits/SKILL.md § Intro/outro sting. No renderer change is needed for either item below; both are asset work plus a config change.
1. A melody-free bed stem for Pixel Window (daily show)
Today's daily mix retains the full melody under the intro and sign-off narration at duck_db: -18.0, because no bed-only stem was ever produced. The handoff was explicit about not claiming otherwise, and skills/daily-podcast/assets/music/PROVENANCE.json records it.
Export a stem from skills/daily-podcast/assets/music/pixel-window.strudel with the lead line removed (the square and sparkle triangle voices), keeping pads and bass. Audition it against a real episode and compare to the current mix.
2. The full 8-bar Midnight Terminal theme + its bed stem (Frontier Commits)
The bundled midnight-terminal.wav is one bar (2.307688 s), used as a sting. The full composition is 8 bars. Per skills/frontier-commits/assets/music/PROVENANCE.json:
- Export cycles 0 through 8 from
midnight-terminal.strudel with Multi Channel Orbits OFF; expected length 18.461538 s.
- For the narration bed, set
theme = 0 in that source and export the same range.
With both, Frontier Commits could move from sting to bed. Proposed (not approved) bed settings from the handoff: 104 BPM, one bar 2.307692 s, opening lead one bar, closing tail two bars (4.615385 s).
How to audition without shipping
Copy a past workdir, add the music block to its manifest, and dry-run — this is exactly how the current mixes were auditioned:
python3 skills/daily-podcast/render.py --manifest <workdir>/manifest.json --workdir <workdir> --dry-run
Use absolute paths (a relative --workdir breaks the ffmpeg concat list). If the workdir predates 2026-09-04, its TTS sidecars carry the pre-#206 cache key and will miss once — re-key them rather than paying for a fresh render.
Constraints
- Do not change
render.py's music layer; both modes already exist and are tested (tests/test_music.py).
- Do not publish, and do not change either show's live
music block until Cory has approved the new sound.
- New assets go under the owning show's
skills/<show>/assets/music/ with their hash and provenance recorded, and must clear the 2048 KB check-added-large-files hook.
Acceptance criteria
- Each new stem is bundled with a
PROVENANCE.json entry (hash, source, export settings).
- Opening/closing previews produced from a real episode for each, for Cory to approve.
- A recommendation on whether to switch either show, with the measured numbers behind it.
Out of scope
Task
Export two pieces of audio that the music integration was built to accept but that were never supplied, then audition each against a real episode. Both are explicitly deferred follow-ups from the original handoffs, not defects.
Context
render.pyalready supports both shapes —"mode": "bed"(a loopable theme ducked under the bookends) and"mode": "sting"(a short signature that never overlaps speech). Seeskills/daily-podcast/SKILL.md§ Intro/outro music andskills/frontier-commits/SKILL.md§ Intro/outro sting. No renderer change is needed for either item below; both are asset work plus a config change.1. A melody-free bed stem for Pixel Window (daily show)
Today's daily mix retains the full melody under the intro and sign-off narration at
duck_db: -18.0, because no bed-only stem was ever produced. The handoff was explicit about not claiming otherwise, andskills/daily-podcast/assets/music/PROVENANCE.jsonrecords it.Export a stem from
skills/daily-podcast/assets/music/pixel-window.strudelwith the lead line removed (thesquareand sparkletrianglevoices), keeping pads and bass. Audition it against a real episode and compare to the current mix.2. The full 8-bar Midnight Terminal theme + its bed stem (Frontier Commits)
The bundled
midnight-terminal.wavis one bar (2.307688 s), used as a sting. The full composition is 8 bars. Perskills/frontier-commits/assets/music/PROVENANCE.json:midnight-terminal.strudelwith Multi Channel Orbits OFF; expected length 18.461538 s.theme = 0in that source and export the same range.With both, Frontier Commits could move from
stingtobed. Proposed (not approved) bed settings from the handoff: 104 BPM, one bar 2.307692 s, opening lead one bar, closing tail two bars (4.615385 s).How to audition without shipping
Copy a past workdir, add the
musicblock to its manifest, and dry-run — this is exactly how the current mixes were auditioned:Use absolute paths (a relative
--workdirbreaks the ffmpeg concat list). If the workdir predates 2026-09-04, its TTS sidecars carry the pre-#206 cache key and will miss once — re-key them rather than paying for a fresh render.Constraints
render.py's music layer; both modes already exist and are tested (tests/test_music.py).musicblock until Cory has approved the new sound.skills/<show>/assets/music/with their hash and provenance recorded, and must clear the 2048 KBcheck-added-large-fileshook.Acceptance criteria
PROVENANCE.jsonentry (hash, source, export settings).Out of scope