Communitygithub.com

scorewright

Compone y produce una banda sonora original para un vídeo: observa y sincroniza el vídeo, elige una identidad musical (género, tonalidad/modo, BPM, instrumentos, leitmotiv), escribe un score.json, renderiza instrumentos reales (FluidSynth + muestras GeneralUser GS, sintetizadores audio-como-código, diseño de sonido), mezcla bajo la narración (ducking + atenuación del diálogo, bed X LU bajo la voz) y entrega stems, MIDI, previsualizaciones y control de calidad.

¿Qué es scorewright?

Scorewright es una habilidad de agente de IA para Claude que le permite componer y producir bandas sonoras originales para vídeos. El agente analiza el vídeo (duración, cortes, regiones de voz), identifica puntos clave emocionales y narrativos, y escribe un archivo score.json con decisiones creativas detalladas (género, BPM, tonalidad, leitmotiv, instrumentación). Luego, un script Python (scorewright.py) renderiza la música usando FluidSynth con muestras GeneralUser GS, sintetizadores basados en código y efectos de sonido, aplicando ducking automático para que la música no opaque la narración. Está diseñado para plataformas que ejecuten Python 3.10+ y soporta tanto fondos musicales (bed) para vídeos con narración continua como partituras completas (score) para tramos sin voz. Incluye un riguroso proceso de control de calidad (QC) con análisis de espectrograma y métricas de volumen, y entrega stems, MIDI, previsualizaciones y el archivo de mezcla final. Es ideal para creadores de contenido que necesitan música original, rápida y coherente con el vídeo sin depender de bibliotecas genéricas.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jayaprakash-pixel/scorewright/tree/HEAD

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Scorewright - Claude compone, las herramientas renderizan

Regla cero: Claude toma cada decisión creativa en score.json y escribe la razón (direction, why de la señal). El script no tiene estilo, BPM, tonalidad o progresión predeterminados. Nunca reutilices la última partitura como plantilla; empieza desde el vídeo.

PY = un Python 3.10+ con requirements.txt instalado. SW = <esta carpeta>/scripts/scorewright.py. Antes del primer renderizado en una máquina, ejecuta PY SW doctor. Si dice MISSING, sigue README.md > Instalar, luego detente y avísale al usuario.

Manual de ejecución (INICIO RÁPIDO)

#PasoComando / acciónTermina cuando
0VerificarPY SW doctorimprime ready
1HechosPY SW analyze <video> <work> --words <words.json> (o --voice)facts.json (duración, cortes, regiones de voz, palabras temporizadas) + contact.jpg
2ObservarLee contact.jpg (mosaico i = t i*step) y las palabras temporizadas; lee el guión/storyboard si existePuedes indicar mensaje, emoción de la audiencia, arco emocional
3SincronizarEscribe una tabla de sincronización: entrada/salida de señal, puntos de impacto (tiempos de palabras, revelaciones, giros), dónde es mejor el silencio, emoción por sección (dominante + secundaria + intensidad)Cada inicio/impacto de señal es un tiempo medido
4DirecciónElige identidad con razones: mezcla de géneros, tonalidad/modo, BPM por señal, paleta, leitmotiv (+ cómo se transforma), arco dinámico. Usa references/craft.mdEscrito en direction
5PartituraEscribe score.json (references/score-format.md, ejemplo examples/bed_demo.json). Inicia cada señal EN su punto de impacto; usa s:<seg> para colocar notas en palabras; PY SW fit <times> solo para probar un tempo dentro de una señalJSON válido
6RenderizarPY SW render score.json <out>stems, full, no_percussion, composition.mid, previews, SCORE_NOTES.md, qc.json, spectrogram.png
7QCLee qc.json + spectrogram.png; corrige y vuelve a renderizar (nueva carpeta de salida por versión)todos los checks verdaderos; cada impacto rise_db >= 3; sin silencios no intencionados
8EscucharEl usuario escucha preview_with_voice.mp3. Claude no puede oír: dilo, reporta los números, pregunta qué cambiarEl usuario aprueba
9EntregarEntrega full_soundtrack.wav (ya a X LU bajo la voz cruda, insértalo a 0 dB) o los stems al editor del usuario-

PRIMERA DECISIÓN: fondo o partitura

  • Vídeo explicativo / narrado (voz casi continua) = FONDO. Sin melodía, sin leitmotiv, sin tonada bajo la voz. Usa pulso, textura, armonía lenta, solo subgraves. La energía cambia en bordes de sección; 2-3 impactos/salidas en revelaciones reales; la identidad proviene del timbre/ritmo, no de una tonada. Una tonada corta solo donde NO hay voz (introducción antes de la primera palabra, últimos 1-2 segundos después de la palabra final).
  • Película / documental con tramos reales sin voz = PARTITURA. El leitmotiv y la melodía viven en esos huecos.
  • Una melodía durante una explicación es una segunda voz: el espectador debe elegir y la explicación pierde.

HACER

  • El silencio, la moderación y el contraste son herramientas. No todo vídeo necesita música en todas partes.
  • Un leitmotiv por idea central; desarróllalo (invierte, aumenta, rearmoniza, cambia una nota) en los giros de la historia.
  • Reduce la densidad bajo explicaciones densas; deja que la música hable en los huecos de voz y en momentos solo visuales.
  • Elección de motor por pista: gm para realismo acústico (piano, cuerdas, metales, vientos, coro, mazos), aac para sintetizadores / voces diseñadas (lento: ~10x gm; úsalo para pocas pistas dispersas; opcional), sfx para impactos/swells/caídas de subgraves en puntos de impacto.
  • Fondo bed_lu_under_voice 11 (enérgico) a 12.6 (tranquilo), medido en regiones de voz - el script lo establece exactamente.
  • Nueva versión = nueva carpeta de salida; nunca sobrescribas un renderizado aprobado.

NO HACER

  • Sin sonidos de siseo / whoosh / paso de página. riser/swell son aumentos tonales, úsalos con moderación.
  • Sin melodías copiadas, temas reconocibles o arreglos de pistas de referencia.
  • Sin el mismo BPM/tonalidad/progresión para cada vídeo; sin volumen como sustituto de emoción.
  • Sin efectos de sonido sin una razón visual o narrativa; sin efectos de sonido más fuertes que la narración.

Limitaciones conocidas (probadas)

  • Orquesta GM SoundFont = buena maqueta, no realismo Spitfire/Kontakt. Piano solo, pads, pizzicatos, pulsos y sintetizadores funcionan mejor.
  • Un tempo por señal (cambio de tempo = nueva señal). composition.mid usa tiempo absoluto con el tempo de la primera señal.
  • El renderizado audio-como-código es lento (partitura totalmente aac de 76 segundos: unos 8 min en un Ryzen 5 5600H; partitura mixta: unos 50 segundos).
  • Claude no puede oír; los números de QC + espectrograma + oídos del usuario son el bucle.

Skills relacionados