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
-
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.
-
Classifique cada instrumento como
essencial,substituívelouopcional. Separe sua proeminência comoprimário,coprimário,suporteoufundo. Preserve instrumentos essenciais e repare sua escrita, equilíbrio ou programa de reprodução antes de considerar uma alteração de contrato. -
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.
-
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.
-
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.
-
Crie um arquivo Python confiável cuja função
build()retorneComposition. UseSongBuilder; deixe o estilo afetar a música criada, não o esquema ou compilador. -
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. -
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.
-
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"
- 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.
- 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()esong.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()earrival()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_targetquando 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:
- métrica e relógio compartilhado;
- propriedade de papéis e contratos de instrumento;
- agrupamento de frases, continuidade de gesto e chegada;
- ritmo harmônico, suporte do baixo e voicing;
- contorno de altura e comportamento de notas não harmônicas;
- 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.1validate COMPOSITION: executa verificações estruturais e semânticas rígidasdiagnose COMPOSITION: relata observações musicais de aconselhamentocompare COMPOSITION...: compara impressões digitais de candidatoscompile COMPOSITION PROJECT: compila para JSON de Projeto internorender COMPOSITION MIDI: valida, diagnostica, compila, renderiza e inspecionacompose SCRIPT MIDI: executabuild()confiável e executa o pipeline completoinspect MIDI: relata estrutura MIDI, programas, faixas e controladoresself-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.