primocode 10.12.0 → 10.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/README.md +74 -12
  2. package/bin/primocode.js +148 -8
  3. package/lib/act.js +48 -1
  4. package/lib/catalogo.js +12 -1
  5. package/lib/config.js +1 -0
  6. package/lib/estudio/assinaturas/gerativo.json +1 -1
  7. package/lib/estudio/camadas.js +4 -0
  8. package/lib/estudio/cota.js +150 -0
  9. package/lib/estudio/dados/projetos/clube-ad5.json +105 -0
  10. package/lib/estudio/dados/projetos/clube-ae-sem-memoria.json +107 -0
  11. package/lib/estudio/dados/projetos/clube-agent.json +120 -0
  12. package/lib/estudio/dados/projetos/clube-antes-e-agora.json +86 -0
  13. package/lib/estudio/dados/projetos/clube-apresentando-clube.json +110 -0
  14. package/lib/estudio/dados/projetos/clube-bluevisa.json +106 -0
  15. package/lib/estudio/dados/projetos/clube-caught-in-the-fire.json +127 -0
  16. package/lib/estudio/dados/projetos/clube-chat-cliente-satisfeito.json +98 -0
  17. package/lib/estudio/dados/projetos/clube-chatgpt-anuncios.json +120 -0
  18. package/lib/estudio/dados/projetos/clube-claude-dj.json +140 -0
  19. package/lib/estudio/dados/projetos/clube-claude-mcp.json +142 -0
  20. package/lib/estudio/dados/projetos/clube-cleanui.json +106 -0
  21. package/lib/estudio/dados/projetos/clube-clinica-take-unico.json +128 -0
  22. package/lib/estudio/dados/projetos/clube-clinica.json +104 -0
  23. package/lib/estudio/dados/projetos/clube-clube-opener.json +125 -0
  24. package/lib/estudio/dados/projetos/clube-clube.json +108 -0
  25. package/lib/estudio/dados/projetos/clube-codigo.json +101 -0
  26. package/lib/estudio/dados/projetos/clube-distilbook.json +104 -0
  27. package/lib/estudio/dados/projetos/clube-drive-upload.json +115 -0
  28. package/lib/estudio/dados/projetos/clube-dub.json +119 -0
  29. package/lib/estudio/dados/projetos/clube-enxovaly.json +105 -0
  30. package/lib/estudio/dados/projetos/clube-fecha7.json +118 -0
  31. package/lib/estudio/dados/projetos/clube-filatov.json +128 -0
  32. package/lib/estudio/dados/projetos/clube-frame.json +108 -0
  33. package/lib/estudio/dados/projetos/clube-glass.json +118 -0
  34. package/lib/estudio/dados/projetos/clube-letra-em-apps.json +84 -0
  35. package/lib/estudio/dados/projetos/clube-letra-globo-3d.json +111 -0
  36. package/lib/estudio/dados/projetos/clube-letra-nos-apps.json +146 -0
  37. package/lib/estudio/dados/projetos/clube-letra-seis-mundos.json +100 -0
  38. package/lib/estudio/dados/projetos/clube-lula-3.json +146 -0
  39. package/lib/estudio/dados/projetos/clube-morph.json +119 -0
  40. package/lib/estudio/dados/projetos/clube-motion-designer.json +115 -0
  41. package/lib/estudio/dados/projetos/clube-motion-pacote.json +112 -0
  42. package/lib/estudio/dados/projetos/clube-movimento.json +103 -0
  43. package/lib/estudio/dados/projetos/clube-not-like-us.json +117 -0
  44. package/lib/estudio/dados/projetos/clube-pinterest-inspiracao.json +86 -0
  45. package/lib/estudio/dados/projetos/clube-pixel-e-tinta.json +108 -0
  46. package/lib/estudio/dados/projetos/clube-ponte.json +118 -0
  47. package/lib/estudio/dados/projetos/clube-processo-edit-tonal.json +126 -0
  48. package/lib/estudio/dados/projetos/clube-processo-motion-100-ia.json +109 -0
  49. package/lib/estudio/dados/projetos/clube-promo.json +114 -0
  50. package/lib/estudio/dados/projetos/clube-proposito.json +115 -0
  51. package/lib/estudio/dados/projetos/clube-rankhog.json +128 -0
  52. package/lib/estudio/dados/projetos/clube-recursao.json +116 -0
  53. package/lib/estudio/dados/projetos/clube-revelar.json +118 -0
  54. package/lib/estudio/dados/projetos/clube-robo.json +125 -0
  55. package/lib/estudio/dados/projetos/clube-shelby-ep2.json +144 -0
  56. package/lib/estudio/dados/projetos/clube-shelby.json +97 -0
  57. package/lib/estudio/dados/projetos/clube-solar-eclipse.json +96 -0
  58. package/lib/estudio/dados/projetos/clube-soldier.json +128 -0
  59. package/lib/estudio/dados/projetos/clube-som-de-cena.json +108 -0
  60. package/lib/estudio/dados/projetos/clube-spotify-candidatura.json +112 -0
  61. package/lib/estudio/dados/projetos/clube-tda-app.json +118 -0
  62. package/lib/estudio/dados/projetos/clube-tda-ia.json +75 -0
  63. package/lib/estudio/dados/projetos/clube-telegram-chat.json +118 -0
  64. package/lib/estudio/dados/projetos/clube-telegram-ilha.json +106 -0
  65. package/lib/estudio/dados/projetos/clube-tennessee-nike.json +132 -0
  66. package/lib/estudio/dados/projetos/clube-tudo-se-move.json +112 -0
  67. package/lib/estudio/dados/projetos/clube-uiad.json +107 -0
  68. package/lib/estudio/dados/projetos/clube-viralgrow.json +108 -0
  69. package/lib/estudio/dados/projetos/clube-whose-side.json +140 -0
  70. package/lib/estudio/dados/projetos/clube-youtube-inscrever.json +108 -0
  71. package/lib/estudio/dados/projetos/elementos-do-site-em-movimento.json +49 -0
  72. package/lib/estudio/dados/projetos/explainer-narrado.json +51 -0
  73. package/lib/estudio/dados/projetos/lancamento-de-produto.json +51 -0
  74. package/lib/estudio/dados/projetos/motion-so-com-sons.json +50 -0
  75. package/lib/estudio/dados/projetos/titulo-em-after-effects.json +51 -0
  76. package/lib/estudio/dados/projetos/tour-de-saas.json +50 -0
  77. package/lib/estudio/dados/projetos-ae/antes-e-agora/ae/cenas.jsx +733 -0
  78. package/lib/estudio/dados/projetos-ae/antes-e-agora/assets/fazer_assets.py +88 -0
  79. package/lib/estudio/dados/projetos-ae/letra-em-apps/ae/cenas.jsx +402 -0
  80. package/lib/estudio/dados/projetos-ae/letra-em-apps/assets/preparar_assets.py +17 -0
  81. package/lib/estudio/dados/projetos-ae/letra-em-apps/assets/svg_para_ae.py +25 -0
  82. package/lib/estudio/dados/projetos-ae/letra-nos-apps/BRIEF-AGENTES.md +31 -0
  83. package/lib/estudio/dados/projetos-ae/letra-nos-apps/README.md +53 -0
  84. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ROTEIRO-CENAS.md +69 -0
  85. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/A-agenda.jsx +148 -0
  86. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/B-docs.jsx +174 -0
  87. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/C-alttab.jsx +113 -0
  88. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/D-spotify.jsx +118 -0
  89. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/E-notas.jsx +146 -0
  90. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/F-jornal1.jsx +144 -0
  91. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/G-google.jsx +153 -0
  92. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/H-mapa.jsx +176 -0
  93. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/I-imagens.jsx +132 -0
  94. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/J-jornal2.jsx +191 -0
  95. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/K-maps.jsx +184 -0
  96. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/camera-movimentos.jsx +48 -0
  97. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/camera.jsx +57 -0
  98. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/card-spotify.jsx +98 -0
  99. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/digitar.jsx +38 -0
  100. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/jornal-comum.jsx +196 -0
  101. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/letra.jsx +23 -0
  102. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/letra_automatica.py +83 -0
  103. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/montagem.jsx +74 -0
  104. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/w-agenda/render_html.py +13 -0
  105. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/w-agenda/util.jsx +162 -0
  106. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/w-midia-comum.jsx +114 -0
  107. package/lib/estudio/dados/projetos-ae/letra-nos-apps/ae/wg-util.jsx +360 -0
  108. package/lib/estudio/dados/projetos-ae/letra-nos-apps/assets/F-jornal1/render_html.py +13 -0
  109. package/lib/estudio/dados/projetos-ae/letra-nos-apps/assets/render_w-midia.py +26 -0
  110. package/lib/estudio/dados/projetos-ae/letra-nos-apps/assets/w-midia-ferramentas/inclin.py +30 -0
  111. package/lib/estudio/dados/projetos-ae/letra-nos-apps/assets/w-midia-ferramentas/medir_d.py +36 -0
  112. package/lib/estudio/dados/projetos-ae/letra-nos-apps/assets/w-midia-ferramentas/medir_e.py +27 -0
  113. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/ajustar_movimentos.py +61 -0
  114. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/ancorar.py +74 -0
  115. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/assar.py +47 -0
  116. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/camera3d_jornal.py +172 -0
  117. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/comparar.py +32 -0
  118. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/dados_ae_jornal.py +46 -0
  119. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/folha_contato.py +28 -0
  120. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/homografia_jornal.py +74 -0
  121. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/integrar.py +44 -0
  122. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/medir_quadro_a_quadro.py +32 -0
  123. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/mesa_2d.py +64 -0
  124. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/plot_cenas.py +11 -0
  125. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/retificar_quadros.py +38 -0
  126. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/w-agenda/assar_ab.py +52 -0
  127. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/w-agenda/medir_ab.py +59 -0
  128. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/wg_ajustar_h.py +111 -0
  129. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/wg_corrige_cam.py +17 -0
  130. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/wg_ecc_cadeia.py +80 -0
  131. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/wg_finalizar_cam.py +65 -0
  132. package/lib/estudio/dados/projetos-ae/letra-nos-apps/camera/wg_mosaico.py +61 -0
  133. package/lib/estudio/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/01-gramatica-e-roteiro.md +55 -0
  134. package/lib/estudio/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/02-camera.md +66 -0
  135. package/lib/estudio/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/03-montagem-no-ae.md +50 -0
  136. package/lib/estudio/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/04-render-e-conferencia.md +43 -0
  137. package/lib/estudio/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces/05-abertura-celular-mergulho.md +43 -0
  138. package/lib/estudio/dados/projetos-ae/letra-nos-apps/guia-do-metodo/tutorial-lyric-edit-interfaces.md +42 -0
  139. package/lib/estudio/dados/projetos-ae/letra-nos-apps/transicao/atraso_imagem.py +31 -0
  140. package/lib/estudio/dados/projetos-ae/letra-nos-apps/transicao/fundo.py +56 -0
  141. package/lib/estudio/dados/projetos-ae/letra-nos-apps/transicao/juntar.py +45 -0
  142. package/lib/estudio/dados/projetos-ae/letra-nos-apps/transicao/montar.py +177 -0
  143. package/lib/estudio/dados/projetos-ae/letra-nos-apps/transicao/rastreio.py +74 -0
  144. package/lib/estudio/dados/projetos-ae/letra-nos-apps/transicao/sincronia.py +18 -0
  145. package/lib/estudio/dados/projetos-ae/pinterest-inspiracao/ae/cenas.jsx +530 -0
  146. package/lib/estudio/dados/projetos-ae/pinterest-inspiracao/assets/fazer_assets.py +107 -0
  147. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/assets/pessoas/figurinha.py +46 -0
  148. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/BRIEF-A.md +83 -0
  149. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/audio.py +179 -0
  150. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/confere.py +20 -0
  151. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/dados/tempo-parte1.js +1 -0
  152. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/dados/tempo-parte2.js +1 -0
  153. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/gerar_emojis.py +11 -0
  154. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/img/filmes/_indice.js +122 -0
  155. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/js/base.js +380 -0
  156. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/js/main.js +86 -0
  157. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/js/p1a.js +169 -0
  158. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/js/p1b.js +455 -0
  159. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/js/p1c.js +389 -0
  160. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/js/p2.js +379 -0
  161. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/comp-a/video.py +62 -0
  162. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/take-unico/README.md +65 -0
  163. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/take-unico/oraculo_take.py +137 -0
  164. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/take-unico/render_take.py +388 -0
  165. package/lib/estudio/dados/projetos-ae/processo-motion-100-ia/take-unico/take.js +235 -0
  166. package/lib/estudio/diretor.js +2 -1
  167. package/lib/estudio/editor.js +285 -0
  168. package/lib/estudio/efeitos-fabrica/terminal-digitando.jsx +2 -1
  169. package/lib/estudio/effectcraft.js +152 -0
  170. package/lib/estudio/exportar.js +181 -0
  171. package/lib/estudio/gerativo.js +44 -15
  172. package/lib/estudio/index.js +126 -5
  173. package/lib/estudio/kit/gerativo.jsx +15 -0
  174. package/lib/estudio/kit-ae/base.jsx +1146 -0
  175. package/lib/estudio/kit-ae/cenas.jsx +395 -0
  176. package/lib/estudio/kit-ae/primitivas.jsx +911 -0
  177. package/lib/estudio/kokoro.js +3 -1
  178. package/lib/estudio/maquina-diretor.js +393 -0
  179. package/lib/estudio/maquina-elementos.js +134 -0
  180. package/lib/estudio/maquina-layout.js +198 -0
  181. package/lib/estudio/maquina-som.js +478 -0
  182. package/lib/estudio/maquina-trilha.js +160 -0
  183. package/lib/estudio/maquina-voz.js +429 -0
  184. package/lib/estudio/maquina.js +516 -0
  185. package/lib/estudio/projetos.js +60 -0
  186. package/lib/estudio/remotion.js +6 -4
  187. package/lib/estudio/revisor.js +61 -0
  188. package/lib/estudio/voicestudio.js +81 -0
  189. package/lib/headless.js +71 -0
  190. package/lib/hooks.js +72 -0
  191. package/lib/local/cerebro.json +398 -12
  192. package/lib/local/entrada.js +46 -2
  193. package/lib/marca-kit.js +309 -0
  194. package/lib/mcp.js +286 -6
  195. package/lib/perigo.js +31 -3
  196. package/lib/planos.js +47 -19
  197. package/lib/preparar.js +111 -0
  198. package/lib/retomar.js +55 -0
  199. package/lib/sandbox.js +197 -0
  200. package/lib/skills.js +3 -1
  201. package/lib/tools.js +13 -4
  202. package/lib/ui.js +1 -1
  203. package/lib/video/auto.js +18 -3
  204. package/package.json +4 -2
  205. package/skills/after-effects/SKILL.md +52 -0
  206. package/skills/maquina-de-motion/SKILL.md +84 -0
  207. package/skills/motion-de-primeira/SKILL.md +33 -51
