Communitygithub.com

z1fex/12-conception-sonore-et-mixage

Concevoir la bande sonore d'un film d'animation 3D : un tapis musical original, un bruitage discret sur chaque action visible, des accents sur les temps forts de l'histoire, des niveaux calibrés par rapport à la voix, des arrêts avant les plus gros impacts, en utilisant les 24 effets synthétisés du moteur, et masteriser le tout à -14 LUFS. À utiliser après le verrouillage de l'image.

Qu'est-ce que 12-conception-sonore-et-mixage ?

Cette compétence permet de concevoir et mixer la bande sonore complète d'un film d'animation 3D, en suivant une méthodologie de conception sonore basée sur le mouvement. Elle génère un tapis musical original, des bruitages de foley synthétisés pour chaque action visible, et des accents sonores sur les temps forts narratifs, le tout calibré automatiquement par rapport à la voix. Le système utilise un moteur de 24 effets synthétisés (sans aucun échantillon préenregistré), avec une gestion des niveaux précise : la voix est normalisée à -16 LUFS, les effets de foley à environ -15 dB sous la voix, et les accents à -9 dB. Le master final est limité à -14 LUFS intégrés avec un pic vrai à -1.5 dBTP. La compétence est conçue pour être utilisée après le verrouillage de l'image et s'appuie sur des fichiers Python et JavaScript pour générer les effets, les repères temporels et le mix final. Elle fournit des stems séparés (voix, musique, effets) et un fichier de repères détaillé. Tous les sons sont synthétisés, garantissant l'absence de problèmes de droits d'auteur.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/z1fex/3D-Cartoon-Style-Animation-Claude-Skill/tree/HEAD/skills/12-sound-design-and-mix

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

12 · Conception sonore et mixage

Directive du propriétaire (premier jet) : « effets sonores légers lorsqu'il y a une action, tout le temps. » La conception des effets suit la pratique documentée de conception sonore basée sur le mouvement d'earshot (github.com/Leonxlnx/earshot, MIT ; docs/motion-sfx-techniques.md, docs/SFX.md) ; notre code dans recipe/tools/sound.py est notre propre création et n'utilise aucun échantillon.

Les couches

CoucheNiveauNotes
Voix−16 LUFS (référence parole ≈ −19 dBFS, RMS 400 ms)remplit 93–98% de la durée
Tapis musical18 LU sous la voix, pas de duckingoriginal, en do majeur (Do–Lam–Fa–Sol, 100 BPM) : marimba, basse pincée, nappe, kick, shaker. Passe à la nappe seule pour la reprise (musicDrop: [start, end])
Foley~15 dB sous la voix (ticks ~21, oiseaux ~22)un son sur chaque action visible
Accents~9 dB sous la voixtemps forts de l'histoire uniquement, au maximum ~20 par minute, avec une baisse musicale de 7 dB dans les 0,35 s précédant le plus gros (stop: true)
Master−14 LUFS intégrés, pic vrai −1,5 dBTPloudnorm linéaire à deux passes

Les effets (24, dans sound.py)

