-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGrainSynthDefs.scd
71 lines (66 loc) · 2.91 KB
/
GrainSynthDefs.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
// Stereo reduction SynthDefs
(
SynthDef(\gabor0, {| out, freq = 440, sustain = 0.02, amp = 0.04, pan, x = 0, y = 0 |
var env = EnvGen.ar(Env.sine(sustain, amp * (1 - (y/45))), doneAction: 2);
var sound = SinOsc.ar(freq) * env;
OffsetOut.ar(out, Pan2.ar(sound, /*pan*/ (x-40)/40))
}, \ir.dup(5)).load();
)
(
SynthDef(\gaborGliss, {| out, freq_start = 440, freq_end = 880, sustain = 0.02, amp = 0.04, pan, x = 0, y = 0 |
var env = EnvGen.ar(Env.sine(sustain, amp * (1 - (y/45))), doneAction: 2);
var sound = SinOsc.ar(XLine.kr(freq_start, freq_end, sustain, doneAction: 2)) * env;
OffsetOut.ar(out, Pan2.ar(sound, /*pan*/ (x-40)/40))
}, \ir.dup(5)).load();
)
// 8-Channel SynthDefs
(
SynthDef(\gabor0, {| out, freq = 440, sustain = 0.02, amp = 0.02, pan, x = 0, y = 0 |
var env = EnvGen.ar(Env.sine(sustain, amp), doneAction: 2);
var sound = SinOsc.ar(freq) * env;
OffsetOut.ar(out, [
// channel 1
MulAdd(sound, 1 - (((((20-x).abs).squared) + (((0-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 2
MulAdd(sound, 1 - (((((60-x).abs).squared) + (((0-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 3
MulAdd(sound, 1 - (((((80-x).abs).squared) + (((11-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 4
MulAdd(sound, 1 - (((((80-x).abs).squared) + (((34-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 5
MulAdd(sound, 1 - (((((60-x).abs).squared) + (((45-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 6
MulAdd(sound, 1 - (((((20-x).abs).squared) + (((45-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 7
MulAdd(sound, 1 - (((((0-x).abs).squared) + (((33-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 8
MulAdd(sound, 1 - (((((0-x).abs).squared) + (((11-y).abs).squared)).sqrt / 40).clip(0,1))
]
)
}, \ir.dup(5)).load();
)
(
SynthDef(\gaborGliss, {| out, freq_start = 440, freq_end = 880, sustain = 0.02, amp = 0.02, pan, x = 0, y = 0 |
var env = EnvGen.ar(Env.sine(sustain, amp), doneAction: 2);
var sound = SinOsc.ar(XLine.kr(freq_start, freq_end, sustain, doneAction: 2)) * env;
OffsetOut.ar(out, [
// channel 1
MulAdd(sound, 1 - (((((20-x).abs).squared) + (((0-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 2
MulAdd(sound, 1 - (((((60-x).abs).squared) + (((0-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 3
MulAdd(sound, 1 - (((((80-x).abs).squared) + (((11-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 4
MulAdd(sound, 1 - (((((80-x).abs).squared) + (((34-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 5
MulAdd(sound, 1 - (((((60-x).abs).squared) + (((45-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 6
MulAdd(sound, 1 - (((((20-x).abs).squared) + (((45-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 7
MulAdd(sound, 1 - (((((0-x).abs).squared) + (((33-y).abs).squared)).sqrt / 40).clip(0,1)),
// channel 8
MulAdd(sound, 1 - (((((0-x).abs).squared) + (((11-y).abs).squared)).sqrt / 40).clip(0,1))
]
)
}, \ir.dup(5)).load();
)