Communitygithub.com

beatflow-skill

Componha, organize, revise, valide, compare, inspecione e exporte música multi-faixa original como MIDI Padrão com Codex e o DSL Python neutro em estilo do BeatFlow. Use para traduzir um briefing musical em funções instrumentais coordenadas, escrever músicas completas em qualquer gênero, diagnosticar problemas de ritmo ou fraseado, ou trabalhar com BeatFlow Composition 1.1 e arquivos MIDI.

O que é beatflow-skill?

O BeatFlow é uma habilidade para agentes de IA (como Codex, Cursor, Claude Code) que permite compor, arranjar, revisar, validar, diagnosticar, comparar, compilar e exportar música original multi-faixa como MIDI Padrão (.mid). Ele utiliza um DSL Python neutro em estilo, baseado no formato BeatFlow Composition 1.1. A habilidade é útil para desenvolvedores que desejam traduzir briefings musicais em composições completas, com suporte a múltiplos instrumentos, métricas, andamentos, harmonias e estruturas formais. O fluxo de trabalho começa pela extração de parâmetros musicais (duração, forma, andamento, métrica, tonalidade, instrumentação) e termina com a renderização controlada por comandos específicos. O BeatFlow impõe restrições rigorosas: manutenção de pulsação quantizada, uso de tato perceptivo, agrupamento de frases regulares, e explicitamente datas e durações. A revisão segue uma ordem determinística de diagnóstico, evitando shortcuts como humanização genérica. A habilidade também oferece comandos como `compose` (para executar scripts Python confiáveis que retornam `Composition`), `validate` (verificações estruturais e semânticas), `diagnose` (observações musicais de aconselhamento), `compare` (comparação de candidatos), `compile` (compilação para JSON de projeto), `render` (validação, diagnóstico, compilação e renderização completas), `inspect` (relatório da estrutura MIDI) e `self-check` (teste de fumaça de instalação). O resultado final é um arquivo MIDI, um relatório JSON de validação, diagnóstico e fatos MIDI, além de decisões que ainda requerem julgamento auditivo. A habilidade respeita limites de criação de música original, não copiando melodias de referência nem imitando artistas vivos. O áudio final é sempre a decisão musical final.

Funciona com~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/the0cp/beatflow-skill/tree/master

Perguntar na sua IA favorita

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

Documentação

BeatFlow

Use o Codex para decisões musicais. Use o motor integrado para temporização exata, realização funcional de alturas, voicing, validação, diagnóstico, compilação, renderização MIDI e inspeção.

Runtime

Consulte este diretório de habilidade como <skill-root> e execute:

python "<skill-root>/scripts/run.py" <comando> ...

Requer Python 3.10 ou superior. Escreva scripts de composição e artefatos gerados no espaço de trabalho do usuário, nunca em <skill-root>.

Fluxo de trabalho

  1. Extraia duração, forma, andamento, métrica, linguagem tonal, instrumentação, trajetória de energia, prioridades e exclusões do briefing. Faça suposições reversíveis para detalhes ausentes.

  2. Classifique cada instrumento como essencial, substituível ou opcional. Separe sua proeminência como primário, coprimário, suporte ou fundo. Preserve instrumentos essenciais e repare sua escrita, equilíbrio ou programa de reprodução antes de considerar uma alteração de contrato.

  3. Leia composition-guidance.md e composition-format.md. Leia phrasing-and-coordination.md para melodia proeminente, desenvolvimento temático, métrica complexa ou reparo de temporização. Leia long-form.md para trabalhos com mais de 90 segundos. Leia diagnostics.md ao revisar ou comparar candidatos. Carregue research-foundations.md apenas quando evidência metodológica for útil.

  4. Planeje antes de escrever eventos:

    • quadro: duração, seções, andamento, métrica, tacto, tônica e modo;
    • frase: agrupamento, ritmo harmônico, atenção, chegadas e liberações;
    • esqueleto: pulso, baixo, harmonia, entradas de papéis, pausas e passes;
    • primeiro plano: identidade rítmica, contorno, densidade, textura e tons estruturais;
    • decoração: preenchimentos, ataques secundários, contracantos e articulação.
  5. Renderize o esqueleto quantizado antes de adicionar o primeiro plano. Mantenha pelo menos uma referência de tempo estável e torne as mudanças harmônicas importantes e as chegadas perceptíveis. Trate o primeiro plano como opcional; um riff de baixo, linha superior de acorde projetada ou textura rítmica já pode liderar a atenção.

  6. Crie um arquivo Python confiável cuja função build() retorne Composition. Use SongBuilder; deixe o estilo afetar a música criada, não o esquema ou compilador.

  7. Para uma música completa, separe o material de seção reutilizável das ocorrências na linha do tempo. Use desenvolvimento de ocorrência e tratamentos arrange() para criar mudança formal sem copiar seções inteiras.

  8. Para melodia ou trabalho temático sensível à qualidade, ouça candidatos curtos e estruturalmente diferentes antes de expandir a forma. Compare ritmo e duração sem decoração de altura, preserve uma declaração reconhecível inicial e selecione ouvindo.

  9. Renderize o candidato selecionado:

