audio
DSP

https://adventar.org/calendars/3353 の24日目エントリー…を後になって書いています。


WDLは複数のオーディオプラグインをひとつのコードでサポートするためのC++ライブラリです。Reaperを開発しているCockosが公開した3-clause BSDなライブラリですが、現在ではWDL-OLという(開発者Oli Larkinの名を付けた)forkが一番ポピュラーであるようです。(筆者は後述する理由でまだ使っていません。)

https://github.com/olilarkin/wdl-ol

WDLの目的はJUCEと類似しています。JUCEは複数開発環境のサポートのためにプロジェクトファイルを自動生成するProjucerも含めたエコシステムとなっているのに対して、WDLはあくまで複数オーディオプラグインをインターフェースIPlugでまとめたライブラリとして提供されています。JUCEのプロジェクトファイルを複数環境向けに構築するという世界観はやや特殊なので、初心者というか一般的な開発者にはこちらのほうが取り組みやすいでしょう。(わたしとしては、Projucerのアプローチはやや時代遅れだし廃れていってほしいと思っています。クロスプラットフォーム対応はCMakeだけで十分です。CLionも対応していますし。)

JUCEもWDLもオーディオプラグイン開発のために使われる機能をオーディオプラグイン処理からGUIまで各種取りそろえています。概ねJUCEのほうがいろいろ持っているのではないかと思います。

JUCEにあってWDLにないのは全面的なLinuxサポートです。DSSIサポートももちろんありません。もともとの開発元であったCockosもReaperのLinuxビルドは提供していません(試験的に公開されているLinux版はwineが前提です)。Linux環境で行きている筆者には現状では無縁のものです(が、VST SDKなどはLinuxもサポートしているので、部分的にでもLinuxサポートを追加するコストはそれほど高くないでしょう…多分)。

現在はWDL-OLの開発者が根本的にIPlug2として再設計していて、今年中に公開したいようなことをissueで書いているのですが、これを待っているとこのエントリが2018年のうちに書ける気がしないので、とりあえず簡単な紹介と現状だけですませることとします。

参考: