- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用 C++ 制作了一个 VST2.4 乐器,一切正常,但如果我在主机的多个 channel 中加载我的乐器,它们都会互相播放 midi 文件。如果我复制我的 dll 并更改 dll 拷贝的名称,那么我可以加载两个实例并像它们应该的那样分别播放它们。但只要我加载多个相同的 dll,它们都会播放相同的 midi。
在我的 dll 中,当处理 midi 事件时,我确实忽略了 channel ,我只是在处理音符,这是我的代码中我能想到的唯一可能导致此问题的部分。有什么我需要知道的才能让它与同一 VST 乐器的多个实例一起工作吗?
我正在使用的 midi 事件函数取自 VST.SDK V2.4 中包含的合成器示例
for (VstInt32 i = 0; i < ev->numEvents; i++)
{
if ((ev->events[i])->type != kVstMidiType)
continue;
VstMidiEvent* event = (VstMidiEvent*)ev->events[i];
char* midiData = event->midiData;
VstInt32 status = midiData[0] & 0xf0; // ignoring channel
if (status == 0x90 || status == 0x80) // we only look at notes
{
...
我知道这与唯一 ID 无关。
问候,摩根
最佳答案
检查您的全局/静态变量。这是您可以在实例(相同的 dll)之间共享状态的唯一方法。
您是否使用其他主机/DAW 对其进行了测试?可能是主机中的错误 - 尽管不太可能。
希望对你有帮助马克
(VST.NET 和 MIDI.NET 的作者)
关于c++ - 主机中同一 VST 乐器的多个实例播放相同的 MIDI 声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18810235/
当用户更改参数或预设时,我如何/何时实际更新仪器? AUInstrumentBase 中没有ParameterUpdated 或PresetSelected 类型的方法/回调 最佳答案 相关机制是 A
我已经粘合了这个小型 Java 程序:我有 8 个音调(C、D、E、...、A、B、C),因此我可以使用一架穷人的钢琴。 package net.coderodde.music; import jav
我在使用 AVAudioSequencer(iOS 12.1.4、Swift 4.2、Xcode 10.1)通过 MIDI 控制第三方 AUv3 乐器时遇到问题,非常感谢您的帮助。 我目前在做什么:
我正在使用 MPICH2 1.4 构建一个 Raspberry Pi2 集群(又名 bramble)。 我还有一个 Launchpad,它是一 block 包含 64 个以上按钮的板,每个按钮可以亮起
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
示例:如果我想在我即将自制的 VST 乐器中播放一个声音,并且音序器中的这个音符有 15000 个样本长,并且该音符被 processEvents 设置为 ON,则 processReplace 函数
我是一名优秀的程序员,十分优秀!