Skip to content

Instantly share code, notes, and snippets.

@lvm
Created November 11, 2016 05:12
Show Gist options
  • Save lvm/57784df2b4a3fea11e32acd2df4fe199 to your computer and use it in GitHub Desktop.
Save lvm/57784df2b4a3fea11e32acd2df4fe199 to your computer and use it in GitHub Desktop.
SC 161111 014945 (Tidalcycles + SuperDirt + SuperCollider)
SuperDirt.start
(
SynthDef(\moogbass, {
arg out = 0, pan = 0, freq = 440, amp = 0.1, gate = 1, cutoff = 1000, gain = 2.0, lagamount = 0.01, att = 0.001, dec = 0.3, sus = 0.9, rel = 0.2, chorus = 0.7;
var osc, filter, env, filterenv, snd, chorusfx;
osc = Mix(VarSaw.ar(
freq: freq.lag(lagamount) * [1.0, 1.001, 2.0],
iphase: Rand(0.0,1.0) ! 3,
width: Rand(0.5,0.75) ! 3,
mul: 0.5));
filterenv = EnvGen.ar(
envelope: Env.asr(0.2, 1, 0.2),
gate: gate);
filter = MoogFF.ar(
in: osc,
freq: cutoff * (1.0 + (0.5 * filterenv)),
gain: gain);
env = EnvGen.ar(
envelope: Env.adsr(0.001, 0.3, 0.9, 0.2, amp),
gate: gate,
doneAction: 2);
snd = (0.7 * filter + (0.3 * filter.distort)) * env;
chorusfx = Mix.fill(7, {
var maxdelaytime = rrand(0.005, 0.02);
DelayC.ar(
in: snd,
maxdelaytime: maxdelaytime,
delaytime: LFNoise1.kr(
freq: Rand(4.5, 10.5),
mul: 0.25 * maxdelaytime,
add: 0.75 * maxdelaytime)
)
});
snd = snd + (chorusfx * chorus);
Out.ar(out, Pan2.ar(snd, pan));
}).add;
SynthDef(\blips1, {arg out = 0, freq = 25, numharm = 10, att = 0.01, rel = 1, amp = 0.1, pan = 0.5;
var snd, env;
env = Env.perc(att, rel, amp).kr(doneAction: 2);
snd = LeakDC.ar(Mix(Blip.ar([freq, freq*1.01], numharm, env)));
Out.ar(out, Pan2.ar(snd, pan));
}).add;
SynthDef(\hat, { | out=0, release=0.01 |
var osc1, env;
osc1 = WhiteNoise.ar;
env = EnvGen.kr(Env.perc(0, release), doneAction: 2);
Out.ar(out, Pan2.ar(osc1, 0, env));
}).add;
SynthDef(\hihat, {arg out = 0, amp = 0.5, att = 0.01, rel = 0.2, ffreq = 6000, pan = 0;
var snd = WhiteNoise.ar(amp);
var env = Env.perc(att, rel).kr(doneAction: 2);
snd = HPF.ar(snd * env, ffreq);
Out.ar(out, Pan2.ar(snd, pan));
}).add;
SynthDef(\snare, {arg out = 0, amp = 0.1, sinfreq = 180, att = 0.01, rel = 0.2, ffreq = 2000, pan = 0;
var snd1 = WhiteNoise.ar(amp);
var snd2 = SinOsc.ar(sinfreq,0,amp);
var env = EnvGen.kr(Env.perc(att, rel), doneAction: 2);
var sum = HPF.ar(snd1 * env, ffreq)+(snd2*env);
Out.ar(out, Pan2.ar(sum, pan));
}).add;
SynthDef(\kick, {arg out = 0, amp = 0.3, sinfreq = 70, glissf = 0.9, att = 0.01, rel = 0.45, pan = 0;
var gliss = XLine.kr(sinfreq, sinfreq*glissf, rel);
var snd = SinOsc.ar(gliss);
var env = EnvGen.kr(Env.perc(att, rel), doneAction: 2);
snd = snd * env * amp;
snd = Limiter.ar(snd,1,0.001);
Out.ar(out, Pan2.ar(snd, pan));
}).add;
)
cps 0.5
let stut75 n = stut n 1 0.75
d1 $
stack[
stack[
n "0([8 7 8 14]/4,16)"
# s "hat"
# pan "0.5"
# end "2"
,
n "0(4,16)"
# s "hihat"
# end "0.1"
# pan "[0.25 0.5]/2"
]
# room (palindrome $ scale 0.25 0.5 sine1)
# orbit "1"
,
every 2 (within(0.5,1)(stut 2 0.75 0.75)) $
n "0(2,16,10)"
# s "snare"
# pan "0"
# end (sometimes (fmap(+0.05)) "0.05")
,
every 13 ((# coarse ("1 9 5 8")) . (# end "1")) $
n "[0(4,16,2)]"
# s "kick"
# end "0.25 0.25 0.5 0.25"
# gain "1.35"
]
# cutoff (scale 600 1000 sine1)
d2 $
superimpose((# n ((subtract) <$> (iter 3 "c d g") <*> (listToPat minor)))) $
n "[0(5,8)]"
# n ((subtract) <$> (iter 3 "c d g") <*> (listToPat one))
# s "moogbass"
# end "0.6"
# room "0.5"
# orbit "2"
d3 $
sometimesBy 0.25 (# coarse "16") $
sometimes (# vowel "[o a e]/3") $
slowspread stut75 [2,2,2,2,4] $
n "[0(5,8)]"
# n ((subtract) <$> (fmap(+ 12) $ iter 3 "c d g") <*> (listToPat one))
# s "blips1"
# end "0.6"
# coarse "[1 9 8 5 10]/5"
d3 silence
hush
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment