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

pl
function pl
global ca e1 b1 e2 a4n Fs  e12 e13 e14 ch1 ch2 ch3 ch4

Lca=[];

if get(ch1,'value')
    ne1=str2num(get(e1,'string'));
    Lc=ne1+a4n;
    Lca=[Lca Lc];
end

if get(ch2,'value')
    ne2=str2num(get(e12,'string'));
    Lc=ne2+a4n;
    Lca=[Lca Lc];
end

if get(ch3,'value')
    ne3=str2num(get(e13,'string'));
    Lc=ne3+a4n;
    Lca=[Lca Lc];
end

if get(ch4,'value')
    ne4=str2num(get(e14,'string'));
    Lc=ne4+a4n;
    Lca=[Lca Lc];
end



if length(Lca)>0
    
    % define lengths:
    lsa=[];
    for Lcac=1:length(Lca)
        Lc=Lca(Lcac);
        lsa=[lsa length(ca{Lc})];
    end
    lsam=max(lsa);
    
    ss=zeros(lsam,1);
    
    for Lcac=1:length(Lca)
        Lc=Lca(Lcac);
        cae=zeros(lsam-lsa(Lcac),1);
        ss=ss+[ca{Lc}; cae];
    end
    soundsc(ss,Fs);
    

    

    sm='';
    for Lcac=1:length(Lca)
        sm=[sm ' ' number2note(Lca(Lcac)-a4n)];
    end
    set(e2,'string',sm);
    
end

Contact us at files@mathworks.com