生成正弦波:不正确的输出
Generating a sine wave: incorrect output
我正在尝试在rtaudio中生成一个简单的正弦波来验证我了解发生了什么。但是,这是错误的。
我有一个全局float timec
,并且用openStream
调用回调,该回调应填充样品。
float freq = 440; // center frequency
int SAMPLE_RATE = 44100;
for (int i = 0; i < numFrames; i++) {
float v = sin(2 * M_PI * freq * (timec / SAMPLE_RATE));
outputbuffer[i] = v;
timec++;
}
我做错了什么?我听到低调的声音而不是正弦波。
回答我自己的问题。
rtaudio以棘手的方式处理输出缓冲区。浮子数组不适用于单个单声道通道,它包含代表每个通道的一个帧的插槽,然后为下一个帧等几个插槽等。键校正,因为该输出具有2个通道,因此是:
outputbuffer[2 * i] = v;
仅在一个通道上输出。
相关文章:
- Windows 10命令提示符的输出不正确
- C++ - 为什么 unicode 输出不正确?
- 我的叉子输出不正确
- C++使用 CEIL 和长度输出不正确的值
- 使用 iconv 进行 UTF8 转换的输出不正确
- C strftime()输出不正确
- 当行数和列不匹配时,输出不正确
- C++ 嵌套循环输出不正确
- 矩阵和矢量乘法,输出不正确的产品
- 我对这个问题有问题,我的输出不正确
- 上一个较大的数字代码中的输出不正确
- 二进制搜索树的输出不正确
- 拆解输出不正确(BeaEngine)
- 最大输出不正确
- 基本合并排序中的输出不正确
- 更改声明顺序时输出不正确
- Base64 转换器的输出不正确
- 使用 find_first_of() 和 substr() 分隔字符串,但我得到的输出不正确
- 对字符串进行索引时输出不正确
- .wav C++数据输出不正确