Skip to main content
QUICK REVIEW

[論文レビュー] DawDreamer: Bridging the Gap Between Digital Audio Workstations and Python Interfaces

David Braun|arXiv (Cornell University)|Nov 18, 2021
Music and Audio Processing被引用数 6
ひとこと要約

DawDreamer は、デジタルオーディオワークステーション(DAWs)とプログラマティックなオーディオ処理を接続するクロスプラットフォーム Python モジュールであり、VST、Faust シグナル処理コード、および動的パラメータオートメーションを用いたリアルタイムのオーディオグラフ構築を可能にする。タイムストレッチ、Ableton .asd ファイルの解析によるピッチワープ、混合オーディオトラックの効率的バッチ処理をサポートし、音楽情報検索およびジェネレーティブオーディオスynthesis分野における高度な応用を可能にする。

ABSTRACT

Audio production techniques which previously only existed in GUI-constrained digital audio workstations, livecoding environments, or C++ APIs are now accessible with our new Python module called DawDreamer. DawDreamer therefore bridges the gap between real sound engineers and coders imitating them with offline batch-processing. Like contemporary modules in this domain, DawDreamer can create directed acyclic graphs of audio processors such as VSTs which generate or manipulate audio streams. DawDreamer can also dynamically compile and execute code from Faust, a powerful signal processing language which can be deployed to many platforms and microcontrollers. We discuss DawDreamer's unique features in detail and potential applications across music information retrieval including source separation, transcription, and audio effect parameter inference. We provide fully cross-platform PyPI installers, a Linux Dockerfile, and an example Jupyter notebook.

研究の動機と目的

  • 既存の Python オーディオフレームワークが有する DAW 機能の制限、特にバス配線、パラメータオートメーション、クロスプラットフォーム互換性の欠如を解消する。
  • VST、LV2、Faust をサポートすることで、プラットフォーム固有の制約を超えて、オーディオ処理ツールへの統一的アクセスを実現する。
  • 複数のトラックとエフェクトを含む複雑なオーディオグラフの効率的バッチ処理を可能にし、機械学習応用を支援する。
  • 物理的制約のない、プログラマブルなオーディオエンジンを提供し、実際の DAW ワークフローから得られる音楽的構造とインダクティブバイアスを保持する。
  • タイミング、ピッチ、エフェクトの変化を制御可能なリアルなオーディオミックス生成を可能にすることで、音楽情報検索分野の研究を促進する。

提案手法

  • Python インターフェースを用いて、VST インストゥルメントやエフェクトを含むオーディオプロセッサの有向無閉路グラフ(DAG)を構築する。
  • libfaust を介して Faust を統合し、シグナル処理コードのジャストインタイムコンパイルを実現し、Faust の UI コントロールを制御可能なパラメータにマッピングする。
  • numpy 配列を制御信号として渡すことで、時間経過に伴うエフェクトパラメータの動的変調を可能にするパラメータオートメーションをサポートする。
  • Ableton Live .asd ファイルからのワープマーカーを活用し、中間ファイル I/O を回避して Rubber Band Library を用いてタイムストレッチおよびピッチワープを実装する。
  • 1 回のレンダリングパスで複数のタイムライン位置にわたって同じオーディオクリップを再利用可能であり、効率的なマルチトラックミキシングをサポートする。
  • クロスプラットフォーム対応の PyPI イストーラー、Dockerfile、および再現性のある実験とプロトタイピングに適した Jupyter ノートブックを提供する。

実験結果

リサーチクエスチョン

  • RQ1Python ベースのオーディオフレームワークは、バス配線、パラメータオートメーション、マルチトラックミキシングを含む、DAW 機能の全範囲を、プログラム的かつクロスプラットフォームな方法で効果的に再現できるか?
  • RQ2Faust で生成されたシグナルプロセッサは、低レベルのコーディングを最小限に抑えて、動的かつパラメータ化可能なオーディオ処理を可能にする高水準の Python インターフェースにどの程度統合可能か?
  • RQ3中間ファイルの書き込みを伴わずに、逆引きされた Ableton .asd ワープマーカーを用いてタイムストレッチおよびピッチワープをどの程度効率的に実行できるか?
  • RQ4DawDreamer は、タイミング、ピッチ、エフェクトの変化を制御可能な形で、音源分離や音楽記譜タスクに使用可能なリアルで多様なオーディオミックスを生成できるか?
  • RQ5DAW レベルのオーディオ処理ロジックを機械学習パイプラインに統合することで、生成音声データのインダクティブバイアスと現実性がどの程度向上するか?

主な発見

  • DawDreamer は、複数の VST インストゥルメントとエフェクトを含む、複雑で再利用可能なオーディオプロセッサグラフの作成が可能であり、複数回のフォワードパスにわたり動的パラメータ変更をサポートする。
  • Faust の統合により、ポリフォニックシンセサイザーおよびサンプラーのプログラム的制御が可能となり、wavetable およびサンプルデータが numpy 配列として渡され、ボイス割り当ても自動で処理される。
  • Ableton .asd ファイルからのワープマーカーを活用し、中間ファイル I/O を回避することで、Rubber Band Library の統合のおかげでタイムストレッチおよびピッチワープが効率的に実行される。
  • フレームワークは、マルチインプットエフェクトを伴うサイドチェーンコンプレッションや一般化されたバス配線といった、高度な DAW 機能もサポートし、リアルなオーディオミキシングワークフローを実現する。
  • Jupyter ノートブックでは、ビートベースおよび音楽的インターバルベースの距離計測法を用いて、コーラスとインストゥルメンタルトラックのテンポマッチングとミキシングを実証しており、リアルなオーディオマッシュアップを可能にする。
  • DawDreamer は、通常の 4 トラック(ボーカル、ドラム、ベース、その他の楽器)構成をはるかに超える数十トラックの高精細で多様なオーディオミックスの生成を可能にし、音源分離および記譜モデルのトレーニングデータ品質を向上させる。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。