Music Generator
オリジナル音楽を厳格で計測可能なパイプラインを通じて生成するプロシージャル音楽生成システム。すべての決定はエージェントが行い、スクリプトがそれを実行します。パイプラインは主観的な推測ではなく、客観的な測定値と品質ゲートを使用します。
使用すべきタイミング
以下の場合にこのスキルを使用します:
- 動画、ゲーム、広告、ポッドキャスト、ナレーション向けのオリジナル音楽を作成する
- ムード記述からサウンドトラックを生成する(例:「緊張感あふれるシネマティックな盛り上がり」「落ち着いたローファイ」)
- 録音から楽器をクローンする
- 既存のステムをミキシングまたはマスタリングする
- カットやダイアログを含む動画にスコアリングする
- ロボット的、平板、または不均衡な音楽を修正する
- 特定の文化スタイル(カルナティック、アラビア、アフリカ、東アジアなど)を扱う
クイックスタート
スキルディレクトリから仮想環境を使用して実行します:
- Windows:
.venv/Scripts/python.exe - Unix:
.venv/bin/python
初回セットアップ:references/setup.mdを参照してください。
ワークフロー
以下の手順を順番に実行します。ステップを省略しないでください。
| ステップ | アクション | 出力 | チェック |
|---|---|---|---|
| 1 | プロジェクト作成 | python scripts/setup_project.py --new-project <dir> --title "<Title>"(--ambienceは明示的に要求された場合のみ追加) | direction/、presets/、scores/、out/、reports/、STATUS.mdを含むプロジェクト構造 |
| 2 | リサーチ | python scripts/research_kb.py <dir> --topic "<topic>" --tags <tags>。TinyFishでウェブソースを追加。アンビエンス/エフェクトの場合は--soundsを使用し、ライセンス/測定値を含む実際のリファレンスを文書化。 | KB引用とソースを含むreports/research_<topic>.md |
| 3 | ディレクションシート | templates/direction_sheet.jsonを<dir>/direction/direction_<title>.jsonにコピー。references/music-direction.mdに従いすべてのフィールドを記入。動画の場合は最初にscripts/video_score.pyを実行。 | ジョブ、雰囲気、セクション、モチーフ、ヒット、ミックス意図、空間ステージングを含む完全なシート |
| 4 | プリセット作成 | python scripts/presets.py scaffold instruments/vocals/environments/sfx <name> --project <dir>。それぞれに固有の空間配置が必要。 | キャラクター、spatial.azimuth/distanceを含むプロジェクト内のプリセット |
| 5 | スコア記述 | <dir>/scores/<title>_score.jsonを作成(宣言的、プリセットを参照)。詳細な制御にはtemplates/custom_score_template.pyを使用。 | プリセットを参照するトラックを含む有効なJSON |
| 6 | レンダリングとゲート | python scripts/pipeline.py <dir>/scores/<title>_score.json --project <dir> | out/master.wav(最新バージョンのコピー)、out/master_vNN.wav、out/versions.json、<master>.jsonタグ、stems/、midi/、FAILが0のreports/ci_report.json |
| 7 | リビジョン | 一度に1つのレバーを変更(references/music-direction.md§6)。全ゲートが緑色になるまでステップ6を再実行(最大5回試行)。 | すべてのゲート通過 |
| 8 | 試聴と納品 | python scripts/listen.py out/master.wav --direction direction/<sheet>.json | 結果を確認し報告 |
納品メタデータとバージョン
認証は、音楽ゲート通過後に自動的に3つのものを書き込みます:
out/master_vNN.wav— 認証されたレンダリングごとに独自のバージョンファイルが作成されます。以前のバージョンは保持され、再レンダリングしても上書きされません。out/master.wav— 単一のマスターを期待するツール向けに、最新バージョンのコピー。out/versions.json— 各バージョンとそのタイムスタンプ、測定値、およびそれを獲得した変更(クリアしたゲート障害、または「最初の認証レンダリング」)を記録。out/master.json— マスターの横に書き込まれる標準タグ。
タグの出典:presets/metatdats/metadata.jsonのデフォルト値(アーティスト、アルバム、著作権、ライセンス、出版社、ISRC、言語)、次にスコアから派生した値(タイトル、piece_typeからのジャンル、年、事実に基づく「キー · BPM · piece_type」コメント)、最後にプロジェクト自身のmetadata.jsonがオーバーライド。実際の値はスクリプトではなく<project>/metadata.jsonに書き込んでください。
エージェント向けルール:
master_vNN.wavやversions.jsonのレコードを決して削除または上書きしないでください。クリーンテイクが必要な場合、それは新しいバージョンになります。- レンダリング後に記録を確認:
python scripts/helpers/version_manager.py list --project <dir>。 - MP3圧縮は手動であり、パイプラインの一部ではありません:
python scripts/helpers/compress_mp3.py out/master_vNN.wav -o <file>.mp3 -b 320k。サイドカータグをMP3に引き継ぎます。 - ゲート行
meta.tagsとmeta.versionはこのレコードのみを追跡します。これらは警告を出しますが、失敗することはなく、最初のレンダリングではINFOです。
主要原則
- モジュール性:音/空間は
presets/、音符はscores/、意図はdirection/に。モノリシックなスクリプトはありません。 - リサーチ駆動:すべてのカスタム楽器/ボーカル/文化にはKBリサーチの引用が必要です。
- コードよりデータ:新しい音はPythonジェネレーターではなくシーンデータ(
"scene"/"scene_layers")を使用します。 - 一度に1つの変更:ゲート障害を修正するときは、パラメーターを1つだけ変更し再測定します。
- 推測ではなく測定:パイプラインの指標と診断を使用します。味覚は測定されません。
- すべての楽曲にミックスプリセット:ゲインステージング、ダイナミクス、サイドチェイン、マスタリングを制御します。
タスク別ルート
| タスク | 主な参照先 |
|---|---|
| 動画スコアリング/カット | references/video-scoring.md、scripts/video_score.py |
| ボーカル/合唱/ハミング | references/vocals-and-choirs.md、references/vocal-engine.md |
| 文化スタイル/フュージョン | knowledgebase/README.md、references/cultural-soul.md、references/genre-fusion.md |
| SFX/アンビエンス/フォーリー | references/sound-effects.md、references/physical-scene.md、references/environments-as-presets.md |
| SFZオーケストラ | references/sfz-libraries.md、scripts/sfz_libs.py |
| 楽器クローン/抽出 | references/instrument-cloning.md、references/extraction.md |
| ミキシング/マスタリング | references/mixing-and-mastering.md、scripts/mixer.py、scripts/mix_diagnostics.py |
| ゲート障害 | references/quality-gate.md、scripts/gate_profiles.py |
出力テンプレート
Done: out/master.wav (Xs, -X.X LUFS, -X.X dBTP)、midi/<title>_score.mid、stems/ (N)、reports/ci_report.json。
What it is: <雰囲気、キー、BPM、楽器、プリセット>。
Gates: <N pass, 0 fail after K attempts>;listen: <測定値>。
Not checked: 味覚、実楽器リアリズム、最終動画への適合性。
Next: <1つの提案された変更>。
注意事項と制限
- デフォルトでGM SoundFontを使用。SFZライブラリはオプション。標準合成では歌詞はありません(合唱/ハミングはテクスチャとして扱われます)。
listen.pyはearshotモデルが必要(インストールするにはpython scripts/setup_project.py --earsを実行)。- ヘッドフォン空間化は
spatial.binaural: trueのプリセットのみ。 - ミックス診断は報告しますがゲートをブロックしません(ブロックするゲートは品質ゲートにあります)。
- 完全なルールについては
AGENTS.md、完全な制限についてはreferences/troubleshooting-and-limits.mdを参照してください。