BeatFlow
音楽上の決定には Codex を、正確なタイミング、機能的なピッチ実現、ボイシング、検証、診断、コンパイル、MIDI レンダリング、検査にはバンドルエンジンを使用します。
ランタイム
このスキルディレクトリを <skill-root> として参照し、次のように実行します:
python "<skill-root>/scripts/run.py" <command> ...
Python 3.10 以降が必要です。作曲スクリプトと生成されたアーティファクトは、ユーザーのワークスペースに書き込み、<skill-root> には決して書き込まないでください。
ワークフロー
-
ブリーフから、長さ、形式、テンポ、拍子、調性言語、楽器編成、エネルギー経路、優先事項、および除外事項を抽出します。不足している詳細については可逆的な仮定を行います。
-
各楽器を
essential(必須)、substitutable(代替可能)、またはoptional(任意)に分類します。さらに、その重要度をprimary(主)、co-primary(準主)、support(サポート)、またはbackground(背景)に分類します。必須楽器は保持し、契約変更を検討する前に、その記述、バランス、または再生プログラムを修復します。 -
composition-guidance.md と composition-format.md を読みます。顕著なメロディ、主題展開、複雑な拍子、タイミング修復が必要な場合は phrasing-and-coordination.md を読みます。90 秒を超える作品の場合は long-form.md を読みます。改訂または候補の比較時には diagnostics.md を読みます。research-foundations.md は方法論的証拠が有用な場合にのみ読み込みます。
-
イベントを書き始める前に計画します:
- フレーム:長さ、セクション、テンポ、拍子、タクトゥス、主音、およびモード;
- フレーズ:グループ化、和声リズム、注意、到達点、および解放;
- 骨格:拍動、ベース、ハーモニー、役割のエントリー、休符、および引き継ぎ;
- 前景:リズムの同一性、輪郭、密度、テクスチャ、および構造音;
- 装飾:フィル、二次アタック、カウンターライン、およびアーティキュレーション。
-
前景を追加する前に、量子化された骨格をレンダリングします。少なくとも1つの安定した時間参照を維持し、重要なハーモニーの変更と到達点を知覚可能にします。前景はオプションとして扱います。ベースフック、設計されたコードトップライン、またはリズムテクスチャがすでに注意を誘導している可能性があります。
-
build()関数がCompositionを返す信頼できる Python ファイルを作成します。SongBuilderを使用し、スタイルはスキーマやコンパイラではなく、作成された音楽に影響を与えるようにします。 -
完全な曲の場合、再利用可能なセクション素材とタイムライン上の発生を分離します。セクション全体をコピーせずに形式を変更するために、発生展開と
arrange()トリートメントを使用します。 -
品質に敏感なメロディや主題作品の場合、形式を拡張する前に、構造的に異なる短い候補を試聴します。ピッチ装飾なしでリズムと長さを比較し、初期の認識可能なステートメントを保持し、聴いて選択します。
-
選択した候補をレンダリングします:
python "<skill-root>/scripts/run.py" compose "<output>/<name>.py" "<output>/<name>.mid" --composition-output "<output>/<name>.composition.json" --project-output "<output>/<name>.project.json" --report "<output>/<name>.report.json"
- 検証エラーは重大な失敗として扱います。診断結果は好みのスコアではなく、記述された意図に対する証拠として扱います。責任のある最も高レベルな因果レイヤーを修正し、再レンダリングして再度聴きます。
- 音楽設計、仮定、検証結果、診断結果、MIDI 情報、およびまだ聴覚判断が必要な決定事項を報告します。
コア制約
- デフォルトのタイミングは正確に量子化されたままにします。オフセットドリフトやヒューマナイゼーションは、ユーザーが明示的にタイミング実験を要求した場合にのみ追加し、量子化されたベースラインを保持します。
- すべての四分音符がビートであると仮定せず、知覚的なタクトゥスをカウントします。拍子認識計画には
song.at()、song.tactus()、song.bars()を使用します。 - 不規則性に名前付きの音楽的機能がない限り、通常の全小節フレーズグループ化を使用します。
- 重要な前景フレーズには、明確なアイデンティティ、内部コントラスト、および主要な到達点を与えます。意図をテスト可能にする必要がある場合は、
phrase()、phrase_stage()、arrival()を使用します。 - 関連する役割には、強制的に同じアタックにすることなく、目的のある依存関係を与えます。独立性、インターロック、コールアンドレスポンス、または引き継ぎがブリーフの中心である場合は、
interaction()を使用します。 - コードボイシングの最高音がラインを担う場合は、
top_targetを使用します。明確な補完的役割がある場合にのみ、別のリードを追加します。 - すべてのオンセットと長さを明示的にします。次のアタックから音符の長さを推測しないでください。
改訂
以下の順序で診断します:
- 拍子と共有クロック;
- 役割の所有権と楽器契約;
- フレーズグループ化、ジェスチャー連続性、および到達点;
- 和声リズム、ベースサポート、およびボイシング;
- ピッチ輪郭と非和声音の振る舞い;
- アーティキュレーション、バランス、および再生音色。
ルールを追加する前に、3つの簡単な比較を使用します:
- 前景リズムを1つのピッチで試聴する;
- オプションまたは競合するレイヤーを一度に1つミュートする;
- 最も初期の完全なフレーズ終了と後の終了を比較する。
孤立した音符ではなく、因果構造を修復します。ランダムな密度、任意のジッター、一律のヒューマナイゼーション、または新しいジャンル固有のエンジンルールをショートカットとして使用しないでください。
コマンド
schema:Composition 1.1 JSON スキーマを出力validate COMPOSITION:厳密な構造的および意味的チェックを実行diagnose COMPOSITION:助言的な音楽的観察を報告compare COMPOSITION...:候補のフィンガープリントを比較compile COMPOSITION PROJECT:内部 Project JSON にコンパイルrender COMPOSITION MIDI:検証、診断、コンパイル、レンダリング、検査compose SCRIPT MIDI:信頼できるbuild()を実行し、フルパイプラインを実行inspect MIDI:MIDI 構造、プログラム、範囲、コントローラーを報告self-check:エンドツーエンドのインストールスモークテストを実行
project-schema、project-validate、render-project は、低レベルのコンパイル済み Project 境界に対してのみ使用します。
境界
- オリジナルの象徴的な音楽を作成します。参照メロディをコピーしたり、存命のアーティストを模倣したりしないでください。
- 分析コーパスや参照ファイルをインポートする前に、ライセンスを確認します。
- General MIDI 再生はプレビューとして扱います。プロダクション音色は、対象楽器または DAW で評価します。
- 最終的な音楽的判断として聴くことを保持します。