2008-09-01 44 views
8

我想从Mac的线路输入或内置麦克风中提取PCM样本流,并进行一些实时分析(确切的性质与此问题无关,但它可能每次都是FFT经常或关于样本水平的一些基本统计数据,或者你有什么)。Mac上的简单音频输入API?

这有什么用?编写一个只传递声音的音频单元,并顺带将其传递到某个地方进行分析?编写一个支持JACK的应用程序,并弄清楚如何让它与JACK服务器一起玩? Ecasound?

这是一个俗气的概念验证爱好项目,所以API的简单性是驱动因素(随后是编程语言的合理选择)。

回答

5

我认为portaudio是你所需要的。 从控制台应用程序中读取麦克风是一个10行的C文件(请参阅portaudio distrib中的patests)。

+0

以下是通过麦克风录制音频并将其保存到文件的示例链接:http://portaudio.com/docs/v19-doxydocs/paex__record_8c.html – 2015-12-07 18:46:42

4

Mac OS X中音频开发的主要框架是Core Audio;它是所有音频I/O的基础。音频工具箱,音频队列服务,QuickTime和QTKit都有其上的图层,如果您想为常见任务使用简化的API,则可以使用这些图层。

若要拉取样本流,您可能需要使用Audio Queue Services; AudioQueueNewInput函数将设置PCM数据的记录并将其传递给您提供的回调。

在您的Mac上,/Developer/Examples/CoreAudio/SimpleSDK中有一组核心音频示例,其中包括音频队列服务录制API的使用(AudioQueueTools中的AQRecord)。

+0

嗨,Chris。音频队列服务确实提供了一个不错的,干净的API。我最终与portaudio一起为这个兼容Tiger的项目工作,但一直羡慕地盯着AQRecord。 – undees 2008-09-08 18:48:49