Pregunta

He buscado en la red, pero no encontré nada interesante. Tal vez estoy haciendo algo mal.

Busco la síntesis de sonido API escrito en C, C ++ o incluso de Objective-C, que puede sintetizar diferentes tipos de ondas, los efectos son opcionales.

¿Fue útil?

Solución

Aquí hay una biblioteca completa / kit de herramientas para FM (frecuencia modulada) síntesis:

vínculo1 Link2

Si usted tiene tiempo de sobra ... la creación de síntesis de sonido sencilla a partir de cero es en realidad una tarea divertida. Si crea un pequeño búfer de 256 muestras de 16 bits que representan ya sea un seno. un diente de sierra, bloque o de pulso, puede copiar estos a un audiobuffer vivo (por ejemplo, un tampón pequeña (digamos 16 kb)) que los bucles constantemente. Si se aloja por delante de la playposition, y constantemente llenar el buffer con nuevos valores, se puede crear el soundoutput. Puede utilizar las pequeñas memorias intermedias de combinar éstos de manera interesante (más simple es sólo para sumarlos (síntesis aditiva)).

La frecuencia del tono puede ser manipulada mediante el uso de un paso de muestreo más grande o más pequeño a través de los pequeños tampones. Amplitud pueden ser manipulados por escalar las muestras antes de ponerlos en el búfer de salida.

Muy divertido experimentar con esto!

Si ha clavado este paso, se puede añadir efectos más sofisticados como filtros (paso bajo, paso alto, etc) y efectos (reverberaciones, ecos, etc.)

R

Otros consejos

¿Has mirado en el kit de herramientas de síntesis ( STK )? Está en C ++ (no creo ObjC es el lenguaje adecuado para la síntesis de audio, en unidades de audio hecho, la propia forma de Apple de hacer las cosas de audio, incluyendo generadores / filtros / efectos ... es en C ++).

STK se ejecutará en Mac OS X y iOS ningún problema (CoreAudio es compatible), pero también se pueden ejecutar en Linux y Windows (sonido directo y ASIO), utilizando RTAudio. Está muy bien hecho y ligero, estos chicos han pasado mucho tiempo pensando en ello y que sin duda le dará una gran ventaja. Puede manejar cargas de diferentes formatos de archivo de audio en formato midi + (y esperemos que pronto OSC ...).

También es Crear y la almeja, que es enorme, estos incluyen componentes GUI y muchas otras cosas que es posible que o puede que no desee. Si sólo estás interesado en hacer la síntesis de sonido Realmente recomiendo STK.

PortAudio es también una gran API C que usamos último semestre en un curso de programación de audio. Proporciona una devolución de llamada de audio ... ¿qué más se puede pedir !?

No he intentado incorporar con cualquier cosa en Objective-C todavía, pero informaré cuando lo haga.

Escribiendo algoritmos de síntesis de audio en C / obj-C es bastante difícil en mi opinión. Yo recomendaría escribir sus algoritmos de procesamiento de señales utilizando PureData y luego utilice o href="http://gitorious.org/pdlib/pages/Libpd" rel="nofollow"> libpd para incrustar e interpretar los parches pd en su aplicación.

biblioteca Otra C ++ es Nsound:

http://nsound.sourceforge.net

Se puede generar cualquier tipo de señal modulada utilizando la clase del generador o el uso de la clase Sine proporcionado. Cada paso de tiempo puede tener su propia frecuencia instantánea y el desplazamiento de fase.

También puede experimentar con el módulo de Python para un prototipo de su algoritmo de forma rápida, a continuación, poner en práctica en C ++. Puede producir bonitas parcelas matplotlib de Python e incluso de C ++!

¿Has mirado en CSound ? Es una plataforma increíblemente flexible generación de audio, y puede manejar todo, desde la generación de la forma de onda simple de la síntesis FM y todo tipo de filtros. También proporciona soporte MIDI, y se puede extender por escrito códigos de operación personalizados. Hay una completa C API y varios APIs C ++ también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top