@@ -0,0 +1,97 @@
1
+ {
2
+ "id": "clube-shelby",
3
+ "titulo": "Barbearia Shelby em 7 dias",
4
+ "categoria": "narrado",
5
+ "resumo": "episódio 1 da série \"Se eu tivesse uma barbearia hoje e precisasse lançar ela em 7 dias, como eu faria a parte digital?\". Narrado, 3 min 37 s, 9:16, montado no After Effects numa lousa contínua: a câmera viaja por uma mesa onde todas as cenas já estão. Mostra o Dia 0 (a marca) e o Dia 1 (o site) de uma barbearia conceito e fecha em \"continua . . .\". Versão final: v4.",
6
+ "indicado": "quem quer contar um processo ou o caso de um negócio local em formato de série para o Instagram.",
7
+ "estilo": [
8
+ "lousa contínua",
9
+ "câmera que viaja",
10
+ "identidade do assunto",
11
+ "prints reais",
12
+ "trilha por momentos"
13
+ ],
14
+ "ficha": {
15
+ "formato": "1080×1920, 30 qps, 9:16, cor BT.709",
16
+ "duracao": "3 min 37 s (217,3 s; 6.520 quadros)",
17
+ "motor": "ae",
18
+ "voz": "voz clonada na ElevenLabs (Eleven v4), juntada a 1,15×",
19
+ "musica": "ver o guia de estilo",
20
+ "fontes": "ver o guia de estilo"
21
+ },
22
+ "ferramentas": [
23
+ "Claude Code",
24
+ "After Effects",
25
+ "ElevenLabs"
26
+ ],
27
+ "ficha_tecnica": {
28
+ "Duração": "3 min 37 s (217,3 s; 6.520 quadros)",
29
+ "Formato": "1080×1920, 30 qps, 9:16, cor BT.709",
30
+ "Voz": "voz clonada na ElevenLabs (Eleven v4), juntada a 1,15×",
31
+ "Ferramenta": "After Effects, com o projeto gerado por scripts em Python",
32
+ "Publicado": "Instagram, 12/10/2026 (cerca de 42 mil visualizações na época)"
33
+ },
34
+ "etapas": [
35
+ {
36
+ "titulo": "O roteiro e a voz",
37
+ "texto": "**Resumo:** a fala do episódio 1 exatamente como foi enviada à voz clonada na v4 (16 parágrafos, com a grafia de pronúncia), a tabela que converte essa grafia de volta para a escrita normal e a estrutura por tempo. Gancho: \"Se eu tivesse uma barbearia hoje e precisasse lançar ela em sete dias, como eu faria a parte digital?\".\n\n## Como a fala foi feita\n\n- **Dia 0** (parágrafos 01 a 08): texto do autor. A revisão corrigiu só dois defeitos: \"preciso fazer 2 coisas\", que tinha uma só na lista, e \"achei uma referência que eu me surpreendi quando pensei\", que virou \"achei uma referência que me surpreendeu\".\n\n- **Dia 1** (parágrafos 09 a 16): escrito a partir do que aconteceu de verdade na produção do site, no registro dele. O parágrafo 10 foi reescrito na v4 para explicar melhor a ideia do agendamento.\n\n- **Voz:** ElevenLabs, Eleven v4, um arquivo por parágrafo (estabilidade 0,52, similaridade 0,73, velocidade 1,05), juntados a 1,15× com as pausas.\n\n## Grafia de pronúncia\n\n | \n\n | Escrito para a voz\n | Leitura normal\n\n | IÁ\n | IA\n\n | chat gê pê tê\n | ChatGPT\n\n | Birrêns\n | Behance\n\n | Píqui Blínders\n | Peaky Blinders\n\n | Cal ponto com\n | Cal.com\n\n | Móbin\n | Mobbin\n\n | Clube dos Sníkers\n | Clube dos Sneakers\n\n | landin peige\n | landing page\n\n | lôgo\n | logo\n\n | sete, zero, um, dois, quarenta\n | números por extenso\n\n## A fala, verbatim (texto enviado à voz)\n\n**01.** Se eu tivesse uma barbearia hoje e precisasse lançar ela em sete dias, como eu faria a parte digital?\n\n**02.** Nesse vídeo eu vou te mostrar exatamente como você, que tem um negócio local, deveria pensar e estruturar a sua empresa nessa era da IÁ, pra aumentar a sua produtividade e tirar da sua mão os processos repetitivos do dia a dia, deixando você com mais liberdade pra focar no que realmente importa pro seu negócio.\n\n**03.** Pronto?\n\n**04.** Dia zero: tudo começa com a marca. Hoje é bem fácil fazer uma identidade visual pra sua empresa com as ferramentas que a gente tem disponíveis. No meu caso, eu vou usar o próprio chat gê pê tê pra fazer esse branding pra mim.\n\n**05.** Antes de mandar o prompt pra ele, eu preciso pesquisar referências de identidade visual e de marcas do meu nicho. Pra isso eu vou usar o Birrêns ponto net, um site onde designers postam os seus trabalhos e guardam o portfólio de projetos pessoais e comerciais. Tem bastante identidade visual lá, o que é perfeito pro que eu tô procurando.\n\n**06.** Pesquisei por barbearia design e fui rolando a página pra ver algum que eu gostasse pra usar como base. Nessa parte, o ideal é você já ter uma ideia do estilo e da vibe que quer pra sua marca. No meu caso, eu não tinha nada. Simplesmente comecei a procurar, o que deixou bem difícil achar alguma coisa pra usar como referência.\n\n**07.** Depois de uns quarenta minutos pesquisando, achei uma referência que me surpreendeu, porque não tem nada a ver com barbearia. E foi assim que nasceu a Barbearia Shelby, uma barbearia conceito inspirada no universo da série Píqui Blínders.\n\n**08.** O que eu fiz foi basicamente pesquisar por Píqui Blínders no Birrêns e baixar todas as referências que eu gostei, pra usar como exemplo na hora de fazer a nossa marca e o design system. Depois de algumas iterações e mudanças, ela ficou assim.\n\n**09.** Agora que a gente já tem a marca, vamos pra landin peige. Dia um: a landin peige.\n\n**10.** Eu não queria que o meu site tivesse só um botão em que a pessoa clica e vai direto pro WhatsApp pra agendar. A ideia era o cliente marcar o horário ali mesmo, na página: escolhe o serviço, o barbeiro, o dia e o horário, coloca o nome e o WhatsApp e pronto, sem cadastro e sem ficar esperando alguém responder.\n\n**11.** Pra chegar nisso, voltei pras referências. Usei o Cal ponto com, que é um sistema de agendamento, como base pro calendário. No Móbin, que junta telas dos melhores sites e aplicativos, vi como eles resolvem uma tela de agendamento. E no Pinterest achei o estilo de foto de barbeiro que eu queria.\n\n**12.** Como a Shelby não existe, as fotos dos barbeiros, do salão e dos cortes eu gerei com IÁ em cima dessas referências. E pedi também o kit completo pro site: lôgo com fundo transparente, o ícone que aparece na aba do navegador e uns selos personalizados, como um lacre de cera e uma medalha de mais pedido.\n\n**13.** A primeira versão ficou boa, mas ainda tinha cara de site genérico. Aí mandei pro meu agente quatro sites de barbearias reais aqui da região. O visual deles é bem feio, mas a estrutura é de quem conhece o cliente: tabela de preços, plano de assinatura, avaliação no Google, estacionamento.\n\n**14.** Pedi também pra deixar o topo da página parecido com o que a gente fez no Clube dos Sníkers, e trouxe a Shelby pra Paulínia, onde eu moro. Depois de três rodadas de ajuste, ficou assim.\n\n**15.** E pra colocar no ar eu não gastei nada: tá hospedada na Cloudflare, de graça.\n\n**16.** Agora a Shelby tem marca e tem site. Só que barbearia que ninguém acha no Google não existe. E isso é assunto pro Dia dois.\n\n**Na tela, no fim:** \"continua . . .\" em suspense, com o lacre da Shelby.\n\n## Estrutura por tempo (tempo do vídeo)\n\nO vídeo começa 1 s antes da voz (o sino toca sozinho). As pausas longas são momentos só de música.\n\n | \n\n | Parágrafo\n | Tempo (s)\n | Pausa depois\n | O que aparece\n\n | 01\n | 1,0–6,5\n | 0,6 s\n | pergunta grande no centro; a barbearia que ainda não existe, desenhada a traço, com a placa \"?\"; no \"parte digital?\", a fachada ganha a moldura de um navegador; as 8 cartas, do Dia 0 ao Dia 7, em leque embaixo\n\n | 02\n | 7,1–23,2\n | 0,35 s\n | a promessa como fluxo: o fio desce do negócio local até a empresa (\"estruturar\"); o círculo vira o selo de lacre \"IA\"; tronco e galhos até cinco vagas (\"produtividade\"); as 5 tarefas (responder no WhatsApp, confirmar horário, lembrar o cliente, pedir avaliação no Google, postar no Instagram) caem nas vagas e ligam sozinhas em interruptores de lacre; em \"liberdade\", a câmera voa até o ofício e o círculo desenha a volta na tesoura\n\n | 03\n | 23,6–24,2\n | 1,4 s\n | \"Pronto?\": a câmera desce até o texto, mergulha no clique e o lacre inunda (corte escondido para o Dia 0)\n\n | 04\n | 25,6–36,8\n | 0,35 s\n | Dia 0; o esqueleto vazio da identidade (bento), com um brilho de IA em cada bloco; a janela do ChatGPT nasce do logo e o círculo paira no botão de enviar\n\n | 05\n | 37,1–54,3\n | 0,35 s\n | o moodboard com notas; a janela do Behance nasce do logo; o círculo desenha a borda do primeiro projeto no \"portfólio\"; no \"bastante\", a parede de referências transborda da janela\n\n | 06\n | 54,6–71,3\n | 0,5 s\n | a busca \"barbearia design\"; \"estilo?\" e \"vibe?\" entram dos lados e são riscadas no \"nada\"\n\n | 07\n | 71,8–83,7\n | 2,0 s\n | \"quarenta minutos\": a câmera sobe bem alto e tudo esmaece; no \"achei\", mergulho na carta de Peaky Blinders escondida na parede; no fim, as 4 referências da série batem junto com o sino e a câmera respira com a música\n\n | 08\n | 85,7–97,7\n | 10,5 s\n | a busca de Peaky Blinders; as miniaturas voam da janela para a bandeja de download; no \"design system\", a volta longa pela mesa até o bento, que se preenche; nas iterações, aproxima do bloco do logo; no \"ela ficou assim\", mergulha nele até o corte\n\n | drop 1\n | 99,32\n | —\n | **corte para a parte B.** Vitrine da marca em 4 compassos (~2 s cada, fusões de 0,5 s): logo sobre o selo girando, fachada, placa, mesa das aplicações; o bento preenchido aparece 0,7 s antes do \"Agora\"\n\n | 09\n | 108,2–113,2\n | 0,4 s\n | carta do Dia 1\n\n | 10\n | 113,6–129,3\n | 0,35 s\n | o site genérico riscado; o agendador, com a câmera acompanhando os cliques\n\n | 11\n | 129,6–144,6\n | 0,35 s\n | a fileira Cal.com → Mobbin → Pinterest\n\n | 12\n | 144,9–161,3\n | 0,4 s\n | as fotos geradas; o kit do site\n\n | 13\n | 161,7–177,3\n | 0,4 s\n | a v1 com o carimbo \"GENÉRICO\"; os 4 sites reais em raio-x\n\n | 14\n | 177,7–187,1\n | 12,0 s\n | o topo do site de referência; Paulínia no mapa real com o pino de lacre; as três rodadas\n\n | drop 2\n | 188,57\n | —\n | a tela escurece, meio segundo no vazio, o site volta no tema e rola em 4 passos de 1,3 s a cada 1,9 s, no computador e no celular\n\n | 15\n | 199,1–203,2\n | 0,5 s\n | Cloudflare\n\n | 16\n | 203,8–211,3\n | 4,5 s\n | checklist; \"continua . . .\" com o lacre, até 217,3 s\n\nOs tempos dos parágrafos vêm da narração montada (somados ao 1 s de abertura); os tempos de cada palavra estão em `audio/words.json`. A coluna \"O que aparece\" segue a ordem das cenas nos geradores (`gerar_v3a.py` e `gerar_v3b.py`), onde está o quadro exato de cada elemento, ancorado na palavra."
38
+ },
39
+ {
40
+ "titulo": "A identidade visual",
41
+ "texto": "**Resumo:** a identidade do vídeo veste a marca do assunto (a barbearia conceito inspirada em Peaky Blinders): preto e branco, vermelho do lacre e latão, Playfair Display com Roboto, a carta de baralho como componente e transição, e uma lousa contínua em que a câmera viaja como um drone. Os números abaixo saem dos scripts geradores da v4.\n\n## Fontes\n\n | \n\n | Uso\n | Fonte\n | Onde baixar\n\n | Títulos e legenda grande do centro\n | Playfair Display 700 e 900 (700 itálico em destaques)\n | Google Fonts\n\n | Rótulos (caixa alta, espaçados)\n | Roboto Condensed 700\n | Google Fonts\n\n | Legenda do topo e da base, textos\n | Roboto 400, 500 e 700\n | Google Fonts\n\n | Logotipo da barbearia\n | desenho próprio (PNG e SVG nos assets)\n | —\n\n## Cores\n\n | \n\n | Token\n | Hex\n | Uso\n\n | Preto\n | `#111111`\n | base\n\n | Preto 2\n | `#1C1C1C`\n | superfície escura\n\n | Grafite\n | `#2A2A2A`\n | superfície\n\n | Cinza escuro\n | `#6B6B6B`\n | texto de apoio\n\n | Cinza\n | `#9E9E9E`\n | apoio\n\n | Linha\n | `#E2E2E2`\n | divisores\n\n | Fundo\n | `#F3F3F3`\n | fundo claro\n\n | Branco\n | `#FFFFFF`\n | respiro\n\n | Marfim\n | `#EFE8DC`\n | fundo das cartas, traços na mesa\n\n | **Lacre**\n | **`#C8102E`**\n | ação, destaque sobre fundo claro, inundação, elemento vivo\n\n | **Latão**\n | **`#B08D57`**\n | selos, filetes, fios na mesa, destaque sobre fundo escuro\n\n## Componentes\n\n- **Carta de baralho** (das referências da série): 300 px de largura × 1,4 de altura, fundo marfim, filete de latão, o boné no centro, o valor do dia em Playfair nos cantos e no meio, o rótulo em Roboto Condensed com espaçamento 220. As cartas do Dia 0 ao Dia 7 marcam a série.\n\n- **Selo de lacre** e **medalha**, feitos em SVG.\n\n- **Fio de latão** com o boné, ligando as estações da mesa.\n\n- **Janela do navegador** para as telas (Behance, ChatGPT, Mobbin, Pinterest, Cal.com, o site no ar).\n\n- **O agendador real** do site, com a câmera acompanhando os cliques.\n\n- **Barbearia desenhada a traço** (Trim Paths) com a placa \"?\", na abertura.\n\n- **A mesa:** grade de pontos infinita (passo de 44 px, a imagem se reencaixa), luz de tungstênio fixa e vinheta.\n\n## Transições\n\n- **A câmera viaja pela mesa.** Todas as cenas são áreas de um mundo maior que a tela. A posição de cada área na tela é `centro + giro(mundo − câmera) × zoom`, lida de um null `CAM` por expressão. A viagem sai rápido, se afasta no meio do caminho (pull-out) e chega devagar.\n\n- **Carta dada:** a cena nova chega de baixo à direita girando até o lugar (de 240 × 520 px de distância, rotação de 9° a 0°, em 0,75–0,8 s, curva Mojtaba) e sai para cima à esquerda em 0,5 s, girando −6°.\n\n- **Lacre que inunda** nas viradas grandes: o círculo clica, um anel de traço sai (100 → 560% em 0,7 s), o vermelho cresce de 1,2 a 100% em 0,62 s (curva suave) e a cor nova cobre por cima.\n\n- **Mergulho** na carta, no \"?\" e no selo, até o drop.\n\n- **Corte seco** só nos drops, no tempo do tema.\n\n## Curvas e molas\n\n | \n\n | Nome\n | Bezier\n | Uso\n\n | board\n | (.333, 0, .2285, 1)\n | viagem da câmera: sai rápido, chega devagar\n\n | mojtaba\n | (.86, 0, .07, 1)\n | cartas e elementos presos ao mundo\n\n | entra\n | (.33, 0, .67, 1)\n | afastamento no meio da viagem\n\n | sai\n | (.16, 1, .3, 1)\n | palavra nascendo, anel do lacre\n\n | suave\n | (.45, 0, .12, 1)\n | inundação, traços\n\n | deriva\n | (.3, 0, .7, 1)\n | respiração da câmera dentro da cena\n\n**Entrada elástica das notas** (módulo Boards): escala de 0 a 100 em 1/6 s e tremor que decai (amplitude 0,1, frequência 4/3, decay 6, por 1,6 s).\n\n## Câmera\n\n- Null `CAM` na comp principal: posição (o ponto do mundo no centro), escala (zoom) e um giro leve.\n\n- **Viagem:** curva board, com zoom menor no meio (pull-out) e giro leve que volta no fim.\n\n- **Deriva:** dentro de cada cena a câmera continua andando devagar (push-in suave, sem pull-out). Ela nunca para.\n\n- Nos respiros de música, aproxima devagar (ex.: as 4 referências da série no sino).\n\n## Legenda\n\n | \n\n | Posição\n | Fonte\n | Tamanho\n | Entrelinha\n | Centro do bloco (y)\n | Largura máxima\n\n | Centro (abertura, \"ela ficou assim\")\n | Playfair Display 700\n | 96\n | 1,14\n | 960\n | 900\n\n | Topo\n | Roboto 700\n | 60\n | 1,18\n | 290\n | 900\n\n | Base\n | Roboto 700\n | 60\n | 1,18\n | 1470\n | 900\n\n- Palavra por palavra, no tempo da fala. A linha fica centrada e recentra em deslize (0,22 s) a cada palavra nova; cada palavra fica num deslocamento fixo da borda da linha, então nada encavala.\n\n- Cada palavra nasce subindo um pouco, com desfoque 6 → 0 em 0,12 s e opacidade 30 → 100 em 0,1 s; sai subindo 22 px em 0,25 s, com desfoque.\n\n- **Destaque:** as palavras marcadas (ex.: barbearia, 7 dias, parte digital) ficam na cor de destaque: lacre sobre o claro, latão sobre o escuro. As outras nascem na cor de destaque e viram preto ou branco em 0,16 s.\n\n- Véus escuros suaves no topo e na base escondem o que passa por baixo durante as viagens.\n\n## Elemento vivo\n\nO círculo auxiliar, em cor de lacre, anda junto com a câmera e para em pontos do mundo. Ele puxa as palavras na legenda do centro, vira o selo \"IA\", desenha a volta na tesoura e na carta de Peaky Blinders, paira no \"enviar\" do ChatGPT, clica no agendador e vira o pingo do \"?\" do \"Pronto?\". Nos drops ele some; nas outras cenas fica na margem direita, longe da legenda.\n\n## Trilha\n\n**Tom do vídeo:** Si menor (medido nos stems; afinação de −11 a +3 cents). O jazz está em Fá: quando ele toca, o drone em Si fica mudo.\n\n | \n\n | Faixa\n | Uso\n\n | Nick Cave & The Bad Seeds, \"Red Right Hand\" (stems sem a voz)\n | sino da abertura, o groove no respiro do \"Peaky Blinders\", o sino nos drops e no fim\n\n | PJ Harvey, \"Red Right Hand\" (stems sem a voz)\n | piano da promessa e do Dia 0\n\n | \"Red Right Hand – Peaky Blinders Theme (Flood Remix)\"\n | builds e os dois drops\n\n | Blue Stew, \"Bringing Home The Blues\" (só o instrumental)\n | trechos de trabalho do Dia 0 e do Dia 1; tom Fá, 70/140 BPM\n\n | \n\n | Momento (tempo do vídeo)\n | O que acontece\n\n | 0 s\n | o sino toca sozinho 1 s antes da voz; drone em Si\n\n | ~83,5 s, fim de \"Peaky Blinders\"\n | sino do original + golpe; o groove rola sozinho até a fala voltar em 85,7 s\n\n | 97,55 → 99,32 s, \"ela ficou assim\"\n | fim do build do Flood e um riser crescem até o drop da marca (tema, sino e golpe)\n\n | depois do drop\n | a marca fica ~8 s, em 4 compassos do tema (~2 s cada)\n\n | 186,9 → 188,57 s, \"ficou assim\" do site\n | a expectativa termina em 188,07 s; meio segundo só com o drone; o tema entra com o sino\n\n | \"Só que\"\n | a música corta, fica o drone; sino final no \"continua\"\n\n | \"40 minutos\"\n | o jazz abafa num passa-baixas e some, como quem perdeu a noção do tempo\n\n## Sound design\n\n- **235 eventos.** Um whoosh por viagem da câmera.\n\n- **Toques tonais renderizados em orquestra:** pentatônica de Si menor nos interruptores das 5 tarefas (uma nota cada); glockenspiel em Fá nos brilhos e cliques; sinos, harpa e piano nas chegadas; golpes suaves nas chegadas e riser curto no \"IA\".\n\n- **Mix:** voz seca. A música segue uma curva-alvo de loudness: 15 dB abaixo da voz com fala, 9 dB abaixo nos respiros, no nível da voz nos trechos só de música, e ganho único em cada drop para não achatar a pancada. Na v4, o respiro do Peaky fica no nível da voz e a expectativa antes de cada drop sobe em ~0,2 s.\n\n- **Medido na v4:** −14,0 LUFS; curto prazo com 2,1 dB entre os percentis 10 e 90; música 14,9 dB abaixo da voz.\n\n## O que é \"humano\" neste vídeo\n\n- A câmera nunca fica parada: viaja entre as cenas e, dentro delas, deriva devagar.\n\n- As cartas chegam como se uma mão as desse na mesa, girando até assentar.\n\n- Traços desenhados aparecem como se alguém riscasse a lousa.\n\n- As notas entram com elasticidade e um tremor que se apaga.\n\n- O círculo espera, anda e clica com intenção, como um cursor de verdade.\n\n- O som tem respiro: o sino fecha a frase e deixa 2 s só de música antes de mudar de assunto."
42
+ },
43
+ {
44
+ "titulo": "A montagem no After Effects",
45
+ "texto": "| \n\n | Script\n | O que faz\n\n | `shelby_base.py`\n | identidade do vídeo (cores, fontes, componentes) e o relógio da fala\n\n | `mundo.py`\n | o motor da lousa: cada cena é uma área de um mundo maior que a tela, e um null `CAM` guarda o ponto central, o zoom e um giro leve\n\n | `circulo_mundo.py`\n | o elemento vivo: um círculo que anda com a câmera e para em pontos do mundo\n\n | `gerar_v3a.py` / `gerar_v3b.py`\n | as cenas da parte A e da parte B, com as correções da v4\n\n | `preparar_v3.py`, `montar_v3.py`\n | preparar assets; juntar as duas partes renderizadas\n\n | `gerar_voz.py`, `montar_narracao.py`, `retempo.py`\n | narração por parágrafo, junção com as pausas e realinhamento dos tempos\n\n | `plano_trilha_v3.py`, `efeitos_v3.py`, `mixar_v3.py`\n | trilha por momentos, efeitos e mix\n\nOs geradores escrevem um JSON que uma ponte MCP do After Effects importa (`ae_project_import_json`, da `mcp-aftereffects`, de código aberto). Você não precisa rodar nada disso para abrir o vídeo: os `.aep` já estão montados. Os scripts servem para estudar e reaproveitar. As funções de comp e camada (`kit_ae.py`) e o personagem do círculo (`personagem.py`) vêm em `projeto/lib/`, e o mixador de trilha (`orquestra.py`) em `audio/lib/`. Algumas linhas ainda apontam para pastas da máquina onde o vídeo foi feito (aparecem como `<SUA_CENTRAL>`, `<BIBLIOTECA>` ou `<HOME>`); ao reaproveitar, peça ao agente para trocar pelos caminhos da sua central.\n\n- **Instale as fontes** (todas no Google Fonts, grátis): Playfair Display (700, 700 itálico e 900), Roboto Condensed (700) e Roboto (400, 500 e 700). Instale para todos os usuários e reinicie o After Effects. No Windows, se a fonte não aparecer no AE, copie os arquivos para `C:\\Program Files\\Common Files\\Adobe\\Fonts`.\n\n- **Mantenha a pasta `projeto/` como veio**, sem renomear nada: os `.aep` ficam em `projeto/ae-v3/` e os assets em `projeto/ae/assets/`. Abra a parte A ou a parte B no After Effects 2026 ou mais novo.\n\n- **Se o AE avisar que faltam arquivos:** File › Dependencies › Find Missing Footage seleciona o que falta; clique com o direito num deles › Replace Footage › File e aponte para o arquivo em `projeto/ae/assets`. O AE reencontra sozinho os outros da mesma pasta.\n\n- **Fonte trocada por outra** (texto em Times ou com aviso amarelo): a fonte não foi instalada ou o AE não reiniciou.\n\n- **Render:** cada parte separada, em trechos de 8 s com o `aerender`, de uma cópia em pasta sem acento. Depois junte as duas partes e etiquete a cor em BT.709 (regras em `07-videos/regras-vigentes.md` da central)."
46
+ },
47
+ {
48
+ "titulo": "As decisões de direção",
49
+ "texto": "- **A abertura não revela a marca.** O vídeo começa com a pergunta grande no centro e uma barbearia sem marca desenhada a traço, com uma placa \"?\". Quem assiste descobre a marca junto com o processo.\n\n- **Lousa contínua.** Na v2 as cenas eram simples e sempre no mesmo molde (legenda em cima, conteúdo no centro, assets embaixo). Na v3 todas viraram partes da mesma mesa e a câmera viaja entre elas como um drone: sai rápido, se afasta no meio e chega devagar. A transição deixou de ser um efeito e passou a ser o próprio movimento do vídeo.\n\n- **Identidade tirada do assunto.** Preto e branco da marca, vermelho do lacre e latão; a carta de baralho das referências da série como componente e como transição; o lacre que inunda a tela nas viradas grandes.\n\n- **Tudo que a fala cita aparece de verdade:** as buscas no Behance, o ChatGPT, o Cal.com, o Mobbin, o Pinterest, o site no ar no computador e no celular, o mapa de Paulínia com o pino.\n\n- **Impacto com espaço.** No \"Peaky Blinders\", o sino da música da série fecha a frase e há 2 s só de música. A marca fica cerca de 8 s na tela, em 4 compassos do tema. Antes do site, a tela escurece, fica meio segundo no vazio e o tema entra.\n\n- **Jazz nos trechos de trabalho.** A trilha melancólica da série fica na abertura, na descoberta e nos drops; quando a narração explica o processo, entra um blues instrumental que não briga com a voz.\n\n- **A voz sempre acima.** Na v2 a música estava no nível da narração. Da v3 em diante, ela fica cerca de 15 dB abaixo da fala e o volume é constante do começo ao fim.\n\n- **Fecho em suspense.** \"Só que barbearia que ninguém acha no Google não existe\" corta a música, fica o drone e o sino toca no \"continua . . .\".\n\nDetalhes de cores, curvas, câmera, legenda e som: estilo.md. A fala e a estrutura por tempo: roteiro.md. Para fazer um vídeo no mesmo estilo: PROMPT.md."
50
+ },
51
+ {
52
+ "titulo": "As versões até o final",
53
+ "texto": "| \n\n | Versão\n | O que mudou\n\n | v2\n | vídeo completo em cenas separadas; retorno: música alta demais, abertura revelava a marca, cenas no mesmo molde\n\n | v3\n | lousa contínua, abertura com a legenda grande no centro, jazz nos trechos de trabalho, música 15 dB abaixo da voz; parte A aprovada (\"exatamente isso que eu quero\")\n\n | **v4**\n | sino e respiro no \"Peaky Blinders\", vitrine da marca de ~8 s, site com escurecimento e espera, pronúncias corrigidas (\"lôgo\", \"landin peige\") e a frase do WhatsApp reescrita"
54
+ }
55
+ ],
56
+ "pacote": [
57
+ {
58
+ "pasta": "projeto/",
59
+ "conteudo": "os dois projetos do AE da v4 (parte A, do começo até o drop da marca; parte B, do drop até o fim), a pasta `assets/` (125 arquivos: capturas reais do site, referências do Behance, Mobbin e Pinterest, rodadas do símbolo, brandkit, aplicações, fotos geradas, selos e logos oficiais) e os scripts geradores"
60
+ },
61
+ {
62
+ "pasta": "audio/",
63
+ "conteudo": "narração, trilha, faixa só de efeitos, mix final, `audio/words.json` (tempo de cada palavra) e o mapa de efeitos (cada efeito com o tempo e o volume)"
64
+ },
65
+ {
66
+ "pasta": "referencias/",
67
+ "conteudo": "as referências usadas, com os links"
68
+ },
69
+ {
70
+ "pasta": "render/",
71
+ "conteudo": "`final.mp4`"
72
+ },
73
+ {
74
+ "pasta": "shelby_base.py",
75
+ "conteudo": "identidade do vídeo (cores, fontes, componentes) e o relógio da fala"
76
+ },
77
+ {
78
+ "pasta": "mundo.py",
79
+ "conteudo": "o motor da lousa: cada cena é uma área de um mundo maior que a tela, e um null `CAM` guarda o ponto central, o zoom e um giro leve"
80
+ },
81
+ {
82
+ "pasta": "circulo_mundo.py",
83
+ "conteudo": "o elemento vivo: um círculo que anda com a câmera e para em pontos do mundo"
84
+ }
85
+ ],
86
+ "prompt": "Quero fazer um vídeo narrado no mesmo estilo do projeto \"Barbearia Shelby, episódio 1\", que está em 07-videos/projetos/shelby/, com o meu assunto.\n\nAssunto: {{ASSUNTO}}\nDuração aproximada: {{DURACAO}}\nPara quem é o vídeo: {{PUBLICO}}\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: 07-videos/projetos/shelby/LEIA-ME.md, estilo.md e roteiro.md. Depois abra os scripts geradores em projeto/ (shelby_base.py, mundo.py, circulo_mundo.py, gerar_v3a.py, gerar_v3b.py) e os de áudio (plano_trilha_v3.py, efeitos_v3.py, mixar_v3.py) e me explique em poucas linhas como o motor da lousa contínua funciona e o que você vai reaproveitar.\n\n2. Siga o passo a passo de 9 etapas de 07-videos/_LEIA.md e os números de 07-videos/regras-vigentes.md. Crie o meu projeto em 07-videos/projetos/AAAA-MM-DD-tema/ a partir de 07-videos/projetos/_modelo/README.md e marque cada etapa no checklist ao concluir. Não edite os arquivos do projeto shelby: copie o que for reaproveitar.\n\n3. Use as skills instaladas: video-referencias (referências e assets reais), motion-narrado (nada aparece antes de ser dito), motion-app-ae (montagem no After Effects), animacao-saas (curvas e câmera), conteudo-voz (o meu jeito de falar) e better-portuguese (todo texto que vai para a tela ou para a legenda).\n\n4. O roteiro: a fala é minha. Faça só a estrutura em roteiro.md, como no episódio da Shelby: o gancho em forma de pergunta, a promessa, as etapas como capítulos (cartas, dias ou passos), os momentos de revelação e um fecho. Para cada parte, diga o que precisa ser dito e o que aparece na tela, e me dê 3 opções de gancho. Espere eu escrever a fala. Quando eu mandar, guarde o meu texto sem mudar e faça ao lado a versão para a voz, mudando só a grafia de pronúncia (ex.: \"IÁ\", nomes estrangeiros como se falam, números por extenso).\n\n5. Narração: um arquivo por parágrafo, conferido no faster-whisper, juntado com as pausas de música nos momentos de revelação, e o words.json com o tempo de cada palavra. Me mande o áudio e espere eu aprovar antes de animar.\n\n6. Identidade: tire do meu assunto, como a Shelby tirou da marca e da série (cores, fontes, um componente que vira transição, como a carta de baralho). Se o meu assunto não tiver identidade forte, me proponha duas opções antes de seguir. Registre os tokens num arquivo base, no lugar do shelby_base.py.\n\n7. Reaproveite o motor, troque o conteúdo. Mantenha deste projeto: a lousa contínua com a câmera viajando (curva board .333, 0, .2285, 1, pull-out no meio, deriva dentro da cena), a legenda palavra por palavra que recentra, o elemento vivo que anda com a câmera e clica com intenção, a abertura que não revela o resultado, os respiros só de música antes das revelações e a música cerca de 15 dB abaixo da voz, a −14 LUFS. Troque: cenas, textos, assets, cores, fontes, componente-assinatura e trilha (escolha uma música real que combine com o meu assunto, meça tom e BPM e faça os efeitos tonais no tom dela).\n\n8. Assets reais: tudo que a minha fala citar aparece na tela com imagem real (print do site, ícone oficial, foto real). Me peça o que você não conseguir achar.\n\n9. Construa de duas em duas cenas e me mostre folhas de contato a cada rodada. Em cada movimento, pergunte: está humano ou robotizado? Depois do render, revise quadro a quadro com o áudio, corrija e me entregue o vídeo e a ficha atualizada. No fim, registre uma anotação em anotacoes/.",
87
+ "campos": [
88
+ "ASSUNTO",
89
+ "DURACAO",
90
+ "PUBLICO"
91
+ ],
92
+ "fonte": {
93
+ "nome": "Clube do Motion",
94
+ "url": "https://clubedomotion.com/projeto/?id=shelby",
95
+ "uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
96
+ }
97
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "id": "clube-solar-eclipse",
3
+ "titulo": "A letra em telas da Apple",
4
+ "categoria": "produto",
5
+ "resumo": "lyric edit quadrado de 17 s, sem narração, em que cada verso de \"Solar Eclipse\" (Drake e Don Toliver) vira uma tela real da Apple: o widget de \"Tocando agora\", o aviso de AirPods, o Apple Maps, o iMessage, a busca e a página do álbum no Apple Music. São 11 cenas em precomps, todas montadas por um script do After Effects (`cenas.jsx`) com assets reais: mapas, capas, logos e fotos. A câmera nunca para entre uma tela e outra. Feito pelo Clube do Motion a partir de um reel de @henryexists.",
6
+ "indicado": "lyric edit de música, reel de música para página de fã ou de artista, trecho de podcast ilustrado com telas, qualquer conteúdo em que cada frase pede uma imagem que todo mundo reconhece.",
7
+ "estilo": [
8
+ "interface da Apple",
9
+ "mapa escuro",
10
+ "iMessage",
11
+ "Apple Music",
12
+ "câmera 3D que nunca para",
13
+ "flash de exposição nos cortes",
14
+ "duotone neon"
15
+ ],
16
+ "ficha": {
17
+ "formato": "1080×1080, 30 qps, desfoque de movimento ligado (obturador 270°)",
18
+ "duracao": "17 s (510 quadros), sem narração",
19
+ "motor": "ae",
20
+ "voz": "ver o guia de estilo",
21
+ "musica": "ver o guia de estilo",
22
+ "fontes": "SF Pro Display e SF Pro Text"
23
+ },
24
+ "ferramentas": [
25
+ "Claude Code",
26
+ "After Effects"
27
+ ],
28
+ "ficha_tecnica": {
29
+ "Duração": "17 s (510 quadros), sem narração",
30
+ "Formato": "1080×1080, 30 qps, desfoque de movimento ligado (obturador 270°)",
31
+ "Ferramenta": "After Effects: um script ExtendScript (`cenas.jsx`) monta a comp `RECRIACAO` do zero, com 11 precomps; o `.aep` já vem montado",
32
+ "Render": "Advanced 3D (as cenas 1, 2, 4 e 10 giram em 3D)",
33
+ "Assets": "mapas do Apple Maps em modo escuro, contorno do Texas (151 pontos), capas OCTANE e HABIBTI, logos de Spurs, Cowboys e Colts, fotos recortadas de Drake e Don Toliver e um Memoji gerado",
34
+ "Fontes": "SF Pro Display e SF Pro Text",
35
+ "Som": "o áudio do reel original (música, sem efeitos à parte); fica fora do pacote",
36
+ "Referência": "reel \"SOLAR ECLIPSE\", de @henryexists (10/10/2026)",
37
+ "Arquivo final": "MP4 H.264 com áudio AAC"
38
+ },
39
+ "etapas": [
40
+ {
41
+ "titulo": "O roteiro",
42
+ "texto": "**Resumo:** o vídeo não tem narração; o roteiro é a letra da música e a tela que ilustra cada verso, com os tempos do `cenas.jsx` e do vídeo final. Com outra música, mantenha a regra: cada frase ganha a tela que qualquer pessoa reconhece.\n\n## De onde veio a estrutura\n\nO reel estudado pega 17 s de \"Solar Eclipse\" e transforma cada verso numa tela do iPhone. Começa com o som abafado, como se tocasse no alto-falante do celular, abre quando o AirPods conecta e volta a abafar no fim. Este projeto mantém as 11 cenas, os tempos e a câmera, com a assinatura trocada pelo seu perfil.\n\n## Letra e telas\n\n | \n\n | Tempo (s)\n | Letra\n | Tela\n\n | 0,00–0,30\n | \"Lil' bih\"\n | iPhone deitado girando em 3D (lentes, maçã e um Memoji no painel branco); clarão branco\n\n | 0,30–1,67\n | \"I go by\"\n | celular deitado com o widget bege \"Solar Eclipse\"; a pílula vermelha \"Connect To AirPods?\" liga entre 0,85 e 0,95 s; a câmera desce e inclina; o fundo vira degradê vermelho\n\n | 1,67–4,47\n | \"myself\"\n | Apple Maps escuro na ilha do Fogo: ponto azul sozinho, zoom, flash de exposição, o mapa perde a cor e uma rota tracejada sai do ponto\n\n | 4,47–5,13\n | —\n | cartão branco gira em Y e desenha o contorno do Texas em tracejado\n\n | 5,13–7,37\n | \"She from Texas, I can tell\"\n | mapa do Texas: \"TX\" digitado, pin rosa, cidades em branco, brilho ciano e o selo com Spurs, Cowboys e Colts caindo\n\n | 7,37–8,30\n | —\n | balão preto de \"digitando\" com as bolinhas pulsando\n\n | 8,30–9,70\n | \"tell the truth, bae\"\n | balão azul do iMessage no fundo cinza, com a câmera acompanhando\n\n | 9,70–10,77\n | \"Yuh!\"\n | o balão vira um quadrado escuro; \"yuh!\" grande com cópias amarela e rosa; dois retratos em duotone\n\n | 10,77–12,50\n | \"Bring you out to ya\"\n | cartões neon \"Drake\" e \"Me\"; a busca digita \"Octane\"; o resultado do álbum aparece\n\n | 12,50–14,73\n | \"It's all on the house\"\n | página do álbum em 3D rolando até a faixa 10, \"On The House\", digitada em rosa\n\n | 14,73–17,00\n | \"It's all on your…\"\n | brilho magenta, o seu @ e o crédito ao reel, apagando no preto\n\n## Faixas da página do álbum (cena 10)\n\nE85 · Body · Rendezvous (feat. Yeat) · Secondhand (feat. Rema) · Tiramisu · ATM · Long Way To Calabasas · Rosary (feat. Travis Scott) · All The Signs (feat. Teezo Touchdown) · On The House.\n\n## Momentos para o som\n\n- 0–1,85 s: música abafada, como alto-falante do celular; abre de vez quando o AirPods conecta, com o \"ding\" de conexão.\n\n- 1,85–14,8 s: música limpa; as entradas de tela batem na percussão da própria música, sem efeitos sonoros à parte.\n\n- 14,8–17 s: a música volta a abafar e apaga com o brilho magenta."
43
+ },
44
+ {
45
+ "titulo": "A identidade visual",
46
+ "texto": "**Resumo:** interface da Apple em telas claras (`#E2E2E6`) e escuras, SF Pro Display, mapas do Apple Maps em modo escuro, azul do iMessage (`#1A82FB`), rosa do Apple Music (`#FA2D48`) e um fecho magenta. Câmera 3D que nunca para e flashes de exposição nos cortes. Números tirados do `cenas.jsx`.\n\n## Palco\n\n | \n\n | Peça\n | Como é\n\n | Tela\n | 1080×1080, 30 qps, desfoque de movimento ligado, obturador 270°\n\n | Renderizador\n | Advanced 3D: as cenas 1, 2, 4 e 10 giram em 3D\n\n | Montagem\n | 11 precomps em fila na comp `RECRIACAO`; cada uma termina quando a próxima começa\n\n## Cores\n\n | \n\n | Peça\n | Valor\n\n | Fundo das telas claras\n | `#E2E2E6`\n\n | Balão do iMessage\n | `#1A82FB`\n\n | Rosa do Apple Music\n | `#FA2D48`\n\n | Widget \"Tocando agora\"\n | bege (0,66; 0,60; 0,50)\n\n | Oceano do mapa do Fogo\n | (33, 55, 130), o mesmo do fundo da cena, para a borda do mapa não aparecer\n\n | Telas escuras\n | cinzas de 6% a 13%\n\n | Fecho\n | magenta (0,86; 0,20; 0,86)\n\n## Fontes\n\n | \n\n | Fonte\n | Onde\n\n | SF Pro Display Bold\n | cidades no mapa (74 px, branco com sombra) e \"yuh!\" (190 px)\n\n | SF Pro Display Medium\n | o perfil no fecho (70 px)\n\n | SF Pro Display Regular\n | crédito (26 px), balões e busca\n\n | SF Pro Text\n | textos pequenos das telas (lista de faixas, botões)\n\n## Cena a cena\n\n | \n\n | Cena\n | Números\n\n | 1 · iPhone 3D\n | objeto deitado de 560×340: metade escura com as lentes e a maçã, painel branco de 270×330 com o Memoji; gira em Z de −24° a −10° e em Y de −30° a 80°; clarão branco de 0,19 a 0,27 s\n\n | 2 · AirPods\n | celular deitado de 600×330, borda 16; o widget abre em X de 36% a 100% em 0,1 s; a pílula entra com escala em 0,2/0,32/0,5 s e o botão liga em 0,85–0,95 s; câmera com escala 134 › 238% e inclinação X até 32° em 1 s; degradê vermelho a partir de 0,78 s\n\n | 3 · Fogo\n | mapa ancorado no ponto azul, escala 92 › 76% (até 1,1 s), 46 › 50% depois do corte; Exposure −2,9 › +2,4 › +1,6 › 0 entre 1,10 e 1,21 s e um segundo pico de 0,5 em 1,72 s; Motion Blur de 90°; Black & White e Levels entram em 1,11–1,14 s; rota tracejada desenhada em 2,45–2,75 s\n\n | 4 · Texas\n | cartão de 600 px (borda 616) gira em Y de −78° a 0°; contorno de 151 pontos a 42%, traço tracejado com Trim Paths de 18 a 100% em 0,55 s\n\n | 5 · TX\n | mapa ancorado no pin; escala 58 › 72 › 86 › 120%; desfoque gaussiano 9 no mapa; \"TX\" digitado em 0,07–0,17 s, \"I can\" em 0,77–0,90 s; brilho ciano de 1,0 a 1,6 s; selo dos logos cai de −260 px entre 1,15 e 1,42 s\n\n | 6 · Digitando\n | balão preto de 280×120 com o rabinho em círculos; bolinhas com `70 + 30*Math.sin(time*9 - i*1.1)`; deriva de 620 para 520 px\n\n | 7 · iMessage\n | balão de 400×92 a 150 › 128%; \"tell the\" entra antes de \"truth, bae\"; posição em Y 780 › 717 › 596 › 470 › 400\n\n | 8 · yuh!\n | quadrado de 600 px que vai de azul a marinho e a escuro; \"yuh!\" a 190 px com cópias amarela e rosa deslocadas (0,46–0,95 s); zoom final a 170% com desfoque\n\n | 9 · Octane\n | brilhos oliva e rosa; câmera com escala 64 › 80 › 112 › 118%; cartões neon de 560×420 em duotone; busca de 850×76 digitando \"Octane\" em 0,6–1,1 s; resultado entra em 1,2–1,28 s\n\n | 10 · Álbum\n | página de 1080×2200 em camada 3D com âncora no topo; sobe de y 120 a −1450 com escala 60 › 124%; rotação X 14–18° e Y −10° a −14°; faixa 10 digitada em 1,1–1,3 s, com piscada branca em 1,55–1,68 s; apaga no preto a partir de 2,12 s\n\n | 11 · Fecho\n | brilho magenta; o perfil muda de cinza para magenta e apaga com desfoque; crédito em cinza logo abaixo\n\n## O que é \"humano\" neste vídeo\n\n- Toda câmera tem chave no último quadro da cena: nada para morto antes do corte.\n\n- As bolinhas de \"digitando\" pulsam em onda, uma depois da outra.\n\n- O flash de exposição carrega desfoque de movimento: parece a câmera piscando, e não um efeito."
47
+ },
48
+ {
49
+ "titulo": "A montagem no After Effects",
50
+ "texto": "| \n\n | Arquivo\n | O que faz\n\n | `ae/cenas.jsx`\n | cria um projeto novo e monta tudo. No topo: `PERFIL`, `CREDITO`, fontes e cores medidas nos quadros. Ajudantes: `ret`, `elipse`, `texto`, `digita` (letra por letra), `pop` (cresce, passa e assenta), `recorte` (máscara arredondada), `duotone`, `desfoqueCena`, `opacidade` (para grupos) e `imagemOu` (asset real ou retângulo provisório). Cada cena é uma função (`s1` a `s11`); a lista `cenas` no fim diz quando cada uma começa\n\n | `ae/recriacao.aep`\n | o resultado do script, para abrir e renderizar direto\n\n- **Fontes:** instale SF Pro Display e SF Pro Text em `C:\\Program Files\\Common Files\\Adobe\\Fonts` e reinicie o After Effects.\n\n- **Arquivos de fora:** ponha as capas em `assets/capas/`, os logos em `assets/logos/`, as fotos recortadas em `assets/pessoas/` e a música em `referencia/audio.wav` (nomes no `FONTES.md`), ou troque os nomes no script.\n\n- **Abrir:** `projeto/ae/recriacao.aep`. Se o AE pedir arquivos, aponte para `projeto/assets/`.\n\n- **Adaptar:** troque `PERFIL` e `CREDITO`, os textos de cada cena e as imagens; rode File › Scripts › Run Script File › `cenas.jsx`.\n\n- **Render:** fila do AE em H.264, com o renderizador Advanced 3D. Se renderizar em trechos, cole o áudio depois com o ffmpeg, direto do arquivo de música, com `apad` para não perder os últimos quadros.\n\n**Pegadinhas:** efeito e opacidade num null não chegam aos filhos (use `opacidade()` ou uma camada de ajuste). Filho 2D ignora as rotações X e Y de um pai 3D: os filhos também precisam ser 3D. O Exposure trabalha em gama: −2,9 stops escurecem a imagem para uns 40%, e não para quase preto. Um null que escala precisa da âncora no ponto que fica parado; senão, escala em volta do canto da comp."
51
+ },
52
+ {
53
+ "titulo": "As decisões de direção",
54
+ "texto": "- **Cada verso, uma tela que todo mundo conhece.** A letra é ilustrada ao pé da letra com interface real: o público entende cada imagem sem legenda.\n\n- **Imagem real, nada genérico.** Mapa de verdade, logo oficial dos times, capa oficial do álbum e foto real dos artistas.\n\n- **A câmera nunca para.** Cada cena entra com a câmera já em movimento e sai ainda andando: escala, posição e rotação sempre com chaves até o último quadro.\n\n- **O corte é um flash.** Nas trocas de mapa, um pico de Exposure com desfoque de movimento faz o papel da transição, no tempo da batida.\n\n- **A cor conta a história.** O mapa do Fogo perde a cor (\"by myself\"), o \"yuh!\" ganha cópias amarela e rosa, e o fim fica num brilho magenta.\n\n- **Digitado no ritmo da voz.** \"TX\", \"Octane\" e \"On The House\" são digitados letra a letra no tempo em que a palavra é cantada.\n\nDetalhes de cores, tempos e números: estilo.md. Cenas e letra por tempo: roteiro.md. Para fazer o seu com outra música: PROMPT.md."
55
+ },
56
+ {
57
+ "titulo": "As versões até o final",
58
+ "texto": "| \n\n | Versão\n | O que mudou\n\n | **v1**\n | recriação o mais próxima possível do reel, cena a cena, ajustada lado a lado com o original; assinatura com o seu perfil e crédito ao reel"
59
+ }
60
+ ],
61
+ "pacote": [
62
+ {
63
+ "pasta": "projeto/",
64
+ "conteudo": "`ae/cenas.jsx` (o gerador comentado), `ae/recriacao.aep` (o projeto montado), `assets/` (Memoji, mapas e contorno do Texas em SVG e JSON) e `assets/FONTES.md` (de onde veio cada imagem e como foi tratada)"
65
+ },
66
+ {
67
+ "pasta": "referencias/",
68
+ "conteudo": "`estudo-da-referencia.md` (cena por cena, com a letra), `links.md` e `fora-do-pacote.md`"
69
+ },
70
+ {
71
+ "pasta": "render.mp4",
72
+ "conteudo": "o vídeo final"
73
+ },
74
+ {
75
+ "pasta": "ae/cenas.jsx",
76
+ "conteudo": "cria um projeto novo e monta tudo. No topo: `PERFIL`, `CREDITO`, fontes e cores medidas nos quadros. Ajudantes: `ret`, `elipse`, `texto`, `digita` (letra por letra), `pop` (cresce, passa e assenta), `recorte` (máscara arredondada), `duotone`, `desfoqueCena`, `opacidade` (para grupos) e `imagemOu` (asset real ou retângulo provisório). Cada cena é uma função (`s1` a `s11`); a lista `cenas` no fim diz quando cada uma começa"
77
+ },
78
+ {
79
+ "pasta": "ae/recriacao.aep",
80
+ "conteudo": "o resultado do script, para abrir e renderizar direto"
81
+ }
82
+ ],
83
+ "prompt": "Quero um lyric edit no mesmo método do projeto \"Solar Eclipse\", que está em 07-videos/projetos/solar-eclipse/: cada verso da música vira uma tela real do iPhone.\n\nMúsica e trecho (arquivo e segundos de início e fim): {{MUSICA}}\nLetra do trecho, verso por verso: {{LETRA}}\nMeu perfil (aparece no fecho): {{PERFIL}}\nCrédito embaixo do perfil (ou deixe vazio para não ter): {{CREDITO}}\nFormato (1:1 como o original, ou 9:16): {{FORMATO}}\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 LEIA-ME.md, estilo.md e roteiro.md e abra projeto/ae/cenas.jsx: os ajudantes do topo (digita, pop, recorte, duotone, opacidade, imagemOu), as funções s1 a s11 e a lista cenas no fim. Me diga em poucas linhas o que muda com a minha música.\n\n2. Meça a música: tempos de cada palavra (transcrição com marcação de tempo) e os tempos fortes da batida. Monte uma tabela verso › tempo de início › tela.\n\n3. Para cada verso, escolha a tela que ilustra a frase ao pé da letra, com interface real que qualquer pessoa reconhece: mapa (lugar citado), iMessage (fala ou pergunta), busca e página de álbum (nome de música ou disco), notificação, Música tocando, Fotos, Clima, Carteira... Me mostre a lista e espere meu ok.\n\n4. Junte os assets reais antes de animar: print do mapa do lugar em modo escuro, capa oficial, logo oficial, foto real de quem é citado. Anote de onde veio cada um num FONTES.md, como o do projeto.\n\n5. Construa copiando o projeto, sem editar o original: reaproveite as cenas que servem (troque textos, imagens e tempos) e escreva cenas novas com os mesmos ajudantes. Mantenha a câmera viva até o último quadro de cada cena, o flash de exposição com desfoque de movimento nos cortes e o texto digitado no tempo da voz. Rode o cenas.jsx e me mostre uma folha de contato com 12 quadros, incluindo o meio dos movimentos.\n\n6. Revise antes do render: tela que troca antes da palavra, câmera parada antes do corte, borda de mapa aparecendo, texto cortado e quadros pretos fora do fecho.\n\n7. Renderize em H.264 com o Advanced 3D. Se for em trechos, confira cada trecho com blackdetect e cole o áudio depois com o ffmpeg, direto do arquivo de música (apad para não perder os últimos quadros). Entregue o MP4 e uma anotação do que mudou em relação ao projeto.",
84
+ "campos": [
85
+ "CREDITO",
86
+ "FORMATO",
87
+ "LETRA",
88
+ "MUSICA",
89
+ "PERFIL"
90
+ ],
91
+ "fonte": {
92
+ "nome": "Clube do Motion",
93
+ "url": "https://clubedomotion.com/projeto/?id=solar-eclipse",
94
+ "uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
95
+ }
96
+ }
@@ -0,0 +1,128 @@
1
+ {
2
+ "id": "clube-soldier",
3
+ "titulo": "O som em volta dela",
4
+ "categoria": "sound",
5
+ "resumo": "Reel vertical de 62 s, sem narração, com a tese no gancho: o que faz algo parecer cinematográfico é o som em volta da música, e não a música em si. \"Soldier\" (Tommee Profitt, com Fleurie) toca primeiro como ela é e depois no remix cinematográfico que o Claude montou com efeitos tonais no tom da música, numa timeline de editor que marcha em preto e branco de filme até o drop, quando o latão e o bronze chegam. Uma caixa de latão viva pula de tom em tom e de acorde em acorde nos nomes dos clipes. Tudo é um take único em HTML com o quadro calculado pelo tempo, renderizado a 60 qps com desfoque de movimento. Feito pelo Clube do Motion e publicado no Instagram.",
6
+ "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.",
7
+ "estilo": [
8
+ "timeline viva",
9
+ "antes e depois",
10
+ "sound design tonal",
11
+ "preto e branco de filme",
12
+ "caixa de destaque viva",
13
+ "texto que nasce em latão e esfria",
14
+ "marcha no tempo da música",
15
+ "take único"
16
+ ],
17
+ "ficha": {
18
+ "formato": "1080×1920, 60 qps, 9:16, H.264 (CRF 16) com AAC de 256 kbps, cor BT.709, 134,3 MB",
19
+ "duracao": "62,0 s (3.720 quadros), sem narração",
20
+ "motor": "html",
21
+ "voz": "ver o guia de estilo",
22
+ "musica": "\"Soldier\" (Tommee Profitt, com Fleurie): o original no gancho e no normal, o remix cinematográfico v8 no edit (Lá menor harmônica, com Mi maior antes do drop, 83,3 BPM, drop em 39,40 s do remix)",
23
+ "fontes": "ver o guia de estilo"
24
+ },
25
+ "ferramentas": [
26
+ "Claude Code"
27
+ ],
28
+ "ficha_tecnica": {
29
+ "Duração": "62,0 s (3.720 quadros), sem narração",
30
+ "Formato": "1080×1920, 60 qps, 9:16, H.264 (CRF 16) com AAC de 256 kbps, cor BT.709, 134,3 MB",
31
+ "Ferramenta": "HTML + canvas num take único, motor `take-unico` (render no Chromium sem janela, obturador de 180°); trilha, dados e preparo das imagens em Python",
32
+ "Música": "\"Soldier\" (Tommee Profitt, com Fleurie): o original no gancho e no normal, o remix cinematográfico v8 no edit (Lá menor harmônica, com Mi maior antes do drop, 83,3 BPM, drop em 39,40 s do remix)",
33
+ "Timeline": "22 clipes do remix e a música original inteira, com a onda calculada do áudio de cada camada e o tom no nome",
34
+ "Som": "71 eventos exportados da composição; −14,0 LUFS, pico verdadeiro de −1,4 dBFS",
35
+ "Referência": "um short do Multiply Sound que compara, na mesma timeline, efeitos comuns e efeitos tonais no tom da música"
36
+ },
37
+ "etapas": [
38
+ {
39
+ "titulo": "O roteiro",
40
+ "texto": "**Resumo:** o Reel não tem narração; o roteiro é a sequência de telas, com o texto exato que aparece, e os momentos da trilha. O ângulo do vídeo está no gancho: o que faz algo parecer cinematográfico é o som em volta da música. Os tempos são os do vídeo final (v2); no edit, o segundo do remix é o segundo do vídeo menos 12,42.\n\n## De onde veio a estrutura\n\nO formato vem de um short do Multiply Sound que toca, na mesma timeline, efeitos comuns e efeitos tonais no tom da música. Aqui a comparação é entre a música normal e a música que o Claude editou, e o tom de cada efeito aparece no nome do clipe, como no short. A primeira versão explicava cada elemento com um bloco de texto; a versão final trocou os blocos por uma etiqueta curta presa ao clipe e pelas notas que saem dele.\n\n## Textos na tela\n\n | \n\n | Onde\n | Texto\n\n | Gancho\n | \"O que faz parecer / algo cinematográfico / não é a música, / é o som em volta dela\" → \"Dá uma olhada →\"\n\n | Normal\n | \"Música normal\"\n\n | Antes do edit\n | \"Agora, o edit do Claude\", que vira a pílula \"Edit do Claude\"\n\n | Etiquetas (uma por vez)\n | \"Piano: abre o clima de filme\" · \"Fundo: dá peso de cinema\" · \"Só a voz da Fleurie\" · \"Violoncelo: responde a voz\" · \"Piano: acompanha a música\" · \"Subida: prepara a explosão\" · \"A música inteira explode aqui\"\n\n | Clipes\n | nome e tom: \"Piano Ping (A)\", \"Atlantic (A)\", \"Soft Circuit (Am)\", \"Cello Color (C)\", \"Electric Wave (C)\", \"Activation (A)\", \"Breathe (A)\", \"Breach (Am)\", \"Tommee Profitt - Soldier (Am)\"\n\n | Notas\n | ♪ Lá, Mi, Sol; acordes F, Dm, C, Am, E\n\n | Crédito\n | \"Tommee Profitt – Soldier (feat. Fleurie)\" com a capa do álbum\n\n | CTA\n | \"Comenta DJ que eu te mando o passo a passo\", com a marca do Claude Code\n\n## Cenas por tempo\n\n | \n\n | #\n | Tempo (s)\n | O que acontece\n\n | 1\n | 0,04–1,78\n | o gancho cai uma frase por tempo, em P&B com grão: \"O que faz parecer / algo cinematográfico / não é a música,\"\n\n | 2\n | 2,14–3,20\n | \"é o\" e \"som em volta dela\", que pousa no compasso (2,84 s) com tremor\n\n | 3\n | 3,56–3,86\n | \"Dá uma olhada →\", com a seta desenhada\n\n | 4\n | 4,26–4,96\n | \"música\" cresce até virar o clipe azul e a seta vira o cursor\n\n | 5\n | 4,96–11,97\n | **Música normal**: cinza liso, o cursor toca a mesma frase que o remix usa (\"promised land… gotta wipe the\")\n\n | 6\n | 11,97–12,42\n | tape stop: o cursor volta ao zero do remix e a câmera abre\n\n | 7\n | 12,42\n | \"Agora, o edit do Claude\"; íris de filme do cursor; o clipe se divide; o Piano Ping pousa\n\n | 8\n | 13,5–14,1\n | o título encolhe até a pílula; \"Piano: abre o clima de filme\" (14,1 s); drones e violoncelo marcham para as trilhas\n\n | 9\n | 16,3\n | \"Fundo: dá peso de cinema\", com a caixa de latão abraçando \"(A)\" e \"(Am)\"\n\n | 10\n | 22,7\n | a voz: \"Só a voz da Fleurie\", e a foto P&B ao piano sai da miniatura do clipe da voz\n\n | 11\n | 26,3\n | \"Violoncelo: responde a voz\"; a foto volta para a miniatura\n\n | 12\n | 29,1–49,1\n | \"Piano: acompanha a música\"; a caixa pula de acorde em acorde (F, Dm, Dm, C, Am, Dm, E), um por compasso\n\n | 13\n | 47,0\n | \"Subida: prepara a explosão\": Activation e Breathe; a câmera empurra\n\n | 14\n | **51,82**\n | **drop** seco no \"Soldier\": latão e bronze, a foto em cor, clarão; \"A música inteira explode aqui\"; a timeline marcha nos compassos e nos bumbos\n\n | 15\n | 52,8\n | a pílula vira o crédito com a capa do álbum\n\n | 16\n | 57,0–58,6\n | CTA: o amanhecer âmbar sobe, a caixa de latão vira o \"DJ\" (57,7 s) e a marca do Claude Code entra (58,6 s)\n\n | 17\n | 58,6–62,0\n | a música desce até sobrar o Piano Ping e o vídeo termina\n\n## Momentos para a trilha\n\n- 0–4,96 s: a faixa abafada abrindo em três tempos; uma tecla e uma nota por frase e por palavra; o peso de piano grave e sino em \"som em volta dela\".\n\n- 4,96 s: a frase normal, com o ar que abre junto com o filtro.\n\n- 11,97 s: tape stop de 0,45 s com cauda de sala.\n\n- 12,42 s: o remix do zero; efeitos 14 a 30 dB abaixo da música.\n\n- **51,82 s: drop do remix**, no mesmo nível do refrão original.\n\n- 57,0 s: o remix passa para as camadas e tudo desce em 3,8 s, menos o Piano Ping; um ping fecha num tempo.\n\nA lista completa dos 71 eventos, com tempo, tipo e pan, está em `audio/eventos.json`; os 22 clipes do remix, com trilha e começo e fim, em `comp/dados/timeline-resumo.md`."
41
+ },
42
+ {
43
+ "titulo": "A identidade visual",
44
+ "texto": "**Resumo:** um filme em preto e branco com grão no gancho e no edit, um cinza liso no trecho normal, latão e bronze no drop e um amanhecer âmbar no fim. O preto e branco vem da capa de \"Love and War\", o metal vem da foto da Fleurie e o amanhecer vem da letra. A timeline mantém as cores do editor dos shorts do Multiply Sound, e o tom de cada clipe é o destaque. Cores medidas por k-means nas imagens oficiais; números tirados do `index.html`, do `trilha.py` e da revisão do projeto.\n\n## Cores medidas\n\n- **Capa de \"Love and War\" (Fleurie):** preto `#191919` (38%), grafite `#2A2A2A` (35%), `#4D4D4D`, `#747474`, `#A2A2A2` e prata `#CCCCCC`.\n\n- **Capa do Cinematic Songs Vol. 1:** noite `#040911`, azul-aço `#162D3B`, título `#C55350`.\n\n- **Foto da Fleurie:** marrom `#603124`, bronze `#905736`, cobre `#BD7E51`, latão claro `#DAA67D`, vinho `#2B1213`.\n\n## Mundos\n\n | \n\n | Mundo\n | Quando\n | Como é\n\n | Filme P&B\n | gancho e edit até o drop\n | `#191919` → `#2A2A2A` com prata `#ECEAE4`, luz de cima e poeira, como a foto da Fleurie ao piano; grão de filme\n\n | Cinza liso\n | música normal\n | cinza `#2A2A2E`, onda `#B9B9BE`, sem grão nem luz\n\n | Latão e bronze\n | drop\n | luz `#905736` pulsando nos bumbos e a foto da Fleurie em cor no fundo\n\n | Amanhecer\n | CTA\n | âmbar `#E9A55B` sobre `#603124`, subindo por trás\n\n## Tipografia\n\n- **Cormorant Garamond 600** nos textos, com itálico nas palavras-chave.\n\n- **Inter** nos rótulos e nos clipes: nome em Inter 32 e tom em Inter 800 de 40 px, sobre um chip escuro.\n\n- **Etiquetas:** Inter 600 de 44 px numa caixa escura com borda de latão e um bico apontando o clipe.\n\n- Nome que não cabe encolhe junto com o tom, mas o tom nunca é cortado; `text-wrap: balance` nos textos de mais de uma linha.\n\n## Timeline\n\n- Cores do editor como assinatura do formato: música em azul, tonais em verde-água, cursor vermelho; o P&B e o latão ficam no ambiente.\n\n- 22 clipes do plano do remix e a música original inteira, com onda a 40 pontos por segundo, escala de −42 a 0 dB.\n\n- Nove trilhas: música, voz, Piano Ping, Atlantic, Soft Circuit, violoncelo, Electric Wave (os acordes), Activation e Breach, Breathe.\n\n- Acordes grandes dentro dos clipes de piano: F, Dm, C, Am, E.\n\n- Na v2, a timeline subiu (topo em 560 px) e cresceu: zoom de 1,22 no começo e 0,92 no drop.\n\n## Caixa de latão viva\n\n- Uma caixa de latão abraça o tom que está soando (\"(A)\", \"(Am)\") e pula de acorde em acorde nos clipes de piano.\n\n- Move com mola (ζ 0,72, ω 13) e só pula a cada compasso (2,86 s), para o olho acompanhar a música.\n\n- No CTA, a caixa vira o \"DJ\".\n\n## Notas e etiquetas\n\n | \n\n | Peça\n | Como é\n\n | Notas\n | ♪ e o nome em solfejo nos golpes medidos na onda de cada clipe: \"Lá\" no Piano Ping, nos risers e no Breach; \"Lá\", \"Mi\", \"Mi\", \"Sol\" no violoncelo; uma nota a cada dois compassos nos drones; a letra do acorde nos clipes de piano. A nota nasce no ponto do clipe onde está o cursor, sobe cerca de 150 px e some em 1,9 s\n\n | Etiquetas\n | uma por elemento, presa ao clipe, entra com ele e sai em cerca de 2,5 s; no máximo uma por vez (conferido a 10 qps)\n\n | Foto da Fleurie\n | a foto em P&B ao piano vira a miniatura do clipe da voz na separação; quando ela canta, a foto sai da miniatura, flutua ao lado e volta\n\n## Texto que nasce em latão e esfria\n\nCada palavra nasce em latão `#DAA67D` e passa para a prata em cerca de 0,5 s.\n\n## Movimento: tudo marcha no tempo\n\n- 83,3 BPM e compassos medidos pelo beat_this.\n\n- O gancho cai uma frase por tempo (0 · 0,72 · 1,42 s); \"som em volta dela\" pousa no compasso (2,84 s) com um tremor curto.\n\n- Cada camada marcha da direita e pousa num tempo, cerca de 0,6 s antes de tocar, achatando no pé, com um soco de zoom ao pousar.\n\n- Depois do drop, a timeline dá o passo nos compassos e empurra nos bumbos medidos.\n\n- Entre os passos, deriva lenta; a câmera nunca para (respiros de 11% no oráculo, porque a timeline anda o tempo todo).\n\n## Transições\n\n- **Gancho → normal:** a palavra \"música\" cresce até virar o clipe azul e a seta do \"Dá uma olhada\" vira o cursor.\n\n- **Normal → edit:** tape stop com o cursor voltando ao zero do remix; \"Agora, o edit do Claude\"; uma íris de filme nasce do cursor; o clipe se divide (a voz fica, o instrumental cai, a cauda vira o clipe do drop).\n\n- **Título → pílula → crédito:** o título encolhe até a pílula \"Edit do Claude\", que vira o crédito com a capa no drop.\n\n- **Caixa → CTA:** a caixa de latão vira o \"DJ\"; o amanhecer sobe e a marca do Claude Code entra.\n\n## Câmera\n\n- 1,3× fixa com deriva lenta no gancho; segue o cursor de 1,3 a 1,38 no normal.\n\n- Abre para 0,5× na rebobinada e entra em 1,15× no edit.\n\n- Empurra de 0,84 a 0,94 na subida até o drop; 0,8× com tremor no drop.\n\n- Desce e abre para 0,62× no CTA.\n\n## Render\n\n60 qps, obturador de 180°, em dois trechos (0 a 31 s e 31 s em diante). Na junção, grão de filme só no gancho e no edit (o normal fica liso), H.264 CRF 16, BT.709 e AAC de 256 kbps.\n\n## Trilha\n\n | \n\n | Trecho\n | Som\n\n | Gancho\n | a própria faixa a partir de 41,46 s dela, abafada por passa-baixa de 350 Hz que abre até 18 kHz entre 2,84 e 4,96 s (três tempos), com uma sala que some junto; o nível de curto prazo segura em cerca de −23 LUFS\n\n | Normal\n | 46,42 a 53,43 s da faixa (\"promised land… gotta wipe the\"), a mesma frase que a voz do remix canta\n\n | Virada\n | tape stop real de 0,45 s com cauda de sala\n\n | Edit\n | o remix v8 do zero, com o drop no mesmo nível do refrão original\n\n | CTA\n | passa para as camadas do remix e tudo desce em 3,8 s, menos o Piano Ping; um ping do próprio remix fecha num tempo da música\n\n## Sound design\n\n | \n\n | Evento\n | Som\n\n | Cada frase do gancho\n | tecla e uma nota de piano (Lá, Dó, Mi, Lá)\n\n | Cada palavra\n | tecla e glock em Lá menor pentatônico\n\n | \"som em volta dela\"\n | acorde grave de piano em Lá, impacto e sino tonal no compasso\n\n | Seta e carry\n | whoosh curto com glock; whoosh longo com harpa em Lá\n\n | Normal\n | pop e um riser curto, o ar que abre junto com o filtro\n\n | Rebobinada, título e troca de mundo\n | fita, whoosh curto e whoosh grave\n\n | Clipe que marcha\n | papel deslizando, bem baixo\n\n | Etiquetas\n | pop e glock ao entrar, whoosh curto ao sair\n\n | Caixa de latão\n | tecla\n\n | Foto\n | obturador; whoosh curto quando ela volta para a miniatura\n\n | CTA\n | whoosh longo; clique, glock e sino no \"DJ\"; pop na marca\n\n- No edit, os efeitos ficam 14 a 30 dB abaixo da música: o remix é o conteúdo.\n\n- **Final:** −14,0 LUFS, pico verdadeiro de −1,4 dBFS (limitador a 192 kHz na mix).\n\n## O que é \"humano\" neste vídeo\n\n- A caixa de latão chega com mola, sem movimento linear.\n\n- Os clipes pousam com peso, achatando no pé, como uma tropa formando.\n\n- A poeira e a luz de cima nunca param, mesmo nos trechos calmos.\n\n- O amanhecer sobe devagar enquanto a música desce."
45
+ },
46
+ {
47
+ "titulo": "A montagem em HTML",
48
+ "texto": "| \n\n | Arquivo\n | O que faz\n\n | `comp/index.html`\n | no cabeçalho fica a folha de batidas; no topo, `SOFF` (segundo da música no gancho e no normal), `N0`, `RB`, `A0` e `R(r)`, que converte segundo do remix em segundo do vídeo, e a tabela `T` com o instante de cada elemento; `seek(t)` monta o quadro; `montaNotas` e `desenhaNotas` fazem as notas saírem dos clipes; `window.__events()` devolve os eventos\n\n | `comp/preparar_assets.py`\n | gera as versões de uso das fotos: fundos desfocados, o cartão em preto e branco e a capa em 640 px\n\n | `take-unico/render_take.py`\n | renderiza a composição com obturador de 180°; `--stills`, `--previa`, `--trechos` e `--retomar`\n\n | `take-unico/oraculo_take.py`\n | confere continuidade, enquadramento, respiros e saltos; `--eventos` exporta os eventos para a trilha\n\n | `audio/timeline_dados.py`\n | renderiza cada camada do remix sozinha, com o mesmo ganho e filtro da mixagem, e grava `comp/dados/timeline.js` e o resumo\n\n | `audio/batidas.py`\n | tempos e compassos (beat_this) e bumbos do remix para `comp/dados/batidas.js`\n\n | `audio/trilha.py`\n | música abafada no gancho, tape stop, remix do zero com o drop no nível do refrão original, um efeito por palavra e por elemento; mix em −14 LUFS\n\n | `render/comum.sh`\n | memória livre, trava entre agentes, trecho com `--retomar` e a junção com grão de filme só no gancho e no edit (o normal fica liso)\n\n | `audio/remix/`\n | o plano do remix (`cinematografico-v8.json`), a separação da voz, as camadas e a mixagem com a voz na frente (`render.sh v8` roda tudo)\n\n- **Junte as pastas:** descompacte `projeto/` dentro de `07-videos/projetos/soldier/` 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- **Imagens:** baixe a capa e as fotos pelos links de `referencias/fontes.md` e rode `python preparar_assets.py` dentro de `comp/` para gerar as versões de uso, ou troque pelas do seu artista.\n\n- **Instale:** Python 3.11 com numpy, scipy, soundfile, librosa, pyloudnorm, Pillow e playwright (`playwright install chromium`), o beat_this e o ffmpeg.\n\n- **Aponte os caminhos:** no topo de `audio/trilha.py`, `timeline_dados.py` e `batidas.py`, troque o `sys.path` por `audio/motor/`, `N` por `audio/sfx/`, `TON` pela sua pasta de efeitos tonais e `SOL`/`FONTE` pela pasta da sua música e do seu remix.\n\n- **Ver no navegador:** `comp/index.html?t=51.9&hud` para parar no drop ou `?play` para tocar.\n\n- **Conferência:** `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 v3` (30 qps) para conferir e `bash render/final.sh v3` para o final (dois trechos, grão de filme e som).\n\n**Pegadinhas:** o `comum.sh` usa uma trava entre agentes em `C:/Dev/_tools/.lock-render` e espera 8 GB de memória livre pelo Windows; troque pelo que fizer sentido na sua máquina. Nome de clipe que não cabe encolhe junto com o tom, mas o tom nunca é cortado. A faixa original quase some antes de \"promised land\", então o nível de curto prazo da cama do gancho é segurado em cerca de −23 LUFS."
49
+ },
50
+ {
51
+ "titulo": "As decisões de direção",
52
+ "texto": "- **O tom é a estrela.** Cada clipe mostra o nome e o tom em destaque (\"Atlantic (A)\", \"Cello Color (C)\", \"Tommee Profitt - Soldier (Am)\"), e os acordes aparecem grandes dentro dos clipes de piano (F, Dm, C, Am, E).\n\n- **Caixa de latão viva:** uma caixa anda de tom em tom e pula de acorde em acorde a cada compasso, com mola, ligando o olho ao que está soando.\n\n- **Tudo marcha no tempo da música:** o gancho cai uma frase por tempo, cada camada marcha da direita e pousa um tempo antes de tocar (cerca de 0,6 s), e depois do drop a timeline dá o passo nos compassos e empurra nos bumbos.\n\n- **Preto e branco de filme até o drop.** O mundo vem da capa de \"Love and War\" e da foto da Fleurie ao piano; no \"Soldier\", o latão e o bronze chegam de uma vez e a foto ganha cor.\n\n- **Para quem não é técnico:** nenhuma frase explicativa, só uma etiqueta por elemento, presa ao clipe e no máximo uma por vez, e as notas em solfejo saindo dos clipes nos golpes medidos.\n\n- **A foto da cantora sai do clipe da voz**, flutua ao lado e volta para a miniatura.\n\n- **O texto nasce em latão e esfria para prata** em cerca de 0,5 s.\n\n- **A música nunca para:** a faixa toca abafada desde a primeira palavra e abre em três tempos até o normal; o drop do remix fica no mesmo nível do refrão original.\n\n- **Cada passagem leva algo adiante:** \"música\" vira o clipe azul, a seta vira o cursor, o título vira a pílula e depois o crédito, a caixa de latão vira o \"DJ\" do CTA.\n\n- **Fim com amanhecer âmbar**, como na letra (\"waiting on that morning sun\"), e a música descendo até sobrar o Piano Ping.\n\nDetalhes de cores, curvas e som: estilo.md. Cenas por tempo e textos: roteiro.md. Para fazer o mesmo com a sua música: PROMPT.md."
53
+ },
54
+ {
55
+ "titulo": "As versões até o final",
56
+ "texto": "| \n\n | Versão\n | O que mudou\n\n | v1\n | gancho, normal, rebobinada, edit com oito blocos de explicação ligados à caixa de latão por um fio pontilhado, drop e CTA; nos rascunhos, a timeline foi ancorada abaixo dos textos, os nomes cresceram 20% e o filtro do gancho passou a abrir em três tempos\n\n | **v2**\n | aprovada e publicada: saíram os blocos de explicação e o fio; entraram as notas saindo dos clipes, uma etiqueta por elemento e a foto da Fleurie saindo da miniatura do clipe da voz; a timeline subiu (topo em 560 px) e cresceu (zoom de 1,22 no começo e 0,92 no drop)"
57
+ }
58
+ ],
59
+ "pacote": [
60
+ {
61
+ "pasta": "projeto/",
62
+ "conteudo": "`comp/index.html` (o Reel inteiro), `comp/preparar_assets.py` (fundos desfocados, cartão P&B e capa reduzida), `comp/dados/` (`timeline.js`, `batidas.js`, `timeline-resumo.md`), `comp/fonts/` (Cormorant Garamond, Inter, Source Serif 4, Geist Mono, Material Icons), `comp/assets/` (símbolo do Claude, ícones do Claude Code, After Effects e Instagram), `render/` (`comum.sh`, `rascunho.sh`, `final.sh`, `trava.sh`), `take-unico/` (o motor), `roteiro.md` e `legenda.md`"
63
+ },
64
+ {
65
+ "pasta": "audio/",
66
+ "conteudo": "`trilha.py` (o som inteiro), `timeline_dados.py`, `batidas.py`, `eventos.json`, `mix.wav`, `notas/` (glock, harpa, marimba e piano gerados), `sfx/` (os efeitos de interface usados), `motor/` (`orquestra.py`, `trilha_momentos.py`) e `remix/` (o plano v8, a medição e os scripts do remix)"
67
+ },
68
+ {
69
+ "pasta": "referencias/",
70
+ "conteudo": "identidade visual, fontes dos assets com os links, o brief dos Reels musicais, o estudo do remix, o tutorial do take único, `links.md` e `fora-do-pacote.md`"
71
+ },
72
+ {
73
+ "pasta": "render.mp4",
74
+ "conteudo": "o Reel final (v2)"
75
+ },
76
+ {
77
+ "pasta": "comp/index.html",
78
+ "conteudo": "no cabeçalho fica a folha de batidas; no topo, `SOFF` (segundo da música no gancho e no normal), `N0`, `RB`, `A0` e `R(r)`, que converte segundo do remix em segundo do vídeo, e a tabela `T` com o instante de cada elemento; `seek(t)` monta o quadro; `montaNotas` e `desenhaNotas` fazem as notas saírem dos clipes; `window.__events()` devolve os eventos"
79
+ },
80
+ {
81
+ "pasta": "comp/preparar_assets.py",
82
+ "conteudo": "gera as versões de uso das fotos: fundos desfocados, o cartão em preto e branco e a capa em 640 px"
83
+ },
84
+ {
85
+ "pasta": "take-unico/render_take.py",
86
+ "conteudo": "renderiza a composição com obturador de 180°; `--stills`, `--previa`, `--trechos` e `--retomar`"
87
+ },
88
+ {
89
+ "pasta": "take-unico/oraculo_take.py",
90
+ "conteudo": "confere continuidade, enquadramento, respiros e saltos; `--eventos` exporta os eventos para a trilha"
91
+ },
92
+ {
93
+ "pasta": "audio/timeline_dados.py",
94
+ "conteudo": "renderiza cada camada do remix sozinha, com o mesmo ganho e filtro da mixagem, e grava `comp/dados/timeline.js` e o resumo"
95
+ },
96
+ {
97
+ "pasta": "audio/batidas.py",
98
+ "conteudo": "tempos e compassos (beat_this) e bumbos do remix para `comp/dados/batidas.js`"
99
+ },
100
+ {
101
+ "pasta": "audio/trilha.py",
102
+ "conteudo": "música abafada no gancho, *tape stop*, remix do zero com o drop no nível do refrão original, um efeito por palavra e por elemento; mix em −14 LUFS"
103
+ },
104
+ {
105
+ "pasta": "render/comum.sh",
106
+ "conteudo": "memória livre, trava entre agentes, trecho com `--retomar` e a junção com grão de filme só no gancho e no edit (o normal fica liso)"
107
+ },
108
+ {
109
+ "pasta": "audio/remix/",
110
+ "conteudo": "o plano do remix (`cinematografico-v8.json`), a separação da voz, as camadas e a mixagem com a voz na frente (`render.sh v8` roda tudo)"
111
+ }
112
+ ],
113
+ "prompt": "Quero um Reel musical vertical, sem narração, no mesmo método do projeto \"Soldier\", que está em 07-videos/projetos/soldier/, com a minha música.\n\nMúsica (arquivo original, com o nome do artista e da faixa): {{MUSICA}}\nFrase que toca nas duas versões: {{FRASE}}\nVersão editada, se já existir (senão, monte com os scripts de audio/remix/): {{VERSAO_EDITADA}}\nTexto do gancho (o texto é meu; não reescreva): {{GANCHO}}\nFotos e capas 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 62 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 leia a folha de batidas do cabeçalho, os tempos do topo (SOFF, N0, RB, A0, R() e a tabela T), a marcha dos clipes, a caixa de latão, montaNotas e desenhaNotas, as etiquetas, o crédito e window.__events(). Leia também audio/timeline_dados.py, audio/trilha.py, render/comum.sh 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: tom (e o modo, se mudar antes do drop), BPM, tempos e compassos (beat_this), bumbos, a frase do normal, o drop e a relação entre o segundo da música e o segundo do remix. Tudo no vídeo vai cair nesses tempos.\n\n3. Tire a identidade do mundo da música: meça as cores das capas e das fotos do artista (k-means) e escolha um clima por trecho com causa na própria música (aqui, filme P&B até o drop, latão no drop e o amanhecer da letra no fim). Mantenha as cores do editor na timeline. Me mostre a paleta e espere meu ok.\n\n4. Gere os dados da timeline com timeline_dados.py: um clipe por camada do remix, com o nome e o tom do arquivo no nome (\"Atlantic (A)\"), e a onda calculada do áudio dela. O tom vem num chip escuro, maior que o nome, e nunca é cortado.\n\n5. Escreva a folha de batidas no cabeçalho do index.html antes de animar: o gancho cai uma frase por tempo e a frase-chave pousa no compasso; cada camada marcha e pousa um tempo antes de tocar; depois do drop, a timeline dá o passo nos compassos e empurra nos bumbos. Cada passagem leva algo adiante: palavra vira clipe, seta vira cursor, título vira pílula e depois crédito, a caixa de destaque vira a palavra do CTA.\n\n6. Construa copiando o projeto, sem editar o original. A caixa de destaque anda de tom em tom e de acorde em acorde, com mola e só a cada compasso. Para quem não é técnico: nenhuma frase explicativa, só uma etiqueta simples por elemento, presa ao clipe e no máximo uma por vez, e as notas em solfejo saindo dos clipes nos golpes medidos. A foto da cantora vira a miniatura do clipe da voz e sai dela quando ela canta.\n\n7. Som pelos eventos, num subagente: oraculo_take.py --eventos audio/eventos.json e trilha.py. A faixa abafada por baixo do gancho, abrindo em três tempos até o normal, com o nível de curto prazo segurado onde a música quase some; tape stop; o remix do zero, com o drop no nível do refrão original; efeitos do edit bem abaixo da música; no fim, tudo desce menos uma camada. Final a −14 LUFS, pico verdadeiro abaixo de −1 dBFS.\n\n8. Revise antes do final: stills de cada etiqueta e de cada pulo da caixa, oráculo com PASSA, rascunho a 30 qps e uma IA que assista com áudio, perguntando onde há texto demais, onde a marcha sai do tempo e onde o movimento para morto. Confira cada apontamento nos quadros ou medindo antes de mexer.\n\n9. Final a 60 qps (render/final.sh), com grão de filme só nos trechos do mundo P&B; 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.",
114
+ "campos": [
115
+ "CTA",
116
+ "DURACAO",
117
+ "FRASE",
118
+ "GANCHO",
119
+ "IMAGENS",
120
+ "MUSICA",
121
+ "VERSAO_EDITADA"
122
+ ],
123
+ "fonte": {
124
+ "nome": "Clube do Motion",
125
+ "url": "https://clubedomotion.com/projeto/?id=soldier",
126
+ "uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
127
+ }
128
+ }
@@ -0,0 +1,108 @@
1
+ {
2
+ "id": "clube-som-de-cena",
3
+ "titulo": "Um som para cada ação",
4
+ "categoria": "sound",
5
+ "resumo": "Reel vertical de 10 s, sem música e sem voz, em que quatro cenas de uma dona de clínica (a recepção cheia de manhã, a sala vazia, o notebook à noite e o sofá de casa) ganham só som de cena: a ambiência de cada lugar e um som para cada ação visível. As cenas foram mapeadas a 10 qps, os tempos foram medidos na imagem, e cada som foi gerado sob medida na ElevenLabs e mixado em Python, com volume conferido por um verificador antes da entrega. É a base do método de som de cena do Clube do Motion, aplicando técnicas do tutorial de sound design do Jacob Nordin. Versão aprovada: v5. Feito pelo Clube do Motion.",
6
+ "indicado": "anúncio ou Reel com pessoas e lugares, filmados ou gerados por IA, que precisa parecer vivo; clínica, loja, restaurante e negócio local; terceira camada por baixo de voz e música.",
7
+ "estilo": [
8
+ "som de cena",
9
+ "foley",
10
+ "ambiência por lugar",
11
+ "J-cut e L-cut",
12
+ "sons gerados por IA",
13
+ "vídeo gerado por IA",
14
+ "sem música"
15
+ ],
16
+ "ficha": {
17
+ "formato": "1080×1920, 30 qps, 9:16, áudio AAC 320 kbps",
18
+ "duracao": "10,0 s: quatro cenas de 2,5 s, sem música e sem voz",
19
+ "motor": "html",
20
+ "voz": "ver o guia de estilo",
21
+ "musica": "ver o guia de estilo",
22
+ "fontes": "ver o guia de estilo"
23
+ },
24
+ "ferramentas": [
25
+ "Claude Code",
26
+ "ElevenLabs"
27
+ ],
28
+ "ficha_tecnica": {
29
+ "Duração": "10,0 s: quatro cenas de 2,5 s, sem música e sem voz",
30
+ "Formato": "1080×1920, 30 qps, 9:16, áudio AAC 320 kbps",
31
+ "Imagem": "cenas geradas com IA (imagem no GPT Image 2.5, animação no Kling 3.0), recortadas e juntadas no ffmpeg",
32
+ "Ferramenta": "Python (librosa, pedalboard, pyloudnorm, soundfile) para a mix; ElevenLabs (text-to-sound-effects v2) para os sons",
33
+ "Sons": "12 pedidos com 2 variações cada; 11 sons escolhidos para a v5",
34
+ "Volume": "−25,0 LUFS integrado, momentâneo máximo −21,1, pico −3,5 dBFS, medidos no áudio do MP4"
35
+ },
36
+ "etapas": [
37
+ {
38
+ "titulo": "O roteiro",
39
+ "texto": "**Resumo:** o vídeo não tem narração nem texto na tela; o roteiro é o mapa de ações, cena por cena, com o que a imagem mostra, o instante medido e o som que entra. Quatro cenas de 2,5 s contam o dia de uma dona de clínica, da recepção cheia de manhã ao sofá de casa à noite.\n\n## De onde veio a estrutura\n\nO teste aplica as técnicas do tutorial \"Sound Design for Cinematic Filmmaking\", do Jacob Nordin (camadas, J-cut e L-cut, reverb como distância, panning sutil), num vídeo comum de 10 s, para o som aparecer sozinho. As cenas vieram de um anúncio de clínica feito antes com imagens geradas por IA; o áudio original delas era quase mudo (−49 e −63 dB de média).\n\n | \n\n | Cena\n | Clipe\n | Trecho usado\n\n | A\n | `clinica-dona-chegando.mp4`\n | 0,3–2,8 s\n\n | B\n | `clinica-dona-sala-vazia.mp4`\n | 2,5–5,0 s\n\n | C\n | `clinica-dona-noite-laptop.mp4`\n | 0–2,5 s\n\n | D\n | `clinica-dona-noite-sofa.mp4`\n | 2,5–5,0 s\n\n## Mapa de ações\n\n | \n\n | Tempo (s)\n | Na imagem\n | Som\n\n | 0,0–2,5\n | recepção clara da clínica pela manhã, pacientes sentadas conversando, ela entra com o café\n | conversa baixa da recepção\n\n | 0,45 · 1,10 · 1,73 · 2,35\n | passada lenta (medida pelo balanço do corpo e das pernas, porque os pés não aparecem)\n | passo de salto: baque + estalo de piso duro\n\n | 2,5\n | corte para a sala de atendimento vazia\n | a conversa continua abafada atrás da porta até 3,4 s\n\n | 2,55\n | ela olha o celular e abre a boca, irritada\n | suspiro curto\n\n | 3,65–4,9\n | ela gira e sai pela direita\n | jaleco girando e passos saindo, indo para a direita\n\n | 4,4\n | (ainda na sala)\n | a cidade da cena seguinte começa a entrar\n\n | 5,0–7,5\n | à noite, ela digita no MacBook; a cidade aparece pela janela\n | teclado macio de notebook + cidade abafada atrás do vidro\n\n | 7,25\n | (ainda no notebook)\n | o silêncio da casa começa a entrar\n\n | 7,5–10,0\n | em casa, no sofá, com manta e a caneca na boca o tempo todo\n | manta se acomodando (7,52 s) e goles de chá (7,75 s)\n\n | 8,5–9,3\n | quase nada se move\n | só o room tone da casa\n\n | 9,30\n | a tela do celular acende na mesa de centro (medido pelo brilho)\n | o celular vibra na madeira\n\n | 9,8–10,0\n | —\n | fade de saída\n\n## O que ficou de fora de propósito\n\n- **Relógio:** não há relógio na cena; o tique-taque da v3 descolava o som da imagem.\n\n- **Whoosh e riser nos cortes:** os cortes são parados, sem movimento que os justifique.\n\n- **Música:** o teste precisava do som de cena sozinho.\n\n## Momentos para a trilha\n\n- **2,5 s:** o L-cut da recepção, primeira passagem de lugar.\n\n- **3,65 s:** a saída pela direita, o único movimento lateral de som.\n\n- **9,30 s:** a vibração do celular, o momento principal, depois de quase um segundo de silêncio."
40
+ },
41
+ {
42
+ "titulo": "A identidade visual",
43
+ "texto": "**Resumo:** duas pistas, ambiência e foley, sem música e sem voz. Cada lugar tem o seu ar (recepção com conversa, sala vazia, cidade atrás do vidro, casa à noite) e cada ação visível tem o seu som, gerado sob medida e posto no quadro medido. As ambiências cruzam os cortes; o foley entra por pico, com panning e reverb que dizem onde a pessoa está. O conjunto fecha em −25 LUFS. Números tirados do `mix_v5.py`, do `eventos-v5.json` e do verificador.\n\n## As duas pistas\n\n | \n\n | Pista\n | O que leva\n | Como se nivela\n\n | Ambiência (`amb`)\n | conversa da recepção, room tone da sala vazia, cidade atrás do vidro, silêncio da casa\n | por LUFS (−32 a −46), com fades longos\n\n | Foley (`foley`)\n | passos, suspiro, giro e saída, teclado, manta, goles, vibração do celular\n | por pico (−15 a −27 dBFS), com o ataque do arquivo no quadro do evento (`at = evento − ataque`)\n\n## Cena por cena\n\n | \n\n | Cena\n | Som\n | Arquivo\n | Tratamento\n\n | Recepção, 0–2,5 s\n | conversa baixa, sem anúncio\n | `lobby-b-1`\n | passa-alta de 120 Hz, −32 LUFS, fade de entrada de 0,1 s\n\n | \n | 4 passos lentos de salto em 0,45 · 1,10 · 1,73 · 2,35 s\n | `passos-lobby-1` recortado\n | passa-alta de 160 Hz, pico −19/−18 dBFS alternado, mais um estalo de piso duro (passa-alta de 1,8 kHz, pico −27) e reverb curto (sala 0,35, 10%)\n\n | Corte, 2,5–3,4 s\n | L-cut: a conversa continua abafada\n | `lobby-b-1`\n | passa-baixa de 1 kHz, fade de saída de 0,8 s\n\n | Sala vazia, 2,5–5,0 s\n | room tone\n | `sala-vazia-1`\n | −44 LUFS, a partir de 2,4 s\n\n | \n | suspiro irritado em 2,55 s\n | `suspiro-2`\n | pico −21, reverb leve (sala 0,3, 8%), pan −0,05\n\n | \n | giro do jaleco e passos saindo em 3,65 s\n | `giro-saida-2`\n | reverb de sala maior (0,5, 14%), pico −18, pan de +0,1 a +0,65\n\n | Notebook, 5,0–7,5 s\n | cidade abafada atrás do vidro\n | `cidade-vidro-1`\n | −35 LUFS, pan +0,25, J-cut de 0,6 s (entra em 4,4 s) e fade de saída de 0,5 s\n\n | \n | digitação macia de notebook\n | `teclado-1`\n | passa-alta de 300 Hz, passa-baixa de 6 kHz, −31 LUFS, pan −0,05\n\n | Sofá, 7,5–10,0 s\n | silêncio da casa à noite\n | `casa-noite-1`\n | −46 LUFS, J-cut de 0,25 s (entra em 7,25 s)\n\n | \n | manta se acomodando em 7,52 s\n | `manta-1`\n | −37 LUFS, pan +0,1\n\n | \n | goles de chá em 7,75 s\n | `gole-2`\n | pico −15, centro\n\n | \n | celular vibrando na mesa em 9,30 s\n | `vibracao-1`\n | pico −26, pan −0,3, no quadro em que a tela acende\n\nO vídeo termina com fade de 0,2 s na mix.\n\n## Os pedidos à ElevenLabs\n\nCada pedido descreve o material, a ação, o espaço e o que não pode aparecer. Dois exemplos do `gerar_sfx.py`:\n\n- **Recepção:** conversa baixa de três ou quatro mulheres numa sala de espera pequena, murmúrio ininteligível, sons leves de copo e cadeira; sem anúncio, sem alto-falante, sem música, sem passos. A primeira versão, sem essas proibições, veio com fala de alto-falante.\n\n- **Teclado:** digitação rápida e contínua num MacBook, teclas baixas de tesoura, perto e quieta, sem clique de teclado mecânico. O teclado da biblioteca soava mecânico em todas as revisões.\n\nParâmetros: modelo `eleven_text_to_sound_v2`, duração de 1,5 a 8 s, `loop` ligado nas ambiências contínuas e influência do prompt de 0,5 a 0,7.\n\n## Finalização e régua de volume\n\n | \n\n | Medida\n | Teto\n | v5 (no áudio do MP4)\n\n | Integrado\n | −24 LUFS (alvo −25)\n | −25,0\n\n | Curto prazo (3 s)\n | −20 LUFS\n | aprovado no verificador\n\n | Momentâneo (0,4 s)\n | −16 LUFS\n | −21,1\n\n | Pico\n | −3 dBFS\n | −3,5\n\n- Ganho linear até o alvo; o limitador a 0,72 só age se o pico passar.\n\n- Com voz por cima, o som de cena fica pelo menos 15 LU abaixo dela, como a música.\n\n- Referência medida: no vídeo do Nordin, música e som de cena juntos ficam 9,8 LU abaixo da voz, e o vídeo inteiro está em −23,2 LUFS.\n\n## O que é \"humano\" neste som\n\n- Os passos acompanham o ritmo lento dela, não um passo marcado de biblioteca.\n\n- A conversa da recepção não corta com a imagem: some aos poucos atrás da porta.\n\n- A saída pela direita tem o som andando para a direita.\n\n- Antes da vibração, quase nada: o silêncio da casa faz o celular pesar."
44
+ },
45
+ {
46
+ "titulo": "A montagem",
47
+ "texto": "| \n\n | Arquivo\n | O que faz\n\n | `scripts/gerar_sfx.py`\n | manda cada pedido à ElevenLabs (texto, duração, loop e influência do prompt) e baixa 2 variações por ação; os pedidos dizem o material, a ação, o espaço e o que não pode ter\n\n | `scripts/mix_v5.py`\n | monta duas pistas (ambiência e foley) cena por cena: ambiências niveladas por LUFS, foley nivelado por pico, cada som com o ataque no quadro medido, panning de quem se move, reverb pelo tamanho do lugar e passa-baixa no que está atrás de porta ou vidro. Grava a pré-mix, as pistas e o `eventos.json`\n\n | `scripts/finalizar.py`\n | leva a mix ao alvo com ganho linear (−25 LUFS na v5); o limitador a 0,72 só age se o pico passar\n\n | `scripts/verificar_som_de_cena.py`\n | reprova se o som de cena passar dos tetos: integrado −24, curto prazo −20, momentâneo −16, pico −3; com `--voz`, exige ficar 15 LU abaixo da voz\n\n | `scripts/medir.py`\n | LUFS, pico e RMS e balanço L-R por janela\n\n- **Python** com librosa, pedalboard, pyloudnorm, soundfile e numpy; `ffmpeg` no PATH. Para gerar sons novos, o CLI da ElevenLabs com a sua chave.\n\n- **Sons:** use os da pasta `audio/sfx-elevenlabs/` ou gere outros com `python scripts/gerar_sfx.py audio/sfx-novos`.\n\n- **Estalo do piso:** no `mix_v5.py`, troque o caminho do `footsteps-on-stones.wav` por um passo de salto em piso duro da sua biblioteca.\n\n- **Mix:** `python scripts/mix_v5.py audio/sfx-elevenlabs audio/mix_pre.wav`, depois `python scripts/finalizar.py audio/mix_pre.wav audio/mix.wav -25` e `python scripts/verificar_som_de_cena.py audio/mix.wav`.\n\n- **Vídeo:** com `P` apontando para `cenas/`:\n\nV=\"scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,fps=30,setsar=1,format=yuv420p\"\nffmpeg -y -ss 0.3 -t 2.5 -i \"$P/clinica-dona-chegando.mp4\" -ss 2.5 -t 2.5 -i \"$P/clinica-dona-sala-vazia.mp4\" -ss 0 -t 2.5 -i \"$P/clinica-dona-noite-laptop.mp4\" -ss 2.5 -t 2.5 -i \"$P/clinica-dona-noite-sofa.mp4\" -i audio/mix.wav -filter_complex \"[0:v]$V,trim=duration=2.5,setpts=PTS-STARTPTS[a];[1:v]$V,trim=duration=2.5,setpts=PTS-STARTPTS[b];[2:v]$V,trim=duration=2.5,setpts=PTS-STARTPTS[c];[3:v]$V,trim=duration=2.5,setpts=PTS-STARTPTS[d];[a][b][c][d]concat=n=4:v=1:a=0[v]\" -map \"[v]\" -map 4:a -c:v libx264 -crf 18 -c:a aac -b:a 320k -shortest final.mp4\n\n- **Conferir de novo no MP4:** extraia o áudio do vídeo final e rode o verificador nele.\n\n**Pegadinhas:** som de cena sozinho normalizado a −14 LUFS fica alto demais (a v3 chegou a −7,4 LUFS momentâneos na vibração); o `loudnorm` numa peça de 10 s cai no modo dinâmico, por isso o ganho é linear. A vibração gerada domina o loudness e esconde o gole: confira o balanço por janela. O passo gerado na ElevenLabs veio quase só baque, sem o clique do salto, e sumia sob a conversa."
48
+ },
49
+ {
50
+ "titulo": "As decisões de direção",
51
+ "texto": "- **Só entra som que a imagem motiva.** Relógio sem relógio na cena, whoosh e riser em corte parado saíram na v5; eram o que descolava o som do vídeo.\n\n- **Mapa de ações a 10 qps antes de qualquer som:** ela anda devagar na recepção, abre a boca irritada entre 2,5 e 2,9 s, gira em 3,7 s e sai a partir de 3,9 s; a caneca fica na boca o tempo todo no sofá.\n\n- **Tempos medidos na imagem.** A tela do celular acende em 9,300 s, medido pelo brilho da região; os passos, sem os pés no quadro, saíram do balanço do corpo e das pernas.\n\n- **Sons gerados sob medida,** dois por ação, escolhidos ouvindo os numerados; os que tinham fala inteligível, anúncio, música ou zumbido foram descartados.\n\n- **Ambiência cruza o corte.** L-cut de 0,9 s com a conversa abafada atrás da porta (passa-baixa de 1 kHz); J-cut de 0,6 s da cidade e de 0,25 s da casa.\n\n- **Foley por pico, ambiência por LUFS.** Transiente nivelado por loudness some ou estoura.\n\n- **Passo com clique.** Um estalo de piso duro bem baixo (passa-alta de 1,8 kHz) somado ao baque faz o passo atravessar a conversa.\n\n- **Quase silêncio antes do momento principal:** de 8,5 a 9,3 s só o room tone, a manta e o gole, até o celular vibrar.\n\n- **Volume verificado antes de entregar:** −25 LUFS sem voz, medido no áudio do MP4.\n\nCamadas, tratamentos e números: estilo.md. Cena por cena: roteiro.md. Para fazer o som de cena do seu vídeo: PROMPT.md."
52
+ },
53
+ {
54
+ "titulo": "As versões até o final",
55
+ "texto": "| \n\n | Versão\n | O que mudou\n\n | v1\n | sons de biblioteca nivelados por LUFS e limitador do pedalboard; estourou (−10,9 LUFS, pico 0 dBFS); faltavam passos e a cidade não se ouvia\n\n | v2\n | one-shots por pico, teclas em rajadas, cidade com passa-baixa de 1,3 kHz, relógio −5 dB e finalização linear; −14,0 LUFS\n\n | v3\n | estalo agudo nos passos, cauda abafada do burburinho, tecido no giro, cidade com passa-baixa de 1,8 kHz; som bom, mas alto demais\n\n | v4\n | a mesma mix finalizada a −25 LUFS e aprovada no verificador; os efeitos ainda não casavam com o vídeo\n\n | **v5**\n | aprovada: mapa de ações a 10 qps, 11 sons gerados na ElevenLabs, nenhum efeito sem motivo na imagem, −25,0 LUFS"
56
+ }
57
+ ],
58
+ "pacote": [
59
+ {
60
+ "pasta": "projeto/",
61
+ "conteudo": "`cenas/` (os quatro vídeos de 5 s usados), `scripts/mix_v5.py` (a mix inteira), `scripts/gerar_sfx.py` (os pedidos à ElevenLabs), `scripts/finalizar.py`, `scripts/medir.py` e `scripts/verificar_som_de_cena.py`"
62
+ },
63
+ {
64
+ "pasta": "audio/",
65
+ "conteudo": "`mix-v5.wav` (a mix final), `stem-amb-v5.wav` e `stem-foley-v5.wav` (as duas pistas), `eventos-v5.json` (cada som com início, fim e descrição), `pedidos-sfx.json` e `sfx-elevenlabs/` com os 11 sons gerados"
66
+ },
67
+ {
68
+ "pasta": "referencias/",
69
+ "conteudo": "`estudo-da-referencia.md` (o tutorial do Jacob Nordin decupado e medido), `tutorial-som-de-cena.md` (o método completo), `links.md` e `fora-do-pacote.md`"
70
+ },
71
+ {
72
+ "pasta": "render.mp4",
73
+ "conteudo": "o vídeo final (v5)"
74
+ },
75
+ {
76
+ "pasta": "scripts/gerar_sfx.py",
77
+ "conteudo": "manda cada pedido à ElevenLabs (texto, duração, loop e influência do prompt) e baixa 2 variações por ação; os pedidos dizem o material, a ação, o espaço e o que não pode ter"
78
+ },
79
+ {
80
+ "pasta": "scripts/mix_v5.py",
81
+ "conteudo": "monta duas pistas (ambiência e foley) cena por cena: ambiências niveladas por LUFS, foley nivelado por pico, cada som com o ataque no quadro medido, panning de quem se move, reverb pelo tamanho do lugar e passa-baixa no que está atrás de porta ou vidro. Grava a pré-mix, as pistas e o `eventos.json`"
82
+ },
83
+ {
84
+ "pasta": "scripts/finalizar.py",
85
+ "conteudo": "leva a mix ao alvo com ganho linear (−25 LUFS na v5); o limitador a 0,72 só age se o pico passar"
86
+ },
87
+ {
88
+ "pasta": "scripts/verificar_som_de_cena.py",
89
+ "conteudo": "reprova se o som de cena passar dos tetos: integrado −24, curto prazo −20, momentâneo −16, pico −3; com `--voz`, exige ficar 15 LU abaixo da voz"
90
+ },
91
+ {
92
+ "pasta": "scripts/medir.py",
93
+ "conteudo": "LUFS, pico e RMS e balanço L-R por janela"
94
+ }
95
+ ],
96
+ "prompt": "Quero o som de cena do meu vídeo no mesmo método do projeto \"Som de cena em 10 s\", que está em 07-videos/projetos/som-de-cena/.\n\nVídeo montado: {{VIDEO}}\nO vídeo tem voz ou música por cima? {{VOZ_MUSICA}} (se tiver, os arquivos)\nLugares que aparecem (para a ambiência de cada um): {{LUGARES}}\nMomento principal, que precisa pesar mais: {{MOMENTO}}\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 LEIA-ME.md, estilo.md, roteiro.md e referencias/tutorial-som-de-cena.md. Depois abra projeto/scripts/mix_v5.py (load, lufs_to, pico_to, pan, put e as cenas), gerar_sfx.py, finalizar.py e verificar_som_de_cena.py. Me diga em poucas linhas o que vai reaproveitar.\n\n2. Mapa de ações a 10 qps: monte folhas de contato do vídeo com o tempo em cada quadro e anote, por cena, o lugar (o que se ouviria ali), quem se mexe, quando e com que material, e o que acontece fora do quadro e faria som. Só entra som que a imagem motiva. Me mostre o mapa antes de gerar qualquer som.\n\n3. Meça os tempos que importam: evento pelo brilho ou pelo movimento da região (tela que acende, porta que fecha), passos pelo balanço do corpo quando os pés não aparecem, boca que abre = som de voz (suspiro, riso, resmungo).\n\n4. Gere os sons sob medida na ElevenLabs, 2 variações por ação, adaptando o gerar_sfx.py: material + ação + espaço + o que não pode ter (sem fala inteligível, sem anúncio, sem música). Use a biblioteca quando o som certo existir nela.\n\n5. Escolha as variações medindo cada arquivo e ouvindo os numerados; descarte fala, anúncio, música, zumbido e arquivo mudo.\n\n6. Monte copiando o mix_v5.py (sem editar o original): ambiência por cena nivelada por LUFS, cruzando o corte com J-cut de 0,25 a 0,7 s e L-cut com passa-baixa de ~1 kHz; foley nivelado por pico, com o ataque no quadro medido; panning sutil de quem se move; reverb pelo tamanho do lugar; passa-baixa no que está atrás de vidro (1,3 a 1,8 kHz); quase silêncio antes do momento principal.\n\n7. Confira o balanço cena a cena, por janela: um som denso pode esconder os outros; passo precisa de clique para atravessar a ambiência.\n\n8. Volume antes de entregar: sem voz, finalize a −25 LUFS com finalizar.py; com voz, deixe o som de cena 15 LU abaixo dela. Rode verificar_som_de_cena.py e meça de novo no áudio do MP4 final.\n\n9. Entregue o vídeo com o som, a mix, as pistas separadas e o eventos.json, com uma anotação do que entrou e por quê.",
97
+ "campos": [
98
+ "LUGARES",
99
+ "MOMENTO",
100
+ "VIDEO",
101
+ "VOZ_MUSICA"
102
+ ],
103
+ "fonte": {
104
+ "nome": "Clube do Motion",
105
+ "url": "https://clubedomotion.com/projeto/?id=som-de-cena",
106
+ "uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
107
+ }
108
+ }