aubio
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
onset detection questions
- To: aubio@piem.org
- Subject: onset detection questions
- From: paul santa clara <kesserich1@comcast.net>
- Date: Wed, 21 Mar 2007 14:49:52 -0400
Hi all,After perusing both the C and python code, I've run into a couple of conceptual questions about the transient detection functionality of aubio. The first thing that puzzles me is that there seems to be an implicit 4 frame delay built into the peak picker algorithm. In the case of my specific test files, for instance, this translate into an onset with a "now" value of 39 being reported during the processing of the 43rd frame read. I assume this is because the peak picker can not read ahead, and thus can only identify a true peak AFTER the fact ie. the amplitude of subsequent frames must decline. So, for my first question: I am right in this assumption? :)
The other thing aspect of the peak picker which has me scratching my head is that my tests have a revealed what looks like a one-off error to me. The typical scenario seems to be that something like this:
Frame Onset Value 77 0 78 17324 79 19192034 80 348625881 3955739 <---isonset returns true
At this point, the peak picker will return that it is has located an onset at frame 77 which is, I reckon, a pretty good call. It does, however, specify a "now" value of .4469(77 * the hopsize/sample rate) which strikes me as a bit odd because that time actually represents the END of the 77th frame(or the beginning of the 78th). I guess it's a minor point but it seems like a recipe for an infamous one-off error to me. Am I off base here? Please correct me if i'm missing something. :)
Finally, i have noticed that PP sometimes significantly jumps the gun by a frame or two. Please bear with me through another example of mine:
Frame Onset Value 118 0 119 0 120 11493177 121 3928404122 729485 <--isonset returns true
Here the reported time is .684 or the end of the 118th frame. Up until i saw this, i was under the impression that the PP selected the last frame prior to the onset with a weighting of 0.0 as the local peak, but this clearly proves me wrong. Visual analysis of the waveform indicates that the actual transient doesn't occur for one or even two more hops. Could someone please explain to me the basics of the logic utilized by the PP algorithm?
My queries aside, i think this is great a library. Thanks for all the hard work!
regards, -paul -- To unsubscribe, send mail to aubio-unsubscribe@piem.org.
- Prev by Date: ext/jackio.c aubio_jack_process
- Next by Date: more accurate beat locations
- Previous by thread: ext/jackio.c aubio_jack_process
- Next by thread: more accurate beat locations
- Index(es):