0

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

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

如果有帮助,我还可以提供更多样品。

谢谢

4

2 回答 2

1

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

于 2016-06-28T23:46:53.727 回答
0

您似乎描述的是一个非常低的幅度,因此您将有很少的值(您可以将样本值转换为 dB 以验证这一点)。通常,音频信号的范围在 -1 和 +1 之间,其中极值代表数字世界中的最大可能音量(又名 0dB)。

我相信16位和32位之间的困境与你的问题无关。

于 2016-06-29T04:16:28.653 回答