SLOnset experimental time domain onset detector

SLOnset.kr(input, memorysize1=20, before=5,after=5, threshold=10, hysteresis=10, mul = 1.0, add = 0.0)

Purely time domain onset detector

Works well for loud signals but fainter onsets are missed, and really loud onsets lead to multiple triggers.

(my note: needs some sort of log amplitude correction?)

(

x = {arg threshold=10.0;

var input, onsets;

input = SoundIn.ar(0);

onsets= SLOnset.kr(input,20,5,5,threshold);

Out.ar(0, SinOsc.ar(440,0,0.1)*Decay2.ar(K2A.ar(onsets), 0.01, 0.1));

}.play;

)

x.set(\threshold, 10.0)

x.free;

b = Buffer.read(s,"sounds/a11wlk01.wav"); // remember to free the buffer later.

b = Buffer.read(s,"sounds/break2"); // remember to free the buffer later.

(

x = {arg threshold=10.0, hysteresis=20;

var input, onsets;

input = PlayBuf.ar(1, b, BufRateScale.kr(b), loop:1);

onsets= SLOnset.kr(input,20,5,5,threshold,hysteresis);

Out.ar(0, input + (SinOsc.ar(440,0,0.1)*Decay2.ar(K2A.ar(onsets), 0.01, 0.05)));

}.play;

)

//by setting these appropriately can get somewhere...

x.set(\threshold, 50.0)

x.set(\hysteresis, 10.0)

b.free;