He estado jugando con la demostración aurioTouch de Apple, que es un código de muestra para su tutorial de unidad de audio. Esta aplicación permite entradas/salidas simultáneas desde el micrófono. al hablante. También renderiza una estereografía del sonido ingresado desde el micrófono.iOS: unidad de audio RemoteIO Manipulación de AudioBuffer (es decir, efectos de sonido del micrófono)
En un nivel muy alto de este proceso de bajo nivel, el código de muestra define un AudioComponent (en este caso RemoteIO que permite la entrada/salida simultánea) y hay una devolución de llamada para esta Audio Unit. En la devolución de llamada, realizan algunos filtros de audio (un filtro de rechazo de CC) y la visualización de la estereografía basada en los datos de sonido de AudioBuffer del micrófono.
Mi objetivo final es crear mi propia unidad de audio con distorsión de sonido personalizada basada en la entrada del micrófono. Creo que la forma correcta de hacerlo en base al tutorial de la unidad de audio es crear una segunda unidad de audio y conectarlas con un gráfico de procesamiento de audio. Sin embargo, he leído que iOS no le permite registrar sus propias unidades de audio personalizadas. Mis preguntas son:
- ¿Puedo hacer la manipulación directa en el AudioBufferList que tengo acceso a la devolución de llamada render de la Unidad de remoteIO Audio (puesto que ya parecen estar haciendo esto y aplicando un filtro de audio en él) y crear mi propia distorsión de sonido personalizada allí?
- He intentado asignar los datos de AudioBufferList a una constante (un valor que he visto contener de una ejecución de muestra y registro de la Lista de AudioBuffer), pero parece que no hace nada.
Cualquiera que esté buscando el enlace github, ese código ahora se ha movido a: https://github.com/openframeworks/openFrameworks/blob/master/addons/ofxiPhone/src/sound/ofxiPhoneSoundStream.mm –