class library: SynthDef - lazy implementation of removeUGen
[supercollider.git] / HelpSource / Classes / PV_JensenAndersen.schelp
blobcf98e749d8e1477252e026e16b71ef4e2f0373eb
1 class:: PV_JensenAndersen
2 summary:: FFT feature detector for onset detection.
3 related:: Classes/PV_HainsworthFoote
4 categories::  UGens>FFT
7 Description::
9 FFT feature detector for onset detection based on work described in
10 emphasis::
11 Jensen, K. & Andersen, T. H. (2003). Real-time Beat Estimation
12 Using Feature Extraction. In Proceedings of the Computer Music Modeling
13 and Retrieval Symposium, Lecture Notes in Computer Science. Springer
14 Verlag.
17 First order derivatives of the features are taken.
18 code::threshold::  may need to be set low to pick up on
19 changes.
22 classmethods::
23 private:: categories
24 method::ar
26 argument::buffer
28 FFT buffer.
31 argument::propsc
33 Proportion of spectral centroid feature.
36 argument::prophfe
38 Proportion of high frequency energy feature.
41 argument::prophfc
43 Proportion of high frequency content feature.
46 argument::propsf
48 Proportion of spectral flux feature.
51 argument::threshold
53 Threshold level for allowing a detection.
56 argument::waittime
58 If triggered, minimum wait until a further frame can cause
59 another spot (useful to stop multiple detects on heavy signals).
62 Examples::
64 code::
66 SynthDef(\fftod, { var source1, detect;
67                 source1 = AudioIn.ar(1);
68                 detect = PV_JensenAndersen.ar(FFT(LocalBuf(2048), source1),
69                         threshold:MouseX.kr(0.1,1.0));
70                 Out.ar(0, SinOsc.ar([440,445], 0, Decay.ar(0.1*detect, 0.1)));
71         }).play(s);