To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Revision:

root / _beattracker / getbcfs2.m @ 8:b5b38998ef3b

History | View | Annotate | Download (1.93 KB)

1
function [bcf,frame,beats] = getbcfs2(fname,beats);
2

    
3

    
4

    
5
if nargin<2
6

    
7
    [x fs] = wavread(fname);
8
    x = mean(x,2);
9
    if fs~=44100
10
        x = resample(x,44100,fs);
11
    end
12
    p = bt_parms;
13

    
14
    df = get_dfs(x(1:4:end),bt_parms(0.01161*4));
15
    [beats,timesig] = newtt_mm(df{1},p);
16
    beats = beatadjust(beats,df{1});
17
end
18

    
19

    
20

    
21
beats = beats(:)';
22

    
23

    
24
siz = wavread(fname,'size');
25
[x fs] = wavread(fname);
26
x = mean(x,2);
27
%  if siz(2)>1
28
%      x = mean(x')';
29
%  end
30

    
31
if fs ~= 44100
32
    x = resample(x,44100,fs);
33
end
34

    
35
beats = round(beats);
36
beats(beats>length(x)) = [];
37
beats = sort(beats);
38
%beats = beats - 4096;
39
%beats(beats<1) = 1;
40

    
41
%  
42
%  spark = sparsekernel(110, 880, 36, 44100/16, 0.054);
43
%  spark(1025:end,:) = [];
44
spark = 1;
45

    
46
for k=1:length(beats)-1
47
%      [spec(k,:),mfcc(k,:), cq(k,:),hpcp(k,:),chroma(k,:)] = chromaframe(x(beats(k):beats(k+1)),spark);
48
    [spec(k,:)] = chromaframe(x(beats(k):beats(k+1)),spark);
49

    
50
end
51

    
52

    
53

    
54
for k=1:size(spec,1)-1,
55

    
56
%     bcf.spec(k) = dobeatkl(spec(k,:),spec(k+1,:));
57
%     bcf.cq(k) = dobeatkl(cq(k,:).^2,cq(k+1,:).^2);
58
%     bcf.hpcp(k) = dobeatkl(hpcp(k,:).^2,hpcp(k+1,:).^2);
59
%     bcf.chroma(k) = dobeatkl(chroma(k,:).^2,chroma(k+1,:).^2);
60
%     bcf.mfcc(k) = dobeatkl(mfcc(k,:).^2,mfcc(k+1,:).^2);
61
    bcf.spec(k) = dojsdiv2(spec(k,:),spec(k+1,:));
62
%      bcf.cq(k) = dojsdiv2(cq(k,:),cq(k+1,:));
63
%      bcf.hpcp(k) = dojsdiv2(hpcp(k,:),hpcp(k+1,:));
64
%      bcf.chroma(k) = dojsdiv2(chroma(k,:),chroma(k+1,:));
65
%      bcf.mfcc(k) = dojsdiv2(mfcc(k,:),mfcc(k+1,:));
66

    
67
end
68

    
69

    
70
%  bcf.spec=adapt_thresh(bcf.spec,2,1);
71

    
72
frame.spec = spec;
73

    
74
%  % my added bit
75
%  temp = 0*spec;
76
%  for i=1:length(temp)-1
77
%  	temp(i)=spec(i)+0.2/spec(i+1);
78
%  end
79
%  frame.spec = temp;
80

    
81

    
82

    
83
%  frame.cq = cq;
84
%  frame.hpcp = hpcp;
85
%  frame.chroma = chroma;
86
%  frame.mfcc = mfcc;
87

    
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