環境による問題かも知れないのだが、現象から考えればこの方法で解決できるはずなので書いておく。
■手段1: マルチコアでVSTホストを動かさないようにする
ホスト側の設定で切り替えできる場合はシングルコアで動くように設定する。
もし切り替えられないのならシステム側からシングルコアで動作させる荒業もあり(タスクマネージャでプロセスを右クリックして「関係の設定」)。
ただしパフォーマンス的に考えるとシングルコアで使うのは決して得策ではないと思う。
■手段2: DLLを複数コピーして使う
sfz.dll をたくさんコピー&リネームして sfz01.dll, sfz02.dll, sfz03.dll ... などと
使いたい個数分用意し、使うときに同じものを使わないようにする。
こうすることでsfzの内部処理でメモリを共有しなくなるのでトラブルを回避できるはず。
-- 2009/05/08 追記
よく2chからリンク貼られているようなので一応補足しておきますが、これは sfz と Synthedit 製プラグインだけで起こる問題ではなくて、マルチコア環境で動かすことを想定せずに作られたプラグイン全てに起こりうる話です。
わかりやすくたとえ話をするなら、2人で同時に最後のシュークリーム1個に手をつけようとして喧嘩になっている感じとか。
また、sfz の場合はノイズが鳴るだけですがプラグインによって挙動は様々で、何が起こるかわかりません。
同時に同じエフェクトやインストゥルメントを使おうとした場合に何か変な挙動を起こすのであれば、この辺を疑ってみるといいかも知れません。
2008年11月11日
この記事へのトラックバック
しかし95とか98の頃から今まで延々と続いてるとは知りませんでした、dll複数コピーで不具合解決
音楽アプリに限った話でなく、いろいろ使えるってのがまたw
ただ今回の場合は同じ親プロセスがdllを呼んでいる上にマルチコアで同時に処理が実行されているので、若干状況が特殊かな、とは思います。
プロセスごとにちゃんと分かれているので昔に比べるとこういうトリッキーな方法で問題回避できるケースは減ったような気はします。
同時に別スレッドから実行されることを想定しないで作られているプラグインは少なくなさそうなので、
今後も問題が起こったらこれで回避できそうです。
こんな方法があるとは知りませんでした…
試してみたらノイズも乗らず、動作も若干軽くなったような気がします!
sfzにリバーブをかけてたのでこれで爆音ノイズを恐れることなく演奏できそうです!
ありがとうございました!
DLL複製・・・こんな解決方法があったなんて。
ありがとうございました。