我已经阅读了VST2.4SDK文档和包含的内容,但仍然没有找到任何方法来做到这一点:
当您在VST主机应用程序(如Cubase )中将Native Instruments Kontakt实例化为VSTi时,主机应用程序能够找出在Kontakt窗口中加载了哪个仪器,并且能够在加载Cubase项目时恢复该仪器(告诉Kontakt在其自身中加载它)。Cubase甚至能够在单个Kontakt实例中恢复多个仪器。
他们使用什么API命令/事件来实现这一点?或者,Steinberg和NI之间是否有任何专有方式达成一致?
顺便说一句,Kontakt是VST版本2.4 (而不是3.x)。谢谢。
发布于 2019-10-01 04:40:24
好了,我已经成功地写出了我需要的代码:
获取内部插件状态:
if (pEffect->flags & effFlagsProgramChunks)
{
void *stateBuf = NULL;
stateBufSize = (int) pEffect->dispatcher (pEffect, effGetChunk, 0, NULL, &stateBuf, 0);
// ...
}要设置/恢复内部插件状态:
if (pEffect->flags & effFlagsProgramChunks)
{
pEffect->dispatcher (pEffect, effSetChunk, 0, (VstIntPtr) stateBufSize, stateBuf, 0);
}https://stackoverflow.com/questions/58084976
复制相似问题