diff --git a/.jhonny/analises.db b/.jhonny/analises.db index 3224e6a..3ab86ab 100644 Binary files a/.jhonny/analises.db and b/.jhonny/analises.db differ diff --git a/CONTEXT.md b/CONTEXT.md index 3e01983..47caaf5 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -17,6 +17,10 @@ - **Transcrição**: segmentos de texto sincronizados com um clipe, produzidos por um provider; não é decisão editorial. - **Cena**: intervalo contínuo da timeline com características visuais e/ou textuais semelhantes. - **Evento**: observação temporal detectada no áudio, texto ou vídeo; não implica corte. +- **Trilha musical**: obra sonora catalogada para possível uso como música de fundo; possui identidade própria e não depende de um projeto de vídeo. +- **Catálogo de trilhas**: conjunto pesquisável de trilhas musicais e suas análises, separado do índice de conteúdo dos vídeos. +- **Análise musical**: observações calculadas a partir do sinal de áudio, como BPM, tonalidade, gênero, humor e intensidade; tags do arquivo não são evidência da análise. +- **Etiqueta musical**: classificação produzida por um modelo para uma trilha, sempre acompanhada do tipo, da confiança, do provider e da versão do modelo. ## Decisões atuais @@ -27,3 +31,8 @@ - Cada projeto possui uma única sequência, mas pode reunir vários arquivos de mídia e vários clipes dessa sequência; a seleção do projeto nunca deve misturar timelines diferentes. - Uma edição concluída, um plano gerado e uma aplicação realizada são estados distintos e devem permanecer auditáveis; concluir a configuração não significa que o Premiere já foi alterado. - O plano deve evoluir para referenciar diretamente a versão de edição que o originou, além do `video_id`, para impedir que uma nova configuração editorial seja aplicada por engano sobre um plano antigo. +- O catálogo de trilhas musicais é independente dos projetos de edição e não possui `video_id` na sua unidade principal. +- A identidade da trilha deve usar uma impressão digital do conteúdo; o caminho do arquivo é uma localização mutável e não a identidade definitiva. +- O banco deve guardar referências ao arquivo, descritores compactos, etiquetas com proveniência e versões das análises; não deve guardar o áudio binário. +- Uma mesma trilha pode ter várias análises, produzidas por providers ou versões de modelos diferentes. O resultado ativo deve ser selecionável sem apagar o histórico. +- O vínculo entre uma trilha musical e um projeto de edição será criado posteriormente em uma relação própria, permitindo reutilização da mesma trilha em vários projetos. diff --git a/code/cep-plugin/main.js b/code/cep-plugin/main.js index 61876d7..1e460cb 100755 --- a/code/cep-plugin/main.js +++ b/code/cep-plugin/main.js @@ -2388,6 +2388,9 @@ function silenceLoadScannerAnalysis() { setStep(3, "locked", "Aguardando plano"); renderizarTiposDeVideoParaEdicao(); document.getElementById("btnBuildPlan").disabled = true; + // A análise carregada já identifica a sequência; reutiliza o plano salvo + // dessa mesma sequência sem exigir uma nova seleção manual. + carregarPlanoEditorialSalvo(); // btnDiarize/btnVoiceFeatures/silenceDiarizeInfo/silenceVoiceFeaturesInfo ficavam no // step3 (legado, comentado em 2026-09-09 no index.html) — checagem defensiva para não // quebrar este fluxo (ativo) se os elementos não existirem mais no DOM. @@ -3335,7 +3338,7 @@ function carregarPlanoEditorialSalvo() { SCANNER_PYTHON_BIN, [CARREGAR_PLANO_SCRIPT, "--banco", ANALISES_DB_PATH, "--video-id", String(silenceState.sequenceId)], function (linha) { silenceLog(linha); }, - function (codigo, ultimoErro) { + function (codigo, ultimoErro, ultimaSaida) { setBusy("btnBuildPlan", false); if (codigo !== 0) { silenceLog("Não foi possível carregar o plano salvo.", "err");