12 · Design de som e mixagem
Orientação do diretor (rodada 1): "efeitos sonoros leves quando houver uma ação, em tudo." O design de efeitos segue a prática documentada de motion design do earshot (github.com/Leonxlnx/earshot, MIT; docs/motion-sfx-techniques.md, docs/SFX.md); nosso código em recipe/tools/sound.py é próprio e não usa samples.
As camadas
| Camada | Nível | Notas |
|---|---|---|
| Voz | −16 LUFS (referência de fala ≈ −19 dBFS, 400 ms RMS) | preenche 93–98% da duração |
| Base musical | 18 LU abaixo da voz, sem ducking | original, em Dó maior (C–Am–F–G, 100 BPM): marimba, baixo dedilhado, pad, kick, shaker. Cai apenas para o pad no re-hook (musicDrop: [início, fim]) |
| Foley | ~15 dB abaixo da voz (ticks ~21, pássaros ~22) | um som para cada ação visível |
| Acentos | ~9 dB abaixo da voz | apenas batimentos da história, no máximo ~20 por minuto, com um dip de 7 dB na música nos 0,35 s antes do maior (stop: true) |
| Master | −14 LUFS integrado, pico verdadeiro −1,5 dBTP | loudnorm linear de duas passagens |
Os efeitos (24, em sound.py)
| Tipo | Categoria | Uso em | Design |
|---|---|---|---|
whoosh (long: true para movimentos grandes) | foley | entrar em um novo lugar, grandes movimentos de câmera | ruído rosa através de três bandas móveis (1 : 1,6 : 2,5) seguindo a velocidade; varredura panorâmica; pico atinge o cue |
swish | foley | um braço, um livro, um gesto, um arremesso | estalo fino e brilhante, 0,2 s |
pop | foley | o título aparecendo, uma troca de rosto em um objeto, pequenas chegadas | blip tonal subindo até a tônica, tick, anel filha |
tick | foley | cada passo de um contador | pequeno toque brilhante com um ping variado (round robin) |
tap | foley | objetos pequenos caindo, contadores se estabilizando | um bloco de madeira amortecido |
flip | foley | páginas de calendário | farfalhar de papel e estabilização |
slap | foley | um aviso ou papel batido | tapa de banda larga e vibração |
creak (dur) | foley | portas e dobradiças | pulsos de deslizamento-aderência através de ressonâncias de madeira |
click | foley | interruptores, placas acendendo | pressão e travamento com 35 ms de diferença |
light | foley | uma placa se iluminando | zumbido suave e um pequeno sino na tônica |
chirp | foley | vida ao ar livre (com moderação) | dois pequenos assobios de pássaro |
rattle | foley | folhas, tremores | rajadas de ruído filtrado em taxa de oscilação |
slide | foley | um deslize ou escorregão lateral | um rangido suave deslizando |
stretch (dur) | foley | borracha, uma corda apertando, uma superfície curvando | um rangido áspero crescente |
whir (dur) | foley | uma fita acabando, um mecanismo girando | cliques de catraca sobre vibração |
chalk (dur) | foley | escrever, riscar em um quadro | uma banda raspada cortada pelo traço |
roll (dur) | foley | algo rolando | estrondo baixo na taxa de rolagem mais ticks de superfície |
thunk | acento | um objeto macio caindo (a maçã na grama) | um corpo caindo surdo mais um transiente passa-baixas |
thud | acento | um assentamento pesado | sub 90 → 42 Hz com corpo e transiente |
slam | acento | portas fechando | corpo de madeira, rachadura, trava e uma cauda de sala de arco de pedra |
snip | acento | cortar | dois cliques de lâmina e um shing metálico |
boing | acento | molas, trampolins | um tom oscilante caindo |
twang | acento | uma corda esticada dedilhada | parciais harmônicas com oscilação de pitch |
ding | acento | um número caindo, uma recompensa | um sino C6 com parciais inarmônicos |
Para adicionar um efeito: escreva fx_<nome>(rng, …) retornando um array mono ou estéreo com pico unitário (camadas que pico juntas, com bandas para não competirem, um filtro móvel em qualquer coisa que se mova, partes tonais em Dó maior, sem silêncio inicial, um fade curto no final), adicione a FX, REL e a ACCENT ou ao conjunto de foley, e a SUSTAINED se aceitar dur.
Cues (em film.mjs)
{ t: W(17) - LEAD, type: 'slam', gain: 1, stop: true } // um acento com um dip musical antes
{ t: W(53) - 0.05, type: 'whir', gain: 0.8, dur: 1.4 } // um som foley sustentado
...changes(a, b, value, 0.06).map(t => ({ t, type: 'tick', gain: 0.7 })) // um tick a cada mudança do contador
té quando o ataque do som atinge (whooshes: quando seu pico atinge); o mixer o adianta em 10 ms, nunca depois da imagem.gainajusta dentro do nível do tipo (0,5 ≈ −6 dB). Cada cue recebe ±1,2 dB de variação aleatória e sua própria semente de ruído, então repetições nunca soam idênticas.- Escreva cues cena por cena a partir da coluna de som do storyboard. Cada ação visível recebe uma; cada acento se assenta em um batimento da história.
Níveis são medidos, não chutados
sound.py nivela a voz para −16 LUFS, mede a referência de fala (a RMS mediana de 400 ms durante a fala), e define cada efeito para que seus 400 ms mais altos fiquem a REL[tipo] dB dessa referência. Na rodada 1 v3, isso deu aos acentos uma mediana de −9 dB e ao foley −15 dB em relação à voz. Verifique qualquer mix com:
python -I recipe/tools/sfx-levels.py <outDir> <outDir>/cue-sheet.txt
Saídas
stem-voice.wav, stem-music.wav, stem-sfx.wav, mix.wav (masterizado), cue-sheet.txt (cada efeito colocado com sua categoria e nível), e o MP4 final (H.264 copiado do render silencioso, AAC 192 kb/s).
Licenciamento
Tudo aqui é sintetizado. Se o proprietário fornecer uma faixa musical, ele deve possuir a licença; configure-a como base a −34 LUFS sem ducking e mantenha os efeitos.