Algoritmo de detección de tempo 
Hace un tiempo encontré en el siguiente enlace un interesantísimo artículo explicando las diferentes técnicas que existen para la detección de BPM (tempo) sobre pistas de audio.

http://www.flipcode.com/misc/BeatDetect ... rithms.pdf

En particular me llamó la atención la técnica basada en el cálculo de la correlación de la señal con un tren de pulsos. En la sección soft puede descargarse una implementación sencilla en C de este algoritmo. Da muy buenos resultados con música pop, rock y electrónica. No he probado el código con otros estilos musicales.

Código fuente aquí.

[ añadir comentario ] ( 1171 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 1884 )
Nuevo tema: Unmute 
El otro día subí un nuevo tema a mi cuenta de soundcloud:

http://soundcloud.com/avelinoherrera/unmute

Hoy he recibido un correo pidiéndome permiso para ponerlo en una tienda y el buen amigo taiwanés Dj WangHart lo va a pinchar hoy en su set de todos los viernes a las 14:00, hora canaria, a través de Intersonik Radio

http://intersonik.net

Aquí para ver el set completo que usará.

No me puedo quejar, la verdad :-). Espero que les guste.

[ añadir comentario ] ( 1144 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 1863 )
Nuevo tema 
Acabo de grabar y subir un nuevo tema de cosecha propia. Se titula Sol y está disponible tanto en mi cuenta de SoundCloud

http://soundcloud.com/avelinoherrera/sol

como por descarga directa en la sección Música.

Espero que les guste :-)

[ 2 comentarios ] ( 7415 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 18694 )
Primer tema de Guineo en español 
Ya tenemos un nuevo tema colgado en la web:

guineo - metamorfosis

Nuestra primera incursión en el español :-)

[ añadir comentario ] ( 2846 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 18811 )
Parser/Reproductor de ficheros MIDI 
En la sección soft he puesto el código fuente de un parser/reproductor de ficheros MIDI (compatible con tipo 0 y tipo 1) implementado en C y en C++ (dos implementaciones separadas).

Se trata de un esqueleto básico. Para que el parser/reproductor funcione con un hardware determinado hay que hacer las siguientes modificaciones.

en C
Modificar la implementación de la función void sendMidiEventCallback(uint8_t *data, uint8_t dataLength) para que emita los "dataLength" primeros bytes de "data" sobre el hardware deseado.

en C++
Implementar una clase que herede de TMidiPlayer (esta clase tiene el método virtual puro void sendMidiEvent(u8 *data, u8 size) que debe ser implementado en alguna subclase).

Más info en la sección soft, subsección sonido.

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

<< <Anterior | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | Siguiente> >>