[aubio-user] Onset detection in Python

Paul Brossier piem at piem.org
Wed Mar 19 22:05:50 CET 2014

On 03/19/2014 05:36 PM, Lukasz Tracewski wrote:
>> This is fascinating. Would you mind if I prepare some short post
>> to publish on aubio's blog?
> Not at all, I will be honoured!
> If you would like to know more about the project, I made a small
> write-up in PDF available here:
> The project's development page: https://github.com/tracek/Ornithokrites/

excellent, I'll prepare a short post and submit it to you before publishing.

> One more question related to aubio (energy) onset detection. In my
> early development version I was using 0.4.0alpha. Now that I switched
> to 0.4.1 some more onsets gets detected, in this case false
> positives. Did the algorithm get more sensitive? I tried tuning the
> threshold but no avail. I did not notice anything particular in the
> release notes. In the history of onsets you mention cleaning up and
> there is also this change:
> aubio_onset_set_delay_ms(o, 50.); to: aubio_onset_set_delay(o, 4.3 *
>  hop_size);
> So making delay dependent on hop size. I tried compiling with old
> code, but actually got even more different results. Are there any
> fixes that could concern energy onset detection between 0.4.0alpha
> and 0.4.1? I was contemplating going back to alpha, but that is
> usually not a smart idea (probably it is just coincidence that alpha
>  works temporarily better for my training set, perhaps a matter of
> tuning some other parameters than threshold).

I'm not sure exactly what version you had before. 'alpha' is a moving
target: right after a release, the version number is increased, and
~alpha added to it. (feel free to send me a tarball of the source code
you used for 0.4.0alpha if you want me to look at it more in details).

as far as onsets are concerns, only two changes between 0.4.0 and 0.4.1
should affect the results:

 - i changed back the delay from 50ms to 4.3 * hop_size, because the
peak-picking algorithms depends solely on the hop_size, not on the
temporal resolution of the novelty function. the default value can not
be set at a fixed time.
 - i also changed the changed the minimum inter-onset-interval (minioi)
from 5 * hop_size to 20ms, so that could explain some more of the
changes you observed.

now you can set the delay and minimum IOI yourself. from python, you can
set both these values using the following functions:

 - aubio.onset.set_delay, aubio.onset.set_delay_s, and
 - aubio.onset.set_minioi, aubio.onset.set_minioi_s, and

you can also get the current value of the onset object with the
corresponding getters.

see the doc here: http://aubio.org/doc/latest/onset_8h.html

cheers, Paul

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 242 bytes
Desc: OpenPGP digital signature
URL: <http://lists.aubio.org/pipermail/aubio-user/attachments/20140319/02c175da/attachment.sig>

More information about the aubio-user mailing list