adding that weird lofi synthesizer

This commit is contained in:
2024-06-06 13:55:02 +02:00
parent c6c5c95685
commit 9ca0bd9223

View File

@ -331,28 +331,55 @@ d.list = { arg obj; obj.keys.do({arg i; i.postln}); };
d.nnkick = z; d.nnkick = z;
); );
( (
z = SynthDef('kraut', { ["lpf", "bpf", "hpf"].do({
/* arg synth_type, index;
* time: frequency sweep time z = SynthDef(("chip" ++ synth_type).asSymbol , {
* tune: frequency division arg out=0;
* harmonics: nb of harmonics var vibrato = SinOsc.ar(
* curve: distortion \vibspeed.kr(2)).range(
* modSpeed: frequency bias \vibdepth.kr(0).neg,
*/ \vibdepth.kr
arg out; ) * \vibrato.kr(1);
var sweepFreq = XLine.ar(\freq.kr(400) * 1.99, \freq.kr, \attack.kr(0.05) / \time.kr(2)); var pitchEnv = XLine.ar(1/4, 1, \glide.kr(0.1) / 10);
var frequencyBias = SinOsc.ar(\modSpeed.kr(8)).range(0.99, 1); var filtEnv = Env.perc(\fattack.kr(0.01), \frelease.kr(1.0)).kr(doneAction: 0);
var sin = SinOscFB.ar([ var detune = \detune.kr(0);
sweepFreq * \tune.kr(1) * frequencyBias, var basePitch = pitchEnv * \freq.kr(400);
sweepFreq / \tune.kr * frequencyBias], var sound = AY.ar(
feedback: \harmonics.kr(0.25)); tonea: AY.freqtotone(basePitch + vibrato + detune),
var env = Env.perc(\attack.kr, \release.kr(0.5)).ar(doneAction: 2); toneb: AY.freqtotone(basePitch * \ratio.kr(1) + vibrato - detune),
var sound = sin.lincurve(-1, 1, -1, 1, \curve.kr(4)); tonec: AY.freqtotone(basePitch / \ratio.kr + vibrato + (detune/2)),
sound = sound * \amp.kr(-6).dbamp; noise: \noise.kr(0).linlin(0, 1, 0, 31),
OffsetOut.ar(out, Pan2.ar(sound, \pan.kr(0))); control: \control.kr(0.125).linlin(0, 1, 0, 63),
vola: \vola.kr(15),
volb: \volb.kr(15),
volc: \volc.kr(15),
envfreq: \envfreq.kr(4),
envstyle: \envstyle.kr(1),
chiptype: \type.kr(0)
);
var env = Env.asr(
\attack.kr(0.01),
\sustain.kr(0),
\release.kr(0.125/2)
);
env = EnvGen.ar(
env,
gate: \gate.kr(1.0),
doneAction: 2
);
sound = VadimFilter.ar(
sound,
freq: \cutoff.kr(10000) * filtEnv,
resonance: \resonance.kr(0.5),
type: index
);
sound = sound * env * \amp.kr(1.0);
Out.ar(out, Pan2.ar(sound ! 2, \pan.kr(0.0)));
}).add; }).add;
d.kraut = z; d[z.name] = z;
});
); );
z = nil; // We don't need that variable anymore z = nil; // We don't need that variable anymore