问题标签 [vst]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
460 浏览

c++ - VST C++ 嵌套类 - 构造和包含

我需要一些嵌套类的帮助。这源于我在这里问的一个问题

基本上我有一个类'myPlugin'。这个类是我程序的主体,包括“processReplace”功能。

在 processReplacing 中,我需要使用 DSP 过滤信号,目前我正在使用 11 个过滤器,这导致 11 个过滤器(和所有缓冲区)被硬编码到 processReplacing 中。

但是,现在我决定创建一个过滤器类,这样我就可以为每个过滤器创建一个新实例,根据需要调用并提高我的代码效率。

到目前为止,我几乎没有成功。但是现在我正在使用嵌套类,如果我可以开始工作,应该意味着所有其他人都应该效仿。

标题中的类定义是:

{

public: myPlugin (audioMasterCallback audioMaster); ~myPlugin();

};#万一

然后我的问题是我无法正确初始化过滤器类。'myPlugin' 的构造函数看起来像这样(请记住,这是实际构造函数的一个非常简化的版本)

: AudioEffectX (audioMaster, 1, 1) // 1 个程序,仅 1 个参数 {

}

myPlugin::~myPlugin ()

{ }

然后,当我尝试在 processReplacing 中使用 my_aFilter1L 等时,它会引发错误:“错误 C2065:'my_aFilter1L':未声明的标识符”“错误 C2227:'->aFilterMethodL' 的左侧必须指向类/结构/联合/通用类型”

我已经尝试初始化存储在 myPlugin 构造函数中的过滤器类中的值。我曾尝试创建过滤器构造函数,即 myPlugin::aFilter1L()aFilter1L::aFilter1L() 但这些导致了更多错误。

不太确定我能做什么。我以前使用过类/函数,但从来没有嵌套过这么多的类。我在网上看过很多帖子,但每个答案都不太适用;或者我已经尝试了我找到的解决方案,但它们没有奏效。

0 投票
1 回答
613 浏览

c++ - VST 前瞻和 setInitialDelay()

我想我需要在我的 VST 中实现一个前瞻系统,但以前从未这样做过。我知道 setInitialDelay(foo) 被放置在构造函数中,然后你缓冲音频,但我不确定是否从“当前”音频和“前瞻”中读取.....

0 投票
1 回答
689 浏览

xcode4 - 在 xcode 4 中打开 xcode 3.2 VST 项目

我最近使用 Xcode 3.2 和 vstsdk 2.4 开始了一个项目,然后我购买了 Xcode 4。当我在 Xcode 4 中打开项目时,我收到“缺少基本 SDK”错误,我可以通过将其更改为 Mac OS X 10.5 或10.6。在此之后,虽然我的 .vst 文件在文件树中仍然是红色的。我也尝试删除该文件并重新添加它,但是当我这样做时,它会将其添加为文件夹而不是 .vst 文件。没有这个,我无法构建项目,因为缺少目标。

有任何想法吗?

干杯。

0 投票
1 回答
1154 浏览

c++ - VST GUI 反馈 (C++)

我已经实现了一个带有 2 个垂直推子的 VST 2.4 GUI (C++)。

在代码中,我已经链接了 2,所以一个缩放到另一个。所以基本上我想说fader2总是fader1值的一半:

代码相当简单,但我需要添加什么功能才能“反馈”到 GUI;这样当推子 1 滑块移动时,推子 2 上的滑块也会随着显示变量的更新而移动(按比例)?

我认为它必须以与“valueChanged”中的 setParameterAutomated 类似的方式工作

我实现这个的原因是我有一个开关可以将 2 个推子连接到这个比率。所以当它关闭时,每个推子都可以独立设置;但是当它打开时,推子 1 移动,推子 2 以 2:1 的比例移动

0 投票
1 回答
908 浏览

java - 试图在 Java 中扭曲音频

