En un post anterior MATLAB: Leyendo un audio y calculando su FFT se realizó el proceso de leer un archivo de sonido y calcular su FFT. El archivo analizado previamente, contiene las notas de un piano correspondientes a la octava comprendida entre las notas C4 hasta el B4, ejecutadas secuencialmente mediante una escala cromática ascendente.
Para poder indicarle al computador donde se ubica cada sonido de cada nota, debemos realizar algún proceso basado en algoritmos tipo sound detection, el cual se realizará con ayuda del algoritmo del software de audio Audacity, denominado Sound Finder e implementado por Jeremy R. Brown.
El algoritmo Sound Finder genera una serie de datos exportables como un archivo .txt el cual contiene una estructura de 3 columnas en donde por cada dato se indica el instante de tiempo donde comienza el sonido, el instante de tiempo donde termina y un numero correlativo asignado.
Con todo a continuación se presenta un codigo en MATLAB para leer este archivo y extraer subvectores (subsets) del archivo de audio (que en términos computacionales es un vector).
clear; %limpiar variables clc; %limpiar pantalla [data fs]=wavread('01_piano.wav'); data=data'; etiquetas=load('01_piano.txt'); etiquetas(1:12,1:2)=floor(fs*etiquetas(1:12,1:2)); diferencias=etiquetas(1:12,2)-etiquetas(1:12,1); medida=max(diferencias)+1; %medida=176399; audios=[zeros(12,medida)]; for j=1:12 subvector=data(etiquetas(j,1):etiquetas(j,2)); agregar=medida-length(subvector); audios(j,:)=[subvector zeros(1,agregar)]; end %GRAFICANDO 6x4 for j=1:12 subplot(4,6,j) plot(audios(1,:)); subplot(4,6,j+12) a=abs(fft(audios(1,:))); plot(a(1:(end/2)/4)); end
LEONARDO PARADA VALENCIA
Latest posts by LEONARDO PARADA VALENCIA (see all)
- Ruido blanco para dormir - 10/04/2021
- Music and Sound Design for movies - 02/04/2021
- Musicalización corto audiovisual - 02/04/2021
