History

add getsilences function, moves pitchpick class to pitchdetection/getpitch

Paul Brossier committed 21 years ago

Commit d53e4df1 parent b16c0171 file · +49 −12Browse files

Showing the changes to python (1 of 1 file). Show all

Unified · Split

python/aubio/aubioclass.py+49−12
@@ -183,18 +183,55 @@ def cutfile(filein,slicetimes,zerothres=0.008,bufsize=1024,hopsize=512): · 182 unmodified lines
183 del fileo183 del fileo
184 184
185 185
186class pitchpick:186def 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): 205def 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
224class 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
199class filter:236class 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 pass242 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())

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