Playing with feedback
Jonny Stutters
EMAIL HIDDEN
Sat Sep 10 18:28:46 CEST 2011
On 10 Sep 2011, at 15:18, Marc Nostromo [M-.-n] wrote:
> It's pretty much ableton's resonators and a few spices set up in a feedback loop.. see http://nostromo.noisepages.com/2009/11/29/resonating-feedback/
I wrote a SuperCollider version of this a while ago in response to Marc's post:
// run this first
s = Server.local.boot;
// then put the synths on the server
(
SynthDef(\pulsey, {
arg freq = 220, amp = 0.5;
var sig;
sig = Pulse.ar(freq/2, mul:0.3) + SinOsc.ar(freq, 0.2, mul:0.3) + Saw.ar(freq * 2, 0.4, mul:0.3);
sig = sig * EnvGen.kr(Env.perc(0.4, 4), doneAction: 2);
Out.ar(0, sig);
}).send(s);
SynthDef(\feedback, {
arg t_trig = 1, thresh = 0.8, ratio = 0.3, att = 0.01, rel = 0.5, fscale = 1, amp = 0.5;
var sig = 0, sigIn, freqs;
sigIn = In.ar(0, 1);
sig = LocalIn.ar(1);
sig = Compander.ar(sig, sig, thresh, 1, ratio, att, rel);
sig = sig + sigIn;
freqs = Control.names([\freqs]).kr([60.midicps, 62.midicps, 72.midicps, 76.midicps]);
sig = DynKlank.ar(`[freqs, nil, [1, 1, 1, 1]], sig, fscale);
sig = DynKlank.ar(`[freqs, nil, [1, 1, 1, 1]], sig, 0.995);
sig = FreeVerb.ar(sig, 0.8, LFNoise2.kr(1), LFNoise2.kr(0.4));
sig = Compander.ar(sig, sigIn, 0.05, 1, 0.0001, 0.05, 4);
LocalOut.ar(sig * amp * LFNoise2.kr(0.01, mul:0.01));
sig = sig.softclip * 0.2;
sig = 0.7 * sigIn + sig;
sig = FreeVerb.ar(sig, 0.3, 0.5, 0.6);
ReplaceOut.ar(0, sig!2);
}).send(s);
)
// create the feedback effect
a = Synth(\feedback, [\ratio, 0.5, \rel, 1, \fscale, 1, \amp, 0.05, \thresh, 0.1], addAction: \addToTail);
// play some random notes
(
Tdef(\p, {
loop({
Synth(\pulsey, [\freq, [50, 52, 60].choose.midicps], addAction: \addToHead);
Synth(\pulsey, [\freq, [98, 64, 71, 74, 38].choose.midicps], addAction: \addToHead);
Synth(\pulsey, [\freq, [86, 83, 86].choose.midicps], addAction: \addToHead);
~frq = [50, 52, 60, 64].choose.midicps;
a.set(\freqs, [~frq, ~frq * 2, ~frq * 3, ~frq * 4]);
[4, 2, 1, 1].choose.wait;
Synth(\pulsey, [\freq, [98, 64, 71, 74, 38].choose.midicps], addAction: \addToHead);
[1, 0.5].choose.wait;
})
}).play
)
// try some of these to change characteristics of the feedback
a.set(\t_trig, 1);
a.set(\att, 0.1);
a.set(\thresh, 0.5);
a.set(\ratio, 0.01);
a.set(\rel, 1);
a.set(\amp, 0.00001);
// stop playing notes
Tdef(\p).stop
More information about the music-bar
mailing list