wolffd@0: function demo9retrieval(query) wolffd@0: wolffd@0: if nargin<1 wolffd@0: query = 'vivaldi'; wolffd@0: end wolffd@0: wolffd@0: %% wolffd@0: % 1. Timbre wolffd@0: wolffd@0: cc0 = mirmfcc(query,'frame',.025,'s',.01,'s','Rank',8:30) wolffd@0: cl0 = mircluster(cc0,16) wolffd@0: wolffd@0: cc = mirmfcc('Folder','frame',.025,'s',.01,'s','Rank',8:30); wolffd@0: cl = mircluster(cc,16); wolffd@0: wolffd@0: d1 = mirdist(cl0,cl) wolffd@0: mirquery(cl0,cl) wolffd@0: mirplay(ans,'Sequence',1:6) wolffd@0: wolffd@0: pause wolffd@0: wolffd@0: %% wolffd@0: % 2. Rhythm wolffd@0: wolffd@0: [bs0 sm0] = mirbeatspectrum(query) wolffd@0: bs = mirbeatspectrum('Folder'); wolffd@0: wolffd@0: d2 = mirdist(bs0,bs) wolffd@0: mirquery(bs0,bs) wolffd@0: mirplay(ans,'Sequence',1:6) wolffd@0: wolffd@0: % Variant wolffd@0: wolffd@0: [tp0,ac0] = mirtempo(query) wolffd@0: [tp,ac] = mirtempo('Folder'); wolffd@0: ac0 = purgedata(ac0); wolffd@0: ac = purgedata(ac); wolffd@0: d2bis = mirdist(ac0,ac) wolffd@0: mirquery(ac0,ac) wolffd@0: mirplay(ans,'Sequence',1:6) wolffd@0: wolffd@0: pause wolffd@0: wolffd@0: %% wolffd@0: % 3. Structure wolffd@0: wolffd@0: pk0 = mirpeaks(mirnovelty(query)) wolffd@0: pk = mirpeaks(mirnovelty('Folder')); wolffd@0: wolffd@0: d3 = mirdist(pk0,pk) wolffd@0: mirquery(pk0,pk) wolffd@0: mirplay(ans,'Sequence',1:6) wolffd@0: wolffd@0: pause wolffd@0: wolffd@0: %% wolffd@0: % 4. Combination wolffd@0: wolffd@0: d = d1*.6 + d2*.3 + d3*.1 wolffd@0: mirquery(d) wolffd@0: mirplay(ans,'Sequence',1:6) wolffd@0: wolffd@0: dbis = d1*.6 + d2bis*.3+ d3*.1 wolffd@0: mirquery(dbis) wolffd@0: mirplay(ans,'Sequence',1:6)