Análise de Edição de Música
Visão Geral
Use esta skill para transformar uma música em inteligência prática de edição: tempo, grade de batidas, mapa de seções, curva de energia, prioridades de corte, notas de adequação de cenas, marcadores de linha do tempo e um briefing de seleção de cenas voltado para agentes.
O script incluído é o caminho padrão porque mantém a análise reprodutível e fornece saídas tanto legíveis por humanos quanto por máquinas.
Fluxo de Trabalho
- Confirme o caminho do áudio e crie uma pasta de saída para os entregáveis.
- Garanta que as dependências Python estejam disponíveis:
librosa,numpy,scipy,matplotlib,pandas,scikit-learnesoundfile. - Execute
scripts/analyze_song_for_editing.py <arquivo-de-áudio> --out <pasta-de-saída>. - Inspecione a imagem da linha do tempo de energia e o CSV de seções gerados. Se a seccionamento automático dividir excessivamente uma seção movimentada, sintetize um mapa de seções macro mais simples na resposta final ou em um arquivo markdown separado.
- Use o briefing de cenas do agente quando outro agente for escolher clipes, montar uma edição ou pontuar candidatos a cenas.
- Para produção downstream, use
$footage-review-packpara selecionar fontes,$beat-synced-montage-builderpara montar a edição e$edit-delivery-qapara verificar o render final.
Saídas do Script
Para uma entrada chamada my_song.mp3, o script escreve:
my_song_beats.csv: cada batida detectada com tempo, posição estimada de compasso/batida, energia, graves, brilho, força de transient e prioridade de corte.my_song_cut_markers_30fps.csv: marcadores de corte primários e secundários com timecode em 30fps e notas concisas.my_song_sections.csv: regiões estruturais detectadas com energia média, caráter sonoro, adequação de cena e estratégia de corte.my_song_phrases.csv: notas de edição em nível de frase de 8 batidas.my_song_energy_timeline.png: forma de onda, curva de energia, dicas de cenas e seções detectadas.my_song_editing_guide.md: guia de edição legível por humanos.my_song_agent_footage_brief.json: instruções estruturadas de seleção de cenas para outro agente.my_song_analysis.json: resumo geral legível por máquina.
Grades de Cortes Baseadas em Onsets (mecanismo v2, preferido para cortes densos)
Quando a edição deve cortar em cada momento que a música permite (rajadas rápidas incluídas), pule os limites de marcador e construa uma grade bruta de onsets:
env = librosa.onset.onset_strength(y=y, sr=sr, hop_length=512)
onsets = librosa.onset.onset_detect(onset_envelope=env, sr=sr, hop_length=512,
backtrack=False, delta=0.02, units="time")
delta=0.02 captura tudo (0.03-0.04 para grades mais limpas). Mescle onsets mais próximos que 0,13s mantendo o mais forte; quantize para quadros com int(round((t-t0)*FPS)); force um corte no quadro 0; descarte cortes a 2 quadros do final. Segure quando esparso, exploda quando movimentado — nunca insira cortes de preenchimento fora da grade. Onsets no quartil superior de força ganham acentos (zooms de impacto). Ajuste qualquer grade de batidas estimada para o onset real mais próximo quando dentro de 60ms (transientes ficam até ~35ms fora de uma grade de tempo constante); para momentos de transformação/mudança de estilo quantize com piso, não arredondamento, para que a mudança caia no quadro que contém o transient.
Seleção de Janela Viral (quais 15-30s cortar)
Pontue janelas candidatas com base em cinco sinais: repetição/caráter de refrão (autossimilaridade cromática sincronizada com batidas, diagonal + 8 off-diagonais zeradas, média por linha), aumento de energia (post_mean(4s) - pre_mean(4s) — encontra construção→queda), emenda de loop (similaridade cosseno de cromática+mfcc logo após o fim da janela vs logo após o início — loops invisíveis), posição da letra (uma frase começando dentro de [início-0,5, início+3,0], impulsionada por palavras emocionais), e a prioridade de início postada pelo próprio artista. Âncoras = picos de repetição principais + batidas de maior aumento de energia + a prioridade, cada um ajustado para o downbeat do compasso exatamente antes ou no momento, para que o gancho chegue cedo. Combine aproximadamente 0.26*energia + 0.20*repetição + 0.18*aumento*2 + 0.16*letra + 0.12*emenda_loop + 0.08*prioridade; mantenha janelas principais com sobreposição <50%.
Seguidores de Envelope (para efeitos contínuos)
Para efeitos reativos ao áudio, reamostre o envelope de onset para a grade de quadros, normalizando pelo percentil 95, depois um peak-hold de um polo (ataque instantâneo, decaimento exp(-1/(fps*0.22..0.25))). Pulsos de batida para zoom de impacto/florescimento: por batida adicione amp * exp(-(t-t_batida)/0.16), amp ponderada por energia. Mantenha graves / energia / agudos / transient como canais normalizados separados — nunca um único escalar de volume — e deixe canais de eventos de onset sem suavização. Renderize efeitos contra a mesma janela de início/duração da edição para que pulsos e cortes compartilhem um envelope (sincronizados por construção).
Regras de Interpretação
Trate tempo, batidas e compassos como estimativas até serem verificadas contra a forma de onda ou de ouvido. As grades de batidas geralmente são boas o suficiente para edição aproximada, mas a rotulagem de downbeat pode estar deslocada por uma batida ou frase.
Use esta escada de energia para seleção de cenas:
- Energia 1 / muito baixa: atmosfera, títulos, planos detalhe, câmera lenta, configuração silenciosa.
- Energia 2 / baixa: preparação, antecipação, contexto, câmera lenta, pré-ação.
- Energia 3 / média: movimento visível, reações, B-roll rítmico, cortes de 2-4 batidas.
- Energia 4 / alta: movimento ativo, planos próximos a impacto, B-roll rápido, cortes de 1-2 batidas.
- Energia 5 / pico: cenas mais fortes, colisões, revelações, batidas rápidas, acertos de VFX, alternância rápida, cortes de 0,5-1 batida.
Use pontos de corte primários para mudanças principais de assunto, impactos, cortes secos, revelações, aterrissagens de speed-ramp e acertos de título. Use pontos de corte secundários para mudanças de ângulo, cortes de continuação, trocas menores de B-roll e inícios de speed-ramp.
Seleção de Cenas por Agente
Quando um agente for escolher cenas, passe a ele *_agent_footage_brief.json mais qualquer inventário de cenas disponível. Instrua o agente a:
- Marcar cada clipe candidato com
content_typeda taxonomia do briefing. - Pontuar cada clipe candidato com
motion_intensityde 1 a 5. - Corresponder a intensidade do clipe ao
energy_levelde cada seção, permitindo mais ou menos 1 a menos que a edição precise de contraste deliberado. - Reservar clipes com
peak_impacte intensidade de movimento 5 para a seção de maior energia. - Colocar mudanças de assunto, impactos e revelações nos pontos de corte primários.
- Usar durações mais curtas, cortes mais apertados, speed ramps ou detalhes de impacto repetidos quando o material disponível for menos intenso que a música.
Orientação para Humanos
Sempre forneça um mapa macro conciso além dos dados brutos. Editores precisam de julgamento musical, não apenas uma lista de batidas. Destaque:
- Onde segurar os planos.
- Onde começam os primeiros cortes rítmicos significativos.
- Onde começa a queda ou o pico.
- Qual seção merece o melhor material.
- Os pontos de corte mais fortes por timestamp.
- Qualquer incerteza, especialmente se a detecção de seções superdividir ou se o downbeat pode estar deslocado.
Skills Downstream
Esta skill produz a inteligência musical. Use as skills complementares para o restante do fluxo de trabalho repetível:
$footage-review-pack: construir listas de seleção, galerias de revisão, manifestos e proveniência de fontes.$beat-synced-montage-builder: mapear cenas para marcadores de corte e renderizar variantes de montagem para redes sociais.$edit-delivery-qa: inspecionar renders finais, fichas técnicas, densidade da linha do tempo e prontidão para entrega.