{
  "id": "clube-whose-side",
  "titulo": "Digna de trailer",
  "categoria": "sound",
  "resumo": "Reel vertical de 75 s em que uma música vira trilha de trailer na frente de quem assiste. Um gancho narrado de 11 s, em fundo branco no estilo Apple, apresenta a ideia; depois a música toca como ela é, rebobina e volta no remix cinematográfico, com uma timeline de editor em que cada efeito tonal vem para a frente quando soa, solta o seu próprio elemento pela tela e pinta o ambiente com a sua cor. A música é \"Whose Side Are You On\" (Tommee Profitt, com Ruelle). Tudo é um take único em HTML com o quadro calculado pelo tempo, renderizado a 60 qps com desfoque de movimento. É a referência máxima de Reel musical do Clube do Motion, publicada no Instagram.",
  "indicado": "criador, produtora, estúdio de som ou marca que quer mostrar o que uma trilha muda num vídeo, para quem não é técnico; lançamento de skill, ferramenta ou serviço de áudio; série de Reels de música.",
  "estilo": [
    "timeline viva",
    "antes e depois",
    "sound design tonal",
    "um elemento por efeito",
    "mundo que ganha cor",
    "gancho Apple light narrado",
    "card do Spotify",
    "take único",
    "humor leve no fecho"
  ],
  "ficha": {
    "formato": "1080×1920, 60 qps, 9:16, H.264 (CRF 16) com AAC de 256 kbps, cor BT.709, 119,7 MB",
    "duracao": "74,88 s (4.493 quadros); narração só no gancho (11,35 s de fala)",
    "motor": "html",
    "voz": "ElevenLabs, Eleven v4, voz clonada (estabilidade 0,5, similaridade 0,75, velocidade 1,12), 1,2× na pós; a melhor de 3 tomadas",
    "musica": "\"Whose Side Are You On\" (Tommee Profitt, com Ruelle): o original no gancho e no normal, o remix cinematográfico v5 no edit (Lá menor, 127,75 BPM, drop em 39,0 s do remix)",
    "fontes": "ver o guia de estilo"
  },
  "ferramentas": [
    "Claude Code",
    "ElevenLabs"
  ],
  "ficha_tecnica": {
    "Duração": "74,88 s (4.493 quadros); narração só no gancho (11,35 s de fala)",
    "Formato": "1080×1920, 60 qps, 9:16, H.264 (CRF 16) com AAC de 256 kbps, cor BT.709, 119,7 MB",
    "Ferramenta": "HTML + canvas num take único, motor `take-unico` (render no Chromium sem janela, obturador de 180°, trechos de 4 s em cache); trilha e dados em Python",
    "Voz": "ElevenLabs, Eleven v4, voz clonada (estabilidade 0,5, similaridade 0,75, velocidade 1,12), 1,2× na pós; a melhor de 3 tomadas",
    "Música": "\"Whose Side Are You On\" (Tommee Profitt, com Ruelle): o original no gancho e no normal, o remix cinematográfico v5 no edit (Lá menor, 127,75 BPM, drop em 39,0 s do remix)",
    "Som": "−14,0 LUFS, pico verdadeiro de −1,4 dBFS; voz 15 dB acima da música no gancho; 68 eventos exportados da composição",
    "Sincronia": "imagem e som dos golpes de ping, piano e violoncelo a menos de 0,8 quadro (medido no master a 60 qps)",
    "Referências": "os shorts do Multiply Sound (normal × tonal na mesma timeline), uma pesquisa no Pinterest sobre som na tela e os Reels anteriores da série (Caught In The Fire e Soldier)"
  },
  "etapas": [
    {
      "titulo": "O roteiro e a voz",
      "texto": "**Resumo:** a fala do gancho, como foi escrita e como foi enviada à voz clonada, e as cenas por tempo no vídeo final (v3). Depois do gancho ninguém fala: a música, a timeline e uma etiqueta simples por elemento contam o resto. Os tempos são os do arquivo publicado; no edit, o segundo do remix é o segundo do vídeo menos 20,86.\n\n## A fala do gancho\n\n\"Transformei o meu Claude em um DJ profissional com essa skill, e agora ele edita qualquer música do mundo e faz com que ela vire uma música cinematográfica digna de trailer de filme, se liga nessa edição que ele fez >\"\n\n- Para a voz, \"Claude\" e \"DJ\" vão escritos como se fala (\"Clód\" e \"didjêi\"). Uma das três tomadas foi descartada porque o Whisper ouviu \"Claudio\".\n\n- Fala de 11,35 s a 1,2×, que entra em 0,08 s e termina antes do normal (11,5 s).\n\n## Textos na tela\n\n | \n\n | Onde\n | Texto\n\n | Gancho\n | a própria fala, em legenda de duas linhas por frase\n\n | Cartão da skill\n | \"Skill: DJ\" · \"para o Claude Code\" · OBTER\n\n | Cartão da música\n | capa do álbum · \"Whose Side Are You On\" · \"Tommee Profitt, Ruelle\"\n\n | Normal\n | \"Música normal\"\n\n | Antes do edit\n | \"Agora, o edit do Claude\", que vira a pílula da timeline\n\n | Etiquetas (uma por vez)\n | \"Piano: abre o clima de filme\" · \"Fundo: dá peso de cinema\" · \"Só a voz da Ruelle\" · \"Piano: acompanha a música\" · \"Violoncelo: responde a voz\" · \"Subida: prepara a explosão\" · \"A música inteira explode aqui\"\n\n | Notas\n | ♪ Lá, Dó, Ré, Sol nas notas soltas; F, G, Am nos acordes\n\n | Crédito\n | card \"tocando agora\" no formato do Spotify\n\n | CTA\n | \"Comenta DJ que eu te mando o passo a passo\" e o comentário \"DJ\" digitado no Instagram\n\n## Cenas por tempo\n\n | \n\n | #\n | Tempo (s)\n | O que acontece\n\n | 1\n | 0,08–1,7\n | \"Transformei\": partículas giram em espiral e se juntam; \"Claude\": nasce o app; \"DJ\": o fone cai e encaixa; \"profissional\": brilho no fone\n\n | 2\n | 2,8–4,1\n | \"skill\": o cartão \"Skill: DJ\" é instalado (OBTER → anel azul → check verde); \"edita\": vira o selo verde do app\n\n | 3\n | 4,4–5,3\n | \"qualquer música do mundo\": o cartão da música nasce em esqueleto, ganha a capa e dois cartões abrem em leque atrás\n\n | 4\n | 7,1–9,1\n | \"cinematográfica\": a onda cinza ganha as cores dos tonais; \"trailer\": barras de cinema, vinheta, soco de câmera e tremor; \"filme\": luz de cinema no cartão\n\n | 5\n | 10,0–11,5\n | \"Se liga\": nasce o cursor vermelho na onda; \"edição\": o cartão some e a onda vira o clipe azul; \"fez\": as barras abrem e o branco dá lugar ao cinza\n\n | 6\n | 11,5–18,1\n | **Música normal**: mundo cinza, um clipe azul, o cursor toca \"It cuts deeper than a razor blade\"\n\n | 7\n | 18,1–20,9\n | respiro: a fita para em cima de \"blade\", o cinza escurece, \"Agora, o edit do Claude\" fica parado no meio da tela, a íris de filme abre do cursor (19,6 s) e o título vira a pílula (19,9 s)\n\n | 8\n | 20,9\n | o remix começa: o primeiro ping solta o anel de ouro e a luz de cima fica dourada; \"Piano: abre o clima de filme\" (22,5 s)\n\n | 9\n | 23,4–25,1\n | os fundos chegam e respiram em névoa azul; \"Fundo: dá peso de cinema\" (24,4 s); o violoncelo entra com os arcos e o fundo pinta vermelho\n\n | 10\n | 30,7–33,5\n | a voz: \"Só a voz da Ruelle\", e a foto sai da miniatura do clipe da voz e volta\n\n | 11\n | 34,1\n | piano com um pulso por nota, círculos turquesa e os acordes F, G, Am rolando; \"Piano: acompanha a música\"\n\n | 12\n | 37,9\n | o violoncelo responde a voz: \"Violoncelo: responde a voz\"\n\n | 13\n | 54,7–59,9\n | subida: os clipes carregam com linhas de luz e a câmera abre; \"Subida: prepara a explosão\"\n\n | 14\n | **59,9**\n | **drop**: a câmera inspira e dá um soco, varredura diagonal de luz, o clipe da música acende, as partículas explodem, a Ruelle ganha cor e o espectro vira um horizonte de barras brancas; \"A música inteira explode aqui\"\n\n | 15\n | 62,8\n | a pílula vira o card do Spotify, com a barra de 2:16 a 2:23 andando\n\n | 16\n | 68,4–70,7\n | CTA: a timeline some, as notas voam e montam o Claude Code em pixel, o \"DJ\" do texto arranha como vinil, um fone de DJ cai na cabeça dele e ele balança no tempo; o campo de comentário sobe\n\n | 17\n | 72,1–74,9\n | \"DJ\" é digitado e publicado no ping final; o boneco pula e o vídeo termina\n\n## Momentos para a trilha\n\n- 0,08–11,5 s: voz seca na frente e a música abafada por baixo, 15,3 dB abaixo; um som macio por elemento do gancho.\n\n- 10,0–11,5 s: o filtro abre e a música chega cheia no normal, sem corte.\n\n- 18,1 s: tape stop em cima de \"blade\"; sino em Lá bem baixo no cartão.\n\n- 20,9 s: o remix começa intocado; os efeitos do Reel ficam esparsos.\n\n- **59,9 s: drop do remix**.\n\n- 69,1 s: scratch do \"DJ\", feito da própria voz da cantora.\n\n- 72,1 s: o ping final do remix cai no envio do comentário.\n\nA lista completa dos 68 eventos, com tempo, tipo e pan, está em `audio/eventos.json`; as notas e envelopes de cada camada do remix, em `audio/notas.json`."
    },
    {
      "titulo": "A identidade visual",
      "texto": "**Resumo:** três mundos em sequência: o branco do estilo Apple no gancho narrado, o cinza sem cor da música normal e a noite azul-aço da capa do álbum no edit, que cada efeito tonal pinta com a sua cor. A timeline segue o editor dos shorts do Multiply Sound, e cada camada tem uma cor, um ícone e um elemento próprio. Números tirados do `index.html`, do `trilha.py`, da identidade do projeto e das conferências do master.\n\n## Mundos\n\n | \n\n | Mundo\n | Quando\n | Como é\n\n | Branco Apple\n | gancho narrado (0–11,5 s)\n | fundo branco, SF Pro, cartões brancos com sombra larga, cores de estado do iOS (azul `#007AFF`, verde `#34C759`), tinta `#1D1D1F` e cinza `#86868B`; sem grão\n\n | Cinza\n | música normal (11,5–18,1 s)\n | radial `#46464A` → `#333336`, onda `#B9B9BE`, grão leve\n\n | Noite do trailer\n | edit e drop\n | noite `#040911` → azul-aço `#0A1D2B`, tirada da capa do álbum; grão de filme; no drop, azul-aço e âmbar que respiram nos bumbos\n\n## Cores das camadas\n\nCada cor só quer dizer a sua camada; o coral do Claude (`#D97757`) aparece só no gancho, na pílula e no \"DJ\".\n\n | \n\n | Camada\n | Cor\n | Ícone\n | Elemento na tela\n\n | Piano Ping\n | ouro `#FFD08A`\n | teclas\n | anel fino de ouro e reflexo de lente; a luz de cima fica dourada\n\n | Fundos (Atlantic, Soft Circuit)\n | azul `#5676FF`\n | onda\n | névoa azul que respira, uma baforada por compasso\n\n | Violoncelo\n | vermelho `#FF4D5A`\n | violoncelo\n | arcos que varrem como o arco nas cordas; o fundo pinta vermelho pela direita\n\n | Piano (acordes)\n | turquesa `#62E3E0`\n | teclas\n | círculos que saem do ponto do golpe, um ou dois por nota, com as notas rolando (♪ Lá, Dó, F, G, Am)\n\n | Subida (Activation, Breathe)\n | rosado `#FFB3A8`\n | seta\n | linhas verticais de luz que carregam até o drop\n\n | Voz e música\n | azul `#9DB0EA`\n | microfone e explosão\n | a foto da Ruelle sai da miniatura do clipe da voz; no drop, o clipe da música acende da esquerda para a direita\n\n## Tipografia\n\n- **Gancho:** legenda em SF Pro de 84 px, Semibold, com as palavras-chave em Bold, duas linhas por frase. Coral nas palavras do Claude (\"Claude\", \"DJ profissional\", \"Se liga\"), azul do iOS em \"skill\", preto forte em \"qualquer música\" e \"trailer\", e as cores dos tonais em \"cinematográfica\".\n\n- **Edit:** Inter nos clipes (nome em 34 px e tom em 42 px, nunca menos de 34 px na tela em foco) e nas etiquetas (600, 44 px).\n\n- **Nome da faixa no crédito:** Michroma, que lembra o título técnico da capa.\n\n- **Material Icons** na interface.\n\n## Destaque do tonal que toca\n\n | \n\n | Peça\n | Números\n\n | Foco\n | o clipe cresce até 1,24× em volta do cursor, sobe 16 px, brilha na cor dele, a onda clareia e a borda acende\n\n | Golpe\n | cada golpe acende uma faixa no ponto do som, com faíscas (\"playhead que acende\")\n\n | O resto\n | a voz e a música apagam até 55% na tela; o som não muda\n\n | Ping\n | pulso de 1,15 s\n\n | Fundos\n | forte na chegada e depois respirando a cada 2 compassos\n\n | Violoncelo\n | segue o envelope do som\n\n | Piano\n | um pulso em cada uma das 22 notas ou acordes do MIDI\n\n | Subida\n | carrega com o envelope até o drop\n\n | Pintura do mundo\n | cada cor fica 3 a 4 s depois do som, com um piso; 25% mais calma que na v1\n\n | Chegada\n | cada clipe pousa 0,6 a 1,1 s antes do primeiro som, no tempo da música\n\nOs golpes de piano e violoncelo ficam no ataque medido no stem da camada: o acorde suave chega até ~20 ms depois do martelo, e o arco do violoncelo ~30 ms depois do primeiro som. Os 14 golpes sem ataque mensurável usam o tempo do MIDI.\n\n## Gancho Apple light, palavra por palavra\n\n | \n\n | Palavra\n | Elemento\n\n | \"Transformei\"\n | partículas nas cores dos tonais e no coral giram em espiral e se juntam no centro (a tela não começa vazia)\n\n | \"Claude\" · \"DJ\" · \"profissional\"\n | nasce o app do Claude; o fone de DJ cai e encaixa; um brilho passa no fone\n\n | \"skill\" · \"edita\"\n | cartão \"Skill: DJ · para o Claude Code\" com OBTER → anel azul → check verde; em \"edita\", ele vira o selo verde do app\n\n | \"qualquer\" · \"música\" · \"mundo\"\n | o cartão da música nasce em esqueleto, ganha a capa real, o título e os artistas; dois cartões em leque atrás\n\n | \"cinematográfica\"\n | a onda cinza ganha as cores dos tonais da esquerda para a direita, com halo colorido e notinhas subindo\n\n | \"trailer\" · \"filme\"\n | barras de cinema fecham em 12 quadros, vinheta escura, soco de câmera e tremor; luz de cinema passa no cartão\n\n | \"Se liga\" · \"edição\" · \"fez\"\n | nasce o cursor vermelho na onda; o cartão some e a onda vira o clipe azul do normal no lugar exato; as barras abrem e o branco dá lugar ao cinza\n\nNada aparece antes de ser dito: cada elemento nasce no ataque da sua palavra, medido no Whisper e corrigido pela energia da voz em três pontos.\n\n## Transições\n\n- **Gancho → normal:** a onda do cartão vira o clipe azul, sem corte.\n\n- **Normal → edit:** a fita para em cima de \"blade\" com a cauda da sala, o mundo cinza escurece, o cartão \"Agora, o edit do Claude\" fica parado no meio da tela por ~1,6 s, uma íris de filme abre a partir do cursor, o cursor anda até o zero e o título encolhe até virar a pílula da timeline.\n\n- **Drop → crédito:** a pílula vira o card do Spotify (\"tocando agora\", capa do álbum, \"Whose Side Are You On\", \"Tommee Profitt, Ruelle\", coração verde e a barra de 2:16 a 2:23 de 3:11 andando junto com o som).\n\n- **Crédito → CTA:** a timeline some e as notas coloridas voam e montam o Claude Code em pixel, com mola.\n\n## Câmera\n\n- No gancho, começa perto e assenta, com um soco a cada frase e tremor e giro leves nas palavras-chave.\n\n- No edit, chega ao enquadramento antes do primeiro ping, segue o cursor e dá zoom de 0,78 a 0,80 na subida (para as trilhas de baixo não encostarem na interface do Instagram) e de 0,88 depois do drop.\n\n- No drop, inspira e dá um soco para dentro, com tremor.\n\n## Render\n\n60 qps reais, obturador de 180° (média de várias capturas por quadro em luz linear), em trechos de 4 s guardados em cache, para refazer só o que mudou. Grão de filme leve no normal e mais forte no edit; nenhum no gancho branco. H.264 CRF 16, BT.709.\n\n## Trilha\n\n | \n\n | Trecho\n | Som\n\n | Gancho\n | a voz seca a partir de 0,08 s, com passa-altas de 70 Hz, −14,7 LUFS na fala; por baixo, a própria música abafada em 350 Hz a −30,0 LUFS (15,3 dB abaixo da voz)\n\n | Gancho → normal\n | do \"Se liga\" ao normal, o filtro abre até 20 kHz e o nível sobe num fluxo só; a troca para o som seco dura 60 ms, com o filtro já aberto\n\n | Normal\n | \"It cuts deeper than a razor blade\", o original\n\n | Respiro\n | tape stop em cima de \"blade\", cauda da sala, sino em Lá bem baixo no cartão e um ar subindo até o primeiro ping\n\n | Edit\n | o remix v5 intocado, do zero; o drop em 39,0 s do remix\n\n | Fecho\n | o \"DJ\" arranha como vinil, um scratch feito da voz da Ruelle com a velocidade indo e voltando; o ping final do remix cai no envio do comentário\n\n## Sound design\n\n- Gancho: um som macio de interface por elemento (14 no gancho), todos abaixo da voz; o fone, o toque e o check ficaram 3 dB acima dos outros.\n\n- Edit: os efeitos ficam esparsos e baixos, porque o remix é o conteúdo. Cada etiqueta entra com um pop e uma nota de glock em Lá, Mi ou Dó e sai com um whoosh curto; cada clipe que pousa desliza com um som de papel bem baixo.\n\n- Fecho: as notas que voam para montar o pixel levam um whoosh; o fone pousa com pop, clique e glock; a digitação cai nos tempos e o envio leva clique e notificação.\n\n- **Final:** −14,0 LUFS, pico verdadeiro de −1,4 dBFS.\n\n## O que é \"humano\" neste vídeo\n\n- A câmera nunca para: deriva no gancho, segue o cursor no edit e respira com os bumbos no drop.\n\n- Os clipes chegam antes do som, como um músico que se prepara para tocar.\n\n- O Claude Code em pixel balança a cabeça no tempo, com notinhas saindo do fone, e pula quando o comentário é publicado.\n\n- O comentário \"DJ\" é digitado nos tempos da música e publicado no ping final."
    },
    {
      "titulo": "A montagem em HTML",
      "texto": "| \n\n | Arquivo\n | O que faz\n\n | `comp/index.html`\n | `seek(t)` monta o quadro; no topo ficam os tempos (`H0` = deslocamento do gancho, `N0` normal, `RB` rebobina, `A0` início do edit, `R(r)` converte segundo do remix em segundo do vídeo, `DROP`, `CTA`); `CAMS` guarda a cor e o ícone de cada camada; o gancho Apple light fica no bloco \"v3\", com cada elemento preso a uma palavra de `gancho-palavras.json`; `window.__events()` devolve os eventos\n\n | `take-unico/render_take.py`\n | renderiza a composição com obturador de 180°; `--stills`, `--previa`, `--trechos 4` e `--turbo`\n\n | `take-unico/oraculo_take.py`\n | confere continuidade, enquadramento e respiros; `--eventos` exporta os eventos para a trilha\n\n | `audio/dados_foco.py`\n | acha o ataque de cada golpe no stem da camada e o espectro da mix e grava `comp/dados/foco.js`\n\n | `audio/dados_comp.py`\n | lê `notas.json` (o contrato com o remix) e grava `comp/dados/notas.js`\n\n | `audio/batidas.py`\n | tempos, compassos e bumbos (beat_this) para `comp/dados/batidas.js`\n\n | `audio/gerar_voz_gancho.py`\n | gera as tomadas da fala do gancho na ElevenLabs\n\n | `audio/trilha.py`\n | voz seca do gancho, música original abafada por baixo e abrindo, tape stop, respiro, remix intocado, um som macio por elemento do gancho e um efeito por evento; mix em −14 LUFS\n\n | `revisao/carga_texto.py`\n | conta, quadro a quadro, quantos textos estão na tela (no máximo uma etiqueta)\n\n | `revisao/sync_check.py`\n | mede a diferença entre a imagem e o som de cada golpe no master\n\n | `audio/remix/`\n | o plano do remix (`cinematografico-v5.json`), o piano escrito em MIDI, a separação da voz, as camadas e a mixagem com a voz na frente (`render.sh v5` roda tudo)\n\n- **Junte as pastas:** descompacte `projeto/` dentro de `07-videos/projetos/whose-side/` e ponha `audio/` ao lado de `comp/`. Copie `projeto/take-unico/` para `07-videos/biblioteca/take-unico/`: o `index.html` carrega `../../../biblioteca/take-unico/take.js`.\n\n- **Fontes e imagens:** instale a SF Pro Display (Regular, Medium, Semibold e Bold) em `comp/fonts/` com os nomes de arquivo do `index.html`. Baixe a capa e as fotos pelos links de `referencias/fontes.md`, com os nomes que o `index.html` espera, ou troque pelas do seu artista.\n\n- **Instale:** Python 3.11 com numpy, scipy, soundfile, librosa, pyloudnorm, pedalboard, pretty_midi e playwright (`playwright install chromium`), o beat_this e o ffmpeg.\n\n- **Aponte os caminhos:** no topo de `audio/trilha.py`, `dados_foco.py` e `batidas.py`, troque o `sys.path` por `audio/motor/`, `N` por `audio/sfx/`, `TON` pela sua pasta de efeitos tonais e `WS`/`FONTE` pela pasta da sua música e do seu remix.\n\n- **Ver no navegador:** `comp/index.html?t=59.9&hud` para parar no drop ou `?play` para tocar.\n\n- **Dados e conferência:** em `audio/`, `python batidas.py` e `python dados_foco.py`; depois `python ../../biblioteca/take-unico/oraculo_take.py comp/index.html` (precisa dar PASSA).\n\n- **Som:** `oraculo_take.py comp/index.html --eventos audio/eventos.json` e, em `audio/`, `python trilha.py`.\n\n- **Vídeo:** `bash render/rascunho.sh v4` para conferir e `bash render/final.sh v4` para o final (trechos de 4 s, 60 qps, grão de filme só no edit, som junto). Depois, `python revisao/sync_check.py comp/index.html render/whose-side-v4.mp4`.\n\n**Pegadinhas:** o `comum.sh` usa uma trava entre agentes em `C:/Dev/_tools/.lock-render`; troque pelo caminho que quiser. Não troque `--fps` nem a escala entre versões, porque o cache dos trechos é por configuração. O drop do remix não é mexido no `trilha.py`: se o seu remix tiver outro nível, ajuste no próprio remix."
    },
    {
      "titulo": "As decisões de direção",
      "texto": "- **O tonal que toca vem para a frente.** O clipe cresce até 1,24× em volta do cursor, sobe 16 px, brilha na cor dele e a borda acende; a voz e a música apagam até 55% na tela (o som não muda).\n\n- **Um elemento por efeito**, para não repetir o mesmo círculo em tudo: anel fino de ouro e reflexo de lente no ping, névoa azul que respira nos fundos, arcos que varrem como o arco nas cordas no violoncelo, círculos turquesa a cada nota do piano e linhas verticais de luz na subida.\n\n- **O mundo começa cinza e cada tonal pinta a sua cor.** A cor fica alguns segundos depois do som e cada cor só quer dizer a sua camada; o coral do Claude aparece só no que é do Claude.\n\n- **Drop limpo.** Sem círculos: a câmera inspira e dá um soco para dentro, uma varredura diagonal de luz atravessa a tela, o clipe da música acende da esquerda para a direita, as partículas explodem e o espectro real da mix vira um horizonte de barras brancas.\n\n- **O clipe chega antes do som.** Cada tonal pousa na timeline 0,6 a 1,1 s antes do primeiro golpe, e o destaque cai no ataque medido.\n\n- **Uma pausa antes do edit.** A fita para em cima de \"blade\", a sala ecoa, o mundo cinza escurece, o cartão \"Agora, o edit do Claude\" fica parado no meio da tela e o cursor anda até o zero: quase 3 s para quem assiste entender que vem a outra versão.\n\n- **Gancho narrado em que cada palavra tem um elemento** (\"Claude\" nasce o app, \"DJ\" encaixa o fone, \"skill\" instala o cartão, \"música\" mostra a capa, \"cinematográfica\" colore a onda, \"trailer\" fecha as barras de cinema) e a onda vira o clipe azul da música normal no lugar exato, sem corte.\n\n- **Música contínua do gancho ao normal:** a própria faixa toca abafada por baixo da voz e o filtro abre até o trecho normal num fluxo só.\n\n- **Uma etiqueta simples por vez**, presa ao clipe (\"Piano: abre o clima de filme\"), e nenhum texto técnico. Conferido quadro a quadro: zero quadros com dois textos.\n\n- **Card no formato do Spotify** com a capa, o título, os artistas e a barra do tempo da faixa andando junto com o som.\n\n- **Fecho com humor e mais tempo de drop:** o Claude Code em pixel montado pelas notas, o fone que cai e balança no tempo, o \"DJ\" que arranha como vinil (feito da própria voz da cantora) e o comentário digitado e publicado no ping final.\n\nDetalhes de cores, curvas e som: estilo.md. Cenas por tempo, a fala e os textos: roteiro.md. Para fazer o mesmo com a sua música: PROMPT.md."
    },
    {
      "titulo": "As versões até o final",
      "texto": "| \n\n | Versão\n | O que mudou\n\n | testes\n | um piano 3D com mãos tocando as teclas (visto do pianista e depois de cima) foi abandonado; três direções curtas foram testadas (o som ganha cor, escultura de ondas, orbe vivo); a timeline voltou, com a cor do primeiro teste\n\n | v1\n | timeline com os tonais em destaque, anéis na cor de cada camada, mundo pintado por cada tonal e espectro com a foto em cor no drop; 62,6 s\n\n | v2\n | abertura de 1,5 s com o drop que rebobina, música contínua do gancho ao normal, respiro antes do edit, clipes antes do som, um elemento por efeito, drop sem círculos, card do Spotify e fecho mais longo e bem-humorado; 70,9 s\n\n | **v3**\n | aprovada e publicada: o gancho virou narrado, em fundo branco no estilo Apple, com um elemento por palavra; o resto da v2 ficou igual, 4 s mais tarde; 74,88 s"
    }
  ],
  "pacote": [
    {
      "pasta": "projeto/",
      "conteudo": "`comp/index.html` (o Reel inteiro), `comp/dados/` (`timeline.js`, `foco.js`, `notas.js`, `batidas.js`), `comp/fonts/` (Inter, Michroma, Material Icons), `comp/assets/` (símbolo do Claude e ícone do Claude Code), `render/` (`comum.sh`, `rascunho.sh`, `final.sh`), `revisao/` (`carga_texto.py`, `sync_check.py`, `folhas.py`) e `take-unico/` (o motor)"
    },
    {
      "pasta": "audio/",
      "conteudo": "`trilha.py` (o som inteiro), `dados_foco.py`, `dados_comp.py`, `batidas.py`, `gerar_voz_gancho.py`, `eventos.json`, `notas.json`, `gancho-palavras.json`, `gancho-aprovado.wav` (a fala), `mix.wav`, `notas-sfx/` (glock, harpa e piano gerados), `sfx/` (os efeitos de interface usados), `motor/` (`orquestra.py`, `trilha_momentos.py`) e `remix/` (o plano v5, o piano em MIDI e os scripts do remix)"
    },
    {
      "pasta": "referencias/",
      "conteudo": "identidade visual, fontes dos assets com os links, a pesquisa de som na tela, os três testes de direção, o brief dos Reels musicais, o estudo do remix, o tutorial do take único, `links.md` e `fora-do-pacote.md`"
    },
    {
      "pasta": "render.mp4",
      "conteudo": "o Reel final (v3)"
    },
    {
      "pasta": "comp/index.html",
      "conteudo": "`seek(t)` monta o quadro; no topo ficam os tempos (`H0` = deslocamento do gancho, `N0` normal, `RB` rebobina, `A0` início do edit, `R(r)` converte segundo do remix em segundo do vídeo, `DROP`, `CTA`); `CAMS` guarda a cor e o ícone de cada camada; o gancho Apple light fica no bloco \"v3\", com cada elemento preso a uma palavra de `gancho-palavras.json`; `window.__events()` devolve os eventos"
    },
    {
      "pasta": "take-unico/render_take.py",
      "conteudo": "renderiza a composição com obturador de 180°; `--stills`, `--previa`, `--trechos 4` e `--turbo`"
    },
    {
      "pasta": "take-unico/oraculo_take.py",
      "conteudo": "confere continuidade, enquadramento e respiros; `--eventos` exporta os eventos para a trilha"
    },
    {
      "pasta": "audio/dados_foco.py",
      "conteudo": "acha o ataque de cada golpe no stem da camada e o espectro da mix e grava `comp/dados/foco.js`"
    },
    {
      "pasta": "audio/dados_comp.py",
      "conteudo": "lê `notas.json` (o contrato com o remix) e grava `comp/dados/notas.js`"
    },
    {
      "pasta": "audio/batidas.py",
      "conteudo": "tempos, compassos e bumbos (beat_this) para `comp/dados/batidas.js`"
    },
    {
      "pasta": "audio/gerar_voz_gancho.py",
      "conteudo": "gera as tomadas da fala do gancho na ElevenLabs"
    },
    {
      "pasta": "audio/trilha.py",
      "conteudo": "voz seca do gancho, música original abafada por baixo e abrindo, *tape stop*, respiro, remix intocado, um som macio por elemento do gancho e um efeito por evento; mix em −14 LUFS"
    },
    {
      "pasta": "revisao/carga_texto.py",
      "conteudo": "conta, quadro a quadro, quantos textos estão na tela (no máximo uma etiqueta)"
    },
    {
      "pasta": "revisao/sync_check.py",
      "conteudo": "mede a diferença entre a imagem e o som de cada golpe no master"
    },
    {
      "pasta": "audio/remix/",
      "conteudo": "o plano do remix (`cinematografico-v5.json`), o piano escrito em MIDI, a separação da voz, as camadas e a mixagem com a voz na frente (`render.sh v5` roda tudo)"
    }
  ],
  "prompt": "Quero um Reel musical vertical no mesmo método do projeto \"Whose Side Are You On\", que está em 07-videos/projetos/whose-side/, com a minha música.\n\nMúsica (arquivo original, com o nome do artista e da faixa): {{MUSICA}}\nTrecho normal (a frase que toca antes do edit): {{FRASE_NORMAL}}\nVersão editada, se já existir (senão, monte com os scripts de audio/remix/): {{VERSAO_EDITADA}}\nFala do gancho (o texto é meu; não reescreva): {{FALA_GANCHO}}\nVoz (ElevenLabs, ID da voz clonada ou da voz escolhida): {{VOZ}}\nFotos e capa do artista (links oficiais ou arquivos): {{IMAGENS}}\nChamada final (palavra para comentar e o que a pessoa recebe): {{CTA}}\nFormato: 1080×1920, 60 qps · Duração: {{DURACAO}} (a referência tem 75 s)\n(Se algum desses estiver vazio ou com as chaves, me pergunte antes de começar.)\n\n1. Estude o projeto antes de propor qualquer coisa. Leia, nesta ordem: LEIA-ME.md, estilo.md e roteiro.md. Depois abra comp/index.html e veja os tempos do topo (H0, N0, RB, A0, R(), DROP, CTA), o objeto CAMS (cor e ícone por camada), o destaque do tonal em foco, a pintura do mundo, o drop, o card do Spotify, o CTA e o bloco do gancho \"v3\". Leia também audio/notas.json (o contrato com o remix), audio/dados_foco.py, audio/trilha.py e take-unico/README.md. Me explique em poucas linhas o que você vai reaproveitar.\n\n2. Meça a música e o remix antes de montar: tom, BPM, tempos e compassos (beat_this), a frase do normal, o ponto de rebobinar, o drop e o ataque de cada golpe no stem de cada camada. Escreva o notas.json com as notas e os envelopes de cada camada (o piano e o ping saem do MIDI; o violoncelo, de transcrição; fundos e subida, do envelope).\n\n3. Gere a fala do gancho na ElevenLabs (de 2 a 3 tomadas), confira no Whisper e me mande para aprovar. Só siga com a aprovada. Tire os tempos de cada palavra e corrija pela energia da voz onde o Whisper esticar as pausas.\n\n4. Monte o gancho palavra por palavra: cada palavra-chave ganha um elemento que nasce no ataque dela (app, acessório, cartão de skill, cartão da música com a capa real, a onda que ganha cor, barras de cinema), em fundo claro com cartões e cores de interface reais. Nada aparece antes de ser dito. No fim do gancho, a onda vira o clipe azul da música normal no lugar exato, sem corte.\n\n5. Dê a cada camada uma cor que só ela usa e um elemento próprio: anel fino no ping, névoa nos fundos, arcos no violoncelo, círculos a cada nota no piano, linhas de luz na subida. O tonal que toca vem para a frente (cresce, sobe, brilha), a voz e a música apagam um pouco na tela e o mundo, cinza no começo, ganha a cor de cada tonal quando ele soa. Cada clipe pousa 0,6 a 1,1 s antes do primeiro som.\n\n6. Deixe uma pausa de 2 a 3 s entre o normal e o edit: fita parando, mundo escurecendo, um cartão \"Agora, o edit do Claude\" parado no meio da tela, íris a partir do cursor. No drop, nada de círculos: câmera que inspira e dá um soco, varredura de luz e partículas. Depois do drop, um card de plataforma real (como o do Spotify) com a capa e o tempo da faixa andando.\n\n7. Uma etiqueta simples por vez, presa ao clipe, sem nenhum termo técnico (\"Piano: abre o clima de filme\"), e as notas rolando dos clipes. Rode revisao/carga_texto.py: zero quadros com dois textos.\n\n8. Som pelos eventos, num subagente: oraculo_take.py --eventos audio/eventos.json e trilha.py. A música abafada por baixo do gancho, cerca de 15 dB abaixo da voz, abrindo até o normal num fluxo só; tape stop; o remix intocado; um som macio por elemento do gancho e efeitos esparsos no edit. Final a −14 LUFS, pico verdadeiro abaixo de −1 dBFS.\n\n9. Revise antes do final: stills de cada etiqueta e de cada palavra do gancho, oráculo com PASSA, prévia rápida com som, sync_check.py (imagem e som de cada golpe a menos de 1 quadro) e uma IA que assista com áudio, perguntando onde o gancho perde força, onde a tela fica carregada e onde o movimento para morto. Confira cada apontamento antes de mexer.\n\n10. Final a 60 qps em trechos de 4 s (render/final.sh), confira duração, qps e −14 LUFS e entregue o MP4, uma cópia leve para o celular e uma anotação do que mudou em relação à referência.",
  "campos": [
    "CTA",
    "DURACAO",
    "FALA_GANCHO",
    "FRASE_NORMAL",
    "IMAGENS",
    "MUSICA",
    "VERSAO_EDITADA",
    "VOZ"
  ],
  "fonte": {
    "nome": "Clube do Motion",
    "url": "https://clubedomotion.com/projeto/?id=whose-side",
    "uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
  }
}