内容:
完全に全部オープンソースになった(補記:CMajorコンパイラのソースコードも公開されてる)
ライセンスはGPL/商用選択式(補記:JUCEと同じ感じになってそう)
アプリに静的に組込ができるようにしてる。単体でソースコードを組み込みし易い構成。それを行えるようにオープンソースにした。
組み込みはDSPコードをC++に変換した上で組み込む・JUCEプロジェクトに変換して組み込む・CMajorコンパイラをプログラムに組み込んでJIT形式で動かす等の選択肢が存在する。(補記:バイナリ形式にも変換できるため、JITすらしなくていいケースもあるのでは?と思う)
Pro54は元のVSTiのコード(C++)→CMajorへの移植・保守のテストケースとして制作された。ほぼコピペ+名前規則を少し修正する等を実施。
JIT形式での実行速度は結構早い。(補記:勿論エクスポートするほうが早いが。あとJITした後だとバイナリの実行速度かな?って思う)
CMajorの言語自体はイベントとストリームをやり取りするだけでメモリ割り当てやディスク書き込みまでは担当してない。(補記:実際コードみると前述の要素がまったく記述されてないことを確認できる)
UIとバックエンドは同じ場所にある必要はない。メモリは共有しておらず、サーバ・クライアント構成のような形でメモリを分割して管理ができる。
-
-
コンパイラ経由で各種プラグインへのエクスポート可能(補記:プラグインに対応したJUCEプロジェクトのテンプレートが作成される)
VSTiもJITに対応。開発側がダイナミックにコード変更することを想定してる。
制御する周期・タイミングは自由にコントロールできるみたい。マルチレートにも対応しているので、オーバーサンプリングのような処理も可能。
ML推論についても対応してる件、数百~千くらいのパラメータを備えた機械学習モデルを作ってみたところ性能がかなり出た。今後もいろいろ取り組んで見る予定。
ギター音源は、ML推論を利用したサンプルのひとつ(補記:ソースコードに学習結果を書き込む)
1秒あたり40000-48000回くらいの推論させる。
CMajorで機械学習させるメリットは小規模リソースで運用できること。
VSCodeのインテリセンス対応は後回し。
マルチスレッド化は自動でスケジューリングするみたい。(補記:マルチスレッドはCMajorを実装する前提となったみたい)