feat: load synthef on startup
This commit is contained in:
32
examples/bandoo.scd
Normal file
32
examples/bandoo.scd
Normal file
@ -0,0 +1,32 @@
|
||||
(
|
||||
SynthDef(\bandoo, {
|
||||
var sig;
|
||||
// base osc
|
||||
sig = Pulse.ar(
|
||||
\freq.kr(120) * [1.05, 1.1, 0.8, 1.5],
|
||||
LFNoise1.ar(0.04).linlin(-1, 1, 0.3, 1)
|
||||
);
|
||||
sig = Splay.ar(sig);
|
||||
|
||||
// low pass filter with random range and resonance
|
||||
sig = RLPF.ar(
|
||||
sig,
|
||||
LFNoise2.ar(0.08).linlin(-1, 1, 450, 1600),
|
||||
LFNoise2.ar(0.1).linlin(-1, 1, 0.25, 0.6)
|
||||
);
|
||||
|
||||
// random pitch shifting and amplitude for each voices
|
||||
sig = [
|
||||
sig * LFNoise2.ar(0.02).linlin(-1, 1, 0.1, 1),
|
||||
PitchShift.ar(sig, 0.05, LFNoise2.ar(0.14).linlin(-1, 1, 0.5, 2), 0.4) * LFNoise2.ar(0.01).linlin(-1, 1, 0.1, 1),
|
||||
PitchShift.ar(sig, 0.02, LFNoise2.ar(0.09).linlin(-1, 1, 0.25, 1.1), 0.1) * LFNoise2.ar(0.04).linlin(-1, 1, 0.1, 1)
|
||||
];
|
||||
sig = LPF.ar(sig, 490 * LFNoise2.ar(0.19).linlin(-1, 1, 0.25, 3), 0.3);
|
||||
sig = Splay.ar(sig, 0.1);
|
||||
sig = sig * \amp.kr(1);
|
||||
sig = Limiter.ar(sig);
|
||||
Out.ar(\out.kr(0), sig);
|
||||
}).add;
|
||||
)
|
||||
|
||||
Synth(\bandoo, [freq: 220]);
|
||||
4
examples/bitcrushing.scd
Normal file
4
examples/bitcrushing.scd
Normal file
@ -0,0 +1,4 @@
|
||||
// bitcrushing
|
||||
sig = sig.round(0.12);
|
||||
// sample rate reduction
|
||||
sig = Latch.ar(sig, Impulse.ar(SampleRate.ir/10));
|
||||
14
examples/bpf_brown.scd
Normal file
14
examples/bpf_brown.scd
Normal file
@ -0,0 +1,14 @@
|
||||
(
|
||||
SynthDef(\bpf_brown, {
|
||||
var sig, env, rq = 0.005;
|
||||
env = Env([0, 1, 0], [\attack.kr(0.02), \release.kr(2)], [1, -2]).kr(2);
|
||||
sig = BrownNoise.ar(0.8);
|
||||
sig = BPF.ar(sig, \freq.kr(800), rq, 1 / rq.sqrt);
|
||||
sig = Pan2.ar(sig, \pan.kr(0), \amp.kr(1)) * env;
|
||||
sig = Limiter.ar(sig);
|
||||
Out.ar(\out.kr(0), sig);
|
||||
}).add;
|
||||
|
||||
)
|
||||
|
||||
(instrument: \bpf_brown, freq: [430, 500, 625].choose, attack: 0, release: 3, amp: 0.6).play;
|
||||
34
examples/choir.scd
Normal file
34
examples/choir.scd
Normal file
@ -0,0 +1,34 @@
|
||||
// create a choir from two formants
|
||||
(
|
||||
|
||||
// https://en.wikipedia.org/wiki/Formant#cite_note-7
|
||||
var formants = [
|
||||
[360, 640], // o
|
||||
[235, 2100], // y
|
||||
[390, 2300], // e
|
||||
[585, 1710], // æ
|
||||
[850, 1610], // a
|
||||
[750, 940], // ɑ
|
||||
[820, 1530], // ɶ
|
||||
[600, 1170], // ʌ
|
||||
[250, 595], // u
|
||||
[240, 2400], // i
|
||||
];
|
||||
|
||||
r {
|
||||
[38 + 3, 38 +5, 38 + 12].do{
|
||||
|freq|
|
||||
Synth(\formoo,
|
||||
[
|
||||
amp: 0.15,
|
||||
attack: 2,
|
||||
decay: 5,
|
||||
freq: freq.midicps,
|
||||
formants: [850, 1610],
|
||||
ff: rrand(550, 2660),
|
||||
qr: 0.5
|
||||
]
|
||||
);
|
||||
}
|
||||
}.play;
|
||||
)
|
||||
5
examples/chorus.scd
Normal file
5
examples/chorus.scd
Normal file
@ -0,0 +1,5 @@
|
||||
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);
|
||||
1
examples/flanger.scd
Normal file
1
examples/flanger.scd
Normal file
@ -0,0 +1 @@
|
||||
sig = CombC.ar(sig, 0.1, SinOsc.ar(0.1).linlin(-1, 1, 0.009, 0.015), 0.1);
|
||||
20
examples/fx_chain1.scd
Normal file
20
examples/fx_chain1.scd
Normal file
@ -0,0 +1,20 @@
|
||||
SynthDef(\fx, {
|
||||
var sig, lag;
|
||||
sig = In.ar(\in.kr(0), 2);
|
||||
// chorus
|
||||
sig = 8.collect({
|
||||
var mod = LFTri.kr(ExpRand(0.2, 0.3), Rand(0.0, 4.0)).range(0.001, 0.02);
|
||||
DelayL.ar(sig, 0.02, mod);
|
||||
});
|
||||
sig = Splay.ar(sig, 0.2);
|
||||
// flanger
|
||||
sig = DelayL.ar(sig, 0.1, SinOsc.ar(0.04).linlin(-1, 1, 0.009, 0.015));
|
||||
sig = Splay.ar(sig);
|
||||
// reverb
|
||||
sig = [sig, JPverb.ar(sig, 2, 0.3, 0.5)].sum;
|
||||
sig = Pan2.ar(sig, \pan.kr(0));
|
||||
sig = sig * \rwet.kr(1);
|
||||
// sig = Normalizer.ar(sig, 0.3);
|
||||
sig = Limiter.ar(sig);
|
||||
ReplaceOut.ar(\out.kr(0), sig);
|
||||
}).add;
|
||||
41
examples/master_fx_bus.scd
Normal file
41
examples/master_fx_bus.scd
Normal file
@ -0,0 +1,41 @@
|
||||
(
|
||||
// example effect chains
|
||||
SynthDef(\fx, {
|
||||
arg in;
|
||||
var sig, fx, releaser;
|
||||
sig = In.ar(in, 2);
|
||||
fx = sig.copy;
|
||||
fx = DelayL.ar(fx, 2, TRand.kr(0.25, \maxRelease.kr(2) / 3));
|
||||
fx = GVerb.ar(fx, 250);
|
||||
fx = LPF.ar(fx, 900);
|
||||
sig = (sig + fx) * 0.5;
|
||||
releaser = DetectSilence.ar(fx, doneAction: Done.freeSelf);
|
||||
OffsetOut.ar(\out.kr(0), sig);
|
||||
}).add;
|
||||
|
||||
// master channel with limiter
|
||||
SynthDef(\master, {
|
||||
arg in;
|
||||
var sig, releaser;
|
||||
sig = In.ar(in, 2);
|
||||
sig = Limiter.ar(sig, -6.dbamp);
|
||||
// releaser = DetectSilence.ar(sig, doneAction: Done.freeSelf);
|
||||
OffsetOut.ar(\out.kr(0), sig);
|
||||
}).add;
|
||||
)
|
||||
|
||||
(
|
||||
var fx, fxBus, master, masterBus;
|
||||
|
||||
// audio bus transmitting sound signal to synths below
|
||||
fxBus = Bus.audio(Server.default, 2);
|
||||
masterBus = Bus.audio(Server.default, 2);
|
||||
|
||||
// fx channel. output to master bus
|
||||
fx = Synth.new(\fx, [\in, fxBus.index, \out, masterBus.index], Server.default, \addToTail);
|
||||
|
||||
// master channel. output to default audio out
|
||||
master = Synth.new(\master, [\in, masterBus.index], Server.default, \addToTail);
|
||||
|
||||
/* sequences or routines go there */
|
||||
)
|
||||
26
examples/pad_chords.scd
Normal file
26
examples/pad_chords.scd
Normal file
@ -0,0 +1,26 @@
|
||||
(
|
||||
var rel = 2;
|
||||
|
||||
// degrees, whatever
|
||||
var chords = [
|
||||
[0, 3, 5],
|
||||
[0, 3, 5] + 3,
|
||||
[0, 2, 5] + 5,
|
||||
[0, 3, 5] + 2,
|
||||
];
|
||||
|
||||
r {
|
||||
loop {
|
||||
chords.do({
|
||||
|deg|
|
||||
SynthUtils.playChordGated(
|
||||
\padoo,
|
||||
rel,
|
||||
(40 + deg).midicps,
|
||||
[ff: 2200, attack: rel, decay: 1, release: rel, vibrato: 0.2, amp: 0.3, gate: 1]
|
||||
);
|
||||
(rrand(0.25, 1) + rel).wait;
|
||||
});
|
||||
}.play;
|
||||
}.play;
|
||||
)
|
||||
Reference in New Issue
Block a user