Implementación en C del algoritmo de separación de fuentes de sonido 
Por fin. Me he puesto en serio y ya he terminado de implementar el algoritmo de separación de fuentes de sonido por discriminación de azimut publicado por Dan Barry, Bob Lawlor y Eugene Coyle en la Conference on Digital Audio Efects (DAFX) de 2004. Para más información puede consultarse el PDF con la descripción detallada del algoritmo y la página web de Dan Barry.

Mediante este algoritmo podemos, a partir de una grabación estéreo con los instrumentos panoramizados, extraer de forma bastante precisa los instrumentos aislados. El algoritmo es muy sencillo y el PDF explica de forma bastante buena el principio de funcionamiento del mismo. En la sección soft he puesto un tar.gz con el código fuente en ANSI-C y un ejemplo.

El código compila perfectamente en un entorno de desarrollo gnu básico (gcc) que se puede encontrar en cualquier Linux.

[ añadir comentario ] ( 1258 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 2228 )
Maquinitas para hacer ruidos 
Lo que daría un servidor por tener aunque sea una de estas en casita ^_^. Agüita con la cantidad de sonidos guapos que pueden hacerse con estas bestias de la síntesis analógica: Hay cosas que nunca pasan de moda y poder retorcer los potenciómetros de un sintetizador analógico y oir esas texturas analógicas perforándote la oreja es todo un gusto :-D

http://youtube.com/watch?v=dqjpvj2AbK8
http://youtube.com/watch?v=gNmzyZaqVwI
http://youtube.com/watch?v=iHXUaVWi7kE

A ver quién es el guapo que dice que no están que se salen estos aparatitos 8-)

[ añadir comentario ] ( 1342 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 2194 )
Pitch shifting 
Hace algunos posts hablé del sitio http://www.dspdimension.com y de la buena pinta que tenía el algoritmo de pitch shifting que describe con código fuente incluido. Pues bien, esta tarde, en lo que Mari le daba el último repasón a los apuntes para el exámen de mañana cogí el código fuente y lo adapté para que compilase en Linux con el GCC e hice un código de ejemplo shift.c que permite cambiar el pitch de un fichero RAW que lee de la entrada estándar (stdin) y sacarlo por la salida estándar (stdout).

Para los neófitos en esto del DSP, el pitch shifting consiste en cambiar el pitch (o el tono) de una grabación sin alterar su duración. El cambio de pitch se suele medir con un ratio: 1.0 significa que la grabación queda tal y como está, 0.5 significa que se baja una octava y 2.0 significa que se aumenta el tono en una octava.

Como contrapartida al pitch shifting tenemos el time stretching que consiste en cambiar la duración de una grabación sin alterar su pitch. Realmente es el mismo perro con distinto collar ya que si aplicamos un pitch shifting de un ratio de 0.5 a una grabación (esto es, la bajamos una octava de tonalidad) y luego reproducimos las muestras resultantes al doble de velocidad tendremos un time stretch con un ratio de 2.0 (es decir, oimos la muestra original el doble de rápido pero manteniendo el pitch).

En la sección soft he puesto el código fuente adaptado y algunos ejemplos. Aquí tenemos una canción original de Heath Whitelock. Aquí la versión con un rate de 0.75 y aquí con un rate de 1.25.

A mi los resultados no dejan de sorprenderme :-). Sección soft.


P.S. La canción de Heath Whitelock tiene licencia Creative Commons Reconocimiento-CompartirIgual 2.5.

[ añadir comentario ] ( 1201 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 1789 )
Time-stretch para todos 
Hola.
Hacía tiempo que no me pasaba por la web http://www.dspdimension.com y la verdad es que la encuentro bastante cambiada (para bien, por supuesto :-). En la sección Tutorials hay un tutorial sobre la implementación del time-stretch en C que está que se sale 8-). Aunque desde que me compré el sintetizador/sampler Roland Fantom-XR ya no preciso de esos menesteres por software ya que él solito lo hace sin problemas, se agradece un buen tutorial sobre las diferentes técnicas para generar este efecto. En la web hay otros enlaces muy interesantes con código fuente incluido.

[ 1 comentario ] ( 1818 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 2056 )
Nueva implementación de la FFT 
He adaptado de http://faculty.prairiestate.edu/skifowit/fft una implementación de la FFT de Cooley-Tukey en C y la he puesto en la sección soft. Aún tengo que echarle un vistazo a la implementación que me mandó José (via comentarios), que también tiene buena pinta :-).

Sobre el algoritmo de separación de fuentes de sonido por discriminación de acimut aún estoy en ello y no he terminado de depurarlo del todo (aún no rula bien :-)). En cuanto consiga algo decente lo pondré en la sección soft.

[ añadir comentario ] ( 1532 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 3894 )

<< <Anterior | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | Siguiente> >>