# Hyperframes Media

Audio and media assets for HyperFrames compositions, produced by one shared audio...

- Repository: https://github.com/calesthio/OpenMontage (74341 stars)
- Category: Media
- License: AGPL-3.0
- Last updated: 2026-10-28
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add calesthio/OpenMontage --skill hyperframes-media -g -a claude-code -y`
Codex: `npx skills add calesthio/OpenMontage --skill hyperframes-media -g -a codex -y`
Cursor: `npx skills add calesthio/OpenMontage --skill hyperframes-media -g -a cursor -y`
Gemini CLI: `npx skills add calesthio/OpenMontage --skill hyperframes-media -g -a gemini-cli -y`

## Description

Audio and media assets for HyperFrames compositions, produced by one shared audio engine (`scripts/audio.mjs`), multi-provider TTS (HeyGen / ElevenLabs / Kokoro local), background music + sound effects (HeyGen audio-library retrieval by default, with local Lyria / MusicGen BGM generation and a bundled SFX library as the no-credential fallback), Whisper transcription, background removal, and caption authoring. Use for voiceover / TTS, BGM, SFX / sound effects, transcription, captions / subtitles / lyrics / karaoke / per-word styling, voice + provider selection, and music-mood prompting.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# HyperFrames Media

Create the audio and media assets a composition needs, voiceover (TTS), background music + sound effects, transcription, captions, background removal, then consume and animate that data in HTML. For placing assets into compositions, see `hyperframes-core`.

## The audio engine, one source for TTS · BGM · SFX

Workflows do NOT hand-roll audio or vendor a copy. There is one engine, **`scripts/audio.mjs`**, that takes a neutral `audio_request.json` and writes `audio_meta.json` (plus assets under `assets/voice|bgm|sfx`):

```bash
# <MEDIA_DIR> = this skill's directory
node <MEDIA_DIR>/scripts/audio.mjs --request ./audio_request.json --hyperframes . --out ./audio_meta.json
```

All three capabilities degrade on **ONE switch**, whether a HeyGen credential is present (resolved from `$HEYGEN_API_KEY` / `$HYPERFRAMES_API_KEY` / `~/.heygen`, **not** the CLI):

| Capability | HeyGen credential present                          | absent                                               |
| ---------- | -------------------------------------------------- | ---------------------------------------------------- |
| TTS        | HeyGen Starfish REST (native word timestamps)      | → ElevenLabs → Kokoro (chain `transcribe` for words) |
| BGM        | HeyGen music **retrieval**                         | Lyria → MusicGen local **generation** (detached)     |
| SFX        | HeyGen sound-effects **retrieval** (min_score 0.4) | bundled 21-file library (`assets/sfx/`)              |

The rest: https://github.com/calesthio/OpenMontage/blob/HEAD/.agents/skills/hyperframes-media/SKILL.md
