What problem does it solve? Audio tracks that sound fine alone often fight each other in a mix — a music bed drowns out a voiceover, a voice sounds boomy or harsh, levels drift between passages. This Skill mixes audio already placed in a HyperFrames composition by writing effect chains, automation envelopes, and voiceover carve settings directly onto the HTML media elements, so preview and render produce identical sound. ## Core Features & Use Cases - Voiceover Carve: Analyzes the voice track, finds the bands it occupies, and cuts only those bands in the music bed plus a level match, so the bed keeps its body while the voice stays intelligible. Run headless via node scripts/carve.mjs --comp index.html. - Effect Chains: Fourteen shipped effects (filters, compressor, limiter, gate, saturate, delay, reverb, chorus, phaser, bitcrush) written as JSON in data-fx-chain, with presets and named jobs like Tame Boominess, Reduce Mud, and Add Clarity for common symptoms. - Automation & Submix Buses: Breakpoint envelopes on volume or effect parameters via data-automation, and <hf-audio-group> buses that give several tracks one chain, one fader, and one composition-time automation clock. - Use Case: Given a composition where narration fights a music bed, run the carve script to detect the tracks, write peaking-filter dips and a ducking envelope onto the bed, and re-run safely at a new strength without touching hand-built effects. ## Quick Start Run the carve script with node scripts/carve.mjs --comp index.html to automatically detect the voice and music bed and write a dynamic voiceover carve into the composition.