Effets sonores
Tous dans kit/sfx/ (copiés dans sfx/ de chaque projet). Créés en code, sans problème de licence.
L'ensemble papier est généré par tools/make-paper-sfx.ps1 (synthèse FFmpeg ; relancez pour modifier un son).
| Fichier | À placer sur |
|---|
tick.wav | chaque élément de liste / case à cocher apparaissant (styles propres) |
counter.wav | pendant le défilement d'un nombre (début du comptage) |
chime.wav | la dernière carte / carte de fin |
pop.wav | une pilule, un badge, un autocollant, un jeton de calendrier qui apparaît |
snap.wav | une capture d'écran ou une carte qui se met en place |
star.wav · switch.wav · fill.wav · success.wav | surbrillance · bascule avant→après · remplissage de barre · objectif atteint |
paper-flip.wav | tourner la page : recadrage entrée/sortie, changement de scène |
paper-drop.wav | une carte en papier qui atterrit |
tape-rip.wav | bande adhésive épinglant une carte (une par carte, pas par bande) |
paper-rustle.wav | lettres de demande de rançon / une salve de jetons |
marker-tick.wav | coche au marqueur sur une ligne de liste |
marker-scribble.wav | plusieurs croix / gribouillis à la suite (~0.85 s) |
stamp.wav | tampon en caoutchouc, claque "VS", claque de carte compteur |
paper-slide.wav | carte glissant depuis le côté |
thump.wav | impact sur la ligne clé |
Ensemble UI net / verre (tools/make-crisp-sfx.ps1 [-Project projects\<n>]) — à utiliser lorsque l'utilisateur demande "plus net"
| Fichier | À placer sur |
|---|
crisp-click | atterrissage d'une carte / panneau |
crisp-pop | pilule, jeton, badge, bouton de lecture |
crisp-tick | ligne de liste, petite apparition, début de barre |
glass-tap | carreau / logo d'application en verre liquide apparaissant |
type-burst | frappe au clavier (0.6 s) |
count-roll | comptage (1 s) |
whoosh | recadrage entrée/sortie, grand zoom |
hit | impact |
alert · switch-on · send · sparkle · ding | limite/erreur · bascule/interrupteur · bouton envoyer · étoiles/surbrillance · succès / carte de fin |
Règles
- Kit par défaut (créateur) : pas de son sur les glissements d'entrée/sortie, pas de whooshes, ~20 dB en dessous de la voix, peu de sons.
- Style Paper Cut (utilisateur demande des sons papier nets) : un son à chaque atterrissage / tape / tick / tampon / retournement ; toujours pas de sons sur les légendes ou les sorties.
- Synchroniser à l'image où l'événement visuel atterrit, pas au début de l'interpolation.
Décalages du modèle Paper Cut (depuis kit/templates/paper-cut-vertical.html)
| Composant | Sons |
|---|
headline(t0) | paper-drop t0+0.35 · tape-rip t0+0.42 |
ransom(t0) | paper-rustle t0 |
checklist(items) | paper-drop items[0].t−0.10 · tape-rip items[0].t−0.05 · marker-tick chaque item.t+0.08 |
counter(t0) | stamp t0+0.17 (vol 0.25) · counter t0+0.2 · tape-rip t0+0.25 |
versus(t0, right.t) | paper-slide t0 · paper-slide right.t · stamp right.t+0.52 |
calendar(t0, crossAt, glowAt, stamp) | paper-drop t0+0.35 · tape-rip t0+0.42 · marker-scribble crossAt · pop glowAt+0/0.12/0.24 · stamp stamp.t |
reframe(t0, t1) | paper-flip t0 · paper-flip t1 |
punch(t0) | thump t0 |
| dernière carte | chime ~0.5 s après son atterrissage |
Comment faire (une liste → HTML + mix rapide)
- Écrivez
projects/<nom>/sfx.json : [[temps, "nom-son", volume?], ...] (volume facultatif ; valeurs par défaut dans tools/sfx.mjs).
node tools/sfx.mjs projects/<nom> → écrit les balises <audio> (ids uniques, durées réelles, pistes non chevauchantes) dans index.html entre <!-- sfx:start --> / <!-- sfx:end -->, donc chaque rendu futur les inclut.
- Déjà rendu ? Ne pas refaire le rendu (les rendus sont lents) :
node tools/sfx.mjs projects/<nom> --mix renders/with-cards.mp4 renders/with-sfx.mp4 mixe les sons sur l'audio existant avec FFmpeg et copie le flux vidéo (~10 s pour une bande de 3 min). Le limiteur évite l'écrêtage.
npx hyperframes lint (attendez 0 erreurs). Vérifiez les niveaux : ffmpeg -ss <t> -t 1 -i out.mp4 -af volumedetect -f null NUL.
- Copiez le résultat dans
exports/. Ajustez en modifiant sfx.json et en réexécutant l'étape 3 (secondes).
Ne touchez jamais à l'audio de la <video>. Le lecteur intégré de VS Code ne peut pas lire l'AAC ; prévisualisez les vidéos finies dans VLC / le lecteur par défaut.