Edited at

12-25 SOUL

https://adventar.org/calendars/3353 の25日目エントリーです。

SOULは、ROLI社がまだ構想しかアナウンスしていないオーディオ開発言語およびそのフレームワークです。

https://soul-lang.org/

Audio Developers Conference 2018のキーノートで公開されたもので、今回のイベントの目玉といえるでしょう。キーノートはyoutubeで公開されています(SOULの話は15分目くらいから)。

https://www.youtube.com/watch?v=-GhleKNaPdk

SOULの特徴を列挙すると以下のようになります。


  • APLとしてのSOULは、LLVMバイトコードを使用した独自フォーマットのバイナリにコンパイルされます(純粋bitcodeになるかどうかは不明)

  • SOULのバイトコードはGPUにおけるシェーダーのような存在になり、「SOULをサポートするDSP」がより高速にサウンドを処理できる可能性があります

  • SOULのバイトコードを生成できる機構を使えば、開発言語はC++に限らずJavaScriptであろうとC#であろうとJavaであろうと何でも良いです

類似の先行技術としては、同じくLLVMを利用してDSP用のバイナリを生成できるfaustが挙げられるでしょうか。ただfaustは多言語対応にはなっていません。別のAdvent Calendar向けに書いたネタですが、Extemporeの作者が言語ランタイムとの相互運用をどう解決するか(intra-processかinter-processか)という観点でいろいろ分析していた多言語対応の枠組みにはおそらく入っておらず、単にSOULのコードジェネレーターが用意されることになると思います(そうしないとDSPチップに各種言語ランタイム環境が必要になるので)。

日本でもGLSLで作曲という試みが見られますが、proof of conceptとしてはコレに近いのではないでしょうか。

いずれにせよ、SOULはまだプロジェクトの告知が出たばかりで、実体は何も出ていないので、今後のリリース待ちという状態です。