image thumbnail
from Piano notes recognition research by Maxim Vedenyov
try to define notes from its sound

play_sep.m
Fs=44100;
dr=dir('*.wav');
if length(dr)>0
    nm=[];
    for fc=1:length(dr)
        fln=dr(fc).name;
        lfln=length(fln);
        ns=fln(1:lfln-4);
        nm=[nm str2num(ns)];
    end
    [nms ind]=sort(nm);

    L=length(dr);
    ca=cell(L);
    for fc=1:length(dr)
        [s1 Fs1]=wavread(dr(ind(fc)).name);
        s=resample(s1,2,1);
        ca{fc}=s;
     
    end
    %soundsc(ca,44100);
    
end

hp=semilogx(0,0,'b-');
xlim([10 10000]);
ym=3e6;
ylim([0 ym]);
a4n=49;
hold on;
hp1=semilogx([10 10],[0.3*ym ym],'r--');
ht=title(' ');
%for Lc=1:L
for Lc=1:L
    ss=ca{Lc};
    sound(ss,Fs);
    fss=fft(ss);
    L2=round(length(fss)/2);
    i1=1:L2;
    fss2=fss(i1);
    f=(Fs/2)*i1/i1(end);
    set(hp,'XData',f,'Ydata',abs(fss2).^2);
    
    nc=Lc-a4n;
    ftc=440*2^(nc/12);
    
    set(hp1,'XData',[ftc ftc]);
    
    set(ht,'string',number2note(nc))
    
    xlim([10 10000]);
    ylim([0 ym]);
    drawnow;
    pause(1);
end

Contact us at files@mathworks.com