t-sin / soyboy-sp.vst3

Make some chiptune with penguins.
https://t-sin.github.io/soyboy-sp.vst3/
GNU General Public License v3.0
86 stars 2 forks source link

Windows版Live10にて、vst3のインストゥルメントをロードできない #21

Closed a-yonenaga closed 2 years ago

a-yonenaga commented 2 years ago

症状

VSTiの存在は認識されるが、トラックのインストゥルメントにsoyboy-spを設定できない

再現手順

Booth からアーカイブをDL後、フォルダsoyboy-sp.vst3をVST3プラグインフォルダ(C:\Program Files\Common Files\VST3)下に展開 Ableton Liveを起動 Liveのブラウザに「soy」を入力 検索結果に表れたVSTi「SoyBoy SP」をダブルクリック(またはMIDIトラックにD&Dでも同様の挙動) トラックにVSTiが挿入されず、シンセのUIも表示されない。

環境

SoyBoy SP: v1.0.0 CPU: AMD Ryzen 7 2700X 3.70GHz RAM: 32.0GB OS: Windows 10 Pro 21H2 19044.1766 DAW: Ableton Live 10 Suite (10.1.42 Build: 2021-11-04_537ff2c643)

a-yonenaga commented 2 years ago

同じマシン上でBitwig Studio 16-Track 3.3.11にて試してみたところ、こちらは正常にロード・発音が可能でした。

t-sin commented 2 years ago

Live 11のトライアル版で読み込んでみたところ再現しました。

Liveを起動して読み込む操作をしてログファイル<user_dir>/AppData/Roaming/Ableton/Live 11.1.5/Preferences/Log.txtを見てみると

2022-06-19T13:51:26.889446: info: Vst3: Going to create: 
2022-06-19T13:51:26.889501: error: Vst3: Not available on this platform: 

とだけ出ていて、Live的にはSoyBoyがVST3プラグインに見えていなさそうな気配があります。SoyBoyで検索してもなにも出てないので引き続き調査します。

t-sin commented 2 years ago

正常なVST3プラグインだとどう表示されるんだと思いOS-251を読み込んでみたところこのように、Going to create: xxxのxxxのところは本来VSTのプラグイン名が表示されるんですね。

2022-06-19T23:30:10.681269: info: Vst3: Going to create: OS-251
2022-06-19T23:30:10.694480: info: Vst3: plugin processor successfully loaded: Onsen Audio 'OS-251' v1.1.0 (cid: {ABCDEF01-9182-FAEB-6874-4D696F735359})
2022-06-19T23:30:10.694946: info: Vst3: plugin supports the IInfoListener interface
2022-06-19T23:30:10.696634: info: Vst3: couldn't initialize controller with processor state of OS-251: not implemented
2022-06-19T23:30:10.696645: info: Vst3: parameter count is 2112
2022-06-19T23:30:11.056577: info: Vst3: Created: OS-251
2022-06-19T23:30:11.109334: info: Vst3: couldn't get controller state of OS-251: not implemented

きっとSoyBoyはメタデータがおかしそう。VST3にはメタデータ取得IFが3つあるんですが (IPluginFactoryの1とか2とか3とか) Bitwigとかだと動いてるので、BitwigではつかってないけどLiveでは使われている取得IFの実装がおかしい、というような感じなのではないかと睨んでいます。

t-sin commented 2 years ago

現時点のmaster https://github.com/t-sin/soyboy-sp.vst3/commit/543baea4c7a883d9a88c8996a297e95123098c8e でAbleton Liveでも読み込めるようになりました。

live-soyboy

原因はIPluginFactory2::getClassInfo2()IPluginFactory3::getClassInfoUnicode()等の関数でCOMのCID (Class ID) を呼び出し側に教えないといけないのですが、教え漏れでした。Bitwigで動くのは、IPluginFactory::getClassInfo()は正しくもろもろ値を教えているためそっちの値を使ってるから (推測)、です。

Ableton Live以外のDAWでも発生してしてそうな現象でした。 @a-yonenaga さん報告ありがとうございました!

t-sin commented 2 years ago

残タスク:

t-sin commented 2 years ago

@a-yonenaga 本issueの問題を解決したバージョンv1.0.1をリリースしました! BOOTHよりダウンロードして動作を見ていただけないでしょうか。もしロードできたらこのissueはクローズしようと思います。

t-sin commented 2 years ago

手元のWindowsのLiveでロードできてるのでヨシということでクローズします。