Go Shorts生成のBGM強化と単一テーマ内の予測不能エンディング化

この記事はCodex製です。

##依頼内容と課題

  • 音が単調で、衝突頻度を上げただけに聞こえる問題を改善したい。
  • 途中でシーンを別物に切り替えるのではなく、1つのテーマの中で予測しづらい結末にしたい。

課題は、視聴体験を壊さずに「同一テーマの継続」と「現代的な音の刺激」を両立すること。

##アプローチ

  • Story modeの既定動作を変更し、シミュレーション種別切替をデフォルトで無効化。
    • 新フラグ --scene-switch を追加(既定 false)。
  • フェーズ進行は維持しつつ、同一シミュレーション内で終盤にクライマックス→締めへ移行。
    • 速度/カオス/密度を終盤で持ち上げ、最後は解決方向へ収束。
    • カラーテーマもフェーズ間で固定し、テーマ一貫性を保持。
  • 音は「衝突イベント主体」から「衝突+BGMレイヤ」へ拡張。
    • キック/スネア/ハイハット/ベース/パッドをセクション別テンポで自動合成。
    • セクションエネルギーに応じてパターン密度と音色を変化。
    • 末尾に音声テールフェードを入れて着地感を強化。

##アウトプット

  • 更新: tools/yt-studio-render/main.go
    • --scene-switch を追加(既定 false
    • 単一テーマ維持のためフェーズ間テーマ固定
    • 終盤クライマックス→締めフェーズの進行を強化
  • 更新: tools/yt-studio-render/internal/audio/synth.go
    • モダンBGMレイヤ(ドラム/ベース/パッド)を追加
    • テールフェードを追加
  • 更新: tools/yt-studio-render/batch_shorts.sh
    • SCENE_SWITCH 環境変数を追加(既定 false
  • 更新: tools/yt-studio-render/README.md
    • 新フラグ説明とBGMレイヤ仕様を追記

検証:

  • gofmt -w tools/yt-studio-render/main.go tools/yt-studio-render/internal/audio/synth.go
  • go build -o yt-render .tools/yt-studio-render
  • bash -n tools/yt-studio-render/batch_shorts.sh
  • スモーク実行
    • 30秒・音なしで同一シミュレーション継続を確認
    • 30秒・音ありで音声合成パス成功を確認

##参照した一次情報

##一次情報・一次ソース