user488792
user488792

Reputation: 2013

Onset to Beat Detection?

How do you determine which onsets are beats? I am using Spectral Flux for Note Onset Detection and a Running Mean for peak-picking/thresholding.

I am just working with the guitar instrument so the presence of percussions may not help with this. Any ideas?

Thanks!

Upvotes: 2

Views: 2653

Answers (2)

dberm22
dberm22

Reputation: 3203

EDIT: Wow...just realized this question is 3 years old...sorry to resurrect an old post.


My Master's thesis was in beat detection and the main advantage of my method over all other published methods of beat detection was in resolution, both in the time domain and frequency (beat) domain. You can find my thesis here. What it basically boils down to (after alot of filtering) is a comb-filter convolution. My code is an adaptation of this project, which contains Matlab files for you to see how it works.

My code (both in C++ and the Matlab port) is not publicly available due to possible copywrite issues with my university, but if you email me at dberm22[at]gmail[dot]com, I'd be more than willing to ahem::discuss my work with you.

Upvotes: 4

dB'
dB'

Reputation: 8330

Try using a beat tracking algorithm. Beat tracking is a distinct problem from onset detection.

I think there's a good algorithm in the Queen Mary plugin set for Sonic Visualizer. The plugins are open source, so you can have a look at the code to figure out how they work.

Or do a search on google scholar for "beat tracking". There are a number of effective approaches. Dan Ellis' is a good one to start with. It's intuitive, and there's code available in Matlab and Java.

Upvotes: 2

Related Questions