TypeNiveauUtilisation surConception
whoosh (long: true pour les grands mouvements)foleyentrer dans un nouvel endroit, grands mouvements de camérabruit rose à travers trois bandes mobiles (1 : 1,6 : 2,5) suivant la vitesse ; balayage panoramique ; le pic atterrit sur le repère
swishfoleyun bras, un livre, un geste, un lancerfin éclat lumineux et rapide, 0,2 s
popfoleyl'apparition du titre, un changement de visage sur un objet, petites arrivéesblip tonal montant vers la tonique, tick, sonnerie fille
tickfoleychaque pas d'un compteurpetit coup lumineux avec une résonance variable (round robin)
tapfoleyde petits objets qui atterrissent, compteurs qui se stabilisentbloc de bois amorti
flipfoleypages d'un calendrierbruissement de papier et stabilisation
slapfoleyune affiche ou un papier plaquéclaque large bande et flutter
creak (dur)foleyportes et charnièresimpulsions de glissement-collage à travers des résonances de bois
clickfoleyinterrupteurs, enseignes qui s'allumentpression et verrouillage espacés de 35 ms
lightfoleyéclairage d'une enseigneronronnement doux et petit carillon dans la tonalité
chirpfoleyvie extérieure (avec parcimonie)deux petits sifflements d'oiseau
rattlefoleyfeuilles, frissonssalves de bruit filtré à un taux de fluctuation
slidefoleyun glissement ou un déplacement latéralun léger grincement glissant
stretch (dur)foleycaoutchouc, une corde qui se tend, une surface qui se plieun grincement rugueux ascendant
whir (dur)foleyune bande qui se déroule, un mécanisme qui tourneclics de cliquet sur du flutter
chalk (dur)foleyécrire, rayer sur un tableauune bande granuleuse hachée par le trait
roll (dur)foleyquelque chose qui roulegrondement sourd au rythme du roulement plus des ticks de surface
thunkaccentun objet mou qui atterrit (la pomme sur l'herbe)un corps sourd qui tombe plus un transitoire passe-bas
thudaccentune installation lourdesub 90 → 42 Hz avec corps et transitoire
slamaccentdes portes qui se fermentcorps en bois, craquement, verrouillage et queue de salle voûtée en pierre
snipaccentcouperdeux clics de lame et un shing métallique
boingaccentressorts, trampolinesune note descendante oscillante
twangaccentune corde tendue pincéepartiels harmoniques avec oscillation de hauteur
dingaccentun nombre qui atterrit, un aboutissementune cloche do6 avec des partiels inharmoniques

Pour ajouter un effet : écrire fx_<nom>(rng, …) renvoyant un tableau mono ou stéréo à un pic unitaire (couches qui culminent ensemble, groupées pour qu'elles ne se gênent pas, un filtre mobile sur tout ce qui bouge, parties tonales en do majeur, pas de silence préalable, un fondu court à la fin), l'ajouter à FX, REL et soit ACCENT soit l'ensemble foley, ainsi qu'à SUSTAINED s'il prend dur.

Repères (dans film.mjs)

{ t: W(17) - LEAD, type: 'slam', gain: 1, stop: true }            // un accent avec une baisse musicale avant
{ t: W(53) - 0.05, type: 'whir', gain: 0.8, dur: 1.4 }              // un son foley soutenu
...changes(a, b, value, 0.06).map(t => ({ t, type: 'tick', gain: 0.7 }))   // un tick à chaque changement de compteur
  • t est le moment où l'attaque du son atterrit (whooshes : quand leur pic atterrit) ; le mixeur l'avance de 10 ms, jamais plus tard que l'image.
  • gain ajuste dans la limite du niveau du type (0,5 ≈ −6 dB). Chaque repère reçoit ±1,2 dB de variation aléatoire et sa propre graine de bruit, donc les répétitions ne sonnent jamais identiques.
  • Écrire les repères plan par plan à partir de la colonne sonore du storyboard. Chaque action visible en reçoit un ; chaque accent repose sur un temps fort narratif.

Les niveaux sont mesurés, pas devinés

sound.py normalise la voix à −16 LUFS, mesure la référence de parole (médiane du RMS sur 400 ms pendant la parole), et règle chaque effet pour que son segment le plus fort de 400 ms se situe à REL[type] dB de cette référence. Sur le premier jet v3, cela a donné aux accents une médiane de −9 dB et au foley −15 dB par rapport à la voix. Vérifier tout mix avec :

python -I recipe/tools/sfx-levels.py <outDir> <outDir>/cue-sheet.txt

Sorties

stem-voice.wav, stem-music.wav, stem-sfx.wav, mix.wav (masterisé), cue-sheet.txt (chaque effet placé avec son niveau et son intensité), et le MP4 final (H.264 copié depuis le rendu silencieux, AAC 192 kb/s).

Licence

Tout ici est synthétisé. Si le propriétaire fournit une piste musicale, il doit en détenir la licence ; la définir comme tapis à −34 LUFS sans ducking, et conserver les effets.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Skills associés