mexicat/pdoom-video

Code-rendered music video for "I'm Upping My P(doom)"

解決する課題

音楽の時間に対する決定的な関数として、すべてのフレームが生成される、コードレンダリングによるジェネラティブなミュージックビデオを作成するためのシステムを提供します。これにより、リアルタイムのブラウザプレビューと、高解像度のオフライン書き出し(最大4K60)が同一であることが保証されます。

仕組み

このプロジェクトは、オーディオ解析とTypeScript/three.jsレンダラーの組み合わせを使用します:

  • オーディオ解析: Pythonツール(Demucs、Whisper、CTCフォースドアライメントを使用)が曲を解析し、単語レベルの歌詞タイミングとオーディオデータ(BPM、ビート、オンセット、ラウドネスエンベロープ)を生成します。
  • レンダリングエンジン: three.js、Bun、Viteで構築されたTypeScriptベースのエンジンが、歌詞行とビートグリッドに固定されたタイムラインに基づいてシーンをレンダリングします。ブルーム、ハレーション、グレインなどのポストプロセッシングエフェクトが含まれます。
  • 書き出しパイプライン: ヘッドレスChromeインスタンス(Playwright経由)がフレームをレンダリングし、WebSocketを介してffmpegにストリーミングされ、最終的なビデオエンコーディングが行われます。動きの強度に基づいてサブフレームを適応的にサンプリングする、洗練されたモーションブラーシステムを備えています。

対象者

ジェネラティブアート、同期されたオーディオビジュアライゼーション、高忠実度のコード駆動型ビデオ制作に興味があるデジタルアーティスト、クリエイティブコーダー、開発者。

ハイライト

  • 決定的レンダリング: ライブブラウザプレビューと最終的な4K書き出しの間の一貫性を保証します。
  • 適応型モーションブラー: 32x32タイルごとにサブフレーム数を調整してレンダリング速度を最適化し、高速な動きの間も視覚品質を維持するサンプリングシステム。
  • 自動オーディオ同期: ステム分離とフォースドアライメントのための統合パイプラインにより、正確な単語同期カラオケタイポグラフィを実現します。
  • 高解像度サポート: すべてのレイヤーとシェーダーがアップスケーリングではなく物理解像度でレンダリングされるネイティブ4Kレンダリング。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト