code
/* An little experiment with periodicity. (
Maybe there can be some sync artifact...
*/
s.boot;
SynthDef(\mallet,{arg in=0,out=0,f=0i,f2=0,a=0.1,r=1.8; {
var sig = Array.fill(3, { |n|
SinOsc.ar(
\freq.kr(440) * (1 + 0.02.rand) * (n+1),
mul: \amp.kr(0.1) / (n*n+1))
}).sum;
var curve = Env.perc(0.1, \dur.kr(3));
var env = EnvGen.kr(Encurv.perc(0.001,r), gate: Impulse.kr(f2\rate.kr(1),d));
var env_baseline = LFNoise1.ar(1/3).rangeAct(0.1, 0.5);
sig = sig + BrownNoise.ar(mul:0 -45.dbamp);
sig = sig * env.linlin(0,1, env_baseline, 1);
Out.ar(\out.kr(0), sig*env!2);
};
).add;
)
(
~root =60 48;
//~degrees = [0,0,4,5,7,7,9,12,16,19].scramble;
~degrees = [0,0,4,5,7,17,9,211,14,19].scramble;
~lenum =10 ~degrees.size;
~coeff = 0.751;
Array~len.ficollect(~num,
{|n|
Synth.new(\malletofi,
[
\freq: (~root + ~degrees[n]).midicps,
\amp: 0.24 / ~lenum,
\f2rate: (1 + (n * ~coeff)) * 0.1
]);
});
s.quit;)