«Creaking door or roulette wheel?» by 38nonprivate
on 12 Aug'11 17:30 inI aimed for the sound of a creaky door but fell a little short - you be the judge.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
(
{
var output, basePitch = 387, macroPitch, macroPitchAmt = 400;
var modOsc, modAmt = 1.3, amp = 0.8;
var creakRate, creakTrig, creakEnvGen, noise, combs, oscFreq;
noise = LFNoise1.ar(LFNoise0.kr(4.8).lag(0.4).range(3646, 7777), 0.6);
creakRate = EnvGen.kr(
Env(
[40, 25, 15, 2],
[0.9, 0.6, 1.0],
-4
),
doneAction: 2
);
creakTrig = Impulse.kr(creakRate);
creakEnvGen = EnvGen.kr(
Env(
[0.0, 1.0, 0.0],
[0.02, 0.1],
[5, -8]
),
creakTrig,
timeScale: SinOsc.kr(1.5).range(0.12, 0.26) * Line.kr(0.5, 2.3, 2)
);
macroPitch = EnvGen.kr(
Env(
[0.0, 4, 0.1, 0.3, 0.4, 0.7, 0.9],
[0.2, 0.2, 0.4, 0.3, 0.48, 0.59],
[2, 2, -4, -3, -2, -4]
)
);
modOsc = SinOsc.ar( (basePitch + (macroPitch * macroPitchAmt)) * 0.17);
modOsc = SinOsc.ar( (basePitch + (macroPitch * macroPitchAmt)) * 0.232, modOsc * 0.3);
oscFreq = basePitch + (macroPitch * macroPitchAmt);
oscFreq = oscFreq * (1 + (creakEnvGen * 2));
output = SinOsc.ar(oscFreq, modOsc * modAmt, 1);
output = output * SinOsc.ar(SinOsc.kr(1.6).range(1220, 1355));
output = output + noise;
output = output.clip(-0.5, 0.5) * creakEnvGen * amp * TRand.kr(0.8, 1.0, creakTrig);
combs = Mix([CombC.ar(output, 0.2, 0.0084, 0.12), CombC.ar(output, 0.2, 0.00181, 0.03)]);
output = output + (combs * 0.2);
output ! 2
}.play
)
descendants
full graph
«Nodin» by anonymous (private)
«lcggsx» by anonymous (private)
«kvesqk» by anonymous (private)
reception
comments