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