我找到了一个名为 JVST 的库,它可以加载 VST 文件并相应地过滤音频。问题是,我不知道如何使用它。我所能做的就是从网站上复制并粘贴示例代码并根据我的需要进行调整,但它仍然无法正常工作。我想要做的是扭曲用户选择模拟音箱的 .au 或 .wav 文件中的音频。我不确定多频段压缩是否是最好的使用方法,但我会尝试一下,如果失败,我可以使用大量自定义 VST 插件。无论如何,这是代码:

编辑 它给出的错误是:

0 投票
1 回答
255 浏览

binary - 在 Windows 上写入二进制文件时如何强制 1 字节填充 - 适用于 mac,不适用于 win

断章取义很难解释,但我会尝试,因为它让我发疯。

我正在尝试编写一个二进制文件来表示基于 vst 2.4 规范的 vst 音频插件的程序和库状态-程序是一个声音的参数值,而库是程序的集合(在我的情况下是 32 )。我的程序保存/加载代码在 windows 和 mac 上运行良好。我的银行储蓄代码在 mac 上运行良好——我可以从我的插件中保存状态,并通过 vst 主机的召回机制打开它。我在 mac 上创建的文件可由 mac 主机和 windows 主机加载,表明这是保存“正确”的 vst 银行文件格式。然而,在 Windows 上,我在 vst 银行文件中获得了额外的字节,它不会通过主机机制加载。我认为这是因为在 Windows 上有一些填充。在较小的 vst 程序文件中似乎不会发生这种情况。我试过#pragma pack(push, 1)在许多不同的地方都无济于事。谁能建议我可以做些什么来解决这个问题或可能是什么原因?

谢谢

mac 十六进制好: mac 十六进制好

赢得十六进制坏: 赢十六进制坏

这是代码。vst fxb 文件格式需要大端数据,因此需要字节交换。更多信息在这里:http: //forum.cockos.com/showthread.php?t=78573

0 投票
1 回答
1203 浏览

audio - 实时 MIDI 输入和音频同步

我已经构建了一个项目的独立应用程序版本,到目前为止它只是一个 VST/audiounit。我通过rtaudio提供音频支持。

我想使用rtmidi添加 MIDI 支持,但我不清楚如何同步音频和 MIDI 部分。

在 VST/audiounit 领域,我习惯于 MIDI 事件,这些事件有一个时间戳,表示它们在样本中从音频块开始的偏移量。

rtmidi 提供了自上一个事件以来的增量时间(以秒为单位),但我不确定我应该如何获取这些事件以及如何计算出与音频线程中当前样本相关的时间。

插件主机如何做到这一点?

我可以理解事件如何在回放时准确采样,但尚不清楚在使用实时输入时它们如何准确采样。

rtaudio 给了我一个回调函数。我将以较小的块大小(32 个样本)运行。我想我会将一个指向 rtmidi 实例的指针作为回调的 userdata 部分传递,然后调用 midiin->getMessage( &message ); 在音频回调中,但我不确定这是否是线程敏感的。

非常感谢你能给我的任何提示

0 投票
1 回答
976 浏览

c++ - VST 仪器多进多出

我想创建一个具有 16 个 MIDI 输入和至少 16 个音频输出的 VST 乐器。类似于 kontakt 或 halion 如何做到这一点。

有任何想法吗?

0 投票
2 回答
472 浏览

c++ - 从主机内部通过网络发送 midi 数据

如何通过 LAN 将收到的 MIDI 数据作为 VST 从主机应用程序(例如 Cubase)内部发送到网络中的另一台计算机?

0 投票
1 回答
378 浏览

c++ - 在 VST 中发送和接收 UDP

我有我的 vsti 的基础,想知道是否有人知道从 vst 内部通过 UDP 发送和接收消息的某种方式?

例如,通过 UDP 将传入的 midi 消息发送到远程合成器(比如 kontakt),然后从该合成器接收输出。