Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save eirikblekesaune/2dda6b9b92853304531b3350fcd35755 to your computer and use it in GitHub Desktop.
Save eirikblekesaune/2dda6b9b92853304531b3350fcd35755 to your computer and use it in GitHub Desktop.
Code used at Skandinavisk SuperCollider Klubb #2 @ NOTAM October 8th 2018
(
SynthDef('cristal', {
arg out = 4, freq,
ring = 0, atk = 0.001, sus = 1, rel = 5,
xp = 0.0, yp = 0.0, dist = 0.0, amp = 0.8, dur = 8;
var e = EnvGen.kr(
Env.perc(atk, rel, 1.0, -12),
doneAction: 2
);
var outsig;
var freqLPF = 20000 * (exp( -1 * dist * (log(20/20000)).abs));
var i = LPF.ar(
PinkNoise.ar(-15.dbamp),
freqLPF
);
var z = Ringz.ar( i, freq, ring );
outsig = Clip.ar(
Pan4.ar( z * e, xp, yp ),
-1.0, 1.0
) * amp;
Out.ar(out, outsig);
}).add;
SynthDef('reverb', {arg out, in, dist = 0.0;
var outsig;
var insig = In.ar(in, 4);
outsig = FreeVerb.ar(insig, dist, 100, 0.5 );
Out.ar(out, outsig);
// Out.ar(out, Splay.ar(outsig));
}).add;
)
s.options.numOutputBusChannels_(8);s.reboot;
~reverb.free
(
b = s.options.firstPrivateBus;
~fx = Group();
~notes = Group(~fx, \addBefore);
~reverb = Synth(\reverb, [
\in, b,
\dist, 0.3,
\out, 0
], ~fx, \addToTail);
)
(
a = Synth('cristal', [
\out, b,
\freq, exprand(400, 1500),//[110,220,330,440],
\ring, 0.4,
\amp, -10.dbamp,
\dist, 0.3
], ~notes, \addToHead);
)
(
Pdef(\cristals, Pbind(
\instrument, \cristal,
\group, ~notes,
\out, b,
\freq, Pexprand(400, 1600 ! 4),
\ring, 0.2,
\amp, -15.dbamp,
\xp, Pseg(
Pwhite(-1.0, 1.0 ! 4),
Pwhite(1.0, 5.0),
repeats: inf
),
\yp, Pseg(
Pwhite(-1.0, 1.0 ! 4),
Pwhite(1.0, 5.0),
repeats: inf
),
\dist, Pseg(
Pwhite(0.0, 0.7),
Pwhite(1.0, 5.0),
repeats: inf
),
\dur, 0.5
).trace).play;
)
Pdef(\cristals).stop;
s.dumpOSC(2)
s.dumpOSC(0)
(
SynthDef('cristal', {
arg out = 4, freqs = #[0, 0, 0, 0], amps = #[0,0,0,0],
rings = #[0,0,0,0], atk = 0.001, sus = 1, rel = 5,
xp = 0.0, yp = 0.0, dist = 0.0, amp = 0.8, dur = 8;
var e = EnvGen.kr(
Env.perc(atk, rel, 1.0, -12),
doneAction: 2
);
var outsig;
var freqLPF = 20000 * (exp( -1 * dist * (log(20/20000)).abs));
var i = LPF.ar(
PinkNoise.ar(-15.dbamp),
freqLPF
);
var z = Klank.ar(
`[
freqs, amps, rings
],
i
);
outsig = Clip.ar(
Pan4.ar( z * e, xp, yp ),
-1.0, 1.0
) * amp;
Out.ar(out, outsig);
}).add;
SynthDef('reverb', {arg out, in, dist = 0.0;
var outsig;
var insig = In.ar(in, 4);
outsig = FreeVerb.ar(insig, dist, 100, 0.5 );
//Out.ar(out, outsig);
Out.ar(out, Splay.ar(outsig));
}).add;
)
(
b = s.options.firstPrivateBus;
~fx = Group();
~notes = Group(~fx, \addBefore);
~reverb = Synth(\reverb, [
\in, b,
\dist, 0.3,
\out, 0
], ~fx, \addToTail);
)
(
a = Synth('cristal', [
\out, b,
\freqs, { exprand(400, 1500) } ! 4,//[110,220,330,440],
\amps, [1.0, 1.0, 1.0, 1.0].normalizeSum,
\rings, [1.0, 1.0, 1.0, 1.0],
\amp, -10.dbamp,
\dist, 0.3
], ~notes, \addToHead);
)
(
Pdef(\cristals, Pbind(
\instrument, \cristal,
\group, ~notes,
\out, b,
// \freqs, [{ exprand(400, 1500) } ! 4],
\freqs, [
{Pexprand(400, 1500)} ! 4
],
\amps, [[1.0, 1.0, 1.0, 1.0].normalizeSum],
\rings, [[1.0, 1.0, 1.0, 1.0]],
\amp, -10.dbamp,
\dist, Pseg(
Pwhite(0.0, 0.7),
Pwhite(1.0, 5.0),
repeats: inf
),
\dur, 5.0
)).play;
)
Pdef(\cristals).stop;
//Simple mono
(
{
VarSaw.ar(120);
}.play;
)
//
(
a = SynthDef('cristal', {
arg out = 4, freqs = #[0, 0, 0, 0], amps = #[0,0,0,0],
rings = #[0,0,0,0], atk = 0.001, sus = 1, rel = 5,
xp = 0.0, yp = 0.0, dist = 0.0, amp = 0.8, dur = 8;
var e = EnvGen.kr(
Env.perc(atk, rel, 1.0, -12)
);
var outsig;
var freqLPF = 20000 * (exp( -1 * dist * (log(20/20000)).abs));
var i = LPF.ar(
PinkNoise.ar(-15.dbamp),
freqLPF
);
var z = Klank.ar(
`[
freqs, amps, rings
],
i
);
outsig = Clip.ar(
Pan4.ar(
z * e,
xp, yp
),
-1.0, 1.0
) * amp;
outsig = FreeVerb.ar(
outsig,
dist,
100,
0.5
);
DetectSilence.ar(outsig, doneAction: 2);
Out.ar(out, outsig);
Out.ar(0, Splay.ar(outsig));
}).play(
args: [
\freqs, { exprand(400, 1500) } ! 4,//[110,220,330,440],
\amps, [1.0, 1.0, 1.0, 1.0].normalizeSum,
\rings, [1.0, 1.0, 1.0, 1.0],
\amp, -10.dbamp,
\dist, 0.3
]
)
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment