表示
超・人工知能研究所 Super AI Research Lab トップへ超・人工知能研究所AI Research Lab / ぱそ太郎工事中

since
平成38年9月29日

← 検索結果に戻る

Faustの音声処理をCLAP化し、編集後もつまみの値と自動化を引き継ぐ

faust2clap

保存した記事を見るこのブラウザに保存します。無料会員で端末間の同期・フォルダ整理

概要

  • Faust製DSPをCLAPプラグインにし、静的ビルドと実行中の更新を使い分けられる。
  • 階層アドレスと12個の固定枠により、アドレスが残るつまみの値と自動化を引き継ぐ。
  • 著者らのmacOS上での検証では、5種のDSPの再コンパイル時間は6~52ミリ秒だった。
補足:編集した模式図で仕組みを確認する

VISUAL EXPLAINER

図でつかむ、faust2clapの仕組み

左から右へ読む
  1. 01FaustのDSPファイル
  2. 02変更検知と再コンパイル
  3. 03値と固定枠の復元
  4. 04更新後の音声

原論文の説明をもとにした模式図です。処理の細部は省略しています。

研究の背景

faust2clapは、Faustで書いた音声処理をCLAP形式のプラグインにする。Faustは音声の変換を式で記述する言語で、CLAPは制作ソフトとプラグインを接続する規格だ。

通常は記述を直すたびにコンパイルし、制作ソフトへ読み込み直す。この反復には時間がかかるうえ、つまみの内部の並びが変わると、自動化、つまり時間に沿って記録したつまみ操作が別の項目に結び付くおそれがある。

手法

動的モードではファイルの変更を検知し、音声処理を実行するスレッドが変更後の記述を仮想マシン用の命令へコンパイルする。仮想マシンは、その命令を実行するソフトウェア上の環境だ。静的モードではFaustからC++を生成し、CLAPプラグインのネイティブ実行ファイルへビルドする。

更新時には旧パラメータの階層アドレスと値を記録し、新しい処理に同じアドレスがあれば、新しい設定範囲に収めて値を戻す。例えば「/Reverb1/Damp」が残れば、その値を引き継ぐ。ホストに見せる12個の固定枠も、残ったアドレスを先に元の枠へ結び、新しい項目を空き枠へ割り当てる。

新規性

著者らは、Faustの音声処理記述からCLAPプラグインを作る、公式に保守される初の経路だと位置づける。配布用の静的ビルドと、制作ソフトを再起動せず処理を更新する動的モードを一つの仕組みに収めた。

独自の要点は、つまみを内部の番号ではなく階層アドレスで照合し、制作ソフトに見せる固定枠へ結び直すことだ。アドレスが残る項目なら、編集で内部の並びが変わっても値と自動化の対応を保てる。

従来手法との違い

既存のFaust向けVST、Audio Unit、LV2経路は、処理を事前にコンパイルしてプラグインを作る。faust2clapはCLAPへの経路を加え、動的モードではDSPファイルの変更を制作ソフト内のプラグインへ反映できる。

著者らによると、比較対象のCamomileとAmatiはパラメータ番号に基づいて状態を復元する。faust2clapはアドレスと固定枠を使い、項目の追加などで番号が変わっても、アドレスが同じ既存項目の自動化を維持する設計である。

実験結果

著者らはApple M2、macOS 26.3、REAPER 7.0で、DSP構成ごとに10回測定した。動的モードの再コンパイル時間はGainとDelayが各6ミリ秒、Filterが13ミリ秒、Oscillatorが12ミリ秒、Reverbが52ミリ秒。5種すべてで、アドレスを維持した項目の値と自動化枠が保持された。

48kHz、256サンプルの条件では、著者らが測ったリバーブの処理時間は1ブロック当たり0.27ミリ秒で、ブロックの処理期限は約5.33ミリ秒だった。アドレスを改名すると旧値が破棄され初期値に戻ることも確認した。これらは記載された環境と対象DSPでの結果である。

応用の可能性

編集上の応用案 · 論文が実証した用途とは区別しています。

編集上の応用案:音楽制作で使うFaust製リバーブをREAPER内で試作する。入力は手元のDSPファイル、試聴用の音声トラック、既存のつまみの値と自動化設定。出力は編集後の音と、同じアドレスのつまみに引き継がれた設定だ。

担当者は減衰量などのアドレスを保って処理を編集し、動的モードで試聴する。必要な元データはDSP記述と音声で、学習データ、正解ラベル、追加センサーは要らない。この用途で聴き比べが速くなるかは導入先で確かめ、完成後に静的ビルドを試す。

応用先の候補からNauhに相談できます。

導入時の検証

導入時の検証案 · 対象データでの再評価が必要です。

導入時の検証案:Faust製エフェクトを一つ選び、DSPファイル、試聴用音声、制作ソフト上の自動化設定を用意する。学習データ、正解ラベル、追加センサーは不要。まず従来のビルドと再読み込みで、編集から試聴までの時間を測る。

次に動的モードへ適用し、つまみの追加を含む編集で同じ時間を測る。同じアドレスの値と自動化が残るかを確認し、更新時の所要時間と音の途切れも記録する。改名と12枠を超える場合を別に試し、運用できる編集手順を決めてから静的ビルドを確認する。

限界と課題

著者らが報告する制約として、動的モードは単音動作に限られ、更新時にはDSPの複雑さに応じて通常5~60ミリ秒の音の途切れが生じる。静的経路の検証はmacOSで行われ、動的経路も論文時点ではmacOS限定である。

ホストに見える固定枠は12個で、超過分は内部で処理されても自動化には出ない。アドレスを改名した項目は旧値を引き継がない。編集上の検証事項は、手元のDSPの項目数、改名を伴う編集、既存プロジェクトでの再読み込み時の挙動である。

応用先の候補
研究内容と応用案に基づく分類です。業界での導入実績を示すものではありません。

出典

元のタイトル・要旨を確認する(英語)

A Dual-Mode Faust-to-CLAP Compilation System

We describe faust2clap, a framework establishing the first officially maintained compilation pathway from Faust DSP specifications to the CLAP format. The system operates in two different modes. A static mode employs ahead-of-time compilation to yield native binaries of optimal efficiency, while a dynamic mode uses runtime interpretation to permit DSP code modification without interrupting the host application. This latter capability addresses a persistent friction in audio software development, namely the cumulative overhead of the edit, compile, and reload cycle. We detail the algorithmic machinery underlying both modes, focusing specifically on the problem of parameter identity. To preserve both parameter values and their bindings to host automation across structural DSP mutations, we introduce an address-based identity matching algorithm and a stable slot allocation scheme. The implementation, comprising approximately 2,400 lines of C++ architecture and Python tooling code, has been integrated into the main Faust distribution.

論文本体の取得範囲に基づく解説。AIが作成した未校閲の記事です。性能の数値は著者の評価条件に依存します。応用例と検証計画は編集上の提案です。解説更新:2026-10-01