c++ - VST 音频输入值与 Matlab 中完全不同

标签 c++ matlab audio vst juce

如果这听起来像是一个愚蠢的问题,我深表歉意,我是 VST 开发的新手。我正在尝试使用 JUCE 框架构建一个插件,目前我正在尝试使用正弦波 .wav 文件对其进行测试。当我在 Audacity 中打开 .wav 文件时,它告诉我它是 44100Hz 并且是 32 位 float 。当我将同一个文件加载到 matlab 中时,前三个样本类似于 0.00、0.0443、0.0884... 但是,当我将同一个文件放入 Ableton 和 Reaper 中并尝试单步执行代码时,我找到了前三个样本相同的文件是 0.00000000、0.00012068315、0.00048156900... 当我进入 VS 中的内存并在 32 位浮点 View 中查看时,我看到了这一点。为什么我的样本值这么小?

我的问题是我需要音频具有与 Matlab 中相同的样本值,这样我的算法才能工作。显然发生了我无法控制的转变。任何人都可以阐明这个问题以及我应该如何解决它。看起来可能是缩放问题。 Ableton 正在 32 位模式下运行,我的 VST 正在编译为 32 位。

如果有帮助,我还可以提供更多示例。

谢谢

最佳答案

问题是因为 Ableton 和 Reaper 将 32 位音频转换为 16 位音频。我能够通过将 sine.wav 加载到 Ableton 并以 16 位导出它来检查这一点。然后,我将该文件加载到 Matlab 中,并获得了如上所示的较小样本。我的下一个问题是想办法在 VST 中将 16 位音频转换为 32 位音频。

关于c++ - VST 音频输入值与 Matlab 中完全不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38087315/

相关文章:

c++ - 常量表达式中的静态成员访问

c++ - 重新初始化字符串对象时发生崩溃

python - 如何绘制曲线可能重叠的情节?

google-chrome - 音频无法播放(Chrome和Firefox都存在浏览器错误?)

ios - 如何在 Cocos2d 中播放音频文件的特定部分

c++ - 我应该使用 system(PAUSE) 还是 cin.get() 来保持控制台窗口打开?

matlab - 匹配两个系列的 Mfcc 系数

matlab - 生成矩阵的线性组合

ios - 在iOS库中使用哪种格式播放视频或音频?

c++ - pqxx 重用/重新激活工作事务