2008-09-01 8 views
8

Me gustaría extraer un flujo de muestras de PCM desde un micrófono integrado o de línea de Mac y hacer un pequeño análisis en vivo (la naturaleza exacta no pertenece a esta pregunta, pero podría ser una FFT cada cierto a menudo, o algunas estadísticas básicas sobre los niveles de muestra, o lo que sea).API de entrada de audio simple en una Mac?

¿Qué sirve para esto? ¿Escribir una AudioUnit que simplemente transmite el sonido e incidentalmente lo deja en algún lugar para su análisis? ¿Escribiste una aplicación compatible con JACK y descubrí cómo hacer que funcione con el servidor JACK? Ecasound?

Este es un proyecto cursi de afición a la prueba de concepto, por lo que la simplicidad de la API es el factor determinante (seguido de una elección razonable del lenguaje de programación).

Respuesta

5

Creo que portaudio es lo que necesita. La lectura desde el micrófono desde una aplicación de consola es un archivo C de 10 líneas (consulte las demostraciones en la distribución del portaudio).

+0

Aquí hay un enlace a un ejemplo de grabación de audio a través de un micrófono y guardarlo en un archivo: http://portaudio.com/docs/v19-doxydocs/paex__record_8c.html –

4

El principal marco para el desarrollo de audio en Mac OS X es Core Audio; es la base de todas las E/S de audio. Hay capas encima, como Audio Toolbox, Audio Queue Services, QuickTime y QTKit, que puede usar si desea una API simplificada para tareas comunes.

Para simplemente extraer una secuencia de muestras, es probable que desee utilizar Audio Queue Services; La función AudioQueueNewInput configurará la grabación de datos PCM y la pasará a una devolución de llamada que usted proporcione.

En su Mac hay un conjunto de ejemplos de Core Audio en /Developer/Examples/CoreAudio/SimpleSDK que incluye un uso (AQRecord en AudioQueueTools) de las API de grabación de Audio Queue Services.

+0

Hola, Chris. Los servicios de audio cola realmente presentan una API agradable y limpia. Terminé yendo con portaudio con este proyecto para compatibilidad con Tiger, pero he estado mirando envidiosamente a AQRecord. – undees

Cuestiones relacionadas