feat: load synthef on startup
This commit is contained in:
34
synthdefs/formoo.scd
Normal file
34
synthdefs/formoo.scd
Normal file
@ -0,0 +1,34 @@
|
||||
SynthDef(\formoo, {
|
||||
arg formants = #[850, 1610];
|
||||
var sig, env;
|
||||
env = Env.perc(\attack.kr(0), \decay.kr(1)).ar(Done.freeSelf);
|
||||
sig = 10.collect{
|
||||
var octave = [1, 2, 0.5, 1.5];
|
||||
// base freq * octave * detuning over time
|
||||
// sounds like a chorus fx
|
||||
var voice = Saw.ar(\freq.kr(220) * LFNoise2.kr(3).linlin(-1, 1, 0.99, 1.1) * octave.choose);
|
||||
// formant * detuning; very high resonance
|
||||
voice = RLPF.ar(
|
||||
voice,
|
||||
formants *
|
||||
formants.size.collect{
|
||||
LFNoise2.kr(3).linlin(-1, 1, 0.98, 1.05)
|
||||
}, 0.05).sum;
|
||||
// detune and blur some more
|
||||
voice = voice + PitchShift.ar(voice, {Rand(0.01, 0.1)}, 0.98) * 0.5;
|
||||
// a bit of distortion
|
||||
voice = voice.softclip;
|
||||
};
|
||||
sig = Splay.ar(sig);
|
||||
// narrowing the spectrum a little more
|
||||
sig = RLPF.ar(
|
||||
sig,
|
||||
\ff.kr(4700) *
|
||||
LFNoise2.kr(1).linlin(-1, 1, 0.95, 1.05),
|
||||
\qr.kr(0.9)
|
||||
);
|
||||
sig = sig * env;
|
||||
sig = sig * \amp.kr(0.25);
|
||||
sig = Limiter.ar(sig);
|
||||
Out.ar(\out.kr(0), sig);
|
||||
}).add;
|
||||
18
synthdefs/granulator.scd
Normal file
18
synthdefs/granulator.scd
Normal file
@ -0,0 +1,18 @@
|
||||
/* Generic modulable buffer granulator */
|
||||
SynthDef(\grainoo, {
|
||||
|buf|
|
||||
var sig;
|
||||
sig = GrainBuf.ar(
|
||||
numChannels: 2,
|
||||
trigger: Impulse.ar(\trig_rate.kr(20)),
|
||||
dur: \gdur.kr(0.5),
|
||||
sndbuf: buf,
|
||||
pos: \gpos.kr(0),
|
||||
rate: \rate.kr(0.5).lag(1),
|
||||
);
|
||||
sig = RLPF.ar(sig, \ff.kr(6000), \rq.kr(1));
|
||||
sig = Pan2.ar(sig, LFNoise0.ar(0.5));
|
||||
sig = sig * \amp.kr(1);
|
||||
sig = Limiter.ar(sig);
|
||||
Out.ar(\out.kr(0), sig);
|
||||
}).add;
|
||||
12
synthdefs/hatgen.scd
Normal file
12
synthdefs/hatgen.scd
Normal file
@ -0,0 +1,12 @@
|
||||
SynthDef(\hhgen, {
|
||||
var sig;
|
||||
sig = Pulse.ar(Array.fill(6, {arg i; \freq.kr(20) * (i + {Rand(1.02, 1.03)})}));
|
||||
sig = Mix.ar(sig);
|
||||
sig = BPF.ar(sig, 10000, 0.15);
|
||||
sig = HPF.ar(sig, 7000);
|
||||
sig = LPF.ar(sig, 3700);
|
||||
sig = HPF.ar(sig, \ff.kr(1500)) * 20.dbamp;
|
||||
sig = sig * Env.perc(0.001, \decay.kr(0.1), curve: \curve.kr(-4)).ar(Done.freeSelf);
|
||||
sig = Pan2.ar(sig, \pan.kr(0));
|
||||
Out.ar(\out.kr(0), sig!2);
|
||||
}).add;
|
||||
18
synthdefs/kickgen.scd
Normal file
18
synthdefs/kickgen.scd
Normal file
@ -0,0 +1,18 @@
|
||||
SynthDef(\kickgen, {
|
||||
var curve, sig, envAmp, envPitch, noise, decay;
|
||||
decay = \decay.kr(0.3);
|
||||
curve = \curve.kr(-8);
|
||||
envPitch = 1 + (\envmul.kr(4) * Env.perc(0.001, 0.13, curve: curve).ar);
|
||||
envAmp = Env.perc(0.001, decay, curve: curve).ar(Done.freeSelf);
|
||||
noise = BPF.ar(WhiteNoise.ar * Env.perc(0.001, 0.01).ar, \ff.kr(1800), \rq.kr(1));
|
||||
sig = SinOsc.ar(\freq.kr(50) * envPitch) * envAmp;
|
||||
sig = sig + noise;
|
||||
// what happens here
|
||||
sig = (sig * (1 + (2 * Env.perc(0.001, 0.12).ar))).softclip;
|
||||
// sig = sig.softclip;
|
||||
// sig = sig * -4.dbamp;
|
||||
sig = sig * \amp.kr(0.8);
|
||||
sig = Pan2.ar(sig, \pan.kr(0));
|
||||
Out.ar(\out.kr(0), sig);
|
||||
}
|
||||
).add;
|
||||
31
synthdefs/padoo.scd
Normal file
31
synthdefs/padoo.scd
Normal file
@ -0,0 +1,31 @@
|
||||
SynthDef(\padoo,
|
||||
{
|
||||
|gate=0|
|
||||
var sig, env,freq;
|
||||
freq = \freq.kr(120);
|
||||
// three notes. root note, 7th, octave. vibrato
|
||||
sig = Saw.ar(
|
||||
[freq, (freq.cpsmidi + 7).midicps, (freq.cpsmidi + 12).midicps] +
|
||||
SinOsc.ar(\vibrato.kr(6)).linlin(-1, 0.5, 0, Rand(3, 5))
|
||||
);
|
||||
// sig = Saw.ar(freq + SinOsc.ar(\vibrato.kr(6)).linlin(-1, 1, 0, Rand(3, 5)));
|
||||
// detuning through slight pitch shifting
|
||||
sig = 6.collect({|item| PitchShift.ar(sig, 0.05, Rand(0.98, 1.02))}).sum / 6;
|
||||
sig = Splay.ar(sig, 0.2);
|
||||
|
||||
sig = 8.collect({
|
||||
var mod = LFTri.kr(ExpRand(0.2, 0.3), Rand(0.0, 2.0)).range(0.001, 0.02);
|
||||
DelayL.ar(sig, 0.02, mod);
|
||||
});
|
||||
sig = Splay.ar(sig, 0.2);
|
||||
|
||||
// env = Env.perc(\attack.kr(1), \decay.kr(3)).ar(Done.freeSelf);
|
||||
env = EnvGen.ar(Env.asr(\attack.kr(1), \decay.kr(3), \release.kr(1)), gate, doneAction: Done.freeSelf);
|
||||
sig = sig * env;
|
||||
|
||||
sig = RLPF.ar(sig, Env([500, 700, \ff.kr(1500)], [0.5, 1, 0.5]).ar, 0.9);
|
||||
sig = sig * \amp.kr(0.2);
|
||||
sig = Limiter.ar(sig);
|
||||
Out.ar(\out.kr(0), sig);
|
||||
}
|
||||
).add;
|
||||
10
synthdefs/random_lfo.scd
Normal file
10
synthdefs/random_lfo.scd
Normal file
@ -0,0 +1,10 @@
|
||||
SynthDef(\randlfo, {
|
||||
var sig;
|
||||
sig = LFNoise0.ar(\rate.kr(1)).linlin(
|
||||
-1,
|
||||
1,
|
||||
\min.kr(0),
|
||||
\max.kr(1),
|
||||
);
|
||||
Out.ar(\out.kr(0), sig);
|
||||
}).add;
|
||||
12
synthdefs/rangz.scd
Normal file
12
synthdefs/rangz.scd
Normal file
@ -0,0 +1,12 @@
|
||||
SynthDef(\rangz, {
|
||||
var exc, amps, freqs, rqs, sig, envPitch, cond, pitchoo, nb = 20;
|
||||
freqs = Array.fill(nb, {ExpRand(65, \freq.kr(1000)) * ExpRand(0.5, 1.5)});
|
||||
rqs = Array.fill(nb, {LFNoise2.kr(2).linexp(-1, 1, 0.001, 0.009)});
|
||||
amps = rqs.collect({|item, i| 0.05 + (1 / item.sqrt) * ExpRand(0.05, 1.2)});
|
||||
exc = BrownNoise.ar(1); // risky
|
||||
sig = Resonz.ar(exc, freqs, rqs) * amps;
|
||||
sig = Splay.ar(sig);
|
||||
sig = (sig) * \amp.kr(1);
|
||||
sig = Limiter.ar(sig);
|
||||
Out.ar(\out.kr(0), sig);
|
||||
}).add;
|
||||
19
synthdefs/snare_physical_mod.scd
Normal file
19
synthdefs/snare_physical_mod.scd
Normal file
@ -0,0 +1,19 @@
|
||||
// https://bzoennchen.github.io/supercollider-book/chapters/sounddesign/physical-modeling.html
|
||||
SynthDef(\snare, {
|
||||
var sig, exciter, local;
|
||||
local = LocalIn.ar(2);
|
||||
exciter = Impulse.ar(0!2);
|
||||
sig = WhiteNoise.ar() * Decay2.ar(exciter, 0.008, 0.25) * \amp.kr(1.0);
|
||||
sig = sig + local;
|
||||
sig = BPF.ar(sig, \cutoff.kr(500));
|
||||
|
||||
local = DelayN.ar(sig, 0.01,
|
||||
delaytime: 1/\freq.kr(220)) * \beta.kr(0.8);
|
||||
LocalOut.ar(local);
|
||||
sig = LPF.ar(sig, 5000);
|
||||
// sig = JPverb.ar(sig, 0.6, 0.1);
|
||||
sig = sig + PitchShift.ar(sig, 0.01, 0.9);
|
||||
DetectSilence.ar(sig, doneAction: Done.freeSelf);
|
||||
sig = Limiter.ar(sig);
|
||||
Out.ar(0, sig);
|
||||
}).add;
|
||||
16
synthdefs/supersaw.scd
Normal file
16
synthdefs/supersaw.scd
Normal file
@ -0,0 +1,16 @@
|
||||
SynthDef(\supersaw, {
|
||||
arg gate = 0;
|
||||
var sig, env, freq, sub, noise, saw, rel;
|
||||
freq = \freq.kr(122);
|
||||
rel = \rel.kr(1);
|
||||
env = EnvGen.ar(Env.asr(\attack.kr(0.01), 1, rel), gate, doneAction: Done.freeSelf);
|
||||
sub = SinOsc.ar(freq) * 1.5;
|
||||
noise = WhiteNoise.ar(0.4);
|
||||
saw = Array.fill(8, {Saw.ar([freq, freq * 0.5] * Rand(1.0, 1.04)).sum});
|
||||
sig = Splay.ar([saw.sum, sub, noise], 0.1);
|
||||
sig = RHPF.ar(sig, freq, 0.9);
|
||||
// sig = sig + DelayC.ar(sig, 0.1, SinOsc.ar(0.02).unipolar.range(0.013, 0.025), 1) / 2;
|
||||
sig = sig * \amp.kr(0.3);
|
||||
sig = sig * env;
|
||||
Out.ar(\out.kr(0), Limiter.ar(sig));
|
||||
}).add;
|
||||
15
synthdefs/tom_simple.scd
Normal file
15
synthdefs/tom_simple.scd
Normal file
@ -0,0 +1,15 @@
|
||||
SynthDef(\tom, {
|
||||
var freq, decay, mod, sig, base, noise, vibrato, pitchEnv, ampEnv, filterEnv;
|
||||
freq = \freq.kr(120);
|
||||
decay = \decay.kr(1.6);
|
||||
ampEnv = Env.perc(0, decay).ar(Done.freeSelf);
|
||||
filterEnv = Env.perc(0, 0.15).ar;
|
||||
pitchEnv = Env.perc(0, 0.035).ar;
|
||||
noise = WhiteNoise.ar;
|
||||
base = SinOsc.ar(freq + (freq * pitchEnv) * [0.5, 1]).sum;
|
||||
sig = Splay.ar([base, noise], 0.1) * ampEnv * -2.dbamp;
|
||||
sig = RLPF.ar(sig, 200 + (\ff.kr(900) * filterEnv), 0.45);
|
||||
// sig = Fold.ar(sig, -0.6, 0.8);
|
||||
sig = sig + GVerb.ar(sig, 22, 1, 0.8) * -16.dbamp;
|
||||
Out.ar(\out.kr(0), sig * \amp.kr(1));
|
||||
}).add;
|
||||
Reference in New Issue
Block a user