
% 
% Script for ? visualisere lydparametre for en samling med lydfiler
%

% F?rst leser vi inn alle wav-filene i mappen
filenames = dir('*.wav');

% s? looper vi gjennom alle disse filnavnene, og henter ut waveform,
% spektral centroide, og rms. Alt legges i variablen s
for i = 1:length(filenames)
    
    s(i).wave = miraudio(filenames(i).name);
    s(i).centroid = mircentroid(s(i).wave,'frame',0.02,0.02);
    s(i).rms = mirrms(s(i).wave,'frame',0.02,0.02);
    
end
% n? st?r vi igjen med s som er en rekke av 'structer'. Vi f?r tak i
% structen til den femte lydfilen v?r ved ? skrive s(5).


%%

% neste steg er ? hente ut dataene fra MIRtoolbox-objektene. Vi looper
% gjennom alle data, og legger disse dataene ogs? inn i structen:
for i = 1:length(filenames)
    
    %her henter vi ut dataene med funksjonen mirgetdata
    s(i).centroiddata = mirgetdata(s(i).centroid);
    s(i).rmsdata = mirgetdata(s(i).rms);
    
    %siden vi har et ulikt antall datapunkter per lyd pga ulik lengde p?
    %lydene, interpolerer vi slik at vi f?r like mange m?linger per
    %datafil. I eksempelet nedenfor er antall datapunkter = 100
    s(i).centroiddataP = interp1(0:length(s(i).centroiddata)-1,s(i).centroiddata,linspace(0,length(s(i).centroiddata)-1,100),'pchip');
    s(i).rmsdataP = interp1(0:length(s(i).rmsdata)-1,s(i).rmsdata,linspace(0,length(s(i).rmsdata)-1,100),'pchip');
end

%%

% s? kan vi lage noen variabler som inneholder alle rmsdataene og alle
% centroidedataene
for i = 1:length(filenames)

   rmsmatrix(i,:) = s(i).rmsdataP;
   centroidmatrix(i,:) = s(i).centroiddataP;
   
end


%%
%til slutt lager vi noen figurer som viser forl?pet av rms og spektral 
%centroide i alle lydene:

% RMS
figure
plot(mean(rmsmatrix),'k','Linewidth',5) % gjennomsnitt
hold all
plot(mean(rmsmatrix)-std(rmsmatrix),'b--') % gjennomsnitt minus standardavvik
plot(mean(rmsmatrix)+std(rmsmatrix),'b--') % gjennomsnitt pluss standardavvik
title('Gjennomsnittsutvikling av RMS for alle lydene')

%%

% Centroide
figure
plot(mean(centroidmatrix),'k','Linewidth',5) % gjennomsnitt
hold all
plot(mean(centroidmatrix)-std(centroidmatrix),'b--') % gjennomsnitt minus standardavvik
plot(mean(centroidmatrix)+std(centroidmatrix),'b--') % gjennomsnitt pluss standardavvik
title('Gjennomsnittsutvikling av spektral centroide for alle lydene')

