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
183183 del fileo
184184
185185
186−class pitchpick:
187− def __init__(self,bufsize,hopsize,channels,myvec,srate):
188− self.myfft = cvec(bufsize,channels)
189− self.pv = pvoc(bufsize,hopsize,channels)
190− self.pitchp = new_aubio_pitchmcomb(bufsize,channels)
191− self.filt = filter(srate,"adsgn")
186+def getsilences(filein,hopsize=512,silence=-70):
187+ frameread = 0
188+ filei = sndfile(filein)
189+ srate = filei.samplerate()
190+ channels = filei.channels()
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
192204
193− def do(self,myvec):
194− #self.filt.do(myvec)
195− #self.filt.do(myvec)
196− self.pv.do(myvec,self.myfft)
197− return aubio_pitchmcomb_detect(self.pitchp,self.myfft())
205+def getpitch(filein,mode=aubio_mcomb,bufsize=1024,hopsize=512,omode=aubio_freq,
206+ samplerate=44100.):
207+ frameread = 0
208+ filei = sndfile(filein)
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())
198235
199236 class filter:
200237 def __init__(self,srate,type=None):
@@ -203,5 +240,5 @@ class filter: · 2 unmodified lines
203240 def __del__(self):
204241 #del_aubio_filter(self.filter)
205242 pass
206− def do(self,myvec):
243+ def __call__(self,myvec):
207244 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