History

python/aubio: more changes for mono

Paul Brossier committed 16 years ago

Commit 8d1323b1 parent 16bd78a4 files · +46 −51Browse files

Showing the changes to python (4 of 4 files). Show all

Unified · Split

4 files
  1. python/aubio/aubioclass.py +45 −47
  2. python/aubio/task/onset.py +0 −1
  3. python/aubio/task/pitch.py +0 −1
  4. python/aubio/task/task.py +1 −2
python/aubio/aubioclass.py+45−47
@@ -1,40 +1,38 @@
1from aubiowrapper import *1from aubiowrapper import *
2 2
3class fvec:3class fvec:
4 def __init__(self,size,chan):4 def __init__(self,size):
5 self.vec = new_fvec(size,chan)5 self.vec = new_fvec(size)
6 def __call__(self):6 def __call__(self):
7 return self.vec7 return self.vec
8 def __del__(self):8 def __del__(self):
9 del_fvec(self())9 del_fvec(self())
10 def get(self,pos,chan):10 def get(self,pos):
11 return fvec_read_sample(self(),chan,pos)11 return fvec_read_sample(self(),pos)
12 def set(self,value,pos,chan):12 def set(self,value,pos):
13 return fvec_write_sample(self(),value,chan,pos)13 return fvec_write_sample(self(),value,pos)
14 def channel(self,chan):
15 return fvec_get_channel(self(),chan)
16 def data(self):14 def data(self):
17 return fvec_get_data(self())15 return fvec_get_data(self())
18 16
19class cvec:17class cvec:
20 def __init__(self,size,chan):18 def __init__(self,size):
21 self.vec = new_cvec(size,chan)19 self.vec = new_cvec(size)
22 def __call__(self):20 def __call__(self):
23 return self.vec21 return self.vec
24 def __del__(self):22 def __del__(self):
25 del_cvec(self())23 del_cvec(self())
26 def get(self,pos,chan):24 def get(self,pos):
27 return self.get_norm(pos,chan)25 return self.get_norm(pos)
28 def set(self,val,pos,chan):26 def set(self,val,pos):
29 self.set_norm(val,chan,pos)27 self.set_norm(val,pos)
30 def get_norm(self,pos,chan):28 def get_norm(self,pos):
31 return cvec_read_norm(self(),chan,pos)29 return cvec_read_norm(self(),pos)
32 def set_norm(self,val,pos,chan):30 def set_norm(self,val,pos):
33 cvec_write_norm(self(),val,chan,pos)31 cvec_write_norm(self(),val,pos)
34 def get_phas(self,pos,chan):32 def get_phas(self,pos):
35 return cvec_read_phas(self(),chan,pos)33 return cvec_read_phas(self(),pos)
36 def set_phas(self,val,pos,chan):34 def set_phas(self,val,pos):
37 cvec_write_phas(self(),val,chan,pos)35 cvec_write_phas(self(),val,pos)
38 36
39class sndfile:37class sndfile:
40 def __init__(self,filename,model=None):38 def __init__(self,filename,model=None):
@@ -53,13 +51,13 @@ class sndfile: · 12 unmodified lines
53 def channels(self):51 def channels(self):
54 return aubio_sndfile_channels(self.file)52 return aubio_sndfile_channels(self.file)
55 def read(self,nfram,vecread):53 def read(self,nfram,vecread):
56 return aubio_sndfile_read(self.file,nfram,vecread())54 return aubio_sndfile_read_mono(self.file,nfram,vecread())
57 def write(self,nfram,vecwrite):55 def write(self,nfram,vecwrite):
58 return aubio_sndfile_write(self.file,nfram,vecwrite())56 return aubio_sndfile_write(self.file,nfram,vecwrite())
59 57
60class pvoc:58class pvoc:
61 def __init__(self,buf,hop,chan):59 def __init__(self,buf,hop):
62 self.pv = new_aubio_pvoc(buf,hop,chan)60 self.pv = new_aubio_pvoc(buf,hop)
63 def __del__(self):61 def __del__(self):
64 del_aubio_pvoc(self.pv)62 del_aubio_pvoc(self.pv)
65 def do(self,tf,tc):63 def do(self,tf,tc):
@@ -69,8 +67,8 @@ class pvoc: · 3 unmodified lines
69 67
70class onsetdetection:68class onsetdetection:
71 """ class for aubio_specdesc """69 """ class for aubio_specdesc """
72 def __init__(self,mode,buf,chan):70 def __init__(self,mode,buf):
73 self.od = new_aubio_specdesc(mode,buf,chan)71 self.od = new_aubio_specdesc(mode,buf)
74 def do(self,tc,tf):72 def do(self,tc,tf):
75 aubio_specdesc_do(self.od,tc(),tf())73 aubio_specdesc_do(self.od,tc(),tf())
76 def __del__(self):74 def __del__(self):
@@ -79,12 +77,12 @@ class onsetdetection: · 2 unmodified lines
79class peakpick:77class peakpick:
80 """ class for aubio_peakpicker """78 """ class for aubio_peakpicker """
81 def __init__(self,threshold=0.1):79 def __init__(self,threshold=0.1):
82 self.pp = new_aubio_peakpicker(1)80 self.pp = new_aubio_peakpicker()
83 self.out = new_fvec(1, 1)81 self.out = new_fvec(1)
84 aubio_peakpicker_set_threshold (self.pp, threshold)82 aubio_peakpicker_set_threshold (self.pp, threshold)
85 def do(self,fv):83 def do(self,fv):
86 aubio_peakpicker_do(self.pp, fv(), self.out)84 aubio_peakpicker_do(self.pp, fv(), self.out)
87 return fvec_read_sample(self.out, 0, 0)85 return fvec_read_sample(self.out, 0)
88 def getval(self):86 def getval(self):
89 return aubio_peakpicker_get_adaptive_threshold(self.pp)87 return aubio_peakpicker_get_adaptive_threshold(self.pp)
90 def __del__(self):88 def __del__(self):
@@ -92,17 +90,17 @@ class peakpick: · 1 unmodified line
92 90
93class onsetpick:91class onsetpick:
94 """ superclass for aubio_pvoc + aubio_specdesc + aubio_peakpicker """92 """ superclass for aubio_pvoc + aubio_specdesc + aubio_peakpicker """
95 def __init__(self,bufsize,hopsize,channels,myvec,threshold,mode='dual',derivate=False,dcthreshold=0):93 def __init__(self,bufsize,hopsize,myvec,threshold,mode='dual',derivate=False,dcthreshold=0):
96 self.myfft = cvec(bufsize,channels)94 self.myfft = cvec(bufsize)
97 self.pv = pvoc(bufsize,hopsize,channels)95 self.pv = pvoc(bufsize,hopsize)
98 if mode in ['dual'] :96 if mode in ['dual'] :
99 self.myod = onsetdetection("hfc",bufsize,channels)97 self.myod = onsetdetection("hfc",bufsize)
100 self.myod2 = onsetdetection("mkl",bufsize,channels)98 self.myod2 = onsetdetection("mkl",bufsize)
101 self.myonset = fvec(1,channels)99 self.myonset = fvec(1)
102 self.myonset2 = fvec(1,channels)100 self.myonset2 = fvec(1)
103 else: 101 else:
104 self.myod = onsetdetection(mode,bufsize,channels)102 self.myod = onsetdetection(mode,bufsize)
105 self.myonset = fvec(1,channels)103 self.myonset = fvec(1)
106 self.mode = mode104 self.mode = mode
107 self.pp = peakpick(float(threshold))105 self.pp = peakpick(float(threshold))
108 self.derivate = derivate106 self.derivate = derivate
@@ -114,24 +112,24 @@ class onsetpick: · 5 unmodified lines
114 self.myod.do(self.myfft,self.myonset)112 self.myod.do(self.myfft,self.myonset)
115 if self.mode == 'dual':113 if self.mode == 'dual':
116 self.myod2.do(self.myfft,self.myonset2)114 self.myod2.do(self.myfft,self.myonset2)
117 self.myonset.set(self.myonset.get(0,0)*self.myonset2.get(0,0),0,0)115 self.myonset.set(self.myonset.get(0)*self.myonset2.get(0),0)
118 if self.derivate:116 if self.derivate:
119 val = self.myonset.get(0,0)117 val = self.myonset.get(0)
120 dval = val - self.oldval118 dval = val - self.oldval
121 self.oldval = val119 self.oldval = val
122 if dval > 0: self.myonset.set(dval,0,0)120 if dval > 0: self.myonset.set(dval,0)
123 else: self.myonset.set(0.,0,0)121 else: self.myonset.set(0.,0,0)
124 isonset, dval = self.pp.do(self.myonset),self.myonset.get(0,0)122 isonset, dval = self.pp.do(self.myonset),self.myonset.get(0)
125 if self.dcthreshold:123 if self.dcthreshold:
126 if dval < self.dcthreshold: isonset = 0 124 if dval < self.dcthreshold: isonset = 0
127 return isonset, dval125 return isonset, dval
128 126
129class pitch:127class pitch:
130 def __init__(self,mode="mcomb",bufsize=2048,hopsize=1024,128 def __init__(self,mode="mcomb",bufsize=2048,hopsize=1024,
131 channels=1,samplerate=44100.,omode="freq",tolerance=0.1):129 samplerate=44100.,omode="freq",tolerance=0.1):
132 self.pitchp = new_aubio_pitch(mode,bufsize,hopsize,channels,130 self.pitchp = new_aubio_pitch(mode,bufsize,hopsize,
133 samplerate)131 samplerate)
134 self.mypitch = fvec(1, channels)132 self.mypitch = fvec(1)
135 aubio_pitch_set_unit(self.pitchp,omode)133 aubio_pitch_set_unit(self.pitchp,omode)
136 aubio_pitch_set_tolerance(self.pitchp,tolerance)134 aubio_pitch_set_tolerance(self.pitchp,tolerance)
137 #self.filt = filter(srate,"adsgn")135 #self.filt = filter(srate,"adsgn")
@@ -139,7 +137,7 @@ class pitch: · 1 unmodified line
139 del_aubio_pitch(self.pitchp)137 del_aubio_pitch(self.pitchp)
140 def __call__(self,myvec): 138 def __call__(self,myvec):
141 aubio_pitch_do(self.pitchp,myvec(), self.mypitch())139 aubio_pitch_do(self.pitchp,myvec(), self.mypitch())
142 return self.mypitch.get(0,0)140 return self.mypitch.get(0)
143 141
144class filter:142class filter:
145 def __init__(self,srate,type=None):143 def __init__(self,srate,type=None):
python/aubio/task/onset.py+0−1
@@ -9,7 +9,6 @@ class taskonset(task): · 8 unmodified lines
9 task.__init__(self,input,params=params)9 task.__init__(self,input,params=params)
10 self.opick = onsetpick(self.params.bufsize,10 self.opick = onsetpick(self.params.bufsize,
11 self.params.hopsize,11 self.params.hopsize,
12 self.channels,
13 self.myvec,12 self.myvec,
14 self.params.threshold,13 self.params.threshold,
15 mode=self.params.onsetmode,14 mode=self.params.onsetmode,
python/aubio/task/pitch.py+0−1
@@ -15,7 +15,6 @@ class taskpitch(task): · 14 unmodified lines
15 self.pitchdet = pitch(mode=self.params.pitchmode,15 self.pitchdet = pitch(mode=self.params.pitchmode,
16 bufsize=self.params.bufsize,16 bufsize=self.params.bufsize,
17 hopsize=self.params.hopsize,17 hopsize=self.params.hopsize,
18 channels=self.channels,
19 samplerate=self.srate,18 samplerate=self.srate,
20 omode=self.params.omode,19 omode=self.params.omode,
21 tolerance = tolerance)20 tolerance = tolerance)
python/aubio/task/task.py+1−2
@@ -16,9 +16,8 @@ class task(taskparams): · 15 unmodified lines
16 self.input = input16 self.input = input
17 self.filei = sndfile(self.input)17 self.filei = sndfile(self.input)
18 self.srate = self.filei.samplerate()18 self.srate = self.filei.samplerate()
19 self.channels = self.filei.channels()
20 self.params.step = float(self.params.hopsize)/float(self.srate)19 self.params.step = float(self.params.hopsize)/float(self.srate)
21 self.myvec = fvec(self.params.hopsize,self.channels)20 self.myvec = fvec(self.params.hopsize)
22 self.output = output21 self.output = output
23 22
24 def __call__(self):23 def __call__(self):

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t