2004-11-39 Paul Brossier <piem@altern.org>
* configure.ac: added -lmx on macosx
* python/aubiocut: seeks for local minima before peak
+ added zero crossing search
* src/pitchyinc.c: adds draft for all-in-one faster function
* examples/*.c: added ladcca client (needs work)
* examples/aubioonset.c: cleaned up verbose stdout
from aubio.aubioclass import *
import sys
-bufsize = 1024
+bufsize = 512
hopsize = bufsize/2
def getonsets(filein,threshold):
ovalist.append(val)
ovalist.pop(0)
if (isonset == 1):
- print frameread
i=len(ovalist)-1
# find local minima
while ovalist[i-1] < ovalist[i] and i > 0:
i -= 1
- now = (frameread-i+1)*hopsize/(srate+0.)
+ now = (frameread+1-i)*hopsize/(srate+0.)
#del fileo
#fileo = sndfile("%s%f%s" % ("/tmp/",now,filein[-4:]),model=filei)
mylist.append(now)
newname = "%s%f%s" % ("/tmp/",0.0000000,filein[-4:])
fileo = sndfile(newname,model=filei)
myvec = fvec(hopsize,channels)
+ mycopy = fvec(hopsize,channels)
while(readsize==hopsize):
readsize = filei.read(hopsize,myvec)
now = (frameread)*hopsize/(srate+0.)
- writesize = fileo.write(readsize,myvec)
- if len(onsets) and now == onsets[0]:
+ # write to current file
+ if len(onsets) and now >= onsets[0]:
onsets.pop(0)
+ # write up to 1st zero crossing
+ zerocross = 0
+ while ( abs( myvec.get(zerocross,0) ) > 0.002 ):
+ zerocross += 1
+ writesize = fileo.write(zerocross,myvec)
+ fromcross = 0
+ while (zerocross < readsize):
+ mycopy.set(myvec.get(zerocross,0),fromcross,0)
+ fromcross += 1
+ zerocross += 1
del fileo
- fileo = sndfile("%s%f%s%s" % ("/tmp/",now,".",filein.split(".")[-1]),model=filei)
+ fileo = sndfile("%s%s%f%s%s" %
+ (filein.split(".")[0].split("/")[-1],".",now,".",filein.split(".")[-1]),model=filei)
+ # write after 1st zero crossing to new file
+ writesize = fileo.write(fromcross,mycopy)
+ else:
+ writesize = fileo.write(readsize,myvec)
frameread += 1
del fileo