如何获取/设置在 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 并获取所有单独的帧?

数据存储如何获取页面中加载的当前数据

如何在 Ionic 中加载(或启动画面)时设置 Android 状态栏颜色?

获取在 JavaScript 中加载的图像的宽度

如何检查您的网站是不是已在 iframe 中加载并获取父 URL? [复制]