python "<skill-root>/scripts/run.py" compose "<output>/<nome>.py" "<output>/<nome>.mid" --composition-output "<output>/<nome>.composition.json" --project-output "<output>/<nome>.project.json" --report "<output>/<nome>.report.json"
  1. Trate erros de validação como falhas graves. Trate diagnósticos como evidência contra a intenção escrita, não como pontuações de gosto. Revise a camada causal mais alta responsável, renderize novamente e ouça novamente.
  2. Relate o design musical, suposições, resultado da validação, achados do diagnóstico, fatos MIDI e quaisquer decisões que ainda exijam julgamento auditivo.

Restrições principais

  • Mantenha a temporização padrão exatamente quantizada. Adicione desvio de ataque ou humanização apenas quando o usuário solicitar explicitamente um experimento de temporização, e preserve uma linha de base quantizada.
  • Conte o tacto perceptual em vez de assumir que cada semínima é uma batida. Use song.at(), song.tactus() e song.bars() para planos cientes da métrica.
  • Use agrupamento de frases de compasso inteiro regular, a menos que a irregularidade tenha uma função musical nomeada.
  • Dê a frases de primeiro plano importantes uma identidade clara, contraste interno e chegada primária. Use phrase(), phrase_stage() e arrival() quando sua intenção precisar ser testável.
  • Dê a papéis relacionados dependência proposital sem forçar ataques idênticos. Use interaction() quando independência, entrosamento, chamada-e-resposta ou passagem for central para o briefing.
  • Use top_target quando a nota mais alta de um voicing de acorde carregar a linha. Adicione uma lead separada apenas quando ela tiver um papel complementar claro.
  • Mantenha cada ataque e duração explícitos. Nunca infira comprimento de nota a partir do próximo ataque.

Revisão

Diagnostique nesta ordem:

  1. métrica e relógio compartilhado;
  2. propriedade de papéis e contratos de instrumento;
  3. agrupamento de frases, continuidade de gesto e chegada;
  4. ritmo harmônico, suporte do baixo e voicing;
  5. contorno de altura e comportamento de notas não harmônicas;
  6. articulação, equilíbrio e timbre de reprodução.

Use três comparações simples antes de adicionar regras:

  • ouça o ritmo do primeiro plano em uma única altura;
  • silencie camadas opcionais ou concorrentes uma de cada vez;
  • compare o final da frase completa mais antiga com um final posterior.

Repare estrutura causal em vez de notas isoladas. Não use densidade aleatória, variação arbitrária, humanização genérica ou uma nova regra de motor específica de gênero como atalho.

Comandos

  • schema: imprime o Esquema JSON Composition 1.1
  • validate COMPOSITION: executa verificações estruturais e semânticas rígidas
  • diagnose COMPOSITION: relata observações musicais de aconselhamento
  • compare COMPOSITION...: compara impressões digitais de candidatos
  • compile COMPOSITION PROJECT: compila para JSON de Projeto interno
  • render COMPOSITION MIDI: valida, diagnostica, compila, renderiza e inspeciona
  • compose SCRIPT MIDI: executa build() confiável e executa o pipeline completo
  • inspect MIDI: relata estrutura MIDI, programas, faixas e controladores
  • self-check: executa o teste de fumaça de ponta a ponta da instalação

Use project-schema, project-validate e render-project apenas para o limite de Projeto compilado de baixo nível.

Limites

  • Crie música simbólica original. Não copie uma melodia de referência ou imite um artista vivo.
  • Verifique licenças antes de importar corpora analíticos ou arquivos de referência.
  • Trate a reprodução General MIDI como uma prévia; avalie o timbre de produção nos instrumentos de destino ou DAW.
  • Mantenha a audição como a decisão musical final.

Habilidades Relacionadas