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