hyperframes-audio

Mix audio tracks in HyperFrames compositions with effects chains, automation, and voiceover carving.

Updated Sep 11, 2026
One-click install
npx skills add https://github.com/celeroncoder/skills --skill hyperframes-audio-celeroncoder
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: hyperframes-audio
Source: https://github.com/celeroncoder/skills/tree/main/hyperframes-audio
Command: npx skills add https://github.com/celeroncoder/skills --skill hyperframes-audio-celeroncoder

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @hyperframes/core, ffmpeg, and includes scripts (resource) and references (resource) components.

What problem does it solve? Audio tracks placed in a HyperFrames composition often fight each other — a music bed drowns out a voiceover, a voice sounds boomy or harsh, or levels drift across a take. This Skill mixes already-placed audio by writing effect chains, volume automation, and voiceover carve settings directly onto the composition's HTML elements, with preview and render running the same Web Audio graph. ## Core Features & Use Cases - Voiceover carve: Analyzes voice tracks and writes peaking-filter dips plus a level-match envelope onto the music bed via scripts/carve.mjs, so the bed keeps its character while speech stays intelligible. - Effect chains and automation: Fourteen shipped effects (EQ, compressor, limiter, gate, saturation, delay, reverb, chorus, phaser, bitcrush) written as data-fx-chain JSON, with breakpoint automation lanes on volume and automatable parameters. - Diagnosis and presets: Reference guides for measuring audio defects with ffmpeg when you cannot listen, plus named presets and jobs (Tame Boominess, Reduce Mud, Add Clarity) mapped to symptoms. - Use Case: Given a composition with a narration track and a music bed, run the carve script to automatically detect both tracks, analyze the voice's bands, and write a dynamic carve that ducks the bed only where speech occurs. ## Quick Start Run the carve script against my HyperFrames composition index.html to automatically duck the music bed under the narration.

Frequently Asked Questions about hyperframes-audio

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I duck a music bed under a voiceover in HyperFrames?▼

Run the voiceover carve with node scripts/carve.mjs --comp index.html. It detects the bed and voice tracks by name, analyzes the speech bands, and writes peaking-filter dips plus a level-match envelope onto the bed element. Use --bed and --voice to name tracks explicitly.

How do I add audio effects like EQ or reverb to a HyperFrames track?▼

Write a data-fx-chain JSON attribute on the audio or video element listing effect nodes in signal order. Fourteen effects are shipped including highpass, peaking, compressor, limiter, gate, saturate, delay, reverb, chorus, phaser, and bitcrush, with parameters documented in references/fx-registry.md.

Can I automate effect parameters over time in HyperFrames audio?▼

Yes, via data-automation lanes targeting volume or fx.<nodeId>.<param> with breakpoint points in clip-local seconds. Only parameters backed by a Web Audio AudioParam are automatable; the worklet effects compressor, limiter, gate, and bitcrush expose none, so automate a gain stage around them instead.

Why is my carve automation lane not moving the compressor?▼

Compressor, limiter, gate, and bitcrush are AudioWorklet effects configured wholesale, so none of their parameters can be automated and a lane on them is silently inert. To change their behavior over time, automate a gain stage placed before the effect in the chain.

What are the limitations of the HyperFrames voiceover carve?▼

The carve only works on audio already placed in the composition; sourcing or generating audio is out of scope. Carve sources should name a group rather than multiple clip ids, the carve attribute belongs on the bed clip and never on a bus or voice track, and source speed ramps are unsupported.

How do I diagnose audio problems in a file I cannot listen to?▼

Compare against something inside the same file using ffmpeg: the clean original if it exists, otherwise the pauses for additive noise, or the speech's own spectral tilt for suspected filters. Never compare against a published average spectrum or a synthesized control voice, since speaker differences exceed most defects.