«Tibetan prayer bells» by wondersluyter
on 20 Feb'14 10:23 inAcoustically modeled based on http://www.freesound.org/people/sarana/sounds/81832/
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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
(
SynthDef(\prayer_bell, { |outbus, t_trig = 1, sing_switch = 0, freq = 2434, amp = 0.5, decayscale = 1, lag = 10, i_doneAction = 0|
var sig, input, first, freqscale, mallet, sing;
freqscale = freq / 2434;
freqscale = Lag3.kr(freqscale, lag);
decayscale = Lag3.kr(decayscale, lag);
mallet = LPF.ar(Trig.ar(t_trig, SampleDur.ir)!2, 10000 * freqscale);
sing = LPF.ar(
LPF.ar(
{
PinkNoise.ar * Integrator.kr(sing_switch * 0.001, 0.999).linexp(0, 1, 0.01, 1) * amp
} ! 2,
2434 * freqscale
) + Dust.ar(0.1), 10000 * freqscale
) * LFNoise1.kr(0.5).range(-45, -30).dbamp;
input = mallet + (sing_switch.clip(0, 1) * sing);
sig = DynKlank.ar(`[
[
(first = LFNoise1.kr(0.5).range(2424, 2444)) + Line.kr(20, 0, 0.5),
first + LFNoise1.kr(0.5).range(1,3),
LFNoise1.kr(1.5).range(5435, 5440) - Line.kr(35, 0, 1),
LFNoise1.kr(1.5).range(5480, 5485) - Line.kr(10, 0, 0.5),
LFNoise1.kr(2).range(8435, 8445) + Line.kr(15, 0, 0.05),
LFNoise1.kr(2).range(8665, 8670),
LFNoise1.kr(2).range(8704, 8709),
LFNoise1.kr(2).range(8807, 8817),
LFNoise1.kr(2).range(9570, 9607),
LFNoise1.kr(2).range(10567, 10572) - Line.kr(20, 0, 0.05),
LFNoise1.kr(2).range(10627, 10636) + Line.kr(35, 0, 0.05),
LFNoise1.kr(2).range(14689, 14697) - Line.kr(10, 0, 0.05)
],
[
LFNoise1.kr(1).range(-10, -5).dbamp,
LFNoise1.kr(1).range(-20, -10).dbamp,
LFNoise1.kr(1).range(-12, -6).dbamp,
LFNoise1.kr(1).range(-12, -6).dbamp,
-20.dbamp,
-20.dbamp,
-20.dbamp,
-25.dbamp,
-10.dbamp,
-20.dbamp,
-20.dbamp,
-25.dbamp
],
[
20 * freqscale.pow(0.2),
20 * freqscale.pow(0.2),
5,
5,
0.6,
0.5,
0.3,
0.25,
0.4,
0.5,
0.4,
0.6
] * freqscale.reciprocal.pow(0.5)
], input, freqscale, 0, decayscale);
DetectSilence.ar(sig, doneAction: i_doneAction);
Out.ar(outbus, sig);
}).add;
)
(
Pdef(\bell_1,
Pmono(\prayer_bell,
\dur, Pseq([8, 20], inf),
\freq, Pseq([2500, 500], inf),
\amp, 0.5,
\lag, 0,
\trig, Pseq([0.1], inf) * Pwhite(0.5, 1, inf) * Pwrand([0, 1], [1, 5].normalizeSum, inf),
\sing_switch, Pseq((0!4) ++ (1!4), inf)
)
);
Pdef(\bell_2,
Pmono(\prayer_bell,
\dur, Pwhite(8, 20, inf),
\trig, Pwhite(0.05, 0.09),
\sing_switch, Pwrand([0, 1], [5, 3].normalizeSum, inf),
\freq, Prand((240, 360 .. 2000), inf),
\amp, 0.5
)
);
Pdef(\bell_3,
Ppar([
Pmono(\prayer_bell,
\freq, 100,
\dur, 1,
\trig, 0,
\sing_switch, Pwrand([0, 1], [10, 3].normalizeSum, inf),
\amp, Pwhite(0.1, 0.5)
),
Pmono(\prayer_bell,
\freq, 200,
\dur, 1,
\trig, 0,
\sing_switch, Pwrand([0, 1], [10, 3].normalizeSum, inf),
\amp, Pwhite(0.1, 0.5)
),
Pmono(\prayer_bell,
\freq, 300,
\dur, 1,
\trig, 0,
\sing_switch, Pwrand([0, 1], [10, 3].normalizeSum, inf),
\amp, Pwhite(0.1, 0.5)
)
])
);
Pdef(\bell_1).play;
Pdef(\bell_2).play;
Pdef(\bell_3).play;
)
reception
nice one
This and this - http://sccode.org/1-1gt - work really well together
well done, thanks!
I'm impressed !
Very good sounds and very inspiring code, thank you
This is amazing! Thank you so much for this code. Only now I came across it!
Wonderful! thanks for sharing!
wow, this is incredible, thanks a lot for sharing