Genera el diseno sonoro de un video Remotion — musica de fondo, SFX por escena y ducking dinamico. Lee el config.json existente, propone una carta de sonido al usuario y genera los archivos de audio via ElevenLabs. Invoca con /sound-engineer path/to/config.json
Skill de diseno sonoro para videos Remotion. Lee un config.json que ya tiene escenas, voiceover y direccion editorial, y anade la capa de audio ambiental: musica de fondo con ducking y efectos de sonido por escena.
tutorial-generator → director → sound-engineer → render
config.json con escenas, voiceover y beats/timingELEVENLABS_API_KEYpublic/audio/library/ con loops base (opcional, el skill funciona con custom prompts)Lee el config y extrae:
brief.tone, brief.platform, brief.audienceemphasis: "high" (puntos de impacto)soundDesign (re-run vs primera vez)public/audio/library/ buscando loops existentes"personal-didactic" → lofi-tech, minimal-ambient"corporate" → corporate-warm"energetic" → upbeat-techAskUserQuestion — el usuario eligeAplica el mapeo automatico por defecto:
| Tipo de escena | SFX por defecto |
|---|---|
intro | Swoosh sutil en linea de acento (trigger: "accent-line") |
terminal | Teclado mecanico durante typing (trigger: "typewriter", loop: true) |
custom/block-diagram | Chime al revelar cada bloque (trigger: "reveal") |
custom/flow-diagram | Whoosh del orb entre nodos (trigger: "reveal") |
custom/file-explorer | Click de carpeta al expandir (trigger: "reveal") |
callout | Tono de atencion sutil (trigger: "scene-start") |
outro | Stinger musical de cierre (trigger: "scene-start") |
Ajusta densidad segun tono:
Presenta tabla escena-por-escena al usuario:
CARTA DE SONIDO — "[titulo del video]"
Music bed: [seleccion] (loop, -18dB, duck a -26dB durante voz)
Escena 0 (intro, Xs): [SFX asignados]
Escena 1 (terminal, Xs): [SFX asignados]
...
Ducking: -26dB durante voz, fade 400ms
Transiciones: [resumen de gaps]
Presenta via AskUserQuestion — itera sin limite hasta aprobacion.
Escribe la seccion soundDesign en el config.json:
{
"soundDesign": {
"enabled": true,
"musicBed": {
"libraryId": "lofi-tech",
"volume": -18,
"duckingVolume": -26,
"fadeInMs": 2000,
"fadeOutMs": 3000,
"duckingFadeMs": 400
},
"sfx": [
{
"id": "keyboard",
"prompt": "soft mechanical cherry mx keyboard typing in quiet room, ASMR, gentle clicks",
"trigger": "typewriter",
"sceneTypes": ["terminal"],
"loop": true,
"volume": -14
}
]
}
}
Ejecuta el script:
npx tsx scripts/generate-sound-design.ts path/to/config.json
Reporta:
No renderiza — eso lo hace render.ts en el siguiente paso de la cadena.
Mejores practicas para prompts de ElevenLabs SFX V2:
Prompts que producen buenos resultados:
"soft mechanical keyboard typing in quiet room, cherry mx switches, gentle ASMR clicks, no background noise""Deep cinematic braam building from a low sub-bass drone, layered rising whooshes with metallic resonance, culminating in a powerful reverberant impact boom. Dramatic, epic, large hall acoustics, no music, no voice""subtle digital UI swoosh, soft, clean, short, modern interface sound""gentle digital notification chime, minimal, single note, warm tone, UI sound""soft particle whoosh traveling left to right, digital, ethereal, short""soft mouse click on folder, minimal UI interaction sound, clean""subtle attention tone, two soft notes ascending, warm, non-intrusive""short musical stinger, lofi ending tag, warm, 2 seconds, fade out""Dark atmospheric tension riser with eerie metallic drones, building to a deep cinematic braam impact with long reverb tail, suspenseful, no music, no voice"| Capa | Volumen | Notas |
|---|---|---|
| Music bed (normal) | -18 dB | Audible pero no distrae |
| Music bed (ducking) | -26 dB | Apenas perceptible bajo voz |
| Teclado ASMR | -14 dB | Presente, textura |
| Epic intro | -8 dB | Impacto fuerte al inicio |
| Chimes/clicks | -15 dB | Puntual, no agresivo |
| Swoosh/whoosh | -16 dB | Ambiental |
| Stinger | -10 dB | Cierre con presencia |
transitionMs del director para el timing de ducking