@@ -89,51 +89,48 @@ SynthDef('sonic-pi-sc808_snare', {|
89
89
90
90
(
91
91
SynthDef ('sonic-pi-sc808_clap' , {|
92
- amp = 1 , amp_slide = 0 , amp_slide_shape = 1 , amp_slide_curve = 0 ,
93
- pan = 0 , pan_slide = 0 , pan_slide_shape = 1 , pan_slide_curve = 0 ,
94
- attack = 0 , decay = 0 , sustain = 0 , release = 0.15 ,
95
- attack_level = 1 , decay_level = -1 , sustain_level = 1 ,
92
+ amp = 1 , amp_slide = 0 , amp_slide_shape = 1 , amp_slide_curve = 0 ,
93
+ pan = 0 , pan_slide = 0 , pan_slide_shape = 1 , pan_slide_curve = 0 ,
94
+ hpf = 71 , hpf_slide = 0 , hpf_slide_shape = 1 , hpf_slide_curve = 1 ,
95
+ lpf = 84 , lpf_slide = 0 , lpf_slide_shape = 1 , lpf_slide_curve = 1 ,
96
+ click = 0.5 ,
97
+ decay = 0.3 ,
98
+ decay_curve = -160
99
+ rev = 1 ,
96
100
97
- hpf = 71 , hpf_slide = 0 , hpf_slide_shape = 1 , hpf_slide_curve = 1 ,
98
- lpf = 84 , lpf_slide = 0 , lpf_slide_shape = 1 , lpf_slide_curve = 1 ,
99
- rev = 1 ,
100
- rev_release = 4
101
- out_bus = 0 |
101
+ out_bus = 0 |
102
102
103
- var atkenv, atk, dec, sum, denv, snd, env ;
104
- var reverb, revgen;
103
+ var atkenv, atk, sig, denv, sum ;
104
+ var reverb, revgen;
105
105
106
- hpf = hpf.varlag(hpf_slide, hpf_slide_curve, hpf_slide_shape);
107
- lpf = lpf.varlag(lpf_slide, lpf_slide_curve, lpf_slide_shape);
108
- decay_level = Select .kr(decay_level < 0 , [decay_level, sustain_level]);
106
+ lpf = lpf.midicps;
107
+ hpf = hpf.midicps;
109
108
110
- lpf = lpf.midicps;
111
- hpf = hpf.midicps;
112
-
113
- env = Env .new(
114
- [0 , attack_level, decay_level, sustain_level, 0 ],
115
- [attack,decay,sustain,release ],
116
- \lin
117
- );
118
- atkenv = EnvGen .kr(Env .new([0.5 ,1 ,0 ],[0 , 0.3 ], -160 ), doneAction: 0 );
119
-
120
- denv = EnvGen .kr(Env .dadsr(0.026 , attack, decay, sustain_level, release, 1 , curve: -157 ), doneAction: 0 );
121
- atk = WhiteNoise .ar * atkenv * 1.4 ;
122
- dec = WhiteNoise .ar * denv;
123
- sum = atk + dec * amp;
124
- sum = HPF .ar(sum, hpf);
125
- sum = BPF .ar(sum, lpf, 0.5 );
126
- sum = 1.5 * sum* EnvGen .kr(env, doneAction: 0 );
127
-
128
- revgen = EnvGen .kr(Env .perc(0.1 , attack + decay + sustain + release + rev_release, curve: -9 ), doneAction: 2 );
129
- reverb = WhiteNoise .ar * revgen * 0.1 ;
130
- reverb = HPF .ar(reverb, hpf);
131
- reverb = LPF .ar(reverb, lpf);
132
- reverb = reverb * rev;
133
-
134
- snd = (sum + reverb) * amp * 2 ;
135
- snd = Pan2 .ar(Mix (snd), pan);
136
- Out .ar(out_bus, snd);
109
+ amp = amp.varlag(amp_slide, amp_slide_curve, amp_slide_shape);
110
+ pan = pan.varlag(pan_slide, pan_slide_curve, pan_slide_shape);
111
+ hpf = hpf.varlag(hpf_slide, hpf_slide_curve, hpf_slide_shape);
112
+ lpf = lpf.varlag(lpf_slide, lpf_slide_curve, lpf_slide_shape);
113
+
114
+
115
+ // Use doneAction 0, so the synth is not freed yet
116
+ // The reverb is running much longer
117
+ atkenv = EnvGen .kr(Env .new([click,1 ,0 ],[0 , decay], decay_curve), doneAction: 0 );
118
+ denv = EnvGen .kr(Env .dadsr(0.026 , 0 , 6 , 0 , 1 , 1 , curve: decay_curve), doneAction: 0 );
119
+ atk = WhiteNoise .ar * atkenv * 1.4 ;
120
+ decay = WhiteNoise .ar * denv;
121
+ sum = atk + decay * amp;
122
+ sum = HPF .ar(sum, hpf);
123
+ sum = BPF .ar(sum, lpf, 0.5 );
124
+ sum = 1.5 * sum;
125
+
126
+ revgen = EnvGen .kr(Env .perc(0.1 , decay+ 4 , curve: -9 ), doneAction: 2 );
127
+ reverb = WhiteNoise .ar * revgen * 0.02 ;
128
+ reverb = HPF .ar(reverb, hpf);
129
+ reverb = LPF .ar(reverb, lpf);
130
+ reverb = reverb * amp * rev;
131
+ sum = sum + reverb;
132
+ DetectSilence .ar(sum, doneAction: Done .freeSelf);
133
+ Out .ar(out_bus, Pan2 .ar(sum, pan));
137
134
138
135
}).writeDefFile("/Users/sam/Development/sonic-pi/etc/synthdefs/compiled/" );
139
136
)
0 commit comments