at MusicLT vol.2 (2022/5/26)
CLAPオーディオプラグインis 何?atsushieno
View Slide
CLAPとは2021年末にu-heとBitwigがKVRでサポート表明して話題になった、新しいオープンソースのオーディオプラグインフォーマット
オーディオプラグインフォーマットとは「任意のDAW」と「任意の楽器やエフェクター」の任意の組み合わせでお互いが問題なく動作する仕組み(API、ライブラリ、フレームワーク)Steinberg VST, Apple AudioUnit (AU), LV2 (LADSPA v2), DirectX plugin (DX/DXi)などsource
u-he? Bitwig? KVR?u-he : オーディオプラグインベンダーのひとつ (Zebra, Hive, etc.) Bitwig : Bitwig Studio DAWの開発元KVR : 音楽系ポータルサイト(新製品の告知などを自分で出せる)
新し…新しくない?実は昔からあったPost
プラグインAPIってどんなやつ?プラグインはこういうやつを実装する(free-audio/clap-plugins のC++コード)
CLAPの特徴 (1) MITライセンス● 誰にも許諾を得ること無く商用プラグインをリリースできる● VST3はライブラリなのにGPLv3 = 実質商用ライセンス or 自由ソフトウェア○ JUCEとかもそう
CLAPの特徴 (2) C API他言語でバインディングを作りやすい(ただRT audioの制約は厳しい)実際にプラグインを作るときはC++等でいい
CLAPの特徴 (3) パフォーマンスが良い?プラグインリストの取得が高速 (LV2もそう)スレッドの生成をホストから指示できる (LV2もそう)プラグインのリソースを分離しており、ホストで共有できる(KVR)
CLAPの特徴 (4) シンプルで誤解の余地が小さい?Cヘッダコメントが想定される挙動を細かく説明している(ドキュメントはほとんどない)events.h
CLAPでできること全部拡張機能として作り込まれている
LV2でもよかったんじゃないの? (ISC, C API, cross-plat...)u-he「詳しくないんだけど、移植してもらったら投げ出されたことがあって…」(LV2はわりと難解なのでまあわかる)
CLAP対応プラグインu-he ※READMEのリンク先が死んでて見つけられずSurgeXT OSSのシンセサイザー メイン開発者がCLAPにも少しコミットしている nightly buildには含まれている(らしい)※現状ほとんどない(free-audio/clap-plugins などはある)
CLAP対応DAWBitwig Studio 4.2 beta1以降で隠しオプションを有効にすれば利用できるが古い現在 = 2022/5/26 時点でのCLAPバージョンなら4.3beta※現状ほとんどない(free-audio/clap-hostなどはある)
新しいオーディオプラグインフォーマットの課題DAW「新しいプラグインフォーマットに対応するのは大変…」プラグイン「新しいプラグインフォーマットに対応するのは大変…」…でもC++の閉鎖空間とSteinberg(とApple)の独占状況は何とかなったほうがいい
展望: 対応プラグインは増えるのか…?マルチプラグインSDKを使う● JUCE + clap-juce-extensionJUCEが想定しているプラグイン機能の全てに対応しているわけではないが、基本部分は使える● Avendish CLAP exportDSPなども作れる新手のメディア系 C++20ライブラリ(動作未確認)プラグインラッパーを作る● どのプラグイン規格も概ね同じなので、他の規格のプラグインを包み込むプラグインにする○ lv2vst (LV2をVSTとして使う)○ LinVst, yabridge (Windows VSTをwine経由で使う)→そこそこ楽観視してもいいのではないか
Resources資料・コミュニティhttps://github.com/free-audio/claphttps://www.kvraudio.com/forum/viewtopic.php?t=574861https://www.theaudioprogrammer.com/ のDiscord server (#clap)