程序简单的音调发生器,在两个立体声中的每一个中播放两个音调

时间:2009-08-12 01:13:58

标签: c objective-c cocoa

我希望在右立体声声道中产生两个相反的音调,在左立体声声道中产生两个相反的音调,我希望在c或目标c中实现这一点

3 个答案:

答案 0 :(得分:4)

您可以使用正弦波轻松生成音调: n 样本由A*sin(2*pi*n*f/R)给出,其中A是幅度(音量),f是以赫兹为单位的频率,R是每秒样本的采样率。对于立体声,您可以生成两个具有不同参数的独立波。

困难的部分实际上是播放声音。您将不得不使用某种特定于平台的音频库,或者使用第三方库来抽象出特定于平台的详细信息。或者,您可以将声音数据写入WAV文件,这并不是非常困难,因为WAV文件只是具有RIFF标题的原始未压缩PCM数据。

答案 1 :(得分:3)

DefaultOutputUnit示例代码

/开发商/实施例/ CoreAudio的/ SimpleSDK / DefaultOutputUnit

显示了如何播放正弦波,将它调整为在左右扬声器上播放两个不同的正弦波是相对微不足道的。

答案 2 :(得分:0)

您可以使用beep功能生成音调,但我不确定如何从一个通道获得一个音调而另一个音调来自另一个通道。我唯一能想到的是使用两个不同的线程,每个线程调用蜂鸣功能,但两个音调都来自两个通道。祝你好运!