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