BeatFlow
Utilisez Codex pour les décisions musicales. Utilisez le moteur fourni pour le timing exact, la réalisation fonctionnelle des hauteurs, le voicing, la validation, le diagnostic, la compilation, le rendu MIDI et l'inspection.
Environnement d'exécution
Référez-vous à ce répertoire de compétence comme <skill-root> et exécutez :
python "<skill-root>/scripts/run.py" <commande> ...
Nécessite Python 3.10 ou plus récent. Écrivez les scripts de composition et les artefacts générés dans l'espace de travail de l'utilisateur, jamais dans <skill-root>.
Workflow
-
Extrayez la durée, la forme, le tempo, la mesure, le langage tonal, l'instrumentation, la trajectoire énergétique, les priorités et les exclusions du brief. Faites des hypothèses réversibles pour les détails manquants.
-
Classez chaque instrument comme
essentiel,substituableouoptionnel. Classez séparément sa proéminence commeprimaire,co-primaire,supportoufond. Préservez les instruments essentiels et réparez leur écriture, leur équilibre ou leur programme de lecture avant d'envisager une modification du contrat. -
Lisez composition-guidance.md et composition-format.md. Lisez phrasing-and-coordination.md pour la mélodie proéminente, le développement thématique, les mètres complexes ou la réparation temporelle. Lisez long-form.md pour les œuvres de plus de 90 secondes. Lisez diagnostics.md lors de la révision ou de la comparaison de candidats. Chargez research-foundations.md uniquement lorsque des preuves méthodologiques sont utiles.
-
Planifiez avant d'écrire les événements :
- cadre : durée, sections, tempo, mesure, tactus, tonique et mode ;
- phrase : regroupement, rythme harmonique, attention, arrivées et relâchements ;
- squelette : pulsation, basse, harmonie, entrées de rôle, silences et passations ;
- premier plan : identité rythmique, contour, densité, texture et notes structurelles ;
- décoration : remplissages, attaques secondaires, contre-lignes et articulation.
-
Rendez le squelette quantifié avant d'ajouter le premier plan. Gardez au moins une référence temporelle stable et rendez les changements harmoniques importants et les arrivées perceptibles. Considérez le premier plan comme optionnel ; un hook de basse, une ligne de sommets d'accords conçue, ou une texture rythmique peuvent déjà attirer l'attention.
-
Écrivez un fichier Python fiable dont la fonction
build()renvoieComposition. UtilisezSongBuilder; laissez le style affecter la musique écrite, pas le schéma ou le compilateur. -
Pour une chanson complète, séparez le matériau de section réutilisable des occurrences dans la timeline. Utilisez le développement d'occurrence et les traitements
arrange()pour créer un changement formel sans copier des sections entières. -
Pour un travail mélodique ou thématique sensible à la qualité, écoutez de courts candidats structurellement différents avant d'étendre la forme. Comparez le rythme et la durée sans décoration de hauteur, préservez un énoncé reconnaissable précoce et sélectionnez en écoutant.
-
Rendez le candidat sélectionné :
python "<skill-root>/scripts/run.py" compose "<sortie>/<nom>.py" "<sortie>/<nom>.mid" --composition-output "<sortie>/<nom>.composition.json" --project-output "<sortie>/<nom>.project.json" --report "<sortie>/<nom>.report.json"
- Traitez les erreurs de validation comme des échecs graves. Traitez les diagnostics comme des preuves contre l'intention écrite, pas comme des scores de goût. Révisez la couche causale la plus élevée responsable, re-rendez et réécoutez.
- Rapportez la conception musicale, les hypothèses, le résultat de validation, les conclusions diagnostiques, les faits MIDI, et toutes les décisions qui nécessitent encore un jugement à l'écoute.
Contraintes fondamentales
- Gardez le timing par défaut exactement quantifié. Ajoutez une dérive d'attaque ou une humanisation uniquement lorsque l'utilisateur demande explicitement une expérience de timing, et préservez une base quantifiée.
- Comptez le tactus perceptif plutôt que de supposer que chaque noire est un temps. Utilisez
song.at(),song.tactus()etsong.bars()pour des plans conscients de la mesure. - Utilisez un regroupement régulier de phrases sur une mesure entière, sauf si l'irrégularité a une fonction musicale nommée.
- Donnez aux phrases importantes de premier plan une identité claire, un contraste interne et une arrivée principale. Utilisez
phrase(),phrase_stage()etarrival()quand leur intention doit être testable. - Donnez aux rôles liés une dépendance intentionnelle sans forcer des attaques identiques. Utilisez
interaction()lorsque l'indépendance, l'imbrication, l'appel-réponse ou la passation est centrale au brief. - Utilisez
top_targetlorsque la note la plus haute d'un voicing d'accord porte la ligne. Ajoutez une piste principale séparée uniquement lorsqu'elle a un rôle complémentaire clair. - Gardez chaque attaque et durée explicites. Ne déduisez jamais la longueur d'une note de l'attaque suivante.
Révision
Diagnostiquez dans cet ordre :
- mesure et horloge partagée ;
- propriété des rôles et contrats des instruments ;
- regroupement des phrases, continuité gestuelle et arrivée ;
- rythme harmonique, support de basse et voicing ;
- contour de hauteur et comportement des notes étrangères ;
- articulation, équilibre et timbre de lecture.
Utilisez trois comparaisons simples avant d'ajouter des règles :
- écoutez le rythme de premier plan sur une seule hauteur ;
- coupez les couches optionnelles ou concurrentes une par une ;
- comparez la première phrase complète la plus précoce avec une fin ultérieure.
Réparez la structure causale plutôt que des notes isolées. N'utilisez pas la densité aléatoire, des fluctuations arbitraires, l'humanisation généralisée, ou une nouvelle règle de moteur spécifique à un genre comme raccourci.
Commandes
schema: affiche le schéma JSON de Composition 1.1validate COMPOSITION: effectue des vérifications structurelles et sémantiques strictesdiagnose COMPOSITION: rapporte des observations musicales indicativescompare COMPOSITION...: compare les empreintes de candidatscompile COMPOSITION PROJECT: compile vers un JSON de projet internerender COMPOSITION MIDI: valide, diagnostique, compile, rend et inspectecompose SCRIPT MIDI: exécute la fonctionbuild()fiable et lance le pipeline completinspect MIDI: rapporte la structure MIDI, les programmes, les plages et les contrôleursself-check: exécute le test de fumée d'installation de bout en bout
Utilisez project-schema, project-validate et render-project uniquement pour la frontière bas niveau du Projet compilé.
Limites
- Créez de la musique symbolique originale. Ne copiez pas une mélodie de référence et n'imitez pas un artiste vivant.
- Vérifiez les licences avant d'importer des corpus analytiques ou des fichiers de référence.
- Considérez la lecture MIDI standard comme un aperçu ; évaluez le timbre de production dans les instruments ou le DAW de destination.
- Gardez l'écoute comme décision musicale finale.