从公式生成正弦波声音,因此我可以将公式重写为其他声音

时间:2019-07-09 19:22:34

标签: c++ macos audio generate

我希望能够运行除了通过扬声器/耳机输出正弦波外无能为力的代码,而且我需要将代码中的正弦波写成某种数学公式,以便于解决学习如何将其调整为不同或略微改变形状的公式。

我需要类似的东西。

Main()

play.this = 1 * 63(3/36)//或代表正弦波的任何公式

结束

这看起来很愚蠢,但是到目前为止,我只发现人们在演奏“哔哔”声或使用仅Windows窗口的函数在演奏“正弦”并输入幅度和频率。

我在Mac上。

1 个答案:

答案 0 :(得分:1)

您想要的是使用框架或库进行音频输出。就个人而言,我会选择SDL,但您有很多选择。

此工具通常将提供代码回调,您需要在其中提供接下来的几个字节的输出。例如,它可能请求下一秒的十分之一。在44khz处,这是4400个值的缓冲区。您可以像下面这样循环填充该缓冲区

Buff[i] = (char)(127 * sin(x));

您做得足够快,可以为下一个要求更多数据的回调做好准备。