You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
scd/shoegaze_guitar.scd

66 lines
1.5 KiB
Plaintext

s.boot;
(
SynthDef(\guitar, {
arg freq; // A2
var env;
var trig = Impulse.kr();
// Simulated pick attack — short noise burst
var pickEnv = Decay2.kr(trig, 0.001, 0.03);
var pickNoise = WhiteNoise.ar(0.4) * pickEnv;
// Plucked string body
var string = Pluck.ar(
WhiteNoise.ar(0.5),
trig,
delaytime: 1/freq,
maxdelaytime: 0.1,
decaytime: 4,
coef: 0.4
);
// Mix pick noise and string
var signal = string + pickNoise;
// Optional: low-pass to tame brightness (like tone knob or cab sim)
signal = LPF.ar(signal, 8000);
env = EnvGen.kr(Env.perc(attackTime: 0.1, releaseTime: 0.2, level: 1, curve: -4), doneAction:2);
// Mono signal
Out.ar(0, signal * env);
}).play;
)
(
~clock = TempoClock.new(90/60);
Pbind(
\instrument, \guitar,
// \freq, Pseq([[60, 63], [50, 59, 67], [48, 54, 60] ], inf).midicps,
\freq, Pseq([60], inf).midicps,
\dur, Pseq([
0.05, 0.03, 0.03, // strum delays for chord 1
0.5, 0.5, // rest for "&"
0.05, 0.03, 0.03, // chord 2 strum
0.05, 0.03, 0.03, // chord 2 "&" strum
// continue for whole pattern
], inf)).play(~clock);
)
(
Pbind(
\instrument, \guitar,
\freq, Pseq([[60, 63], [50, 59, 67], [48, 54, 60] ], inf).midicps,
\dur, Pseq([
0.05, 0.03, 0.03, // strum delays for chord 1
0.5, 0.5, // rest for "&"
0.05, 0.03, 0.03, // chord 2 strum
0.05, 0.03, 0.03, // chord 2 "&" strum
// continue for whole pattern
], inf)).play;
)