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 ] ( 1180 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 1772 )
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 ] ( 1723 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 2026 )
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 ] ( 1495 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 3869 )
Vocoder 
En la sección "soft" he añadido un vocoder en C. Utiliza filtros de estado variable discretos para implementar los filtros paso banda y una simplificación de la transformada de Hilbert discreta para implementar los seguidores de envolvente.

Junto al enlace para bajar el código fuente del vocoder he puesto un ejemplo: dos señales, una portadora con un acorde de violines y una moduladora con una voz, y el resultado de aplicar el vocoder a estas dos señales. Mejor lo oyes y te haces una idea :-)

El código fuente del vocoder es GPL (¡cómo no! :-).

[ añadir comentario ] ( 1710 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 1948 )
Nuevos fuentes sobre síntesis musical 
Hola de nuevo. En la sección "soft" del menú he añadido varios códigos fuente de ejemplo sobre síntesis musical. Son, en su mayoría, pequeñas rutinas que permiten explorar los diferentes tópicos relacionados con la síntesis musical por ordenador (todas de cosecha propia): generadores de señal, moduladores, generadores de envolvente, filtros, guías de ondas, generadores de percusión analógica, etc.

Espero que sirvan de algo a alguien :-). Un saludo y buenas noches ^_^

[ 2 comentarios ] ( 1589 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 2230 )

<< <Anterior | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 |