2009-07-08 12 views
23

Tengo una aplicación de iPhone para niños que estoy escribiendo y necesito poder cambiar el tono de una muestra de sonido usando Core Audio. ¿Alguien tiene un código de ejemplo que podría ver donde se hace esto? Hay muchas aplicaciones de música y juegos en la tienda de aplicaciones que hacen esto, así que sé que no soy el primero. Sin embargo, no puedo encontrar ningún ejemplo de esto.Desplazamiento de tono en tiempo real en el iPhone

Respuesta

14

puede usar dirac-2 desde dsp dimension para pitch shifting en el iphone. cotización: -

"DIRAC2 está disponible como una biblioteca de objetos comerciales que ofrece frecuencias de muestreo ilimitadas y soporte multicanal de fase bloqueada y como un solo canal libre, versión LE 44.1/48kHz."

+0

Tuve un mal experimentando dirac3 debido a su 'libDIRAC_iOS4-fat.a' ​​que probablemente no sea muy diferente en dirac2.Simplemente no pude usarlo. Tenía demasiados errores en la parte del enlace del proceso de compilación. Más bien, [he usado openAL] (http://stackoverflow.com/questions/2035975/how-do-you-completely-remove-and-release-memory-of-an-openal-sound-file/4647692# 4647692) con gran éxito. – cregox

+1

Funciona bien para mí. Probablemente se olvidó de agregar el marco de aceleración a su proyecto (está en el archivo Léame) – tahome

+1

DIRAC es perfecto, pero OpenAL con AL_PITCH también cambia la duración del sonido, que es menos que ideal. DIRAC ahora es la versión 3. Su biblioteca incluye el proyecto de demostración de iPhone. – Tibidabo

1

Ver: Related question

¿Cuánto control de pitch qué necesita ... podría precalcular todos los diferentes sonidos? Si la respuesta es sí, puede elegir los sonidos correctos y reproducirlos.

También podría usar Audio Converter Services junto con AVAudioPlayer, lo que le permitirá volver a muestrear el audio (lo que los reconectará efectivamente, aunque cambiarán la duración).

alternativa, como la cuestión relacionada señala, podría utilizar OpenAL y AL_PITCH

+2

No ayudó. ¡Gracias! –

+0

@Leachy solo se preguntaba ... ¿cómo podría openAL no ayudarlo y DIRAC sí? ¡Para mí fue todo lo contrario, y dirac resultó inútil! : o – cregox

9

uso del proyecto de código abierto SoundTouch para cambiar de tono

Aquí está el enlace: http://www.surina.net/soundtouch/

Una vez que añadir SoundTouch Para su proyecto, debe dar como entrada la ruta del archivo de sonido de entrada, la ruta del archivo de sonido de salida y el cambio de tono.

Dado que lleva más tiempo procesar su sonido, es mejor modificar el sonido para que cuando grabe la voz, proporcione directamente los datos para su procesamiento. Mejorará tu aplicación.

+0

Voy a dar una oportunidad. Gracias Anil! L. –

+0

@Anil: No tengo API para iOS – Maulik

+1

Me gustaría un enlace sobre cómo hacer esto. Pasé todo el día tratando de averiguar cómo agregar Soundtouch a mi proyecto de iOS – AlBeebe

2

Pruebe Dirac: es la mejor tecnología que existe y está disponible para Win, Linux, MacOS X e iOS. Lo estamos usando en todos nuestros productos (y un par de otros también, busque "Capo" en la App Store). Ahora están en la versión 3, que ha visto un gran aumento en el rendimiento desde versiones anteriores. Espero que esto ayude.

3

Sé que es demasiado tarde para la persona que lo solicitó, pero en realidad es un enlace valioso (como lo encontré) para cualquier otra persona que esté buscando la solución al mismo problema.

Así que aquí tenemos la última DIRAC3 con sus propios audio player clases que se hará cargo de la brea tiempo carrera y la velocidad (explorar en busca de Dios sabe qué más) desplazar. Ejecute la muestra y tenga una gran ronda de aplausos para eso.

Cuestiones relacionadas