フォロー

そういえばプラグインホストは独立性高いからRustに手を出しても良かった気がする(まあ本来はプラグインホストの機能はおまけでJUCEとかtracktion_engineとかを実装として使う選択肢を残すつもりだったからC++だっただけ)

いろいろやってみて今、その疑問に到達しました・・・ おっしゃる通りJUCEとtracktion_engineとの距離感でめちゃくちゃ悩んでます。

言語を変えることで、FFIとかIPCとかで分かりやすく境界ができていいのかも、という期待をしていたりして、現時点では色々rustで実装しようかな?寄りな気持ちになっています。

はい、Rustは他の言語と比べるとC++とFFIしやすいところがあるのでいけるかもしれません(ただそれならもっとRustでJUCEにbindするコードがあってもおかしくない気もする)。
境界構築の観点では、VST3みたいにDSPコントローラーが「UIスレッド」を要求するプラグインフォーマットを相手にしている限り、完全には割り切れないかも…という気もちょっとしています(JUCEもtracktionもそのへんは曖昧)

oh, VST3ってそんなことになっているんですか・・・

この辺のドキュメントでUI Threadを要求する処理がいろいろ書かれていて「えっそんなのも?」みたいになります steinbergmedia.github.io/vst3_
そして「ホントにUIスレッドを要求されるの?」って聞かれるたびにyesって言われる感じです ( forums.steinberg.net/t/is-icom とか forum.juce.com/t/hosted-vst3-t とか)
最近出した無料のプラグインフォーマット本を書いた中でもちょっと言及してます(せんでんw)

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。