CommunityImagemgithub.com

kanlac/sheet-music-pdf-convert

Transforme um PDF de partitura musical (exportado de software de notação, escaneado ou fotografado) em MusicXML editável que abre no MuseScore, Dorico, Sibelius ou Finale.

O que é sheet-music-pdf-convert?

Esta habilidade permite que um agente de IA converta um PDF de partitura musical (seja exportado de um software de notação, escaneado ou fotografado) em um arquivo MusicXML (`.mxl`) editável. Ela primeiro identifica o tipo de PDF usando um script Node.js, que determina se o PDF é vetorial (com fontes musicais), uma imagem escaneada, ou de outro tipo. Com base nessa identificação, o agente sugere a rota mais adequada: **Tutti** para PDFs exportados (diretamente da notação, sem necessidade de reconhecimento óptico), ou **Audiveris** (OMR local) para escaneamentos e fotos. Cada rota é explicada de forma transparente ao usuário, e após a conversão, o agente executa uma revisão automatizada que destaca as áreas suspeitas (medidas marcadas em vermelho) tanto no MusicXML gerado quanto no PDF original. O resultado é entregue com uma honesta avaliação de qualidade, alertando que notas podem estar incorretas mesmo em áreas não destacadas, e fornecendo instruções claras para abrir o arquivo no editor de partitura. A habilidade é guardiã contra práticas comuns que prejudicam a precisão, como ler a música visualmente, enviar PDFs vetoriais para OMR, tratar escaneamentos do IMSLP como vetoriais, ou confiar cegamente em códigos de saída zero.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kanlac/tutti-pdf-converter/tree/HEAD/plugins/sheet-music-pdf-convert/skills/sheet-music-pdf-convert

Installed? Explore more Imagem skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Partitura em PDF → Partitura editável

O usuário tem uma partitura em PDF e quer algo que possa editar. Encontre a melhor forma de ler este PDF específico, execute a conversão e entregue um arquivo acompanhado de uma nota honesta sobre o que verificar. Presuma que o usuário não sabe nada sobre PDFs, OMR ou linhas de comando: ele responde a perguntas sim/não, você faz o resto, em linguagem clara. Explique cada passo em termos do arquivo dele e das escolhas que ele tem; não narre sobre esta habilidade, suas regras ou nomes de arquivos, a menos que seu host exija.

1. Veja o PDF primeiro

Execute o identificador incluído (pasta scripts/ desta skill, Node.js 22+) em cada arquivo antes de escolher qualquer rota:

node scripts/identify.mjs <arquivo.pdf> --json

Ele informa que tipo de PDF é (vetorial com fontes musicais, escaneamento/foto, contornado, misto, desconhecido, ilegível) com evidências por página, qual programa de notação provavelmente o criou e se o Tutti provavelmente conseguirá lê-lo. references/routes.md explica cada resultado. Ele só analisa fontes, metadados e imagens, não a complexidade da música, e suas regras podem ser mais antigas que o site do Tutti: trate o veredito do Tutti como um conselho, nunca como uma recusa.

2. Escolha a rota

Decida com base nas páginas que contêm a música, não na capa ou numa página de instruções.

  • Tutti provavelmente consegue ler (exportado de software de notação): recomende fortemente o Tutti; ele lê a notação que o programa escreveu, em vez de adivinhar a partir de pixels, portanto costuma ser muito mais preciso que o OMR. Pergunte: "Isto requer que você aceite a política de privacidade do Tutti (https://tutti-studio.com/privacy). OK?" Se sim, abra o link do Tutti em references/tutti.md para ele fazer o upload. Se preferir não enviar, ofereça o Audiveris e diga que geralmente é menos preciso para este tipo de PDF.
  • Páginas musicais são vetoriais, mas Tutti é "desconhecido" ou "improvável": ofereça ambas as opções; sugira verificar primeiro no site do Tutti, já que a decisão é tomada no upload.
  • Páginas musicais são escaneamentos ou fotos (escaneamentos com camada de texto OCR aparecem como mixed), ou música contornada: Audiveris neste computador (references/audiveris.md).
  • Manuscrito: Audiveris não foi feito para isso e esta skill não foi testada neste tipo. Sugira redigitar a partitura; se quiser tentar software, veja references/omr-tools.md, sem promessas.
  • Ilegível, criptografado, não é PDF: explique o que há de errado e o que pode ser feito.

O Audiveris produz um rascunho para corrigir, não uma partitura finalizada. Ele funciona melhor em escaneamentos limpos de músicas simples a moderadas (solo, piano, música de câmara pequena, coral simples); fotos de celular geralmente falham completamente. Para uma orquestra grande ou escaneamento denso, avise antes de executar e deixe o usuário decidir.

