Mercurial > hg > camir-aes2014
diff toolboxes/MIRtoolbox1.3.2/MIRToolboxDemos/demo3tempo.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolboxes/MIRtoolbox1.3.2/MIRToolboxDemos/demo3tempo.m Tue Feb 10 15:05:51 2015 +0000 @@ -0,0 +1,67 @@ +function demo3tempo +% To get familiar with tempo estimation from audio using the MIR Toolbox. +% To assess the performance of the tempo estimation method. + +% 1. Let's investigate the different stages needed for tempo estimation. + +d = miraudio('ragtime') +mirenvelope(d) +e = mirenvelope(d,'Halfwavediff') + +% Decompose the audio file with a filter bank. +f = mirfilterbank(d) + +% Calculate also a half-wave rectified differentiated envelope. +ee = mirenvelope(f,'HalfwaveDiff') + +% Sum the frequency channels.ok +s = mirsum(ee,'Centered') + +d2 = miraudio('vivaldi') +f2 = mirfilterbank(d2) +ee2 = mirenvelope(f2,'HalfwaveDiff') +s2 = mirsum(ee2,'Centered') + +% Calculate the autocorrelation function. +ac = mirautocor(s) + +% Apply the resonance model to the autocorrelation function. +ac = mirautocor(s,'Resonance') + +% Find peaks in the autocorrelation function. +p = mirpeaks(ac) +mirgetdata(p) + +% Get the period of the peaks. +t = mirtempo(p,'Total',1) + +display('Strike any key to continue...'); +pause +close all + +% 2. All the functions we used are integrated into the function tempo. +help mirtempo + +% For instance, we can simply write: +[t,ac] = mirtempo('ragtime') + +% As you can see in the help, the resonance is integrated by default in the +% tempo function. To toggle off the use of the resonance function, type: +[t,ac] = mirtempo('ragtime','Resonance',0) + +[t,ac] = mirtempo('ragtime','total',5) + +display('Strike any key to continue...'); +pause +close all + +% 3. The excerpt 'laksin' and 'czardas' have variable tempi. Use frame- +% based tempo analysis to estimate the variation of the tempi. +% Apply to this end the tempo command with the 'frame' option. +[t1,p1] = mirtempo('laksin','Frame') +[t2,p2] = mirtempo('czardas','Frame') + +% What is the range of variation of tempi? +help mirhisto +h1 = mirhisto(t1) +h2 = mirhisto(t2) \ No newline at end of file