问题标签 [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.
c++ - VSTi 信封实现
对于大学作业,我必须编写一个简单的 VSTi 加法合成器。我已经完成了大部分工作,但我无法让我的 ADSR 信封做任何事情。
我认为(并且绝对不确定)时间变量和/或决定信封阶段的逻辑导致它无法按预期运行。
如果信封的时间变量在 processReplacing() 循环中增加,则代码符合但主机崩溃。
当在每个 adsr 乘法中增加时间时,它会在主机中编译和运行,只是不能按预期工作。
我会认为在 processReplacing() 循环中增加时间是可行的,显然不是。
如果有人能看到导致信封不起作用的原因并能指出我正确的方向,我将不胜感激。
我真的不确定要附加哪些代码,所以已经完成了所有这些。
谢谢,
VST_Plug_in.h
VST_Plug_in.cpp
ADSR.h
ADSR.cpp
计时器.h
计时器.cpp
c++ - 简单的 C++ 数学给出不正确的结果
我正在编写一个 VSTi 插件,我需要计算部分输出包络的系数。
基本上我收到的数学表达式的答案不正确,我已将其简化为几个步骤,但仍然不正确。相同的表达式适用于计算器,但不能翻译成代码。我一直在使用调试器并检查变量的内容,发现 0.25 / 88200 给出的结果是 2.8344671201814060e-006 而不是 0.00000283446712 应该是这样。代码中前面的类似数学运算符合预期。
所有相关变量都是双精度类型,我什至将其输入为数值(如上)而不是变量,它仍然给出错误的答案。
任何人都可以阐明为什么会发生这种情况,并提供一些关于尝试甚至解决方案的想法。
如果需要,我可以在上下文中添加代码。干杯
本
c++ - WinAPI 窗口消息似乎被插件窃取 - 如何修复?
首先,一些链接(对于那些想自己尝试的人):我正在将Proteus VX VST 插件加载到我的主机OpenMPT中。该插件工作得很好,但它似乎窃取了一些窗口消息,因此单击主机创建的菜单,甚至单击关闭按钮都没有效果。单击关闭按钮甚至不会触发其“按下按钮”动画,因此 Windows 可能不会收到任何有关窗口操作的消息。我知道像 Renoise 这样的其他 VST 主机没有这个问题(单击窗口的关闭按钮在那里工作得很好),所以必须有办法避免这种情况。
我怀疑 Proteus VX 安装了一个不符合要求的窗口 proc,它可能忘记调用 MFC 自己的窗口 proc(也可能不调用 DefWindowProc),但我不知道如何找到它,更不用说如何修复它了。我尝试在打开插件窗口之前保存原始的 GWL_WNDPROC,然后在显示编辑器后立即恢复此 proc,但这无济于事。
编辑:插件肯定做一些狡猾的事情;在允许它对我的窗口做任何事情之前,我使用存储原始 WindowProc
并在插件完成其窗口初始化业务后使用
这让我可以使用自己的菜单和窗口的 [x] 按钮,直到我在插件 GUI 中摆弄一下;我想插件一旦收到输入焦点就会再次覆盖窗口进程。
audio - VSTSDK2.4 源的过滤器示例
是否有任何现有示例如何为 vstsdk2.4 实现 dsp 过滤器?我的意思是类似于 vstsdk(.h 和 .cpp 文件)中包含的源示例,以便于理解它是如何工作的。在网上搜索了很长时间,发现很多关于过滤器设计的内容,但这对我没有任何用处(目前和我的知识)。每个例子都会非常受欢迎......
谢谢你!
c++ - C++ 编译器在 Steinberg VST SDK 文件中找不到没有绝对路径的文件
我正在尝试编译一个已经包含在 Steinberg VST SDK 中的简单程序。
我遇到的问题是我的编译器无法找到该文件,除非它具有绝对路径。出于某种原因,代码的编写方式使我的编译器无法找到文件需要它的位置。
例如:
在文件 vstcomponentbase.h 中,位于 C:\Users\180945\Documents\Programs\vstsdk352_25_09_2012_build_16\VST3 SDK\public.sdk\source\vst\
有这一行:
ipluginbase.h 位于 C:\Users\180945\Documents\Programs\vstsdk352_25_09_2012_build_16\VST3 SDK\plugininterfaces\base
除非我将线路更改为
它行不通。
我使用 NetBeans 作为我的 IDE。我想让文件自动找到文件应该在哪里。它应该可以工作,因为我使用的是 Steinberg 的 VST SDK,它有演示和其他应该按给定工作的代码位。在本来应该可以工作的东西中编辑的东西太多了。
user-interface - VST GUI 中的向后格式化值
一个要解决的新问题。
在我的 setParameter() 中,我使用将值设置为“真实值”。我正在格式化它们,value * (max - min) + min
例如:value of 1.0 == 20000Hz
或value of 0.0 == -30dB
现在我遇到了问题,VSTGUI 似乎只接受 0-1 的值。有没有比重写 setParameter() 中的所有代码更好的解决方案?
也许像 sprintf() 之类的东西?
编辑:我正在使用 CAnimKnob 类。
macos - 如何将我的 mac 触摸板变成 midi 控制器?
我想编写一个自定义脚本/程序,允许我将信号从我的 mac 触控板发送到 midi。我什至不知道从哪里开始,我是 ac# 程序员,所以对我来说不容易:-(
有人能指出我正确的方向吗?
谢谢,皮特
objective-c - 如何从 OS X 二进制文件中去除 Objective-C 符号?
好的,我知道还有其他帖子关于您实际上不能从OS X二进制文件中删除 Objective-C 符号,因为它们是 Obj-C 工作所必需的,但我的情况有点不同。
我有一个二进制文件,它是一个捆绑包。它旨在用作 VST 插件或 AudioUnit 插件。这个想法是二进制文件包含这两种格式的所有入口点,您只需编译一次,然后将一个副本命名为“ .vst ”用于 VST 版本, “. component ”用于AU 版本。 (顺便说一句,这是使用 JUCE 框架。)
问题是对于 AU 端,您必须导出一个 Obj-C 类来创建 CocoaUI
视图。在 VST 方面,永远不会使用此类。但是如果你有一个像 Ableton Live 这样的主机,它允许你同时加载同一个插件的 AU 和 VST 版本,现在我们会遇到典型的 Obj-C 命名空间冲突问题。
在 VST 方面,那个特定的 Obj-C 类永远不会被使用。所以我想做的是使用“strip”从生成的二进制文件中剥离那些 Obj-C 类。这仍然保持了只为两种格式编译一次的优势。
无论如何,我已经尝试使用"strip -R stripfile.txt <path to binary>"
,其中 stripfile.txt 包含我想要剥离的符号,但它总是无法说在二进制文件中找不到符号。我已经尝试修改条带文件中的名称,但这没有帮助(或者我做错了)。
以下是我要剥离的相关符号,由“nm -m”输出:
有任何想法吗?
顺便说一句,我随后能够动态注册有问题的类(使用唯一的名称),这也解决了这个问题。但是,如果我可以进行剥离工作,我可能会为现场已经存在的二进制文件部署一个解决方案。
language-agnostic - 开始 VST 开发的最简单方法
编写 VST 插件的最简单方法是什么?
我是 IT 教育专业的二年级学生,我可能需要编写一个 VST 作为数字信号处理课程的分配项目。这意味着我可能必须实现一个实际的 DSP 算法,所以如果我没记错的话,那将超越所有图形模块化 VST 制作软件。
我目前手头有 C++ (CodeBlocks + MinGW)、Java (Eclipse)、Python 和 Octave。我还可以获得 Visual Studio、Matlab 或一些免费的语言/环境来完成这项任务。我还发现了Faust,它是一种函数式语言,我可能会在这个项目中学习它,因为我喜欢学习新语言。
c# - 如何在 FMOD Ex 中实现 VST 插件?
标题说明了一切。我正在尝试使用 FMOD Ex 实现 VST 插件。我能找到的唯一指南是 FMOD Studio,但不是实际的编码实现。我有 FMOD 的 C++ 文档,所以我可以播放声音,甚至可以通过翻译它来应用库存的 DSP 效果,但是 VST 插件的文档对我来说似乎很不清楚(我可能只是遗漏了一些东西)。
当资源可用时,我是一位出色的研究人员,因此即使有人能指出我正确的方向,这也会有所帮助(谷歌没有返回任何富有成果的东西,可能是因为“fmod vst”这个词太含糊了)。
谢谢!!
〜杰克