-
Notifications
You must be signed in to change notification settings - Fork 0
/
tibetan_bells.scd
123 lines (117 loc) · 3.07 KB
/
tibetan_bells.scd
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
122
123
(
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([1500, 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 .. 1000), 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;
)