matthiasm@8
|
1 function [bcf,frame,beats] = getbcfs2(fname,beats);
|
matthiasm@8
|
2
|
matthiasm@8
|
3
|
matthiasm@8
|
4
|
matthiasm@8
|
5 if nargin<2
|
matthiasm@8
|
6
|
matthiasm@8
|
7 [x fs] = wavread(fname);
|
matthiasm@8
|
8 x = mean(x,2);
|
matthiasm@8
|
9 if fs~=44100
|
matthiasm@8
|
10 x = resample(x,44100,fs);
|
matthiasm@8
|
11 end
|
matthiasm@8
|
12 p = bt_parms;
|
matthiasm@8
|
13
|
matthiasm@8
|
14 df = get_dfs(x(1:4:end),bt_parms(0.01161*4));
|
matthiasm@8
|
15 [beats,timesig] = newtt_mm(df{1},p);
|
matthiasm@8
|
16 beats = beatadjust(beats,df{1});
|
matthiasm@8
|
17 end
|
matthiasm@8
|
18
|
matthiasm@8
|
19
|
matthiasm@8
|
20
|
matthiasm@8
|
21 beats = beats(:)';
|
matthiasm@8
|
22
|
matthiasm@8
|
23
|
matthiasm@8
|
24 siz = wavread(fname,'size');
|
matthiasm@8
|
25 [x fs] = wavread(fname);
|
matthiasm@8
|
26 x = mean(x,2);
|
matthiasm@8
|
27 % if siz(2)>1
|
matthiasm@8
|
28 % x = mean(x')';
|
matthiasm@8
|
29 % end
|
matthiasm@8
|
30
|
matthiasm@8
|
31 if fs ~= 44100
|
matthiasm@8
|
32 x = resample(x,44100,fs);
|
matthiasm@8
|
33 end
|
matthiasm@8
|
34
|
matthiasm@8
|
35 beats = round(beats);
|
matthiasm@8
|
36 beats(beats>length(x)) = [];
|
matthiasm@8
|
37 beats = sort(beats);
|
matthiasm@8
|
38 %beats = beats - 4096;
|
matthiasm@8
|
39 %beats(beats<1) = 1;
|
matthiasm@8
|
40
|
matthiasm@8
|
41 %
|
matthiasm@8
|
42 % spark = sparsekernel(110, 880, 36, 44100/16, 0.054);
|
matthiasm@8
|
43 % spark(1025:end,:) = [];
|
matthiasm@8
|
44 spark = 1;
|
matthiasm@8
|
45
|
matthiasm@8
|
46 for k=1:length(beats)-1
|
matthiasm@8
|
47 % [spec(k,:),mfcc(k,:), cq(k,:),hpcp(k,:),chroma(k,:)] = chromaframe(x(beats(k):beats(k+1)),spark);
|
matthiasm@8
|
48 [spec(k,:)] = chromaframe(x(beats(k):beats(k+1)),spark);
|
matthiasm@8
|
49
|
matthiasm@8
|
50 end
|
matthiasm@8
|
51
|
matthiasm@8
|
52
|
matthiasm@8
|
53
|
matthiasm@8
|
54 for k=1:size(spec,1)-1,
|
matthiasm@8
|
55
|
matthiasm@8
|
56 % bcf.spec(k) = dobeatkl(spec(k,:),spec(k+1,:));
|
matthiasm@8
|
57 % bcf.cq(k) = dobeatkl(cq(k,:).^2,cq(k+1,:).^2);
|
matthiasm@8
|
58 % bcf.hpcp(k) = dobeatkl(hpcp(k,:).^2,hpcp(k+1,:).^2);
|
matthiasm@8
|
59 % bcf.chroma(k) = dobeatkl(chroma(k,:).^2,chroma(k+1,:).^2);
|
matthiasm@8
|
60 % bcf.mfcc(k) = dobeatkl(mfcc(k,:).^2,mfcc(k+1,:).^2);
|
matthiasm@8
|
61 bcf.spec(k) = dojsdiv2(spec(k,:),spec(k+1,:));
|
matthiasm@8
|
62 % bcf.cq(k) = dojsdiv2(cq(k,:),cq(k+1,:));
|
matthiasm@8
|
63 % bcf.hpcp(k) = dojsdiv2(hpcp(k,:),hpcp(k+1,:));
|
matthiasm@8
|
64 % bcf.chroma(k) = dojsdiv2(chroma(k,:),chroma(k+1,:));
|
matthiasm@8
|
65 % bcf.mfcc(k) = dojsdiv2(mfcc(k,:),mfcc(k+1,:));
|
matthiasm@8
|
66
|
matthiasm@8
|
67 end
|
matthiasm@8
|
68
|
matthiasm@8
|
69
|
matthiasm@8
|
70 % bcf.spec=adapt_thresh(bcf.spec,2,1);
|
matthiasm@8
|
71
|
matthiasm@8
|
72 frame.spec = spec;
|
matthiasm@8
|
73
|
matthiasm@8
|
74 % % my added bit
|
matthiasm@8
|
75 % temp = 0*spec;
|
matthiasm@8
|
76 % for i=1:length(temp)-1
|
matthiasm@8
|
77 % temp(i)=spec(i)+0.2/spec(i+1);
|
matthiasm@8
|
78 % end
|
matthiasm@8
|
79 % frame.spec = temp;
|
matthiasm@8
|
80
|
matthiasm@8
|
81
|
matthiasm@8
|
82
|
matthiasm@8
|
83 % frame.cq = cq;
|
matthiasm@8
|
84 % frame.hpcp = hpcp;
|
matthiasm@8
|
85 % frame.chroma = chroma;
|
matthiasm@8
|
86 % frame.mfcc = mfcc;
|
matthiasm@8
|
87
|
matthiasm@8
|
88 % for i=1:222, [c,n] = meterTracker(wavread(files(i+2).name),44100); kc{i} = round(44100*c.measures); kn{i} = round(44100*n.measures); if~mod(i,10),i,end; clear c; clear n; end
|