Scorewright – Claude compose, les outils rendent
Règle zéro : Claude prend toutes les décisions créatives dans score.json et écrit la raison (direction, why de chaque cue). Le script n’a pas de style, BPM, tonalité ou progression par défaut. Ne jamais réutiliser la dernière partition comme modèle ; partir de la vidéo.
PY = un environnement Python 3.10+ avec requirements.txt installé. SW = <ce dossier>/scripts/scorewright.py.
Avant le premier rendu sur une machine, exécuter PY SW doctor. Si le message MISSING apparaît, suivre README.md > Installer, puis s’arrêter et prévenir l’utilisateur.
Runbook (DÉMARRAGE RAPIDE)
| # | Étape | Commande / action | Terminé quand |
|---|---|---|---|
| 0 | Vérification | PY SW doctor | affiche ready |
| 1 | Faits | PY SW analyze <video> <work> --words <words.json> (ou --voice) | facts.json (durée, coupures, régions de parole, mots temporels) + contact.jpg |
| 2 | Regarder | Lire contact.jpg (vignette i = t i*step) et les mots temporels ; lire le script/storyboard s’il existe | Pouvoir énoncer le message, le ressenti du public, l’arc émotionnel |
| 3 | Repérer | Écrire une table de repérage : entrée/sortie de cue, points d’impact (temps des mots, révélations, retournements), où le silence est préférable, émotion par section (dominante + secondaire + intensité) | Chaque début/hit de cue est un temps mesuré |
| 4 | Direction | Choisir l’identité avec raisons : mélange de genres, tonalité/mode, BPM par cue, palette, leitmotiv (+ comment il se transforme), arc dynamique. Utiliser references/craft.md | Écrite dans direction |
| 5 | Partition | Écrire score.json (references/score-format.md, exemple examples/bed_demo.json). Commencer chaque cue SUR son point d’impact ; utiliser s:<sec> pour placer les notes sur les mots ; PY SW fit <times> uniquement pour tester un tempo à l’intérieur d’un cue | JSON valide |
| 6 | Rendu | PY SW render score.json <out> | stems, full, no_percussion, composition.mid, previews, SCORE_NOTES.md, qc.json, spectrogram.png |
| 7 | QC | Lire qc.json + spectrogram.png ; corriger et re-rendre (nouveau dossier out par version) | tous les checks true ; chaque hit rise_db >= 3 ; aucun silence involontaire |
| 8 | Écouter | L’utilisateur écoute preview_with_voice.mp3. Claude ne peut pas entendre : le dire, rapporter les chiffres, demander quoi modifier | L’utilisateur approuve |
| 9 | Livraison | Remettre full_soundtrack.wav (déjà à X LU sous la voix brute, à placer à 0 dB) ou les stems à l’éditeur de l’utilisateur | - |
PREMIÈRE DÉCISION : bed ou score
- Vidéo explicative / narrée (parole quasi continue) = BED. Pas de mélodie, pas de leitmotiv, pas de thème sous la parole. Utiliser pulsation, texture, harmonie lente, sub seulement. L’énergie change aux frontières des sections ; 2-3 hits/drop-outs sur les vraies révélations ; l’identité vient du timbre/rythme, pas d’une mélodie. Une courte mélodie uniquement là où il n’y a PAS de parole (intro avant le premier mot, 1-2 dernières secondes après le dernier mot).
- Film / documentaire avec de vraies plages sans parole = SCORE. Leitmotiv et mélodie vivent dans ces trous.
- Une mélodie sous une explication est une seconde voix : le spectateur doit choisir, et l’explication perd.
À FAIRE
- Silence, retenue et contraste sont des outils. Toutes les vidéos n’ont pas besoin de musique partout.
- Un leitmotiv par idée centrale ; le développer (inverser, augmenter, réharmoniser, changer une note) aux tournants de l’histoire.
- Réduire la densité sous une explication dense ; laisser la musique parler dans les trous de parole et les moments purement visuels.
- Choix du moteur par piste :
gmpour le réalisme acoustique (piano, cordes, cuivres, bois, chœur, mallets),aacpour les synthés / voix design sonore (lent : ~10× gm ; utiliser pour peu de pistes clairsemées ; optionnel),sfxpour impacts/swells/sub drops sur les points d’impact. - Bed
bed_lu_under_voice11 (énergique) à 12.6 (calme), mesuré dans les régions de parole – le script le définit exactement. - Nouvelle version = nouveau dossier out ; ne jamais écraser un rendu approuvé.
À NE PAS FAIRE
- Pas de bruit de swish / whoosh / page qui se tourne.
riser/swellsont des crescendos tonals, à utiliser avec parcimonie. - Pas de mélodies copiées, de thèmes reconnaissables ou d’arrangements de référence.
- Pas de même BPM/tonalité/progression pour chaque vidéo ; pas de volume sonore comme substitut à l’émotion.
- Pas d’effet sonore sans raison visuelle ou narrative ; pas d’effet sonore plus fort que la narration.
Limites connues (testées)
- Orchestre SoundFont GM = bonne maquette, pas le réalisme Spitfire/Kontakt. Piano solo, nappes, pincés, pizzicati et synthés tiennent le mieux.
- Un tempo par cue (changement de tempo = nouveau cue). composition.mid utilise le temps absolu avec le tempo du premier cue.
- Le rendu audio-as-code est lent (partition tout-aac 76 s : environ 8 min sur un Ryzen 5 5600H ; partition mixte : environ 50 s).
- Claude ne peut pas entendre ; les chiffres QC + spectrogramme + oreilles de l’utilisateur sont la boucle de rétroaction.