//practical sound analysis - fredrik olofsson
//organized by lullcec 28-30oct 2011, hangar, barcelona
//Amplitude
(
{ //mic amplitude controls oscillator amplitude
//mouse controls amp tracker sensitivity via the attack/release time
var src= SoundIn.ar;
var amp= Amplitude.kr(src, MouseX.kr(0.01, 1), MouseY.kr(0.01, 1));
SinOsc.ar(400, 0, amp)!2;
}.play
)
(
{ //mic amplitude controls oscillator frequency
//mouse controls amp tracker sensitivity via the attack/release time
var src= SoundIn.ar;
var amp= Amplitude.kr(src, MouseX.kr(0.01, 1), MouseY.kr(0.01, 1));
SinOsc.ar(amp*400+400, 0, 0.1)!2;
}.play
)
(
{ //mic amplitude controls reverb amount via the dry/wet mix
//soft sounds play with a lot of reverb and loud sounds with a little
//mouse controls amp tracker sensitivity via the attack/release time
//seems to work best with little attackTime (x) and long releaseTime (y)
//i.e. mouse in lower left corner
var src= SoundIn.ar;
var amp= Amplitude.kr(src, MouseX.kr(0.01, 1), MouseY.kr(0.01, 1));
FreeVerb.ar(src, amp.explin(0.001, 1, 1, 0, \minmax).poll)!2;
}.play
)
//Pitch
(
{ //simple pitch tracking
var src= SoundIn.ar;
var pch= Pitch.kr(src);
SinOsc.ar(pch[0], 0, pch[1].poll*0.2)!2;
}.play
)
(
{ //oscillator is panned to the right if high pitch in mic
var src= SoundIn.ar;
var pch= Pitch.kr(src);
Pan2.ar(SinOsc.ar(pch[0].poll, 0, 0.1), pch[0].explin(100, 3000, -1, 1, \minmax));
}.play
)
(
{ //set clar >0 and hasFreq will be continuous
var src= SoundIn.ar;
var pch= Pitch.kr(src, clar: 1);
pch[1].poll;
Pan2.ar(SinOsc.ar(pch[0], 0, 0.1*pch[1].lag(0.1)), pch[0].explin(100, 3000, -1, 1, \minmax));
}.play
)