3 """ this file was written by Paul Brossier
4 it is released under the GNU/GPL license.
7 from aubio.aubioclass import *
10 def getonsets(filein,threshold):
14 filei = sndfile(filein)
15 srate = filei.samplerate()
16 channels = filei.channels()
17 myvec = fvec(hopsize,channels)
18 readsize = filei.read(hopsize,myvec)
19 opick = onsetpick(bufsize,hopsize,channels,myvec,threshold)
20 #newname = "%s%.8f%s" % ("/tmp/",0.0000000,filein[-4:])
21 #fileo = sndfile(newname,model=filei)
23 while(readsize==hopsize):
24 readsize = filei.read(hopsize,myvec)
25 isonset,val = opick.do(myvec)
27 now = (frameread-4)*hopsize/(srate+0.)
29 #fileo = sndfile("%s%f%s" % ("/tmp/",now,filein[-4:]),model=filei)
31 #writesize = fileo.write(readsize,myoldvec)
35 def cutfile(filein,onsets):
39 filei = sndfile(filein)
40 srate = filei.samplerate()
41 channels = filei.channels()
42 newname = "%s%f%s" % ("/tmp/",0.0000000,filein[-4:])
43 fileo = sndfile(newname,model=filei)
44 myvec = fvec(hopsize,channels)
45 while(readsize==hopsize):
46 readsize = filei.read(hopsize,myvec)
47 now = (frameread)*hopsize/(srate+0.)
48 writesize = fileo.write(readsize,myvec)
49 if len(onsets) and now == onsets[0]:
52 fileo = sndfile("%s%f%s%s" % ("/tmp/",now,".",filein.split(".")[-1]),model=filei)
56 filename = sys.argv[1]
57 threshold = sys.argv[2]
58 onsets = getonsets(filename,threshold)
59 cutfile(filename,onsets)