如何获取/设置在 Kontakt VSTi 中加载的乐器?
Posted
技术标签:
【中文标题】如何获取/设置在 Kontakt VSTi 中加载的乐器?【英文标题】:How to get/set instrument loaded in Kontakt VSTi? 【发布时间】:2019-09-24 16:54:48 【问题描述】:我已经阅读了 VST 2.4 SDK 文档和包含但仍然没有找到任何方法来做到这一点:
当您在 VST 宿主应用程序(例如 Cubase)中将 Native Instruments Kontakt 实例化为 VSTi 时,宿主应用程序能够找出在 Kontakt VST 窗口中加载的乐器并能够恢复该乐器(告诉 Kontakt加载它本身)当加载 Cubase 项目时。 Cubase 甚至能够在单个 Kontakt 实例中恢复多个乐器。
他们为此使用了哪些 API 命令/事件?或者 Steinberg 和 NI 之间是否有任何专有方式达成一致?
顺便说一句,Kontakt 是 VST 版本 2.4(不是 3.x)。 谢谢。
【问题讨论】:
我 answered 在 KVR。 【参考方案1】:好的,我已经编写了完全符合我需要的代码:
获取内部插件状态:
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);
【讨论】:
以上是关于如何获取/设置在 Kontakt VSTi 中加载的乐器?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 WKWebView 中加载的页面中的隐藏字段中获取值绑定
如何在 Pygame 中加载动画 GIF 并获取所有单独的帧?