Efeitos Sonoros
Todos em kit/sfx/ (copiados para sfx/ de cada projeto). Feitos em código, sem problemas de licenciamento.
O conjunto de papel é gerado por tools/make-paper-sfx.ps1 (síntese com FFmpeg; execute novamente para ajustar um som).
| Arquivo | Onde colocar |
|---|
tick.wav | cada item de lista / verificação aparecendo (estilos limpos) |
counter.wav | enquanto um número aumenta (início da contagem) |
chime.wav | o último card / card final |
pop.wav | uma pílula, badge, adesivo, chip de calendário surgindo |
snap.wav | uma captura de tela ou card se encaixando |
star.wav · switch.wav · fill.wav · success.wav | destaque · alternância antes→depois · preenchimento de barra · meta alcançada |
paper-flip.wav | virada de página: reframe in/out, mudança de cena |
paper-drop.wav | um card de papel caindo |
tape-rip.wav | fita adesiva fixando um card (uma por card, não por fita) |
paper-rustle.wav | letras de recorte / uma explosão de chips |
marker-tick.wav | marcação de marcador em uma linha de lista |
marker-scribble.wav | vários rabiscos / cruzes em sequência (~0,85 s) |
stamp.wav | carimbo de borracha, tapa "VS", tapa de card de contador |
paper-slide.wav | card deslizando lateralmente |
thump.wav | impacto na linha-chave |
Kit de interface nítida / vidro (tools/make-crisp-sfx.ps1 [-Project projects\<n>]) — use quando o usuário pedir "mais nítido"
| Arquivo | Onde colocar |
|---|
crisp-click | card / painel pousando |
crisp-pop | pílula, chip, badge, botão de play |
crisp-tick | linha de lista, pequena revelação, início de barra |
glass-tap | tile de vidro líquido / logotipo de app aparecendo |
type-burst | digitação (0,6 s) |
count-roll | contagem crescente (1 s) |
whoosh | reframe in/out, zoom grande |
hit | impacto |
alert · switch-on · send · sparkle · ding | limite/erro · alternância/interruptor · botão enviar · estrelas/destaque · sucesso / card final |
Regras
- Padrão do kit (criador): sem som em slides de entrada/saída, sem whooshes, ~20 dB abaixo da voz, poucos sons.
- Estilo Paper Cut (usuário pediu sons de papel nítidos): som em cada pouso / fita / tick / carimbo / flip; ainda sem sons em legendas ou saídas.
- Sincronize com o quadro em que o evento visual acontece, não com o início da animação.
Offsets do template Paper Cut (de kit/templates/paper-cut-vertical.html)
| Componente | 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 cada 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 |
| último card | chime ~0,5 s após pousar |
Como fazer (uma lista → HTML + mixagem rápida)
- Escreva
projects/<nome>/sfx.json: [[tempo, "nome-do-som", volume?], ...] (volume opcional; padrões em tools/sfx.mjs).
node tools/sfx.mjs projects/<nome> → escreve tags <audio> (IDs únicos, durações reais, faixas sem sobreposição) em index.html entre <!-- sfx:start --> / <!-- sfx:end -->, para que toda renderização futura as inclua.
- Já renderizou? Não renderize novamente (renderizações são lentas):
node tools/sfx.mjs projects/<nome> --mix renders/with-cards.mp4 renders/with-sfx.mp4 mixa os sons no áudio existente com FFmpeg e copia o stream de vídeo (~10 s para um reel de 3 min). O limitador evita clipping.
npx hyperframes lint (espere 0 erros). Verifique níveis: ffmpeg -ss <t> -t 1 -i out.mp4 -af volumedetect -f null NUL.
- Copie o resultado para
exports/. Ajuste editando sfx.json e executando novamente o passo 3 (segundos).
Nunca toque no áudio do <video>. O player embutido do VS Code não pode reproduzir AAC; pré-visualize vídeos finalizados no VLC / player padrão.