2010-03-08 11 views
12

Soy un estudiante de electrónica y telecomunicaciones, junto a mi graduación. Voy a trabajar en un proyecto que involucra mi conocimiento sobre DSP, música y audio en general. Ya conozco todos los instrumentos matemáticos básicos y todo lo que necesito para gestionarlo, como FFT, circular convolution ecc ecc.Cómo escribir aplicaciones de procesamiento de audio en C++?

Quiero aprender la programación C++ básicamente por una razón: es muy importante en el mundo profesional. Y creo que es uno de los más utilizados para escribir aplicaciones que trabajan con audio, especialmente cuando se trata de procesamiento en tiempo real.

Ok, después de esta pequeña introducción me gustaría saber primero, ¿cuáles son las bibliotecas más utilizadas para trabajar con el procesamiento de audio en C++? Ya estaba buscando en la web, pero no pude encontrar un montón de cosas de trabajo. (Trabajo bajo Linux con eclipse CDT entorno).

Luego me gustaría saber si hay buenas fuentes para aprender a escribir algunos códigos de trabajo, como por ejemplo, cómo escribir un filtro de paso bajo simple. Básicamente ahora no voy a escribir aplicaciones en tiempo real, me gustaría comenzar a partir del procesamiento de un archivo WAV, o mejor aún un archivo MP3, por lo que básicamente en vectores de muestras.

Digamos que, básicamente, por ahora, me gustaría extraer la forma de onda de un archivo de audio y guardarla en una miniatura o en una imagen PNG.

Ok, por ahora creo que es todo lo que necesitaría.

¿Alguna idea, consejos, bibliotecas, libros, fuentes interesantes sobre eso?

Muchas gracias de antemano por cualquier tipo de respuesta.

Giovanni.

+0

¿Qué programación que ALRE ady saber? – sbi

Respuesta

4

Le sugiero que escriba su propio lector y escritor de archivos WAVE en C++, sin depender de bibliotecas externas. El formato WAVE es bastante directo, al menos si solo tiene la intención de soportar los archivos de onda más comunes.

A continuación, tendrá acceso a los datos de audio, que puede manipular fácilmente en C++. Recomendaría comenzar modificando el volumen, la cantidad de canales para calcular estadísticas en el audio. Crear un PNG de la forma de onda de audio requiere algunas habilidades C++ más avanzadas ...

+0

Ok! Muy bien, es algo que puede ser interesante para empezar. ¿Cómo puedo hacer eso? ¿hay algún tutorial? Sé cómo están estructurados los archivos WAV, pero no sé cómo abrir archivos de audio en C++, ¿se abre la secuencia de archivos normal? ¿O hay algo más que necesitaría? – Cesko82

+1

Es una secuencia de archivo normal. Puedes leer y escribir como lo desees. Pero le recomendaría que primero vea mejor C++, en lugar de apresurarse a DSP sin conocer algunos conceptos básicos de ese lenguaje de programación. Podría encontrar fácilmente varios problemas. ¿Has programado en otros idiomas? – Adi

+0

sí, lo hice en python, y en java a veces. Ya escribí una rutina con python utilizando las librerías de tipo matlab, pero eso requiere demasiada RAM solo para dibujar una forma de onda porque usa una biblioteca de videos que pone en funcionamiento el controlador de la tarjeta de video. Solo quiero exportar formas de onda en un archivo por ahora, y quizás mezclar dos archivos de audio. – Cesko82

1

He usado BASS con buenos resultados (hay una API C/C++ que puede usar).

+0

que suena bien, pero no puedo encontrarlo en repositorios, ¿cómo puedo gestionarlo en mi kármica kármica? – Cesko82

+0

Ah, disculpa, de alguna manera me perdí que estabas ejecutando Linux. Aquí (http://www.un4seen.com/forum/?topic=8682.0) es una compilación oficial que puedes descargar. Además, algo que destacar sobre BASS: no es de código abierto y es gratuito solo para uso no comercial, por lo que puede ser o no lo que estás buscando, pero vale la pena echarle un vistazo. – DSB

6

Consulte este link que le dará información sobre los softwares de edición de audio disponibles (comercial y de código abierto).

Algunas de código abierto de audio herramientas de edición interesantes que están escritas en C++,

  1. Audacity
  2. LMMS
  3. Qtractor
  4. Ardour
  5. Rosegarden

Biblioteca C++ para procesamiento de audio.

  1. SndObj
  2. The Synthesis ToolKit in C++

código C++ y enlaces relacionados Filtros y procesamiento de audio ..

C++ code for Filter,Audio Processing

Code Guru,Low pass filter

idiomas
Cuestiones relacionadas