An onset detector for musical audio signals - detects the beginning of notes/drumbeats/etc. Outputs a control-rate trigger signal which is 1 when an onset is detected, and 0 otherwise.
For more details of all the processes involved, the different onset detection functions, and their evaluation, see:
D. Stowell and M. D. Plumbley. Adaptive whitening for improved real-time audio onset detection. Proceedings of the International Computer Music Conference (ICMC2007), Copenhagen, Denmark, August 2007. See http://c4dm.eecs.qmul.ac.uk/papers/2007/StowellPlumbley07-icmc.pdf
chain |
an FFT chain. |
threshold |
the detection threshold, typically between 0 and 1, although in rare cases you may find values outside this range useful. |
odftype |
chooses which onset detection function is used. In many cases the default will be fine. More choices are listed below. The remaining args are all tweak factors, explained below in section Advanced features: |
relaxtime | |
floor | |
mingap | |
medianspan | |
whtype | |
rawodf |
The following choices are available for odftype
:
\power
\magsum
\complex
\rcomplex
\complex
\phase
\wphase
\mkl
For the FFT chain, you should typically use a frame size of 512 or 1024 (at 44.1 kHz sampling rate) and 50% hop size (which is the default setting in SC). For different sampling rates choose an FFT size to cover a similar time-span (around 10 to 20 ms).
The onset detection should work well for a general range of monophonic and polyphonic audio signals. The onset detection is purely based on signal analysis and does not make use of any "top-down" inferences such as tempo.
Which onset detection function should you choose? The differences aren't large, so I'd recommend you stick with the default \rcomplex
unless you find specific problems with it. Then maybe try \wphase
. The \mkl
type is a bit different from the others so maybe try that too. They all have slightly different characteristics, and in tests perform at a similar quality level.
Further options are available, which you are welcome to explore if you want. They are numbers that modulate the behaviour of the onset detector: