real-sound は何をしますか?
あなたは、聞くことのできない映画のサウンドスーパーバイザーです。サウンドトラックは、実際のプロフェッショナル録音またはプロデュースされたオーディオ(ライセンスされた1つの音楽トラック、実際のフォーリーとSFX、実際のアンビエンス)のみから構築され、決定論的ミキサーによって映像のキューとなるフレームに配置され、聴く代わりに測定され、5つの視点から批評され、1つのエージェントによって修正され、マスタリングされ、クレジットされ、マルチプレクシングされます。コードは、選択、トリミング、配置、レベル調整、パンニング、EQ、リサンプリングによるピッチ変更、音楽のタイムストレッチとマスタリングを行います。コードは音を生成しません。
目標はプロフェッショナルなローンチフィルムです。画面上の何かによって引き起こされるすべての音、1つのマテリアルパレット、ヒーローリビールでの音楽のドロップ、その他の部分では抑制、解決されたロゴ、そして静寂へのテール。ルール:references/sound-design.md(およびバンドルされたリファレンスプロファイル用のearshotリポジトリのdocs/launch-video-sound.md:7本のプロフェッショナルローンチフィルム)。
<skill> はこのフォルダです。Python: 以下の {{PY}}(およびすべてのプロンプトテンプレート内)は、numpy、scipy、soundfile、およびearshotパッケージを持つ1つのインタプリタです。earshotリポジトリのvenv(Windowsの場合は <earshot repo>/.venv/Scripts/python.exe、それ以外の場合は <earshot repo>/.venv/bin/python)、または <python> -c "import earshot" が機能する任意のPythonです。Windowsのベア python は、Microsoftストアのスタブであることが多く、失敗します。コマンドを実行したり、サブエージェントにプロンプトを渡したりするときは、{{PY}} をフルパスに置き換えてください(他のプレースホルダーは references/process.md にリストされています)。スクリプトは -I(分離モード:ダウンロードしたファイルがモジュールをシャドウイングすることはありません)で実行します。scripts/licences.py(audit.pyとcredits.pyがインポートするライセンスポリシーモジュール)を除くすべてのスクリプトは --help を出力します。
プロセス
| ステップ | 担当者 | 出力 | ゲート |
|---|---|---|---|
| 0. キューリスト | リード | out/cues.json | 映像コードから計算された同期フレーム |
| 1. ブリーフ | リード | audio/SOUND_BRIEF.md | すべてのキューにサウンドニーズがある(または「なし」) |
| 2. ソーシング(カテゴリごと、並列) | ソーシングエージェント | audio/assets/<cat>/、マニフェスト | 各ファイルが測定され、earshot realness が「実際またはプロがプロデュース」であること(「未確定」の場合は、その証拠とトリムレベルの再チェックがマニフェストに記述されていること) |
| 3. ライセンス監査 | 監査人 | audit.json | audit.py がフィルムが使用するものに対して終了コード0 |
| 4. 音楽編集 | 音楽スーパーバイザー | audio/design/music.json | グリッドが検証され、リビールでドロップ、スプライスがクリーン |
| 5. デザインフラグメント(カテゴリごと、並列) | デザイナー | audio/design/<cat>.json | ソロレンダリング+QAクリーン |
| 6. 統合 | リード | サウンドトラック、ステム、レポート、トレース | マスターゲート(+-0.5 LU、<= -1.5 dBTP) |
| 7. QA + リスニング | リード | out/qa/qa.json、earshotタイムライン/シート/批評 | QAフェイルなし |
| 8. 批評(5つのレンズ、並列、読み取り専用) | 批評家 | ランク付けされた問題 + テストされた操作 | |
| 9. 修正 | 1人の修正者 | デザイン | QA:回帰なし |
| 10. マスター、クレジット、マルチプレクシング | リード | CREDITS.md、説明文、フィルム | クレジット終了コード0、ラグ0 |
すべてのステップの詳細、役割、各批評家が測定するもの:references/process.md。すべてのサブエージェントプロンプトは、templates/prompts/ にあるすぐに記入可能なブリーフです。
0. 映像からのキューリスト
すべての音は、映像コードが計算するフレームに配置されます。接触フレーム、ポップインの50%フレーム、動きの速度ピーク、ライザーのヒット、ワードマークが読み取れるようになるフレームなどです。シネティックフィルムにはすでに out/cues.json があります(export-cues.ts)。それ以外のものについては、タイムライン定数から同じ形式(templates/cues.json)を記述します。安定したID(act:thing:n)により、ルールはアクションのクラスを正規表現でマッチングできます。
1. ブリーフ
templates/SOUND_BRIEF.md を audio/SOUND_BRIEF.md にコピーします。コンセプト(パレット、音楽のアーク、場所)、ピクチャーマップ(すべてのキュー:画面上のもの、サウンドニーズ)、アンビエンスゾーン、許可されるライセンス、品質基準、ファイルレイアウト。これはすべてのサブエージェントが逐語的に受け取る契約書です。ブランドのパーソナリティ行(references/sound-design.md §3)を選択します。
2. カテゴリごとのソーシング(templates/prompts/sourcing.md)
典型的なローンチフィルムのカテゴリ:ui(クリック、タップ、トグル、ポップ)、keyboard、motion(ウィッシュ、ライザー)、impacts(リビールヒット、ロゴ)、ambience、music。キャラクターフィルムは foley、その世界、そのオブジェクトを追加します。Freesound(CC0 / CC BY; HQプレビュー cdn.freesound.org/previews/<id//1000>/<id>_<user>-hq.ogg)、Mixkit(WAV assets.mixkit.co/active_storage/sfx/<id>/<id>.wav)、音楽用の作曲家ライブラリ。ライセンスは各アイテムのページで確認します(references/licences.md)。丁寧な逐次ダウンロード。すべてのファイルを測定します。
{{PY}} -I <skill>/scripts/analyze.py audio/assets/ui/* --png out/audio-review/ui --out out/audio-review/ui.json
{{PY}} -m earshot realness audio/assets/ui/ # ゲート: 「実際またはプロがプロデュース」(トリムを再チェック: --start --end)
{{PY}} -m earshot rank "a single crisp trackpad click" audio/assets/ui/ --top 5
{{PY}} -m earshot match <file> "a soft cork pop" --alts "a gunshot" "a balloon burst"
{{PY}} -m earshot find <long take> "a single mechanical key press" --top 8 # トリム; ヘッドカット/テールカットとマークされたものはスキップ
3. ライセンス監査(templates/prompts/licence_audit.md)
監査人は、各ページの記載内容(licence_seen、licence_confirmed)を audio/assets/manifests/audit.json に記録します。スクリプトは残り(分類、IDとURL、ファイルのデコード、長さ、クレジット行)をチェックします。
{{PY}} -I <skill>/scripts/audit.py --root . --report out/qa/mix_report.json [--fetch]
許可されるライセンス: CC0、パブリックドメイン、CC BY 2.0-4.0、Mixkit無料ライセンス、Pixabay。禁止: NC、ND、SA、Sampling+、個人、カスタム、係争中。未確認 = ブロック。
4. 音楽(templates/prompts/music_supervisor.md)
フィルムに合った構造を持つ1つのライセンストラック。フィルムの小節ごとにアークを記述します(templates/arc.json)。その後:
{{PY}} -I <skill>/scripts/arrange.py audio/assets/music/<track> --film-bpm 120 --arc audio/arc.json --out out/audio-review/music/arrange.json
テンポを合わせ、測定されたアタックにグリッドを移動し(ビートトラッカーは20~50ms遅れます)、ダウンビートフェーズを提案し、最強のドロップ候補にフィルム小節を固定し、小節線でセグメントを起草します(すぐに貼り付け可能な music ブロック)。ダウンビートが弱点です。低い信頼度が表示された場合(テストされた2つのトラックのうち1つでは半小節ずれていました)、小節テーブルの最初の音符、セクションの入り口、コードチェンジから2つの印刷されたグリッド間で判断し、--phase N で再実行します。その後、判断で編集します。各スプライスでハーモニーが継続し、ヒーローフレームでドロップのダウンビート、ロゴで最終コード、最後に tail_fade が入ります。
5. カテゴリごとのデザインフラグメント(templates/prompts/designer.md)
audio/design/<category>.json。サンプル(トリム)、スライス(多くのヒットを含むテイクを個別のヒットにカット)、プール、キューイベントのルール、自由配置、アンビエンスベッド、音楽ブロックを含みます。すべてのキーと実際の例を参照:references/design-format.md。完全なローンチビデオの例:templates/design_fragment.json(ファイル名は mk-0000_mouse-click.wav などのプレースホルダーです。各ファイルがマニフェストからの実際の録音に置き換えられるとレンダリングされます。mix.py は不足しているファイルを停止してリストアップします)。
単独で確認します。
{{PY}} -I <skill>/scripts/mix.py --only ui --dump out/audio-review/ui/dump # すべてのトリムをWAV+数値で
{{PY}} -I <skill>/scripts/mix.py --only ui --trace out/audio-review/ui/adds.json --out out/audio-review/ui/solo.wav
{{PY}} -I <skill>/scripts/qa.py --only ui --report out/audio-review/ui/solo_report.json --stems out/audio-review/ui/solo_stems --trace out/audio-review/ui/adds.json --out out/audio-review/ui/qa.json
{{PY}} -m earshot timeline out/audio-review/ui/solo.wav --cues out/cues.json
6-7. 統合、QA、リスニング
{{PY}} -I <skill>/scripts/mix.py --root . --design audio/sounddesign.json --cues out/cues.json --trace out/qa/adds.json
{{PY}} -I <skill>/scripts/qa.py --layers # クリック、エッジ、可聴性、耳障りさ、ラウドネス、カバレッジ、同期、密度
{{PY}} -I <skill>/scripts/qa.py --listen --realness --video out/film.mp4 # + earshotタイムライン、シート、批評、リアルネス
{{PY}} -m earshot critique out/audio/soundtrack.wav --video out/film.mp4 # プロフェッショナルローンチフィルムとのスコアカード
{{PY}} -m earshot sheet out/audio/soundtrack.wav -o out/qa/sheet.png --video out/film.mp4 --cues out/qa/cues_sounded.json
qa.py はすべての所見を、それを引き起こしたルールとサンプル(トレース)に結び付けます。モデルなしでも使用可能です。--listen はearshotのトランスクリプト(out/qa/qa_timeline.txt)、注釈付きシート、スコアカードを追加します。
8-9. 批評と修正
5人の読み取り専用批評家が並行して動作し、それぞれにプロンプトがあります:critic_sync.md、critic_edges.md、critic_masking.md、critic_tonal.md、critic_director.md。各批評家は、自身のフォルダ内で修正案をバリアントとしてテストします。
{{PY}} -I <skill>/scripts/variant.py --ops out/audio-review/critic_tonal/ops_v1.json --out out/audio-review/critic_tonal/v1 --render --qa
そして、ランク付けされた問題と正確な操作、before/afterの数値を返します。その後、1人の修正者(fixer.md)が操作をマージし、競合を解決し、マージされたバリアントを以前のqa.jsonと照合し、それを適用します(variant.py --apply、オリジナルはバックアップされます)。確認された意図的な例外は "qa_ok": "<理由>" で承認します。少なくとも1ラウンド。レベルまたは音楽編集が変更された場合は2ラウンド目。
10. マスター、クレジット、マルチプレクシング
mix.py は master.py でマスタリングします(-14 LUFS、トゥルーピークリミッター、天井0.77リニア、ゲート+-0.5 LU、<= -1.5 dBTP)。
{{PY}} -I <skill>/scripts/audit.py --root . --report out/qa/mix_report.json # exit 0
{{PY}} -I <skill>/scripts/credits.py --root . --design audio/sounddesign.json --audit audio/assets/manifests/audit.json
node <skill>/scripts/mux.mjs --video out/film.mp4 --audio out/audio/soundtrack.wav --out out/film_sound.mp4
{{PY}} -m earshot timeline out/film_sound.mp4 --cues out/qa/cues_sounded.json # 完成したファイル、聴いて確認
CREDITS.md + out/CREDITS_description.txt(動画の説明に貼り付けます。CC BYクレジットは必須です)。mux.mjs は映像をストリームコピーし、AACオーディオを映像の長さにカットします。
ローンチビデオ:サウンドマップ
| 映像 | サウンド | 配置 |
|---|---|---|
| カーソルの移動、ホバー、スクロール、プログレス、ストリーミングテキスト | なし(音楽が運ぶ) | |
| クリック / タップ | フィルム全体で1つの実際のクリック音、プレス+リリース約85ms後、毎回同じレベル | プレスのフレーム |
| タイピング | 1つの実際のキーボード音、スライス。<= ~12 キー/秒、~25 文字/秒を超えると1単語あたり1つ。音楽は6-10 dB下がる | 音の出る各文字 |
| カード / チップ / バッジの出現 | 柔らかい実際のポップまたはチック音、連続で上昇 | 移動の50% |
| トグル、ロックイン、カウンターの最終値 | 実際のラッチ / クリック / シャープなチック音 | 接触 / ロックのフレーム |
| カメラスケール移動、ウィップ、ズーム(フィルムあたり約2回) | 実際のスウィッシュ音、速度ピークで頂点 | 速度ピーク |
| ハードカット | なし | |
| リビールへの緊張 | 音楽のビルド、または実際のライザーがヒットの30~250ms前に終了 | ヒット |
| ヒーローリビール | 音楽のドロップ(トラックのダウンビートがここに来るように編集)+ オプションで1つの実際のインパクト音 | そのフレーム |
| ロゴ / ロックアップ | 音楽が小節線で停止するかフィルターダウン、0.2~0.7秒のほぼ無音、キーが一致する1つの柔らかい音符、静寂へのテール | ワードマークが読めるフレーム |
レベル:-14 LUFS、トゥルーピーク <= -1 dBTP(AAC後)、LRA 5-9 LU、最もラウドな瞬間はドロップ(30~60%の位置)、ロゴはその8~20 dB下、10秒あたり約5つのデザインエフェクト、エフェクトはドライでセンター。測定されたノルムと安っぽさの兆候:references/sound-design.md。
ツール
| ニーズ | ツール |
|---|---|
| 録音の測定(フォーマット、フロア、帯域幅、オンセット、スパイク、テンポ/キー)+ スペクトログラムPNG | scripts/analyze.py |
| 録音を聴く:実際 vs 合成、どのように聞こえるか、最適マッチ、長いファイル内の最適テイク | {{PY}} -m earshot realness / describe / match / rank / find / compare / ab |
1つのファイルまたはその一部のレベル/明るさ/オンセット(--start --end) | {{PY}} -m earshot measure(Python:from earshot import api; api.measure(...)、同様に api.find、api.realness...) |
| ライセンス + ファイル監査 | scripts/audit.py(ポリシーは scripts/licences.py) |
| 音楽グリッド、ダウンビート、小節線編集ドラフト | scripts/arrange.py |
デザインのレンダリング(+ ソロ --only、トリムの --dump、QA用 --trace) | scripts/mix.py |
| マスターとラウドネス測定 | scripts/master.py(--measure) |
| 配置に結び付けられた客観的QA | scripts/qa.py(--layers、--listen、--realness) |
| 批評家バリアント、修正者の適用 | scripts/variant.py |
| CREDITS.mdと動画説明用のクレジット | scripts/credits.py |
| サウンドトラックを映像に結合 | scripts/mux.mjs |
| ミックス/フィルム全体を聴く。注釈付き映像。ローンチフィルムスコアカード | {{PY}} -m earshot timeline / sheet / critique |
ファイル
audio/SOUND_BRIEF.md 契約書 (templates/SOUND_BRIEF.md)
audio/assets/<category>/ ダウンロードされた録音 (<source>-<id>_<slug>.<ext>; コミットも公開もしない)
audio/assets/manifests/<cat>.json 録音ごとに1エントリ (templates/manifest_entry.json)
audio/assets/manifests/audit.json ライセンス監査 (templates/audit_entry.json)
audio/sounddesign.json トップレベル: インクルード、バス、マスター (templates/sounddesign.json)
audio/design/<category>.json デザイナーごとに1フラグメント (templates/design_fragment.json)
out/cues.json 映像のキューイベント (templates/cues.json)
out/audio/soundtrack.wav, stems/ マスターとそのステム
out/qa/ mix_report.json, adds.json, cues_sounded.json, master.json, qa.json
out/audio-review/ カテゴリごと、批評家ごとの作業、バリアント、ダンプ(監査証跡)
CREDITS.md, out/CREDITS_description.txt
リファレンス
references/process.md: 役割、ステップ、各批評家が測定するもの、しきい値とそのソース