aubio beattracking

Paul Brossier piem at piem.org
Mon Mar 5 02:53:31 CET 2007


Hello Alex,

On Sun, Mar 04, 2007 at 12:49:18PM -0800, Alex Norman wrote:
> Hi Paul,
> My name is Alex Norman, I am a student in Media Arts and Technology at UC Santa
> Barbara.  I am checking out aubio for use with my master's thesis project and I
> have a couple of questions.
> 
> btw, I tried to sign up to the mailing list, I sent an email to the subscribe
> email addr but I haven't received anything back, that was several hours ago.

Arg. Your suscription request was wrongly filtered as spam. You are now
registered.

> First:
> Do you have an examples using the aubio_beattracking analysis tools?  I see an
> example with the aubio_tempo functions, but nothing with aubio_beattracking (and
> I'm curious how they compare).  
> 
> Ahh, it looks like beattracking is something lower level that tempo uses?

Well, yes: aubio_tempo is simply a convenience function to compute the
beat locations directly from the audio signal. If you look at what is
going on in new_aubio_tempo, you will see that quite a few more objects
are required to do that, in addition to the aubio_beattracking algorithm
which does the tempo period and phase detection itself.

As for examples, examples/aubiotrack.c should do.

> Second:
> I'm wondering what these functions populate the output buffers with?  I see that
> for tempo you simply check the first value of the output buffer in the first
> channel to see if there is a 1 there, but is there any more data?

The function aubio_tempo returns a 1x2 'vector' with the first channel
containing 1 when a beat has been found, 0 otherwise, and the second
channel containing 1 when an onset has been found, 0 otherwise.

> Third:
> It looks like you're telling aubio_tempo the hop and buffer size, but then
> you're reading in overlap size samples, processing, then repeating.. so, can I
> not pass a larger buffer to aubio_tempo and have it do calculations for the
> whole buffer [using the hopsize/buffer size given].

No, and that could be a bad idea actually, the day the 'large' buffer
becomes 'huge'. Instead, you can either use the existing aubiotrack
program, either derive a similar code for you own purposes.

> btw, are you actually processing buffer size or hopsize?  it looks like you only
> read in hop size samples at a time.. and your input buffer is only hopsize long.

Every time hopsize samples have been read, the FFT is computed on
buffersize samples. The rotation of the buffers happen in the phase
vocoder.

The beat tracking method is a bit more complex, as there is two levels
of blocking, one for the phase-vocoder, one for the beat tracking
algorithm.

> Anyways, thanks a lot for your work, my initial tests with aubio have gone quite
> well. (I've just been using the tempo extractor so far)
> 
> -Alex
> 

Great to know you found it useful!

Paul

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.aubio.org/pipermail/aubio-user/attachments/20070305/519f63d5/attachment.pgp>
-------------- next part --------------
!DSPAM:45eb80b2238285618593157!


More information about the aubio-user mailing list