musicality 0.11.1 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.coveralls.yml +1 -0
- data/.ruby-version +1 -1
- data/.travis.yml +4 -0
- data/ChangeLog.md +11 -0
- data/README.md +3 -0
- data/Rakefile +11 -3
- data/lib/musicality/composition/model/rhythm.rb +33 -0
- data/lib/musicality/composition/model/rhythm_class.rb +30 -0
- data/lib/musicality/composition/sequencing/drum_machine/drum_kit.rb +18 -0
- data/lib/musicality/composition/sequencing/drum_machine/drum_machine.rb +59 -0
- data/lib/musicality/composition/sequencing/drum_machine/drum_parts.rb +21 -0
- data/lib/musicality/composition/sequencing/drum_machine/drum_pattern.rb +66 -0
- data/lib/musicality/composition/sequencing/drum_machine/drum_patterns/pop_drum_patterns.rb +146 -0
- data/lib/musicality/composition/sequencing/note_array.rb +33 -0
- data/lib/musicality/composition/sequencing/note_fifo.rb +73 -0
- data/lib/musicality/composition/sequencing/sequenceable.rb +9 -0
- data/lib/musicality/composition/sequencing/sequencer.rb +35 -0
- data/lib/musicality/errors.rb +2 -2
- data/lib/musicality/notation/model/dynamics.rb +2 -2
- data/lib/musicality/notation/model/key.rb +42 -91
- data/lib/musicality/notation/model/keys.rb +35 -34
- data/lib/musicality/notation/model/note.rb +31 -9
- data/lib/musicality/notation/model/pitch.rb +2 -2
- data/lib/musicality/notation/parsing/convenience_methods.rb +23 -12
- data/lib/musicality/notation/parsing/duration_parsing.rb +3 -3
- data/lib/musicality/notation/parsing/key_parsing.rb +150 -0
- data/lib/musicality/notation/parsing/key_parsing.treetop +37 -0
- data/lib/musicality/notation/parsing/meter_parsing.rb +3 -3
- data/lib/musicality/notation/parsing/numbers/nonnegative_float_parsing.rb +3 -1
- data/lib/musicality/notation/parsing/numbers/nonnegative_integer_parsing.rb +1 -0
- data/lib/musicality/notation/parsing/numbers/nonnegative_rational_parsing.rb +1 -1
- data/lib/musicality/notation/parsing/numbers/positive_float_parsing.rb +4 -1
- data/lib/musicality/notation/parsing/numbers/positive_rational_parsing.rb +1 -1
- data/lib/musicality/notation/parsing/parseable.rb +13 -17
- data/lib/musicality/notation/parsing/pitch_parsing.rb +7 -0
- data/lib/musicality/notation/parsing/segment_parsing.rb +3 -0
- data/lib/musicality/performance/conversion/note_sequence_extractor.rb +82 -134
- data/lib/musicality/performance/model/note_sequence.rb +22 -3
- data/lib/musicality/performance/supercollider/performer.rb +2 -2
- data/lib/musicality/performance/supercollider/sc_drum_kits.rb +29 -0
- data/lib/musicality/performance/supercollider/synthdefs/bass.rb +211 -0
- data/lib/musicality/performance/supercollider/synthdefs/claps.rb +80 -0
- data/lib/musicality/performance/supercollider/synthdefs/cymbals.rb +57 -0
- data/lib/musicality/performance/supercollider/synthdefs/hihats.rb +67 -0
- data/lib/musicality/performance/supercollider/synthdefs/kicks.rb +158 -0
- data/lib/musicality/performance/supercollider/synthdefs/mario.rb +49 -0
- data/lib/musicality/performance/supercollider/{synthdefs.rb → synthdefs/other.rb} +0 -767
- data/lib/musicality/performance/supercollider/synthdefs/pianos.rb +46 -0
- data/lib/musicality/performance/supercollider/synthdefs/snares.rb +169 -0
- data/lib/musicality/performance/supercollider/synthdefs/toms.rb +25 -0
- data/lib/musicality/performance/supercollider/synthdefs/volume.rb +20 -0
- data/lib/musicality/pitch_class.rb +1 -1
- data/lib/musicality/pitch_classes.rb +3 -5
- data/lib/musicality/version.rb +1 -1
- data/lib/musicality.rb +25 -1
- data/musicality.gemspec +3 -2
- data/spec/composition/convenience_methods_spec.rb +8 -8
- data/spec/composition/generation/random_rhythm_generator_spec.rb +5 -5
- data/spec/composition/model/pitch_class_spec.rb +22 -16
- data/spec/composition/model/pitch_classes_spec.rb +5 -5
- data/spec/composition/model/rhythm_class_spec.rb +42 -0
- data/spec/composition/model/rhythm_spec.rb +43 -0
- data/spec/composition/model/scale_class_spec.rb +26 -26
- data/spec/composition/model/scale_spec.rb +38 -38
- data/spec/composition/sequencing/drum_machine/drum_machine_spec.rb +67 -0
- data/spec/composition/sequencing/drum_machine/drum_pattern_spec.rb +58 -0
- data/spec/composition/sequencing/note_array_spec.rb +94 -0
- data/spec/composition/sequencing/note_fifo_spec.rb +183 -0
- data/spec/composition/sequencing/sequencer_spec.rb +76 -0
- data/spec/composition/util/adding_sequence_spec.rb +33 -33
- data/spec/composition/util/compound_sequence_spec.rb +6 -6
- data/spec/composition/util/note_generation_spec.rb +34 -34
- data/spec/composition/util/probabilities_spec.rb +7 -7
- data/spec/composition/util/random_sampler_spec.rb +3 -3
- data/spec/composition/util/repeating_sequence_spec.rb +28 -28
- data/spec/musicality_spec.rb +1 -1
- data/spec/notation/conversion/change_conversion_spec.rb +87 -87
- data/spec/notation/conversion/note_time_converter_spec.rb +22 -22
- data/spec/notation/conversion/score_conversion_spec.rb +1 -1
- data/spec/notation/conversion/score_converter_spec.rb +31 -31
- data/spec/notation/conversion/tempo_conversion_spec.rb +11 -11
- data/spec/notation/model/change_spec.rb +80 -80
- data/spec/notation/model/key_spec.rb +135 -69
- data/spec/notation/model/link_spec.rb +27 -27
- data/spec/notation/model/meter_spec.rb +28 -28
- data/spec/notation/model/note_spec.rb +68 -47
- data/spec/notation/model/part_spec.rb +19 -19
- data/spec/notation/model/pitch_spec.rb +69 -68
- data/spec/notation/model/score_spec.rb +50 -47
- data/spec/notation/parsing/articulation_parsing_spec.rb +4 -4
- data/spec/notation/parsing/convenience_methods_spec.rb +49 -10
- data/spec/notation/parsing/duration_nodes_spec.rb +13 -13
- data/spec/notation/parsing/duration_parsing_spec.rb +10 -10
- data/spec/notation/parsing/key_parsing_spec.rb +19 -0
- data/spec/notation/parsing/link_nodes_spec.rb +7 -7
- data/spec/notation/parsing/link_parsing_spec.rb +4 -4
- data/spec/notation/parsing/meter_parsing_spec.rb +5 -5
- data/spec/notation/parsing/note_node_spec.rb +19 -19
- data/spec/notation/parsing/note_parsing_spec.rb +4 -4
- data/spec/notation/parsing/numbers/nonnegative_float_spec.rb +8 -8
- data/spec/notation/parsing/numbers/nonnegative_integer_spec.rb +2 -2
- data/spec/notation/parsing/numbers/nonnegative_rational_spec.rb +1 -1
- data/spec/notation/parsing/numbers/positive_float_spec.rb +8 -8
- data/spec/notation/parsing/numbers/positive_integer_spec.rb +6 -6
- data/spec/notation/parsing/numbers/positive_rational_spec.rb +6 -6
- data/spec/notation/parsing/pitch_node_spec.rb +7 -7
- data/spec/notation/parsing/pitch_parsing_spec.rb +2 -2
- data/spec/notation/parsing/segment_parsing_spec.rb +3 -3
- data/spec/notation/util/function_spec.rb +15 -15
- data/spec/notation/util/transition_spec.rb +12 -12
- data/spec/notation/util/value_computer_spec.rb +35 -36
- data/spec/performance/conversion/glissando_converter_spec.rb +24 -24
- data/spec/performance/conversion/note_sequence_extractor_spec.rb +39 -39
- data/spec/performance/conversion/portamento_converter_spec.rb +23 -23
- data/spec/performance/midi/midi_util_spec.rb +41 -41
- data/spec/performance/midi/part_sequencer_spec.rb +10 -10
- data/spec/performance/midi/score_sequencer_spec.rb +15 -15
- data/spec/performance/midi/score_sequencing_spec.rb +2 -2
- data/spec/performance/util/optimization_spec.rb +9 -9
- data/spec/printing/note_engraving_spec.rb +16 -16
- data/spec/printing/score_engraver_spec.rb +5 -5
- data/spec/spec_helper.rb +5 -0
- metadata +85 -30
@@ -2,109 +2,6 @@ module Musicality
|
|
2
2
|
module SuperCollider
|
3
3
|
module SynthDefs
|
4
4
|
|
5
|
-
VOLUME_CONTROL = SynthDef.new(name: "volume_control", params: { :in => nil, :out => nil, :control => nil },
|
6
|
-
body: <<-SCLANG,
|
7
|
-
var sig = In.ar([in,in+1]) * In.kr(control);
|
8
|
-
Out.ar(out,sig);
|
9
|
-
SCLANG
|
10
|
-
credit: "James Tunnell",
|
11
|
-
)
|
12
|
-
|
13
|
-
VOLUME_CHANGE = SynthDef.new(name: "volume_change", params: { :vol_bus => nil, :vol => nil, :dur => nil },
|
14
|
-
body: " Out.kr(vol_bus, Line.kr(In.kr(vol_bus), vol, dur));",
|
15
|
-
credit: "James Tunnell",
|
16
|
-
)
|
17
|
-
|
18
|
-
KICK808 = SynthDef.new(name: "kick808", params: { :out => 0 },
|
19
|
-
body: <<-SCLANG,
|
20
|
-
var sig = LPF.ar(Ringz.ar(Impulse.ar(0), 60, 1), 500);
|
21
|
-
var cmp = CompanderD.ar(sig, -20.dbamp, 1, 0.3, 0.003, 0.08);
|
22
|
-
|
23
|
-
cmp = cmp * (10.dbamp);
|
24
|
-
Out.ar(out, cmp.dup);
|
25
|
-
SCLANG
|
26
|
-
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014"
|
27
|
-
)
|
28
|
-
|
29
|
-
KICK2 = SynthDef.new(name: "kick2", params: { :out => 0 },
|
30
|
-
body: <<-SCLANG,
|
31
|
-
var env0, env1, env1m, sig;
|
32
|
-
|
33
|
-
env0 = EnvGen.ar(
|
34
|
-
Env([0.5, 1, 0.5, 0], [0.005, 0.06, 0.26], [-4, -2, -4]), doneAction:2
|
35
|
-
);
|
36
|
-
env1 = EnvGen.ar(Env([110, 59, 29], [0.005, 0.29], [-4, -5]));
|
37
|
-
env1m = env1.midicps;
|
38
|
-
|
39
|
-
sig = LFPulse.ar(env1m, 0, 0.5, 1, -0.5);
|
40
|
-
sig = sig + WhiteNoise.ar(1);
|
41
|
-
sig = LPF.ar(sig, env1m * 1.5, env0);
|
42
|
-
sig = sig + SinOsc.ar(env1m, 0.5, env0);
|
43
|
-
|
44
|
-
sig = sig * 1.2;
|
45
|
-
sig = sig.clip2(1);
|
46
|
-
|
47
|
-
Out.ar(out, sig.dup * 0.1);
|
48
|
-
SCLANG
|
49
|
-
credit: "Reformatted for the Roundhouse Synth Design course from 08091500Acid309 by otophilia from SuperCollider/examples folder",
|
50
|
-
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
51
|
-
)
|
52
|
-
|
53
|
-
SNARE1 = SynthDef.new(name: "snare1", params: { :out => 0, :amp => 0.8 },
|
54
|
-
body: <<-SCLANG,
|
55
|
-
var env0, env1, env2, env1m, oscs, noise, sig;
|
56
|
-
|
57
|
-
env0 = EnvGen.ar(Env([0.5, 1, 0.5, 0], [0.005, 0.03, 0.10], [-4, -2, -4]));
|
58
|
-
env1 = EnvGen.ar(Env([110, 60, 49], [0.005, 0.1], [-4, -5]));
|
59
|
-
env1m = env1.midicps;
|
60
|
-
env2 = EnvGen.ar(Env([1, 0.4, 0], [0.05, 0.13], [-2, -2]), doneAction:2);
|
61
|
-
|
62
|
-
oscs = LFPulse.ar(env1m, 0, 0.5, 1, -0.5) +
|
63
|
-
LFPulse.ar(env1m * 1.6, 0, 0.5, 0.5, -0.25);
|
64
|
-
oscs = LPF.ar(oscs, env1m * 1.2, env0);
|
65
|
-
oscs = oscs + SinOsc.ar(env1m, 0.8, env0);
|
66
|
-
|
67
|
-
noise = WhiteNoise.ar(0.2);
|
68
|
-
noise = HPF.ar(noise, 200, 2);
|
69
|
-
noise = BPF.ar(noise, 6900, 0.6, 3) + noise;
|
70
|
-
noise = noise * env2;
|
71
|
-
|
72
|
-
sig = oscs + noise;
|
73
|
-
sig = sig.clip2(1) * amp;
|
74
|
-
|
75
|
-
Out.ar(out, sig.dup);
|
76
|
-
SCLANG
|
77
|
-
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
78
|
-
)
|
79
|
-
|
80
|
-
CLAP1 = SynthDef.new(name: "clap1", params: { :out => 0, :amp => 0.5 },
|
81
|
-
body: <<-SCLANG,
|
82
|
-
var env1, env2, sig, noise1, noise2;
|
83
|
-
|
84
|
-
env1 = EnvGen.ar(Env(
|
85
|
-
[0, 1, 0, 1, 0, 1, 0, 1, 0],
|
86
|
-
[0.001, 0.013, 0, 0.01, 0, 0.01, 0, 0.03],
|
87
|
-
[0, -3, 0, -3, 0, -3, 0, -4]
|
88
|
-
));
|
89
|
-
env2 = EnvGen.ar(Env([0, 1, 0], [0.02, 0.3], [0, -4]), doneAction:2);
|
90
|
-
|
91
|
-
noise1 = WhiteNoise.ar(env1);
|
92
|
-
noise1 = HPF.ar(noise1, 600);
|
93
|
-
noise1 = BPF.ar(noise1, 2000, 3);
|
94
|
-
|
95
|
-
noise2 = WhiteNoise.ar(env2);
|
96
|
-
noise2 = HPF.ar(noise2, 1000);
|
97
|
-
noise2 = BPF.ar(noise2, 1200, 0.7, 0.7);
|
98
|
-
|
99
|
-
sig = noise1 + noise2;
|
100
|
-
sig = sig * 2;
|
101
|
-
sig = sig.softclip * amp;
|
102
|
-
|
103
|
-
Out.ar(out, sig.dup);
|
104
|
-
SCLANG
|
105
|
-
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
106
|
-
)
|
107
|
-
|
108
5
|
AXEL = DEFAULT = SynthDef.new(name: "axel", params: { :freq => 440, :lpfreq => 12000, :rq => 0.2, :gate => 1, :out => 0 },
|
109
6
|
body: <<-SCLANG,
|
110
7
|
var chorus = LFNoise2.ar(1).range(0.99, 1.01);
|
@@ -193,19 +90,6 @@ SCLANG
|
|
193
90
|
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
194
91
|
)
|
195
92
|
|
196
|
-
BASS4 = SynthDef.new(name: "bass4", params: { :out => 0, :gate => 1, :freq => 440 },
|
197
|
-
body: <<-SCLANG,
|
198
|
-
var aEnv, fEnv, osc, flt;
|
199
|
-
aEnv = EnvGen.kr(Env.asr(0, 1, 1), gate, doneAction: 2);
|
200
|
-
fEnv = EnvGen.kr(Env.perc(0, 3), levelScale: 6000);
|
201
|
-
osc = Mix([Saw.ar(freq * [1, 1.005]), Pulse.ar(freq / 2, 0.5)]);
|
202
|
-
flt = LPF.ar(osc, fEnv + 100, aEnv);
|
203
|
-
Out.ar(out, flt);
|
204
|
-
SCLANG
|
205
|
-
credit: "From the Kraftwerk 'Spacelab' example in SuperCollider/examples by jy",
|
206
|
-
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
207
|
-
)
|
208
|
-
|
209
93
|
ESM = SynthDef.new(name: "esm", params: { :freq => 440, :mix => 0.5, :glide => 0, :cutoff => 20000, :rq => 1, :fdec => 0, :fint => 1,
|
210
94
|
:vel => 1, :fvel => 1, :t_gate => 1, :vdec => 1, :vvel => 0, :od => 0, :mul => 0.1, :pan => 0, :out => 0 },
|
211
95
|
body: <<-SCLANG,
|
@@ -261,23 +145,6 @@ SCLANG
|
|
261
145
|
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
262
146
|
)
|
263
147
|
|
264
|
-
SNARE2 = SynthDef.new(name: "snare2", params: { :sfreq => 1500, :out => 0 },
|
265
|
-
body: <<-SCLANG,
|
266
|
-
var tri = Mix([LFTri.ar([111, 175, 224])]) * 0.5;
|
267
|
-
var sine = Mix([SinOsc.ar([330, 180])]) * 0.5;
|
268
|
-
var env = EnvGen.ar(Env.perc(0.01, 0.2), doneAction:2);
|
269
|
-
var snares = WhiteNoise.ar(1);
|
270
|
-
var snareEnv = EnvGen.ar(Env.perc(0.01, 0.2));
|
271
|
-
|
272
|
-
snares = HPF.ar(snares, sfreq);
|
273
|
-
snares = snares * snareEnv;
|
274
|
-
|
275
|
-
Out.ar(out, Mix([tri, sine, snares]) * env);
|
276
|
-
SCLANG
|
277
|
-
credit: "Based on Sound on Sound Synth Secrets 35, by Arthur Carabott",
|
278
|
-
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
279
|
-
)
|
280
|
-
|
281
148
|
PROPHET5_STRINGS = SynthDef.new(name: "prophet5pwmstrings", params: { :out => 0, :freq => 440, :amp => 0.8,
|
282
149
|
:gate => 1, :lforate => 3, :lfowidth => 0.1, :cutoff => 12000, :rq => 0.5, :pan => 0.0 },
|
283
150
|
body: <<-SCLANG,
|
@@ -368,49 +235,6 @@ EOS
|
|
368
235
|
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
369
236
|
)
|
370
237
|
|
371
|
-
MOOG_BASS = SynthDef.new(name: "moogbass", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1,
|
372
|
-
:cutoff => 1000, :gain => 2.0, :lagamount => 0.01, :pan => 0.0 },
|
373
|
-
body: <<-SCLANG,
|
374
|
-
var osc, filter, env, filterenv;
|
375
|
-
|
376
|
-
osc = Mix(VarSaw.ar(freq.lag(lagamount)*[1.0,1.001,2.0],Rand(0.0,1.0)!3,Rand(0.5,0.75)!3,0.33));
|
377
|
-
filterenv = EnvGen.ar(Env.adsr(0.2,0.0,1.0,0.2),gate,doneAction:2);
|
378
|
-
filter = MoogFF.ar(osc,cutoff*(1.0+(0.5*filterenv)),gain);
|
379
|
-
env = EnvGen.ar(Env.adsr(0.001,0.3,0.9,0.2),gate,doneAction:2);
|
380
|
-
|
381
|
-
Out.ar(out,Pan2.ar((0.7*filter+(0.3*filter.distort))*env*amp*1.5,pan));
|
382
|
-
SCLANG
|
383
|
-
credit: <<-EOS,
|
384
|
-
Sound recipes from:
|
385
|
-
Mitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books
|
386
|
-
adapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)
|
387
|
-
under GNU GPL 3 as per SuperCollider license
|
388
|
-
EOS
|
389
|
-
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
390
|
-
)
|
391
|
-
|
392
|
-
MOOG_BASS2 = SynthDef.new(name: "moogbass2", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1,
|
393
|
-
:attackTime => 0.2, :fenvamount => 0.5, :cutoff => 1000, :gain => 2.0, :pan => 0.0 },
|
394
|
-
body: <<-SCLANG,
|
395
|
-
var osc, filter, env, filterenv;
|
396
|
-
|
397
|
-
//alternative: richer source
|
398
|
-
osc = Mix(Pulse.ar(freq.lag(0.05)*[1.0,1.001,2.0],Rand(0.45,0.5)!3,0.33));
|
399
|
-
filterenv = EnvGen.ar(Env.adsr(attackTime,0.0,1.0,0.2),gate,doneAction:2);
|
400
|
-
filter = MoogFF.ar(osc,cutoff*(1.0+(fenvamount*filterenv)),gain);
|
401
|
-
env = EnvGen.ar(Env.adsr(0.001,0.3,0.9,0.2),gate,doneAction:2);
|
402
|
-
|
403
|
-
Out.ar(out,Pan2.ar((0.7*filter+(0.3*filter.distort))*env*amp,pan));
|
404
|
-
SCLANG
|
405
|
-
credit: <<-EOS,
|
406
|
-
Sound recipes from:
|
407
|
-
Mitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books
|
408
|
-
adapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)
|
409
|
-
under GNU GPL 3 as per SuperCollider license
|
410
|
-
EOS
|
411
|
-
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
412
|
-
)
|
413
|
-
|
414
238
|
PLASTICKY_STRINGS = SynthDef.new(name: "plastickystrings", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1,
|
415
239
|
:lforate => 5900, :lfowidth => 0.01, :cutoff => 12000, :rq => 0.5, :pan => 0.0 },
|
416
240
|
body: <<-SCLANG,
|
@@ -433,63 +257,6 @@ EOS
|
|
433
257
|
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
434
258
|
)
|
435
259
|
|
436
|
-
BASS_FOUNDATION = SynthDef.new(name: "bassfoundation", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1,
|
437
|
-
:cutoff => 1000, :rq => 0.5, :pan => 0.0 },
|
438
|
-
body: <<-SCLANG,
|
439
|
-
var osc, filter, env, filterenv;
|
440
|
-
|
441
|
-
osc = Saw.ar(freq);
|
442
|
-
filterenv = EnvGen.ar(Env.adsr(0.0,0.5,0.2,0.2),gate,doneAction:2);
|
443
|
-
filter = RLPF.ar(osc,cutoff*filterenv+100,rq);
|
444
|
-
env = EnvGen.ar(Env.adsr(0.01,0.0,0.9,0.05),gate,doneAction:2);
|
445
|
-
|
446
|
-
Out.ar(out,Pan2.ar(filter*env*amp*2,pan));
|
447
|
-
SCLANG
|
448
|
-
credit: <<-EOS,
|
449
|
-
Sound recipes from:
|
450
|
-
Mitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books
|
451
|
-
adapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)
|
452
|
-
under GNU GPL 3 as per SuperCollider license
|
453
|
-
EOS
|
454
|
-
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
455
|
-
)
|
456
|
-
|
457
|
-
BASS_HIGHEND = SynthDef.new(name: "basshighend", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1,
|
458
|
-
:cutoff => 3000, :rq => 0.1, :drive => 2.0, :pan => 0.0 },
|
459
|
-
body: <<-SCLANG,
|
460
|
-
var osc, filter, env, filterenv;
|
461
|
-
var ab;
|
462
|
-
|
463
|
-
//osc = Mix(VarSaw.ar(freq*[0.25,1,1.5],Rand(0.0,1.0)!3,0.9,[0.5,0.4,0.1]));
|
464
|
-
osc = Mix(Saw.ar(freq*[0.25,1,1.5],[0.5,0.4,0.1]));
|
465
|
-
//osc = Mix(DPW4Saw.ar(freq*[0.25,1,1.5],[0.5,0.4,0.1]));
|
466
|
-
filterenv = EnvGen.ar(Env.adsr(0.0,0.5,0.2,0.2),gate,doneAction:2);
|
467
|
-
filter = RLPF.ar(osc,cutoff*filterenv+100,rq);
|
468
|
-
|
469
|
-
//distortion
|
470
|
-
//filter = filter.distort.softclip;
|
471
|
-
|
472
|
-
ab = abs(filter);
|
473
|
-
filter = (filter*(ab + drive)/(filter ** 2 + (drive - 1) * ab + 1));
|
474
|
-
|
475
|
-
//remove low end
|
476
|
-
filter = BLowShelf.ar(filter,300,1.0,-12);
|
477
|
-
//dip at 1600Hz
|
478
|
-
filter = BPeakEQ.ar(filter,1600,1.0,-6);
|
479
|
-
|
480
|
-
env = EnvGen.ar(Env.adsr(0.01,0.0,0.9,0.05),gate,doneAction:2);
|
481
|
-
|
482
|
-
Out.ar(out,Pan2.ar(filter*env*amp*2,pan));
|
483
|
-
SCLANG
|
484
|
-
credit: <<-EOS,
|
485
|
-
Sound recipes from:
|
486
|
-
Mitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books
|
487
|
-
adapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)
|
488
|
-
under GNU GPL 3 as per SuperCollider license
|
489
|
-
EOS
|
490
|
-
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
491
|
-
)
|
492
|
-
|
493
260
|
WINWOOD_LEAD = SynthDef.new(name: "winwoodlead", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1,
|
494
261
|
:cutoff => 8000, :rq => 0.8, :lfowidth => 0.01, :lforate => 8, :lagamount => 0.01, :pan => 0.0 },
|
495
262
|
body: <<-SCLANG,
|
@@ -549,27 +316,6 @@ EOS
|
|
549
316
|
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
550
317
|
)
|
551
318
|
|
552
|
-
EIGHTTOEIGHT_KICK = SynthDef.new(name: "eightoeightkick", params: { :out => 0, :freq => 440, :amp => 0.1,
|
553
|
-
:ringTime => 10.0, :releaseTime => 1.0, :distortion => 0.1, :pan => -0.1 },
|
554
|
-
body: <<-SCLANG,
|
555
|
-
var impulse, filter, env;
|
556
|
-
|
557
|
-
impulse = Impulse.ar(0);
|
558
|
-
filter = Ringz.ar(impulse,XLine.ar(freq,60,0.1),ringTime);
|
559
|
-
env = EnvGen.ar(Env.perc(0.001,releaseTime),doneAction:2);
|
560
|
-
filter = (1.0-distortion)*filter + (distortion*(filter.distort));
|
561
|
-
|
562
|
-
Out.ar(out,Pan2.ar(filter*env*amp,pan));
|
563
|
-
SCLANG
|
564
|
-
credit: <<-EOS,
|
565
|
-
Sound recipes from:
|
566
|
-
Mitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books
|
567
|
-
adapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)
|
568
|
-
under GNU GPL 3 as per SuperCollider license
|
569
|
-
EOS
|
570
|
-
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
571
|
-
)
|
572
|
-
|
573
319
|
TONEWHEEL_TWO = SynthDef.new(name: "tonewheeltwo", params: { :out => 0, :freq => 440, :amp => 0.1, :gate => 1,
|
574
320
|
:lforate => 4.85, :lfowidth => 0.1, :cutoff => 5000, :rq => 0.25, :pan => 0.0 },
|
575
321
|
body: <<-SCLANG,
|
@@ -594,27 +340,6 @@ EOS
|
|
594
340
|
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
595
341
|
)
|
596
342
|
|
597
|
-
EVERYTHING_RHODES = SynthDef.new(name: "everythingrhodes", params: { :out => 0, :freq => 440, :amp => 0.1, :gate => 1,
|
598
|
-
:lforate => 1.85, :lfowidth => 0.5, :cutoff => 2000, :rq => 0.2, :pan => 0.0 },
|
599
|
-
body: <<-SCLANG,
|
600
|
-
var pulse, filter, env;
|
601
|
-
|
602
|
-
pulse = Pulse.ar(freq*[1,33.5.midiratio],[0.2,0.1],[0.7,0.3]);
|
603
|
-
env = EnvGen.ar(Env.adsr(0.0,1.0,0.8,3.0),gate,doneAction:2);
|
604
|
-
//keyboard tracking filter cutoff
|
605
|
-
filter = BLowPass4.ar(pulse,(cutoff*(env.squared))+200+freq,rq);
|
606
|
-
|
607
|
-
Out.ar(out,Pan2.ar(Mix(filter)*env*amp,pan));
|
608
|
-
SCLANG
|
609
|
-
credit: <<-EOS,
|
610
|
-
Sound recipes from:
|
611
|
-
Mitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books
|
612
|
-
adapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)
|
613
|
-
under GNU GPL 3 as per SuperCollider license
|
614
|
-
EOS
|
615
|
-
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
616
|
-
)
|
617
|
-
|
618
343
|
SPACE_THEREMIN = SynthDef.new(name: "spacetheremin", params: { :out => 0, :freq => 440, :amp => 0.1,
|
619
344
|
:gate => 1, :lforate => 6, :lfowidth => 0.5, :cutoff => 4000, :rq => 0.25, :lagTime => 0.1, :pan => 0.0 },
|
620
345
|
body: <<-SCLANG,
|
@@ -636,28 +361,6 @@ EOS
|
|
636
361
|
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
637
362
|
)
|
638
363
|
|
639
|
-
FAT_VELOCITY_BASS = SynthDef.new(name: "fatvelocitybass", params: { :out => 0, :freq => 440, :amp => 0.5,
|
640
|
-
:gate => 1, :cutoff => 2000, :rq => 0.15, :lagTime => 0.01, :pan => 0.0 },
|
641
|
-
body: <<-SCLANG,
|
642
|
-
var lfo, osc, filter, env;
|
643
|
-
|
644
|
-
var basefreq = ((freq.lag(lagTime).cpsmidi)+[0,11.95,31.03]).midicps;
|
645
|
-
osc = Saw.ar(basefreq,[0.5,0.4,0.1]); //+PinkNoise.ar(Line.kr(1.0,0,0.03));
|
646
|
-
env = EnvGen.ar(Env.adsr(0.01,1.0,1.0,0.25),gate,doneAction:2);
|
647
|
-
filter = BLowPass4.ar(osc,100+((amp.squared)*(freq+cutoff)),rq);
|
648
|
-
|
649
|
-
Out.ar(out,Pan2.ar(Mix(filter)*env*amp*0.8,pan));
|
650
|
-
SCLANG
|
651
|
-
credit: <<-EOS,
|
652
|
-
Sound recipes from:
|
653
|
-
Mitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books
|
654
|
-
adapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)
|
655
|
-
under GNU GPL 3 as per SuperCollider license
|
656
|
-
EOS
|
657
|
-
source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
|
658
|
-
)
|
659
|
-
|
660
|
-
|
661
364
|
PMC_ROTALE = SynthDef.new(name: "PMCrotale", params: { :out => 0, :freq => 261, :tone => 3, :art => 1, :amp => 0.8, :pan => 0 },
|
662
365
|
body: <<-SCLANG,
|
663
366
|
var env, mod, sig;
|
@@ -678,54 +381,6 @@ SCLANG
|
|
678
381
|
source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns",
|
679
382
|
)
|
680
383
|
|
681
|
-
KICK3 = SynthDef.new(name: "kick3", params: { :out => 0, :punch => 1, :amp => 1 },
|
682
|
-
body: <<-SCLANG,
|
683
|
-
var freq = EnvGen.kr(Env([400, 66], [0.08], -3)),
|
684
|
-
sig = Normalizer.ar(SinOsc.ar(freq, 0.5pi, punch).distort, 1) * amp
|
685
|
-
* EnvGen.kr(Env([0, 1, 0.8, 0], [0.01, 0.1, 0.2]), doneAction: 2);
|
686
|
-
Out.ar(out, sig ! 2);
|
687
|
-
SCLANG
|
688
|
-
source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns",
|
689
|
-
)
|
690
|
-
|
691
|
-
RING_KICK = SynthDef.new(name: "ringkick", params: { :out => 0, :freq => 40, :decay => 0.25, :amp => 1 },
|
692
|
-
body: <<-SCLANG,
|
693
|
-
var snd;
|
694
|
-
snd = Ringz.ar(
|
695
|
-
in: LPF.ar(
|
696
|
-
in: Impulse.ar(0),
|
697
|
-
freq: 1000),
|
698
|
-
freq: freq,
|
699
|
-
decaytime: decay,
|
700
|
-
mul: 7 * amp).tanh.sin*2;
|
701
|
-
Out.ar(out, snd!2);
|
702
|
-
SCLANG
|
703
|
-
source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns",
|
704
|
-
)
|
705
|
-
|
706
|
-
BASS1 = SynthDef.new(name: "bass1", params: { :out => 0, :freq => 440, :gate => 1, :amp => 0.5, :slideTime => 0.17, :ffreq => 1100, :width => 0.15, :detune => 1.005, :preamp => 4 },
|
707
|
-
body: <<-SCLANG,
|
708
|
-
var sig, env;
|
709
|
-
env = Env.adsr(0.01, 0.3, 0.4, 0.1);
|
710
|
-
freq = Lag.kr(freq, slideTime);
|
711
|
-
sig = Mix(VarSaw.ar([freq, freq * detune], 0, width, preamp)).distort;
|
712
|
-
sig = sig * amp * EnvGen.kr(env, gate, doneAction: 2);
|
713
|
-
sig = LPF.ar(sig, ffreq);
|
714
|
-
Out.ar(out, sig ! 2)
|
715
|
-
SCLANG
|
716
|
-
source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns",
|
717
|
-
)
|
718
|
-
|
719
|
-
KIK = SynthDef.new(name: "kik", params: { :out => 0, :basefreq => 50, :ratio => 7, :sweeptime => 0.05, :preamp => 1, :amp => 1, :decay1 => 0.3, :decay1L => 0.8, :decay2 => 0.15 },
|
720
|
-
body: <<-SCLANG,
|
721
|
-
var fcurve = EnvGen.kr(Env([basefreq * ratio, basefreq], [sweeptime], \exp)),
|
722
|
-
env = EnvGen.kr(Env([1, decay1L, 0], [decay1, decay2], -4), doneAction: 2),
|
723
|
-
sig = SinOsc.ar(fcurve, 0.5pi, preamp).distort * env * amp;
|
724
|
-
Out.ar(out, sig ! 2)
|
725
|
-
SCLANG
|
726
|
-
source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns",
|
727
|
-
)
|
728
|
-
|
729
384
|
KRAFTY_SNR = SynthDef.new(name: "kraftySnr", params: { :out => 0, :amp => 1, :freq => 2000, :rq => 3, :decay => 0.3, :pan => 0 },
|
730
385
|
body: <<-SCLANG,
|
731
386
|
var sig = PinkNoise.ar(amp),
|
@@ -831,90 +486,6 @@ SCLANG
|
|
831
486
|
source: "From https://github.com/elosine/synthdefs",
|
832
487
|
)
|
833
488
|
|
834
|
-
|
835
|
-
DRUM_KICK = SynthDef.new(name: "drum_kick", params: { :out => 0, :freq => 440, :gate => 1, :amp => 0.8, :source => nil,:pan => 0.0 },
|
836
|
-
body: <<-SCLANG,
|
837
|
-
var x1, x2, x3;
|
838
|
-
|
839
|
-
x1 = SinOsc.ar(EnvGen.kr(Env.perc(0.0001, 1.5, 1, -200), gate, 1000, 45, doneAction:2), 1, 1);
|
840
|
-
x2 = ((BPF.ar([GrayNoise.ar(6),GrayNoise.ar(6)],EnvGen.kr(Env.perc(0.001, 0.3, 1, -200), gate, 6000, 70), 1.5)).distort * Line.kr(0.3,0,0.1));
|
841
|
-
x3 = EnvGen.kr(Env.perc(0.0001, 0.09, amp, 8));
|
842
|
-
source = Pan2.ar(x1 + x2 * x3, 0);
|
843
|
-
Out.ar(out, source);
|
844
|
-
SCLANG
|
845
|
-
source: "https://github.com/willieavendano/SC-SynthDefs/blob/master/DrumMachines",
|
846
|
-
)
|
847
|
-
|
848
|
-
CHORD_BASS = SynthDef.new(name: "chord_bass", params: { :out => 0, :amp => 0.5, :sustain => 0.1, :freq => 90, :filtfreq1 => 7000, :filtfreq2 => 1000, :releaseTime => 0.5, :reverb => 0.1,:rq => 0.99 },
|
849
|
-
body: <<-SCLANG,
|
850
|
-
var env, sound;
|
851
|
-
env=EnvGen.ar(Env.perc(releaseTime:releaseTime),doneAction:2);
|
852
|
-
sound=FreeVerb.ar(RLPF.ar(LFSaw.ar(freq,0,amp),Line.kr(filtfreq1, filtfreq2,0.1),rq), reverb, 0.2, 0.5);
|
853
|
-
Out.ar(out,Pan2.ar(sound*env, 0.0))
|
854
|
-
SCLANG
|
855
|
-
source: "https://github.com/willieavendano/SC-SynthDefs/blob/master/DrumMachines",
|
856
|
-
)
|
857
|
-
|
858
|
-
MY_BASS = SynthDef.new(name: "my_bass", params: { :out => 0, :amp => 1, :sustain => 0.3, :freq => 90, :filtfreq1 => 7000, :filtfreq2 => 1000, :releaseTime => 0.5, :reverb => 0.3, :rq => 0.99 },
|
859
|
-
body: <<-SCLANG,
|
860
|
-
var env, sound;
|
861
|
-
env=EnvGen.ar(Env.perc(releaseTime:releaseTime),doneAction:2);
|
862
|
-
sound=FreeVerb.ar(RLPF.ar(LFTri.ar(freq,0,amp*2),Line.kr(filtfreq1, filtfreq2,0.1),rq) ,reverb, 0.2 ,0.5);
|
863
|
-
Out.ar(out,Pan2.ar(sound*env, 0.0))
|
864
|
-
SCLANG
|
865
|
-
source: "https://github.com/willieavendano/SC-SynthDefs/blob/master/DrumMachines",
|
866
|
-
)
|
867
|
-
|
868
|
-
SOS_SNARE = SynthDef.new(name: "SOSsnare", params: { :out => 0, :decay => 0.12, :drum_mode_level => 0.25, :snare_level => 40, :snare_tightness => 3000, :freq => 405, :amp => 0.8 },
|
869
|
-
body: <<-SCLANG,
|
870
|
-
var drum_mode_sin_1, drum_mode_sin_2, drum_mode_pmosc, drum_mode_mix,
|
871
|
-
drum_mode_env;
|
872
|
-
var snare_noise, snare_brf_1, snare_brf_2, snare_brf_3, snare_brf_4,
|
873
|
-
snare_reson;
|
874
|
-
var snare_env;
|
875
|
-
var snare_drum_mix;
|
876
|
-
|
877
|
-
drum_mode_env = EnvGen.ar(Env.perc(0.005, decay), 1.0, doneAction: 2);
|
878
|
-
drum_mode_sin_1 = SinOsc.ar(freq*0.53, 0, drum_mode_env * 0.5);
|
879
|
-
drum_mode_sin_2 = SinOsc.ar(freq, 0, drum_mode_env * 0.5);
|
880
|
-
drum_mode_pmosc = PMOsc.ar( Saw.ar(freq*0.85), 184, 0.5/1.3, mul: drum_mode_env*5, add: 0);
|
881
|
-
drum_mode_mix = Mix.new([drum_mode_sin_1, drum_mode_sin_2, drum_mode_pmosc]) * drum_mode_level;
|
882
|
-
|
883
|
-
// choose either noise source below
|
884
|
-
// snare_noise = Crackle.ar(2.01, 1);
|
885
|
-
snare_noise = LFNoise0.ar(20000, 0.1);
|
886
|
-
snare_env = EnvGen.ar(Env.perc(0.005, decay, curve:-5), 1.0, doneAction: 2);
|
887
|
-
snare_brf_1 = BRF.ar(in: snare_noise, freq: 8000, mul: 0.5, rq: 0.1);
|
888
|
-
snare_brf_2 = BRF.ar(in: snare_brf_1, freq: 5000, mul: 0.5, rq: 0.1);
|
889
|
-
snare_brf_3 = BRF.ar(in: snare_brf_2, freq: 3600, mul: 0.5, rq: 0.1);
|
890
|
-
snare_brf_4 = BRF.ar(in: snare_brf_3, freq: 2000, mul: snare_env, rq: 0.0001);
|
891
|
-
snare_reson = Resonz.ar(snare_brf_4, snare_tightness, mul: snare_level) ;
|
892
|
-
snare_drum_mix = Mix.new([drum_mode_mix, snare_reson]) * 5 * amp;
|
893
|
-
Out.ar(out, [snare_drum_mix, snare_drum_mix])
|
894
|
-
SCLANG
|
895
|
-
credit: "recipe basically from Gordon Reid
|
896
|
-
http://www.soundonsound.com/sos/Mar02/articles/synthsecrets0302.asp
|
897
|
-
programmed by Renick Bell, renick_at_gmail.com",
|
898
|
-
source: "https://github.com/willieavendano/SC-SynthDefs/blob/master/DrumMachines",
|
899
|
-
)
|
900
|
-
|
901
|
-
CLOSED_HAT = SynthDef.new(name: "closedhat", params: { :out => 0 },
|
902
|
-
body: <<-SCLANG,
|
903
|
-
var hatosc, hatenv, hatnoise, hatoutput;
|
904
|
-
|
905
|
-
hatnoise = {LPF.ar(WhiteNoise.ar(1),8000)};
|
906
|
-
|
907
|
-
hatosc = {HPF.ar(hatnoise,2400)};
|
908
|
-
hatenv = {Line.ar(1, 0, 0.1)};
|
909
|
-
|
910
|
-
hatoutput = (0.5 * hatosc * hatenv);
|
911
|
-
|
912
|
-
Out.ar(out, Pan2.ar(hatoutput, 0));
|
913
|
-
SCLANG
|
914
|
-
source: "https://github.com/willieavendano/SC-SynthDefs/blob/master/DrumMachines",
|
915
|
-
)
|
916
|
-
|
917
|
-
|
918
489
|
ACID_OTO_309 = SynthDef.new(name: "acid_oto309", params: { :out => 0, :gate => 1, :freq => 440, :amp => 0.1, :pan => 0 },
|
919
490
|
body: <<-SCLANG,
|
920
491
|
var env1, env2, son, pitch;
|
@@ -948,49 +519,6 @@ SCLANG
|
|
948
519
|
source: "https://github.com/supercollider-quarks/SynthDefPool",
|
949
520
|
)
|
950
521
|
|
951
|
-
CHEAP_PIANO = SynthDef.new(name: "cheappiano", params: { :out => 0, :freq => 440, :amp => 1, :dur => 1, :gate => 1, :pan => 0 },
|
952
|
-
body: <<-SCLANG,
|
953
|
-
var sig, in, n = 6, max = 0.04, min = 0.01, delay, pitch, detune, hammer;
|
954
|
-
freq = freq.cpsmidi;
|
955
|
-
hammer = Decay2.ar(Impulse.ar(0.001), 0.008, 0.04, LFNoise2.ar([2000,4000].asSpec.map(amp), 0.25));
|
956
|
-
sig = Mix.ar(Array.fill(3, { arg i;
|
957
|
-
detune = #[-0.04, 0, 0.03].at(i);
|
958
|
-
delay = (1/(freq + detune).midicps);
|
959
|
-
CombL.ar(hammer, delay, delay, 50 * amp)
|
960
|
-
}) );
|
961
|
-
|
962
|
-
sig = HPF.ar(sig,50) * EnvGen.ar(Env.perc(0.0001,dur, amp * 4, -1), gate: gate, doneAction:2);
|
963
|
-
Out.ar(out, Pan2.ar(sig, pan));
|
964
|
-
SCLANG
|
965
|
-
credit: "based on something posted 2008-06-17 by jeff, based on an old example by james mcc",
|
966
|
-
source: "https://github.com/supercollider-quarks/SynthDefPool",
|
967
|
-
)
|
968
|
-
|
969
|
-
CLAP_OTO_309 = SynthDef.new(name: "clap_oto309", params: { :out => 0, :amp => 0.6, :pan => 0 },
|
970
|
-
body: <<-SCLANG,
|
971
|
-
var env1, env2, son, noise1, noise2;
|
972
|
-
|
973
|
-
env1 = EnvGen.ar(Env.new([0, 1, 0, 1, 0, 1, 0, 1, 0], [0.001, 0.013, 0, 0.01, 0, 0.01, 0, 0.03], [0, -3, 0, -3, 0, -3, 0, -4]));
|
974
|
-
env2 = EnvGen.ar(Env.new([0, 1, 0], [0.02, 0.3], [0, -4]), doneAction:2);
|
975
|
-
|
976
|
-
noise1 = WhiteNoise.ar(env1);
|
977
|
-
noise1 = HPF.ar(noise1, 600);
|
978
|
-
noise1 = BPF.ar(noise1, 2000, 3);
|
979
|
-
|
980
|
-
noise2 = WhiteNoise.ar(env2);
|
981
|
-
noise2 = HPF.ar(noise2, 1000);
|
982
|
-
noise2 = BPF.ar(noise2, 1200, 0.7, 0.7);
|
983
|
-
|
984
|
-
son = noise1 + noise2;
|
985
|
-
son = son * 2;
|
986
|
-
son = son.softclip * amp;
|
987
|
-
|
988
|
-
Out.ar(out, Pan2.ar(son, pan));
|
989
|
-
SCLANG
|
990
|
-
credit: "from 08091500Acid309 by_otophilia",
|
991
|
-
source: "https://github.com/supercollider-quarks/SynthDefPool",
|
992
|
-
)
|
993
|
-
|
994
522
|
CS80_LEAD_MH = SynthDef.new(name: "cs80lead_mh", params: { :freq => 880, :amp => 0.5, :att => 0.75, :decay => 0.5,
|
995
523
|
:sus => 0.8, :rel => 1.0, :fatt => 0.75, :fdecay => 0.5, :fsus => 0.8, :frel => 1.0, :cutoff => 200, :pan => 0,
|
996
524
|
:dtune => 0.002, :vibrate => 4, :vibdepth => 0.015, :gate => 1, :ratio => 1,:out => 0 },
|
@@ -1012,111 +540,6 @@ SCLANG
|
|
1012
540
|
source: "https://github.com/supercollider-quarks/SynthDefPool",
|
1013
541
|
)
|
1014
542
|
|
1015
|
-
CYMBAL_808 = SynthDef.new(name: "cymbal808", params: { :out => 0, :baseFreq => 300, :time => 250, :amp => 0.1 },
|
1016
|
-
body: <<-SCLANG,
|
1017
|
-
//var freqs = [baseFreq, baseFreq*1.3420, baseFreq*1.2312, baseFreq*1.6532, baseFreq*1.9523, baseFreq*2.1523];
|
1018
|
-
//var freqs = [78.6, 140.44, 123.87, 219.4, 787.5, 531.3];
|
1019
|
-
//var freqs = [205.35, 254.29, 294.03, 304.41, 369.64, 522.71];
|
1020
|
-
var freqs = [205.35, 304.41, 369.64, 522.71, 540.54, 812.21];
|
1021
|
-
var signal, pulseEnv;
|
1022
|
-
|
1023
|
-
pulseEnv = EnvGen.ar(Env.new([1.0, 0.6], [time], [-0.5]), timeScale:(1/1000));
|
1024
|
-
signal = Mix.new(LFPulse.ar(freqs * 4.09));
|
1025
|
-
signal = (BinaryOpUGen('==', signal, 6.0) * 0.6) + (BinaryOpUGen('==', signal, 2.0) * 0.2) + (BinaryOpUGen('==', signal, 1.0) * 0.9); // XOR
|
1026
|
-
signal = (signal * pulseEnv) + (Mix.new(LFPulse.ar(freqs, width:0.55)) * 0.9);
|
1027
|
-
signal = RLPF.ar(signal, 7000, 0.6);
|
1028
|
-
signal = RHPF.ar(signal, 6800, 1.5);
|
1029
|
-
signal = RHPF.ar(signal, 6800, 1.5);
|
1030
|
-
signal = RHPF.ar(signal, 1200, 1.5);
|
1031
|
-
signal = signal + FreeVerb.ar(signal);
|
1032
|
-
signal = signal * EnvGen.ar(Env.new([0, 1, 0.4, 0, 0], [2, time, 50, 500], [0, -0.5, 0, -50]), timeScale:(1/1000), doneAction:2);
|
1033
|
-
signal = [signal, DelayN.ar(signal, 0.005, 0.005)];
|
1034
|
-
OffsetOut.ar(out, signal*amp ! 2);
|
1035
|
-
SCLANG
|
1036
|
-
credit: "Published on sc-users 2007-08-25 by Ryan Brown",
|
1037
|
-
source: "https://github.com/supercollider-quarks/SynthDefPool",
|
1038
|
-
)
|
1039
|
-
|
1040
|
-
CYMBALIC_MCLD = SynthDef.new(name: "cymbalic_mcld", params: { :out => 0, :pan => 0, :amp => 0.1 },
|
1041
|
-
body: <<-SCLANG,
|
1042
|
-
var lodriver, locutoffenv, hidriver, hicutoffenv, freqs, res, thwack;
|
1043
|
-
|
1044
|
-
locutoffenv = EnvGen.ar(Env.perc(0.5, 5)) * 20000 + 10;
|
1045
|
-
lodriver = LPF.ar(WhiteNoise.ar(0.1), locutoffenv);
|
1046
|
-
|
1047
|
-
hicutoffenv = 10001 - (EnvGen.ar(Env.perc(1, 3)) * 10000);
|
1048
|
-
hidriver = HPF.ar(WhiteNoise.ar(0.1), hicutoffenv);
|
1049
|
-
hidriver = hidriver * EnvGen.ar(Env.perc(1, 2, 0.25));
|
1050
|
-
|
1051
|
-
thwack = EnvGen.ar(Env.perc(0.001,0.001,1));
|
1052
|
-
|
1053
|
-
// This bit will regenerate new freqs every time you evaluate the SynthDef!
|
1054
|
-
freqs = {exprand(300, 20000)}.dup(100);
|
1055
|
-
|
1056
|
-
res = Ringz.ar(lodriver + hidriver + thwack, freqs).mean;
|
1057
|
-
|
1058
|
-
Out.ar(out, Pan2.ar(((res * 1) + (lodriver * 2) + thwack) * amp, pan));
|
1059
|
-
SCLANG
|
1060
|
-
credit: "Based on the example at http://www.mcld.co.uk/cymbalsynthesis/ published 2008 by Dan Stowell",
|
1061
|
-
source: "https://github.com/supercollider-quarks/SynthDefPool",
|
1062
|
-
)
|
1063
|
-
|
1064
|
-
KICK_CHIRP = SynthDef.new(name: "kick_chrp", params: { :out => 0, :amp => 1, :pan => 0 },
|
1065
|
-
body: <<-SCLANG,
|
1066
|
-
// a kick made using what radio folks would call a "chirp"
|
1067
|
-
var ampenv, pitchenv;
|
1068
|
-
|
1069
|
-
ampenv = EnvGen.ar(Env.perc(0, 0.2, curve: 0), doneAction: 2);
|
1070
|
-
pitchenv = EnvGen.ar(Env.perc(0, 0.1, curve: -20).exprange(0, 1000), doneAction: 0);
|
1071
|
-
|
1072
|
-
Out.ar(out, Pan2.ar(SinOsc.ar(pitchenv) * amp, pan));
|
1073
|
-
SCLANG
|
1074
|
-
credit: "by dan stowell. public domain",
|
1075
|
-
source: "https://github.com/supercollider-quarks/SynthDefPool",
|
1076
|
-
)
|
1077
|
-
|
1078
|
-
KICK_OTO_309 = SynthDef.new(name: "kick_oto309", params: { :out => 0, :amp => 0.1, :pan => 0 },
|
1079
|
-
body: <<-SCLANG,
|
1080
|
-
var env0, env1, env1m, son;
|
1081
|
-
|
1082
|
-
env0 = EnvGen.ar(Env.new([0.5, 1, 0.5, 0], [0.005, 0.06, 0.26], [-4, -2, -4]), doneAction:2);
|
1083
|
-
env1 = EnvGen.ar(Env.new([110, 59, 29], [0.005, 0.29], [-4, -5]));
|
1084
|
-
env1m = env1.midicps;
|
1085
|
-
|
1086
|
-
son = LFPulse.ar(env1m, 0, 0.5, 1, -0.5);
|
1087
|
-
son = son + WhiteNoise.ar(1);
|
1088
|
-
son = LPF.ar(son, env1m*1.5, env0);
|
1089
|
-
son = son + SinOsc.ar(env1m, 0.5, env0);
|
1090
|
-
|
1091
|
-
son = son * 1.2;
|
1092
|
-
son = son.clip2(1);
|
1093
|
-
|
1094
|
-
Out.ar(out, Pan2.ar(son * amp));
|
1095
|
-
SCLANG
|
1096
|
-
credit: "from 08091500Acid309 by_otophilia",
|
1097
|
-
source: "https://github.com/supercollider-quarks/SynthDefPool",
|
1098
|
-
)
|
1099
|
-
|
1100
|
-
ONECLAP = SynthDef.new(name: "oneclap", params: { :out => 0, :amp => 0.1, :filterfreq => 100, :rq => 0.1, :pan => 0 },
|
1101
|
-
body: <<-SCLANG,
|
1102
|
-
var env, signal, attack, noise, hpf1, hpf2;
|
1103
|
-
noise = WhiteNoise.ar(1)+SinOsc.ar([filterfreq/2,filterfreq/2+4 ], pi*0.5, XLine.kr(1,0.01,4));
|
1104
|
-
//noise = PinkNoise.ar(1)+SinOsc.ar([(filterfreq)*XLine.kr(1,0.01,3), (filterfreq+4)*XLine.kr(1,0.01,3) ], pi*0.5, XLine.kr(1,0.01,4));
|
1105
|
-
//signal = signal * SinOsc.ar(1,0.75);
|
1106
|
-
hpf1 = RLPF.ar(noise, filterfreq, rq);
|
1107
|
-
hpf2 = RHPF.ar(noise, filterfreq/2, rq/4);
|
1108
|
-
env = EnvGen.kr(Env.perc(0.003, 0.00035));
|
1109
|
-
signal = (hpf1+hpf2) * env;
|
1110
|
-
signal = CombC.ar(signal, 0.5, 0.03, 0.031)+CombC.ar(signal, 0.5, 0.03016, 0.06);
|
1111
|
-
//signal = Decay2.ar(signal, 0.5);
|
1112
|
-
signal = FreeVerb.ar(signal, 0.23, 0.15, 0.2);
|
1113
|
-
Out.ar(out, Pan2.ar(signal * amp, pan));
|
1114
|
-
DetectSilence.ar(signal, doneAction:2);
|
1115
|
-
SCLANG
|
1116
|
-
credit: "published on the sc-users list 2009-01-08 by thor",
|
1117
|
-
source: "https://github.com/supercollider-quarks/SynthDefPool",
|
1118
|
-
)
|
1119
|
-
|
1120
543
|
PING_MH = SynthDef.new(name: "ping_mh", params: { :freq => 440,:amp => 0.2,:dur => 1,:attack => 0.001,:pan => 0,:out => 0 },
|
1121
544
|
body: <<-SCLANG,
|
1122
545
|
var sig,freq2;
|
@@ -1131,46 +554,6 @@ SCLANG
|
|
1131
554
|
source: "https://github.com/supercollider-quarks/SynthDefPool",
|
1132
555
|
)
|
1133
556
|
|
1134
|
-
SNARE_OTO_309 = SynthDef.new(name: "snare_oto309", params: { :out => 0, :amp => 0.1, :pan => 0 },
|
1135
|
-
body: <<-SCLANG,
|
1136
|
-
var env0, env1, env2, env1m, oscs, noise, son;
|
1137
|
-
|
1138
|
-
env0 = EnvGen.ar(Env.new([0.5, 1, 0.5, 0], [0.005, 0.03, 0.10], [-4, -2, -4]));
|
1139
|
-
env1 = EnvGen.ar(Env.new([110, 60, 49], [0.005, 0.1], [-4, -5]));
|
1140
|
-
env1m = env1.midicps;
|
1141
|
-
env2 = EnvGen.ar(Env.new([1, 0.4, 0], [0.05, 0.13], [-2, -2]), doneAction:2);
|
1142
|
-
|
1143
|
-
oscs = LFPulse.ar(env1m, 0, 0.5, 1, -0.5) + LFPulse.ar(env1m * 1.6, 0, 0.5, 0.5, -0.25);
|
1144
|
-
oscs = LPF.ar(oscs, env1m*1.2, env0);
|
1145
|
-
oscs = oscs + SinOsc.ar(env1m, 0.8, env0);
|
1146
|
-
|
1147
|
-
noise = WhiteNoise.ar(0.2);
|
1148
|
-
noise = HPF.ar(noise, 200, 2);
|
1149
|
-
noise = BPF.ar(noise, 6900, 0.6, 3) + noise;
|
1150
|
-
noise = noise * env2;
|
1151
|
-
|
1152
|
-
son = oscs + noise;
|
1153
|
-
son = son.clip2(1) * amp;
|
1154
|
-
|
1155
|
-
Out.ar(out, Pan2.ar(son, pan));
|
1156
|
-
SCLANG
|
1157
|
-
credit: "from 08091500Acid309 by_otophilia",
|
1158
|
-
source: "https://github.com/supercollider-quarks/SynthDefPool",
|
1159
|
-
)
|
1160
|
-
|
1161
|
-
SNARE_STEIN = SynthDef.new(name: "snare_stein", params: { :out => 0, :amp => 0.1, :pan => 0 },
|
1162
|
-
body: <<-SCLANG,
|
1163
|
-
var snare, filtWhite;
|
1164
|
-
|
1165
|
-
filtWhite = LPF.ar(WhiteNoise.ar(1), 7040, 1);
|
1166
|
-
|
1167
|
-
snare = (SinOsc.ar(330,0,0.25) * EnvGen.ar(Env.perc(0.0005,0.055))) + (SinOsc.ar(185,0,0.25) * EnvGen.ar(Env.perc(0.0005,0.075))) + (filtWhite * EnvGen.ar(Env.perc(0.0005,0.2), doneAction: 2) * 0.2) + (HPF.ar(filtWhite, 523, 1) * EnvGen.ar(Env.perc(0.0005,0.183)) * 0.2);
|
1168
|
-
Out.ar(out, Pan2.ar(snare * amp * 10, pan));
|
1169
|
-
SCLANG
|
1170
|
-
credit: "Snare written by Esben Stein, I believe",
|
1171
|
-
source: "https://github.com/supercollider-quarks/SynthDefPool",
|
1172
|
-
)
|
1173
|
-
|
1174
557
|
SOS_BELL = SynthDef.new(name: "sos_bell", params: { :freq => 440, :out => 0, :amp => 0.1, :pan => 0 },
|
1175
558
|
body: <<-SCLANG,
|
1176
559
|
var son, strike, hum;
|
@@ -1198,7 +581,6 @@ SCLANG
|
|
1198
581
|
source: "https://github.com/supercollider-quarks/SynthDefPool",
|
1199
582
|
)
|
1200
583
|
|
1201
|
-
|
1202
584
|
KRGN_GEN_FMDEVIL = SynthDef.new(name: "krgn_gen_fmdevil", params: { :out => 0, :freq => 440, :amp => 1.0, :index => 3, :detune => 1.02, :gate => 1 },
|
1203
585
|
body: <<-SCLANG,
|
1204
586
|
var mod1, mod2, mod3, car, idx, env;
|
@@ -1214,62 +596,6 @@ SCLANG
|
|
1214
596
|
source: "https://github.com/mtytel/supersongs/",
|
1215
597
|
)
|
1216
598
|
|
1217
|
-
BOOP = SynthDef.new(name: "boop", params: { :out => 0, :dur => 1.0, :amp => 1.0, :freq => 440 },
|
1218
|
-
body: <<-SCLANG,
|
1219
|
-
var env, sig;
|
1220
|
-
env = EnvGen.ar(Env.new([1, 0.1, 0], [0.06, dur - 0.06]), doneAction: 2);
|
1221
|
-
sig = LFTri.ar([freq * 0.995, freq * 1.005], 0, env * amp);
|
1222
|
-
Out.ar(out, sig ! 2);
|
1223
|
-
SCLANG
|
1224
|
-
source: "https://github.com/mtytel/supersongs/",
|
1225
|
-
)
|
1226
|
-
|
1227
|
-
MARIO = SynthDef.new(name: "mario", params: { :out => 0, :freq => 440, :length => 0.1, :dur => 0.2 },
|
1228
|
-
body: <<-SCLANG,
|
1229
|
-
var snd, amp;
|
1230
|
-
snd = LFPulse.ar(freq)!2;
|
1231
|
-
amp = LFTri.ar(freq/50)!2;
|
1232
|
-
snd = snd * EnvGen.ar(Env.linen(0.001, length * dur, 0.03), doneAction:2);
|
1233
|
-
OffsetOut.ar(out, snd*amp);
|
1234
|
-
SCLANG
|
1235
|
-
source: "https://github.com/mtytel/supersongs/",
|
1236
|
-
)
|
1237
|
-
|
1238
|
-
MARIO_BASS = SynthDef.new(name: "mariobass", params: { :out => 0, :amp => 1.0, :freq => 440, :length => 0.1, :dur => 0.2 },
|
1239
|
-
body: <<-SCLANG,
|
1240
|
-
var snd;
|
1241
|
-
snd = LFTri.ar(freq)!2;
|
1242
|
-
snd = snd * EnvGen.ar(Env.linen(0.001, length * dur, 0.03), doneAction:2);
|
1243
|
-
OffsetOut.ar(out, snd*amp);
|
1244
|
-
SCLANG
|
1245
|
-
source: "https://github.com/mtytel/supersongs/",
|
1246
|
-
)
|
1247
|
-
|
1248
|
-
BEAT = SynthDef.new(name: "beat", params: { :out => 0, :amp => 1.0, :sustain => 0.1, :dur => 0.1 },
|
1249
|
-
body: <<-SCLANG,
|
1250
|
-
var snd;
|
1251
|
-
snd = BrownNoise.ar()!2;
|
1252
|
-
snd = HPF.ar(snd, 2000);
|
1253
|
-
snd = snd * EnvGen.ar(Env.linen(0.005, dur * sustain, 0.01), doneAction:2);
|
1254
|
-
OffsetOut.ar(out, snd*amp);
|
1255
|
-
SCLANG
|
1256
|
-
source: "https://github.com/mtytel/supersongs/",
|
1257
|
-
)
|
1258
|
-
|
1259
|
-
BASS2 = SynthDef.new(name: "bass2", params: { :out => 0, :freq => 440, :gate => 1, :amp => 1.0, :slideTime => 0.17, :ffreq => 1100, :width => 0.15, :detune => 1.005, :preamp => 4, :dur => 0.2, :length => 0.2 },
|
1260
|
-
body: <<-SCLANG,
|
1261
|
-
var sig,
|
1262
|
-
env = Env.adsr(0.01, 0.3, 0.4, 0.1);
|
1263
|
-
freq = Lag.kr(freq, slideTime);
|
1264
|
-
sig = Mix(VarSaw.ar([freq, freq * detune], 0, width, preamp)).distort * amp
|
1265
|
-
* EnvGen.kr(env, gate * dur * length , doneAction: 2);
|
1266
|
-
sig = LPF.ar(sig, ffreq);
|
1267
|
-
Out.ar(out, sig ! 2)
|
1268
|
-
SCLANG
|
1269
|
-
source: "https://github.com/mtytel/supersongs/",
|
1270
|
-
)
|
1271
|
-
|
1272
|
-
|
1273
599
|
DROPLET = SynthDef.new(name: "droplet", params: { :amp => 0.2, :out => 0, :freq => 3000, :dur => 1, :rate => 1 },
|
1274
600
|
body: <<-SCLANG,
|
1275
601
|
/**
|
@@ -1341,8 +667,6 @@ SCLANG
|
|
1341
667
|
source: "https://github.com/johncburnett/Matrix",
|
1342
668
|
)
|
1343
669
|
|
1344
|
-
|
1345
|
-
|
1346
670
|
POOM = SynthDef.new(name: "poom", params: { :out => 0, :freq => 400, :level => 0.1 },
|
1347
671
|
body: <<-SCLANG,
|
1348
672
|
var env = Env.perc(level: level);
|
@@ -1366,7 +690,6 @@ SCLANG
|
|
1366
690
|
source: "https://github.com/philthomson/imp",
|
1367
691
|
)
|
1368
692
|
|
1369
|
-
|
1370
693
|
AEOLIAN_STRINGS = SynthDef.new(name: "aeolian_strings", params: { :out => 0 },
|
1371
694
|
body: <<-SCLANG,
|
1372
695
|
// aeolian strings
|
@@ -1437,38 +760,6 @@ SCLANG
|
|
1437
760
|
)
|
1438
761
|
|
1439
762
|
|
1440
|
-
FM_TOM = SynthDef.new(name: "fmtom", params: { :out => 0, :freq => 200, :gate => 1, :vol => 0.5 },
|
1441
|
-
body: <<-SCLANG,
|
1442
|
-
var tom = PMOsc.ar(freq, 280, Line.kr(0.0, 12, 1), mul: EnvGen.ar(Env.adsr(0.003,0.2,0,0), gate, levelScale: 0.3, doneAction: 2));
|
1443
|
-
Out.ar(out, tom * vol ! 2);
|
1444
|
-
SCLANG
|
1445
|
-
source: "https://github.com/mattvears/supercollider-stuff",
|
1446
|
-
)
|
1447
|
-
|
1448
|
-
BASS_303 = SynthDef.new(name: "bass303", params: { :out => 0, :freq => 440, :gate => 1, :lpf => 1000, :res => 0.8, :width => 0.05, :amp => 1, :vol => 0.5 },
|
1449
|
-
body: <<-SCLANG,
|
1450
|
-
var sig, env;
|
1451
|
-
var sig2, env2;
|
1452
|
-
|
1453
|
-
// ghetto 303
|
1454
|
-
env = Env.adsr(0.05, 2, 0, 0.3, 0.8, -12);
|
1455
|
-
sig = LFPulse.ar(freq, width: width) + Pulse.ar(freq, width: 0.9);
|
1456
|
-
sig = sig * EnvGen.ar(env, gate, amp, doneAction: 2);
|
1457
|
-
sig = RLPF.ar(sig, lpf, res);
|
1458
|
-
|
1459
|
-
env2 = Env.adsr(0.03, 2, 0, 0.3, 0.8, -13);
|
1460
|
-
sig2 = LFPulse.ar(freq, width: width) + Pulse.ar(freq, width: 0.9);
|
1461
|
-
sig2 = FreqShift.ar(sig2, 3);
|
1462
|
-
sig2 = sig2 * EnvGen.ar(env2, gate, amp, doneAction: 2);
|
1463
|
-
sig2 = RLPF.ar(sig2, lpf, res);
|
1464
|
-
|
1465
|
-
|
1466
|
-
Out.ar(out, [sig * vol, sig2 * vol]);
|
1467
|
-
|
1468
|
-
SCLANG
|
1469
|
-
source: "https://github.com/mattvears/supercollider-stuff",
|
1470
|
-
)
|
1471
|
-
|
1472
763
|
# (
|
1473
764
|
# x = Signal.sineFill(513, [0.5, 0.2, 0.3, 0.0, 0.2]);
|
1474
765
|
# // x.plot;
|
@@ -1502,44 +793,6 @@ SCLANG
|
|
1502
793
|
# source: "https://github.com/mattvears/supercollider-stuff",
|
1503
794
|
# )
|
1504
795
|
|
1505
|
-
SNARE_909 = SynthDef.new(name: "snare909", params: { :out => 0, :lpFreq => 1000, :vol => 1, :gate => 1 },
|
1506
|
-
body: <<-SCLANG,
|
1507
|
-
var sig1, sig2;
|
1508
|
-
var triEnv;
|
1509
|
-
var shifted1;
|
1510
|
-
var shifted2;
|
1511
|
-
var sinEnv;
|
1512
|
-
var sin1, sin2;
|
1513
|
-
var mixed;
|
1514
|
-
var sig3;
|
1515
|
-
var noiseEnv;
|
1516
|
-
|
1517
|
-
// tri -> final mixer
|
1518
|
-
triEnv = Env.adsr(0, 0.4, 0, 0, curve: -4, peakLevel: 0.5);
|
1519
|
-
sig1 = LFTri.ar(111, 0, 0.5) * EnvGen.kr(triEnv, gate: gate, doneAction: 2);
|
1520
|
-
shifted1 = FreqShift.ar(sig1, 175);
|
1521
|
-
shifted2 = FreqShift.ar(sig1, 224);
|
1522
|
-
sig1 = Mix.new([shifted1, shifted2]);
|
1523
|
-
|
1524
|
-
// sines -> final mixer
|
1525
|
-
sin1 = SinOsc.ar(330, mul: 0.2);
|
1526
|
-
sin2 = SinOsc.ar(180, mul: 0.2);
|
1527
|
-
sinEnv = Env.adsr(0, 0.2, 0, 0);
|
1528
|
-
sig2 = Mix.new([sin1, sin2]) * EnvGen.kr(sinEnv, gate: gate, doneAction: 2);
|
1529
|
-
|
1530
|
-
// noise -> final mixer
|
1531
|
-
noiseEnv = Env.adsr(0, 0.3, 0, 0);
|
1532
|
-
sig3 = LPF.ar(WhiteNoise.ar() * EnvGen.kr(noiseEnv, gate: gate, doneAction: 2), 1000);
|
1533
|
-
sig3 = HPF.ar(sig3, 600);
|
1534
|
-
|
1535
|
-
mixed = Mix.new([sig1, sig2, sig3]);
|
1536
|
-
mixed = LPF.ar(mixed, lpFreq) * vol;
|
1537
|
-
Out.ar(out, mixed ! 2);
|
1538
|
-
SCLANG
|
1539
|
-
source: "https://github.com/mattvears/supercollider-stuff",
|
1540
|
-
)
|
1541
|
-
|
1542
|
-
|
1543
796
|
HOOVER = SynthDef.new(name: "hoover", params: { :freq => 220, :amp => 0.1, :lgu => 0.1, :lgd => 1, :gate => 1 },
|
1544
797
|
body: <<-SCLANG,
|
1545
798
|
var pwm, mix, env;
|
@@ -1571,7 +824,6 @@ SCLANG
|
|
1571
824
|
source: "https://github.com/rukano/scprivatepool",
|
1572
825
|
)
|
1573
826
|
|
1574
|
-
|
1575
827
|
SAWPULSE = SynthDef.new(name: "sawpulse", params: { :out => 0, :freq => 440, :gate => 0.5, :plfofreq => 6, :mw => 0, :ffreq => 2000, :rq => 0.3, :freqlag => 0.05, :amp => 1 },
|
1576
828
|
body: <<-SCLANG,
|
1577
829
|
var sig, plfo, fcurve;
|
@@ -1618,24 +870,6 @@ SCLANG
|
|
1618
870
|
source: "https://github.com/bwestergard/supercollider-experiments",
|
1619
871
|
)
|
1620
872
|
|
1621
|
-
SNARE3 = SynthDef.new(name: "snare", params: { :amp => 1, :dur => 0.05, :out => 0 },
|
1622
|
-
body: <<-SCLANG,
|
1623
|
-
dur = dur * 16;
|
1624
|
-
Out.ar(out, amp * XLine.ar(2,1/1000,dur) * BPF.ar(PinkNoise.ar(0.8), XLine.ar(20000,1000,dur, doneAction:2), 0.8).dup);
|
1625
|
-
SCLANG
|
1626
|
-
source: "https://github.com/bwestergard/supercollider-experiments",
|
1627
|
-
)
|
1628
|
-
|
1629
|
-
KICK1 = SynthDef.new(name: "kick", params: { :out => 0, :amp => 1, :dur => 0.05 },
|
1630
|
-
body: <<-SCLANG,
|
1631
|
-
var tone;
|
1632
|
-
tone = SinOsc.ar(XLine.ar(800,2,dur*4, mul: 0.2, doneAction:2));
|
1633
|
-
Out.ar(out, amp * tone.dup * XLine.ar(2,1/1000,dur*4));
|
1634
|
-
SCLANG
|
1635
|
-
source: "https://github.com/bwestergard/supercollider-experiments",
|
1636
|
-
)
|
1637
|
-
|
1638
|
-
|
1639
873
|
POLY1 = SynthDef.new(name: "poly1", params: { :out => 0, :gate => 1, :freq => 440 },
|
1640
874
|
body: <<-SCLANG,
|
1641
875
|
var aEnv,fEnv,osc1, osc2,flt;
|
@@ -1649,7 +883,6 @@ SCLANG
|
|
1649
883
|
source: "https://github.com/k-o-l-e-k-t-i-v/supercollider",
|
1650
884
|
)
|
1651
885
|
|
1652
|
-
|
1653
886
|
end
|
1654
887
|
end
|
1655
888
|
end
|