Changeset 80c0417 for python/aubio/aubioclass.py
- Timestamp:
- May 30, 2005, 6:44:52 AM (19 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master, pitchshift, sampler, timestretch, yinfft+
- Children:
- d09cad2
- Parents:
- 588a09f
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
python/aubio/aubioclass.py
r588a09f r80c0417 74 74 class onsetpick: 75 75 """ superclass for aubio_pvoc + aubio_onsetdetection + aubio_peakpicker """ 76 def __init__(self,bufsize,hopsize,channels,myvec,threshold,mode='dual' ):76 def __init__(self,bufsize,hopsize,channels,myvec,threshold,mode='dual',derivate=False): 77 77 self.myfft = cvec(bufsize,channels) 78 78 self.pv = pvoc(bufsize,hopsize,channels) … … 87 87 self.mode = mode 88 88 self.pp = peakpick(float(threshold)) 89 self.derivate = derivate 90 self.oldval = 0. 89 91 90 92 def do(self,myvec): … … 94 96 self.myod2.do(self.myfft,self.myonset2) 95 97 self.myonset.set(self.myonset.get(0,0)*self.myonset2.get(0,0),0,0) 98 if self.derivate: 99 val = self.myonset.get(0,0) 100 dval = val - self.oldval 101 self.oldval = val 102 if dval > 0: self.myonset.set(dval,0,0) 103 else: self.myonset.set(0.,0,0) 96 104 return self.pp.do(self.myonset),self.myonset.get(0,0) 97 105 98 def getonsets(filein,threshold=0.2,silence=-70.,bufsize=1024,hopsize=512,mode='dual',localmin=False,storefunc=False): 106 def getonsets(filein,threshold=0.2,silence=-70.,bufsize=1024,hopsize=512, 107 mode='dual',localmin=False,storefunc=False,derivate=False): 99 108 frameread = 0 100 109 filei = sndfile(filein) … … 102 111 myvec = fvec(hopsize,channels) 103 112 readsize = filei.read(hopsize,myvec) 104 opick = onsetpick(bufsize,hopsize,channels,myvec,threshold,mode=mode) 113 opick = onsetpick(bufsize,hopsize,channels,myvec,threshold, 114 mode=mode,derivate=derivate) 105 115 mylist = list() 106 116 if localmin: … … 114 124 isonset=0 115 125 if localmin: 116 ovalist.append(val) 126 if val > 0: ovalist.append(val) 127 else: ovalist.append(0) 117 128 ovalist.pop(0) 118 129 if storefunc: … … 136 147 else: return mylist 137 148 138 def cutfile(filein,slicetimes,zerothres=0.00 2,bufsize=1024,hopsize=512):149 def cutfile(filein,slicetimes,zerothres=0.008,bufsize=1024,hopsize=512): 139 150 frameread = 0 140 151 readsize = hopsize … … 154 165 zerocross = 0 155 166 while ( abs( myvec.get(zerocross,0) ) > zerothres ): 156 167 zerocross += 1 157 168 writesize = fileo.write(zerocross,myvec) 158 169 fromcross = 0 159 170 while (zerocross < readsize): 160 161 162 163 171 for i in range(channels): 172 mycopy.set(myvec.get(zerocross,i),fromcross,i) 173 fromcross += 1 174 zerocross += 1 164 175 del fileo 165 176 fileo = sndfile("%s%s%f%s%s" % 166 167 177 (filein.split(".")[0].split("/")[-1],".", 178 frameread*framestep,".",filein.split(".")[-1]),model=filei) 168 179 writesize = fileo.write(fromcross,mycopy) 169 180 else:
Note: See TracChangeset
for help on using the changeset viewer.