Música de Fundo
As variáveis VV e PY são as mesmas do skill videomotion.
Selecionar fonte (em ordem)
- Usuário envia um arquivo de música: copie para
<projeto>/music/bgm.<extensão>e converta parabgm.wav:ffmpeg -y -i <arquivo> -ar 48000 -ac 2 <projeto>/music/bgm.wav. Se a música for mais curta que o vídeo, avise o usuário (o mixer deixará silêncio na parte que falta). - ACE-Step (ainda não implementado nesta versão; quando instalado, será listado aqui).
- Música sintetizada por código (padrão se 1 e 2 não estiverem disponíveis):
"$PY" "$VV/tools/music/synth.py" <projeto> --duration <total em words.json> --mood <humor> [--bpm N] [--seed N]
Escolha o humor de acordo com o estilo e o conteúdo:
| humor | Andamento padrão | Adequado para |
|---|---|---|
| calm | 84 | whiteboard, explicações lentas, temas sérios |
| inspiring | 96 | explainer, treinamento, histórias positivas |
| upbeat | 112 | anúncios, promos, swiss-motion |
| tech | 104 | dark-keynote, produtos de tecnologia, dataviz |
Altere --seed para obter uma melodia diferente com o mesmo humor. Nunca baixe música da web para empacotar no repositório ou projeto, a menos que o usuário forneça o arquivo e confirme a licença.
Medir ritmo (quando for necessário cortar cenas no beat)
Música sintetizada já possui music/beats.json. Para música fornecida pelo usuário, meça usando o script copiado do bestagentkits:
"$PY" "$VV/vendor/bestagentkits/fit-beat-grid.py" <projeto>/music/bgm.wav --min-bpm 70 --max-bpm 140
Isso grava BPM e BEAT0 em music/beats.json ({"bpm":..,"beat0":..,"source":"fit-beat-grid"}). A coluna dB de cada batida indica onde a música sobe (build) e explode (drop): coloque a cena de clímax do roteiro coincidindo com o drop, se possível.
Mixar
"$PY" "$VV/tools/audio/mix.py" mix <projeto> [--music-db -6] [--duck-db 5]
--music-db: volume da música em relação à narração quando há fala (padrão -6 dB). Se o usuário disser "música mais baixa", reduza para -9; se disser "não ouço a música", aumente para -4.--duck-db: quanto a música aumenta durante os silêncios da narração (padrão 5 dB).- Imprime
MIXDONE I=<LUFS> TP=<dBTP>. É considerado bem-sucedido quando I está entre -14 ± 0,5 e TP não ultrapassa -1,0.