Showing the changes to python (1 of 1 file). Show all
Unified · Split
| @@ -183,18 +183,55 @@ def cutfile(filein,slicetimes,zerothres=0.008,bufsize=1024,hopsize=512): · 182 unmodified lines | |||
| 183 | del fileo | 183 | del fileo |
| 184 | 184 | ||
| 185 | 185 | ||
| 186 | class pitchpick: | 186 | def getsilences(filein,hopsize=512,silence=-70): |
| 187 | def __init__(self,bufsize,hopsize,channels,myvec,srate): | 187 | frameread = 0 |
| 188 | self.myfft = cvec(bufsize,channels) | 188 | filei = sndfile(filein) |
| 189 | self.pv = pvoc(bufsize,hopsize,channels) | 189 | srate = filei.samplerate() |
| 190 | self.pitchp = new_aubio_pitchmcomb(bufsize,channels) | 190 | channels = filei.channels() |
| 191 | self.filt = filter(srate,"adsgn") | 191 | myvec = fvec(hopsize,channels) |
| 192 | readsize = filei.read(hopsize,myvec) | ||
| 193 | mylist = [] | ||
| 194 | wassilence = 0 | ||
| 195 | while(readsize==hopsize): | ||
| 196 | readsize = filei.read(hopsize,myvec) | ||
| 197 | if (aubio_silence_detection(myvec(),silence)==1): | ||
| 198 | if wassilence == 0: | ||
| 199 | mylist.append(frameread) | ||
| 200 | wassilence == 1 | ||
| 201 | else: wassilence = 0 | ||
| 202 | frameread += 1 | ||
| 203 | return mylist | ||
| 192 | 204 | ||
| 193 | def do(self,myvec): | 205 | def getpitch(filein,mode=aubio_mcomb,bufsize=1024,hopsize=512,omode=aubio_freq, |
| 194 | #self.filt.do(myvec) | 206 | samplerate=44100.): |
| 195 | #self.filt.do(myvec) | 207 | frameread = 0 |
| 196 | self.pv.do(myvec,self.myfft) | 208 | filei = sndfile(filein) |
| 197 | return aubio_pitchmcomb_detect(self.pitchp,self.myfft()) | 209 | srate = filei.samplerate() |
| 210 | channels = filei.channels() | ||
| 211 | myvec = fvec(hopsize,channels) | ||
| 212 | readsize = filei.read(hopsize,myvec) | ||
| 213 | pitchdet = pitchdetection(mode=mode,bufsize=bufsize,hopsize=hopsize, | ||
| 214 | channels=channels,samplerate=srate,omode=omode) | ||
| 215 | mylist = [] | ||
| 216 | while(readsize==hopsize): | ||
| 217 | readsize = filei.read(hopsize,myvec) | ||
| 218 | freq = pitchdet(myvec) | ||
| 219 | #print "%.3f %.2f" % (now,freq) | ||
| 220 | mylist.append(freq) | ||
| 221 | frameread += 1 | ||
| 222 | return mylist | ||
| 223 | |||
| 224 | class pitchdetection: | ||
| 225 | def __init__(self,mode=aubio_mcomb,bufsize=2048,hopsize=1024, | ||
| 226 | channels=1,samplerate=44100.,omode=aubio_freq): | ||
| 227 | self.pitchp = new_aubio_pitchdetection(bufsize,hopsize,channels, | ||
| 228 | samplerate,mode,omode) | ||
| 229 | #self.filt = filter(srate,"adsgn") | ||
| 230 | def __del__(self): | ||
| 231 | del_aubio_pitchdetection(self.pitchp) | ||
| 232 | def __call__(self,myvec): | ||
| 233 | #self.filt(myvec) | ||
| 234 | return aubio_pitchdetection(self.pitchp,myvec()) | ||
| 198 | 235 | ||
| 199 | class filter: | 236 | class filter: |
| 200 | def __init__(self,srate,type=None): | 237 | def __init__(self,srate,type=None): |
| @@ -203,5 +240,5 @@ class filter: · 2 unmodified lines | |||
| 203 | def __del__(self): | 240 | def __del__(self): |
| 204 | #del_aubio_filter(self.filter) | 241 | #del_aubio_filter(self.filter) |
| 205 | pass | 242 | pass |
| 206 | def do(self,myvec): | 243 | def __call__(self,myvec): |
| 207 | aubio_filter_do(self.filter,myvec()) | 244 | aubio_filter_do(self.filter,myvec()) |