道歉,如果这听起来像个愚蠢的问题,我对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位。
如果有帮助,我也可以提供更多样本。
由于
答案 0 :(得分:1)
问题是因为Ableton和Reaper正在将32位音频转换为16位音频。我可以通过将sine.wav加载到Ableton并将其导出为16位来检查这一点。然后我将文件加载到Matlab中并获得如上所述的较小样本。我的下一个问题是找出一种在VST内将16位音频转换为32位音频的方法。
答案 1 :(得分:0)
您似乎描述的是一个非常低的幅度,因此您将获得很少的值(您可以将您的样本值转换为dB来验证)。通常音频信号的范围在-1到+1之间,其中极值表示数字世界中的最大可能音量(即0dB)。
我认为16位和32位之间的困境与你的问题无关。