3. Entregue com honestidade

Após uma execução do Audiveris, verifique o resultado antes de dizer qualquer coisa sobre ele, depois execute node scripts/review.mjs <resultado.mxl> <original.pdf> --out-dir <nova pasta> (mantenha os arquivos .omr e .log junto com o resultado). Ele escreve uma cópia do MusicXML com as medidas duvidosas coloridas em vermelho, uma cópia do PDF original com esses locais emoldurados e um resumo JSON; entregue os dois primeiros ao usuário. As marcas vermelhas são apenas os locais onde o próprio Audiveris notou problemas: em nossos testes, a maioria das medidas com notas erradas não foi marcada, portanto diga claramente que o restante também precisa ser verificado. Em seguida, diga, separadamente:

  1. quais páginas ou movimentos foram exportados e quais não foram;
  2. os locais duvidosos, por página do PDF (e por compasso apenas quando a revisão conseguiu associá-lo à página);
  3. que as notas não foram verificadas em relação ao PDF e por onde começar: as medidas vermelhas, depois as armaduras de clave e de compasso, depois todo o resto, especialmente acidentes e letras.

Nunca chame um resultado de OMR de "correto" ou "pronto". Em seguida, diga como abri-lo (references/open-in-editor.md).

Coisas a evitar

Estes são os erros que parecem razoáveis e custam mais caro ao usuário:

  • Ler a música você mesmo. Não olhe as imagens das páginas e escreva MusicXML ou descreva as notas a partir do que você vê. A transcrição de notação por modelo inventa alturas e ritmos com confiança; é pior que OMR e muito mais difícil de o usuário perceber.
  • Enviar um PDF exportado para OMR. Usuários costumam chamar qualquer PDF de "escaneamento". Se o identificador encontrar fontes musicais, o OMR descarta dados exatos; direcione para o Tutti.
  • Tratar um escaneamento do IMSLP como vetorial. Escaneamentos do IMSLP geralmente têm uma camada de texto OCR; uma página com imagem de página inteira e fontes de texto, mas sem fontes musicais, é um escaneamento.
  • Executar o Audiveris sem os dados de idioma do OCR, ou com tessdata_fast / tessdata_best em vez dos arquivos legados. A execução ainda "funciona", mas toda letra, palavra de andamento e nome de instrumento desaparece silenciosamente.
  • Alimentá-lo com páginas sem música. Uma única capa, título ou página de texto pode fazer toda a execução falhar sem exportação. Passe apenas as páginas musicais.
  • Confiar no código de saída 0 ou na linha de log "exported". Os arquivos podem sair com um compasso faltando em uma parte, pautas divididas em partes extras ou um único fragmento sobrevivente (*.mvtnull.mxl). Conte os compassos por parte antes de afirmar que algo funcionou.
  • Transformar rótulos de log do Audiveris em números de compasso. Measure{#11P2} é um rótulo interno, não "compasso 11 do segundo instrumento". Localize as coisas em relação à página ou diga "por volta da página N".
  • Tentar resgatar uma foto ruim. Não instale ferramentas de imagem, aumente a resolução nem faça upload de páginas para serviços online. Execute uma vez; se falhar, dê conselhos para refazer a foto (página plana, luz uniforme, de cima para baixo, ou um escâner) ou aponte para as ferramentas de foto em references/omr-tools.md.
  • Sobrescrever ou misturar saídas. Uma pasta de saída por entrada; nunca escreva junto ou sobre o original do usuário.
  • Prometer o que o Tutti fará. Você não pode fazer o upload por eles, e as páginas gratuitas e limites são mostrados no site; não cite números.

Vários arquivos

Identifique todos primeiro, agrupe por rota e confirme um plano ("3 vão para o Tutti, 2 serão lidos no seu computador").

Exemplos

  • "Converta isto para o MuseScore" com um quarteto exportado do Sibelius → vetorial, Sibelius, provável → recomende o Tutti, pergunte sobre a política de privacidade, abra o site; mencione a opção local.
  • "Você pode tornar isto editável?" com uma canção escaneada do IMSLP (aparece como mixed: imagem mais texto OCR) → trate como escaneamento → Audiveris com dados de idioma alemão e inglês, pulando a página de título → marcas de revisão → informe páginas exportadas, medidas vermelhas, o que verificar.
  • Uma foto borrada e curvada de celular de uma parte de coral → execute o Audiveris uma vez → se a maior parte estiver ilegível, dê conselhos para refazer a foto em vez de mais ferramentas.

Habilidades Relacionadas