Communitygithub.com

bass-tab

Transforma fontes de uma música (capturas de tela de tablatura, PDFs, links, anotações) em uma tablatura de baixo compacta em formato fixo e a renderiza em um PDF de duas páginas para tocar junto, com rótulos de seção, repetições colapsadas, acordes e letras.

O que é bass-tab?

Esta habilidade ('skill') para agentes de IA (como Claude Code, Cursor, Codex) converte fontes brutas de uma música (como capturas de tela de tablaturas, PDFs de tablaturas, links para sites de tablaturas ou anotações) em um arquivo de dados de música estruturado e, em seguida, gera dois artefatos: uma tablatura de baixo compacta em texto (`.tab`) e um PDF de acompanhamento pronto para impressão (1-2 páginas). Ela suporta apenas Python3 (e Pillow para caracteres não latinos). O fluxo de trabalho é estritamente orientado por fontes: o agente deve transcrever apenas o que está visível nas fontes fornecidas, nunca inventar notas ou letras. A habilidade enfatiza a verificação cruzada de repetições, a codificação única de figuras repetidas e a declaração honesta de incertezas (barras ausentes, estimativas). O PDF resultante é um gráfico de acompanhamento no estilo de um player de tablatura online, com várias barras por linha, rótulos de seção em negrito, repetições colapsadas com contagem (ex: `x4`), acordes e letras alinhadas. A saída é limitada a duas páginas; se não couber, o agente deve recusar e relatar. A habilidade também oferece sugestões de prática, musical e de arranjo, claramente separadas da transcrição. Ela inclui verificações de teste automatizadas em um repositório.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jcl2018/skillset/tree/HEAD/skills/bass-tab

Perguntar na sua IA favorita

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

Documentação

O que bass-tab faz?

Transforma o que uma fonte realmente mostra em um arquivo de dados de música e, em seguida, renderiza uma tablatura de baixo compacta (.tab) e um PDF de gráfico de acompanhamento pronto para imprimir (1-2 páginas no tamanho US-Letter). Requer apenas python3; o Pillow também é necessário quando um título ou artista não é latino (por exemplo, chinês). Sem ele, chart2pdf.py e tab2pdf.py se recusam a imprimir ?; instale-o em um venv (python3 -m venv v && v/bin/pip install pillow) e execute o script com esse python, ou use --allow-lossy. Os scripts ficam em scripts/ ao lado deste arquivo; execute-os a partir da pasta desta habilidade ou forneça caminhos completos.

O arquivo de música

Uma música, um diretório, três arquivos:

<slug>/
  <slug>.py     a fonte da verdade: dados estruturados, editáveis manualmente (comece a partir de templates/song-template.py)
  <slug>.tab    gerado por scripts/tabgen.py
  <slug>.pdf    o gráfico de acompanhamento, gerado por scripts/chart2pdf.py diretamente de <slug>.py

<slug>.py fornece META / BARS / SECTIONS / CHORDS / LYRICS. Uma figura repetida é escrita UMA VEZ e carimbada onde quer que seja tocada, para que uma correção alcance cada cópia. Nunca expanda uma repetição em cópias independentes.

LYRICS mapeia um número de compasso para as palavras cantadas sob aquele compasso. Elas podem vir do proprietário ou do que uma fonte mostra visivelmente (por exemplo, letras na tela em um vídeo de tablatura). Nunca as invente ou preencha a partir da memória ou de uma pesquisa na web; se nenhuma fonte mostrar palavras, deixe LYRICS = {} e diga que o proprietário pode adicioná-las. Uma música sem letras é renderizada limpa. As letras são impressas textualmente e sobrevivem a cada regeneração.

Renderização

python3 scripts/chart2pdf.py <slug>/<slug>.py -o <slug>/<slug>.pdf [--paper letter|a4]
python3 scripts/tabgen.py <slug>/<slug>.py <slug>/<slug>.tab --bars <1 if META slots == 16 else 3> --cut compact

