hyperframes-audio

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

43.5k|4.2k|Updated Mar 10, 2026
One-click install
npx skills add https://github.com/heygen-com/hyperframes --skill hyperframes-audio
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: hyperframes-audio
Source: https://github.com/heygen-com/hyperframes/tree/main/skills/hyperframes-audio
Command: npx skills add https://github.com/heygen-com/hyperframes --skill hyperframes-audio

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 video composition often fight each other — a music bed drowns out a voiceover, levels drift, and raw recordings sound amateur. This Skill mixes already-placed audio by writing effect chains, volume automation, and voiceover carve settings directly onto the HTML media elements, so preview and render produce the same processed sound.

Core Features & Use Cases

  • Effect chains via data-fx-chain: Apply filters (highpass, peaking, shelves), dynamics (compressor, limiter, gate), nonlinear effects (saturate, bitcrush), and time effects (delay, reverb, chorus, phaser) in signal order on any audio or video element.
  • Voiceover carve: Automatically analyze voice tracks and cut only the bands they occupy from the music bed, with dynamic level matching, using the carve.mjs script or Studio panel.
  • Automation envelopes: Drive track volume or automatable effect parameters over time with breakpoint lanes in data-automation, including submix buses via <hf-audio-group>.
  • Diagnosis and presets: Measure problem audio with ffmpeg-based recipes and apply named presets and jobs (Reduce Mud, Add Clarity, voice-clean) mapped to audible symptoms.
  • Use Case: You have a narration track and a background music bed in a composition. Run node scripts/carve.mjs --comp index.html to detect the bed and voices, carve the bed dynamically at strength 0.25, and write the resulting chain and automation back into the HTML.

Quick Start

Ask the agent to carve the music bed under the voiceover in your HyperFrames composition by running the carve script against your index.html file.

Frequently Asked Questions about hyperframes-audio

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

FAQPage Schema
How do I stop background music from drowning out a voiceover in HyperFrames?

Use the voiceover carve: run node scripts/carve.mjs --comp index.html and it detects the bed and voice tracks, cuts only the frequency bands the voice occupies, and writes a dynamic level envelope. Group voice clips with data-audio-group and carve against the group so later clips are covered.

How do I add audio effects like EQ, compression, 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, such as highpass, peaking, compressor, limiter, or reverb. Parameters use human units like dB, Hz, and ms, and out-of-range values are clamped on read.

Can I automate volume or effect parameters over time in HyperFrames audio?

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

What dependencies does the HyperFrames carve script need?

The carve.mjs script requires ffmpeg on PATH to decode audio and @hyperframes/core installed in the composition's project via npm i -D @hyperframes/core. It loads the same analysis functions Studio uses, so CLI and panel results are identical.

When should I not use the hyperframes-audio skill?

Do not use it for sourcing or generating audio such as finding BGM, SFX, or creating voiceovers, which belongs to /media-use, nor for clip timing and track layout, which /hyperframes-core owns. It only mixes audio already placed in the composition.

Why does my automation lane have no effect on a compressor parameter?

Compressor, limiter, gate, and bitcrush are AudioWorklet effects with no AudioParam-backed parameters, so lanes on them are silently inert. To change their behavior over time, automate a gain stage placed before the effect in the chain.