Thresholding for Note Onset Detection

Started by bloodfire1004 July 5, 2011
Hi!

Regarding Note Onset Detection (that is, trying to find where a new note begins), I am having problems on trying to determine what my threshold should be.

Currently, what I am just doing is finding the maximum change in intensity and then getting a percentage of that and setting that as my threshold.

The problem is that, this is troublesome if there are various degrees of difference in amplitude energy. Also, if the threshold is too low, there are a lot of ghost notes and if it is too high, it misses out on some actual notes.

Do any of you know any way around this?

Thank you!
Blood-

> Regarding Note Onset Detection (that is, trying to find
> where a new note begins), I am having problems on trying to
> determine what my threshold should be.
>
> Currently, what I am just doing is finding the maximum
> change in intensity and then getting a percentage of that
> and setting that as my threshold.
>
> The problem is that, this is troublesome if there are
> various degrees of difference in amplitude energy. Also,
> if the threshold is too low, there are a lot of ghost
> notes and if it is too high, it misses out on some actual
> notes.
>
> Do any of you know any way around this?

How do you calculate "maximum change in intensity"? Is this a freq domain calculation? Time domain? Over what
period of time?

-Jeff
What you can do is take short time ffts of relatively small window duration
and find the fundamental frequencies in each frames. See where (in which
frame) the fundamental frequency varies. This could be a good way to find
the note onset. If you are not getting good results. you can use Kalman
filter to track the exact note onset time by taking the observation from the
fft analysis and getting more accurate observations.

regards
MSS

--
sathyam vada dharmam chara