hyperframes-audio

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

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

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve? Audio already placed in a HyperFrames composition often sounds wrong together: a music bed fights the voiceover, tracks are uneven, or a voice sounds boomy or harsh. This Skill mixes those placed tracks by writing effect chains, volume and effect automation envelopes, ducking, and voiceover carves directly onto the audio elements as HTML attributes, so preview and render produce the same processed mix. ## Core Features & Use Cases - Voiceover carve: Analyzes the voice tracks, finds the bands speech occupies, and writes peaking-filter dips plus a level-match gain envelope onto the music bed via scripts/carve.mjs, so the bed keeps its character while the voice stays intelligible. - Effect chains and automation: Applies EQ, compressor, limiter, gate, saturation, delay, reverb, chorus, phaser, and bitcrush through data-fx-chain, with breakpoint automation lanes on volume or effect parameters via data-automation, including submix buses with <hf-audio-group>. - Diagnosis of unheard audio: Provides measurement recipes (FFmpeg band energy, noise floor, loudness, level-over-time) in references/diagnosis.md to identify defects by comparing against the clean original or the pauses rather than guessing. - Use Case: Given a composition with narration and a background music track, run the carve script to automatically detect the bed and voices, then write the carve attributes so the music ducks only in the speech bands. ## Quick Start Ask the AI 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 duck background music under a voiceover in HyperFrames?▼

Run the voiceover carve with node scripts/carve.mjs --comp index.html. It detects the music bed and voice tracks, analyzes the speech bands, and writes peaking-filter dips plus a level-match envelope onto the bed so the voice stays intelligible without flattening the music.

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

Write a data-fx-chain attribute on the audio or video element listing effect nodes in signal order, such as highpass, peaking, compressor, or reverb. Parameters use human units like dB, Hz, and ms, and out-of-range values are clamped on read.

Does the carve script require any external tools?▼

Yes, it needs ffmpeg on PATH to decode audio and @hyperframes/core installed in the composition's project via npm i -D @hyperframes/core. The CLI inlines core rather than shipping it, so it cannot be borrowed from the skill's own directory.

Why is my automation lane on a compressor not moving?▼

Compressor, limiter, gate, and bitcrush are AudioWorklet effects with no automatable AudioParams, so lanes on their parameters are silently inert. Automate a gain stage before the compressor instead to change how hard it is driven over time.

When should I not use the voiceover carve?▼

Skip the carve when no voice plays under the music, such as a music video, title card, or montage cut to the track. Also never place a carve on a voice track itself, and group multiple voice clips so the carve targets the group rather than individual clip ids.

How do I diagnose an audio problem when I cannot listen to the file?▼

Compare against something inside the same file: the clean original if it exists, otherwise the pauses, since anything audible in a gap is additive noise. Use the FFmpeg recipes in references/diagnosis.md for band energy, noise floor, and level over time, and never compare against a published average spectrum or a different voice.