O PDF é um gráfico, no estilo de um player de tablatura online: várias barras por linha, um rótulo de seção em negrito onde cada seção começa, uma figura repetida desenhada uma vez entre sinais de repetição com sua contagem (x4), uma seção que repete uma anterior reduzida a uma linha (Refrão 2 = Refrão (compassos 13-16)), nomes de acordes sobre as barras onde CHORDS os possui e letras sob a barra a que pertencem. Por padrão, é US-Letter e tem no máximo 2 páginas: os dígitos da tablatura permanecem em 9 pt ou mais, o espaçamento é apertado e as repetições são colapsadas antes que a fonte encolha, e uma música que ainda não couber é recusada com uma linha nomeando-a. Informe a contagem de páginas. Requer Pillow para letras ou títulos não latinos (veja acima). --collapse-sections força as linhas de referência.

O PDF longo, de uma barra de largura, ainda está disponível: tabgen.py ... --cut compact e depois tab2pdf.py <slug>.tab -o <slug>-long.pdf. --cut compact é a folha de texto. É o único corte que carrega a notação de repetição (uma figura colapsada rotulada A-B xN). --cut full é uma visão de depuração (cada barra, mais uma linha de régua de batida que o formato não lista), nunca o resultado final. Dê caminhos completos para as saídas.

O formato de texto: linhas de cabeçalho (título, artista, tonalidade, andamento, compasso, afinação, fonte, legenda), depois por seção um cabeçalho [Nome - compassos a-b . m:ss], uma linha de acordes, uma linha de números de compasso, uma linha de ritmo R| e quatro linhas de cordas G D A E; depois observações, e um bloco [Verificado]. As linhas da pauta são fixadas em 77 caracteres para que cada música seja impressa na mesma escala; se uma linha for mais longa, use menos barras por sistema.

Criando um arquivo de música a partir de fontes

Siga isso literalmente; é o objetivo da habilidade.

  1. Pegue apenas o que uma fonte realmente mostra. Uma captura de tela ou PDF de uma tablatura pode ser lida. Um link para uma gravação não pode: você não pode ouvir áudio. De um URL de música, pegue o título, andamento e nomes de seção, se impressos, nada mais. Nunca forneça um compasso de memória da música. Um espaço visível é melhor do que um compasso que parece correto e não é.
  2. Apenas a trilha de baixo. Se uma fonte mostrar vários instrumentos, pegue o baixo e diga qual trilha. Duas trilhas de baixo, ou baixo dobrado: pergunte, não escolha.
  3. Verifique cada repetição e codifique-a uma vez. Leia cada ocorrência e compare. Concordância é a verificação mais forte disponível; discordância significa que pelo menos uma leitura está errada. Ocorrências concordam: codifique uma vez. Elas discordam: diga isso, dê a contagem de cada maneira, marque a leitura como uma estimativa. Um compasso sem nenhuma repetição em lugar nenhum não pode ser verificado de forma cruzada; diga isso na folha.
  4. Nunca afirme o que você não verificou. Afirmações como "mesmo que os compassos A-B" são geradas a partir dos dados, não digitadas. Os intervalos de compassos da seção são calculados a partir dos limites.
  5. Estrutura, acordes, andamento. Preencha SECTIONS com os próprios rótulos da fonte. Dê a cada compasso sua entrada CHORDS: o acorde fixa em qual corda um traste está (traste 7 é B na corda E, E na corda A), então tabgen.py deriva a corda e gera um erro se um par traste/acorde não concordar em nenhuma corda. Coloque o andamento em META; os carimbos de data/hora da seção são calculados a partir dele.
  6. Relate o que você não fez. Quais compassos estão faltando, quais são estimativas, qual fonte deu o quê. Termine cada transcrição com isso, não com um atestado de saúde impecável.

Ritmo lido a olho e trastes nunca medidos são os pontos fracos conhecidos; diga isso em CAVEATS.

Sugestões

Após uma transcrição ou mediante solicitação, ofereça três tipos, claramente separados da transcrição: prática (o que treinar primeiro), musical (o que a progressão está fazendo) e arranjo (uma simplificação ou adição). Uma sugestão de arranjo é sua invenção; nunca deixe que ela pareça ser o que a fonte diz.

Verificação

tests/bass-tab/run.sh no repositório renderiza uma música de teste e a compara com a linha de base gravada, e verifica o gráfico em músicas inventadas (rótulos de seção, repetições colapsadas, alinhamento de letras, limite de 2 páginas).

Habilidades Relacionadas