问题标签 [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.
xcode - VST3 的 XCode 有很好的教程吗?
我对 XCode 和 VST 的世界都是全新的。我发现的每个教程都涉及 VST2.4 或更早版本,当我真的想使用 VST3 时。我目前也有 XCode 3.2.1,它没有所有其他教程所需的 Carbon 框架。
我可以参考任何想法或文档吗?
.net - 以编程方式从 .Net 获取 wave 或 MP3 的 BPM
我有一个项目需要使用 .Net(VB.Net 或 C#)以编程方式获取 wave 或 MP3 文件的 BPM。
有谁知道这个的二进制文件或库,或者有一个代码片段来引导我朝着正确的方向前进?
audio - 代数声音合成可能吗?
假设您有一首普通的歌曲,它有两层,一层是器乐,另一层是人声。现在假设您也只有乐器层。是否可以“减去”器乐并获得纯净的人声?会不会有损失?我将如何进行这种特定类型的减法合成?
.net - VST.NET 与 NAUDIO(vstaudiobuffer 与 pcmstream 缓冲区)
请帮助我如何将 VSTaudiobuffer 转换为 PCMStream Buffer 我尝试从http://vstnet.codeplex.com/Thread/View.aspx?ThreadId=216682但无济于事。
ruby - 我将如何以编程方式与 VST(i) 插件交互以合成音频?
以 Tweakbench 的 VSTi Triforce为例。当加载到市场上的任何 VST 主机中时,它允许主机向 VSTi 发送(可能是 MIDI)信号。然后,VSTi 将处理该信号并输出由VSTi 内的软件乐器创建的合成音频。
例如,向 VSTi 发送 A4(我相信是 MIDI 音符)将导致它在中间 C 之上合成 A。它将音频数据发送回 VST 主机,然后它可以在我的扬声器上播放或保存它到 .wav 或其他一些音频文件格式。
假设我有Triforce,并且正在尝试用我选择的语言编写一个程序,该程序可以通过发送要合成的 A4 笔记来与 VSTi 交互,并自动将其保存到系统上的文件中?
最终,我希望能够解析整个单轨 MIDI 文件(使用已建立的、稳定的库已经用于此目的)并将其发送到 VSTi 以“渲染”/将其合成为音频文件。
我将如何解决这个问题,我应该 使用哪种语言来构建核心框架?
最终,它将在基于 Ruby 的项目中使用,因此任何指向特定 Ruby 资源的指针也会很好。
但是,我只是想基本了解 VSTi 的 API 是如何工作的。(我已经意识到这个问题与首先构建 VST 主机的问题非常相关,尽管它只能将 VST 输出保存到文件而不能回放,而且范围要小得多)
ruby - 从 Ruby 控制 VST 乐器
我最近买了一份 EZDrummer,一个充当虚拟鼓组的 VST 插件。我真的很想从 Ruby 代码中连接到它,这样我就可以通过编程方式创建循环和鼓模式。老实说,我什至不确定从哪里开始。大概我必须创建一个可以加载插件然后以某种方式连接到它的 VST 主机。我是一名 Ruby 开发人员,所以这就是我想要实现的语言。任何指向正确方向的指针?
winapi - 如何从 VST 插件中打开 Win32 对话框?
如何从 VST 插件中打开 Win32 对话框?谢谢你的帮助。
c++ - 将 VST 音频效果/插件应用于音频文件
这是我在这里偷偷摸摸一段时间后的第一个问题。所以放过我吧。
我需要通过 CLI 或 C++ 将 iZotope Vinyl VST 效果应用于某些音频文件(因此语言并不重要),它必须在 Mac 或基于 Unix 的系统上工作。我已经在整个网络上进行了研究,但找不到任何可行的解决方案。
我试过使用命令行实用程序 MissWatson,这可以工作,但我的结果音频文件是无声的......
./MissWatson -plugin=Vinyl -input-file="/Users/Sjaq/Desktop/test.wav" -output-file="/Users/Sjaq/Downloads/MissWatson-v1.0-mac/res.wav" -parameter=1:0.6,2:0.6,11:0.4
然后我尝试通过创建主机应用程序来使用Steinberg VST SDK,从 SDK 提供的 vstvalidator 开始。但是当我尝试加载 VST 时,我得到了这个错误:
2010-12-01 16:57:40.774 vstvalidator[4654:903] Error loading /Library/Audio/Plug-Ins/VST/Vinyl.vst/Contents/MacOS/Vinyl: dlopen(/Library/Audio/Plug-Ins/VST/Vinyl.vst/Contents/MacOS/Vinyl, 262): no suitable image found. Did find:
/Library/Audio/Plug-Ins/VST/Vinyl.vst/Contents/MacOS/Vinyl: no matching architecture in universal wrapper
而且我不知道该怎么办。我对 C++ 很陌生,并且制作了一些应用程序没有任何问题,但这次我遇到了死胡同。
我已经阅读了有关 pyvst 的信息,但它似乎需要一个用于 VST 的 DLL,所以这也不起作用。
c++ - 在类函数方法中将值存储在缓冲区中
我正在用 C++ 编写一个 VST DSP 插件。
我正在“filterbank”中创建一系列带通滤波器。我在头文件(包括函数)中实现了一个过滤器类,并在 .cpp 中正确构建了构造函数/析构函数。
我可以将值传递给方法并返回它们。但是,问题在于在函数的缓冲区中存储数据。似乎每次调用函数方法时,缓冲区中存储的值都会被重置(或者,一开始就没有正确存储)。因此,传回的内容并不“完整”。
任何建议都非常感谢!
nb 这篇文章已经更新了新代码:
这是课程:
{
朋友班 Beat_to_Midi;
公共:aFilterL();~aFilterL();
虚拟浮点 aFilterMethodL (float a0, float a1, float a2, float b1, float b2, float inputL, float prevInput1L, float prevInput2L) {
}
};
类aFilterR {
朋友班 Beat_to_Midi;
公共:aFilterR();~aFilterR();
虚拟浮动aFilterMethodR(浮动a0,浮动a1,浮动a2,浮动b1,浮动b2,浮动输入R,浮动prevInput1R,浮动prevInput2R){
} };
然后在 cpp 中构造/销毁,如下所示:
{ fOut1_l = 0.f; filterOut1_l = 0.f;
}
aFilterL::~aFilterL() {
}
aFilterR::aFilterR() { fOut1_r = 0.f;
}
aFilterR::~aFilterR() {
}
最后在 processReplaceing 函数中实现为:
void myPlugin::processReplacing (float** 输入,float** 输出,VstInt32 sampleFrames) {
while (--sampleFrames >= 0) {
// 过滤输入
In_1_l = buffer_In_1_l[0];
In_1_r = 缓冲区_In_1_r[0];
In_2_l = buffer_In_2_l[0];
In_2_r = 缓冲区_In_2_r[0];
// 在管理中过滤
buffer_In_2_l[0] = buffer_In_1_l[0];
buffer_In_2_r[0] = buffer_In_1_r[0];
buffer_In_1_l[0] = *in1;
buffer_In_1_r[0] = *in2;
// 发送到函数进行处理
返回L = my_aFilter1L->aFilterMethodL(0.000171f, 0.0f, -0.000171f, -1.999911f, 0.999943f, *in1, In_1_l, In_2_l);
返回R = my_aFilter1R->aFilterMethodR(0.000171f, 0.0f, -0.000171f, -1.999911f, 0.999943f, *in2, In_1_r, In_2_r);
// 将过滤器输出发送到 out
*out1 = 返回L;
*out2 = 返回R;
*在1++;
*in2++;
*出1++;
*out2++; }}