Module: Musicality::SuperCollider::SynthDefs
- Defined in:
- lib/musicality/performance/supercollider/synthdefs/bass.rb,
lib/musicality/performance/supercollider/synthdefs/toms.rb,
lib/musicality/performance/supercollider/synthdefs/claps.rb,
lib/musicality/performance/supercollider/synthdefs/kicks.rb,
lib/musicality/performance/supercollider/synthdefs/mario.rb,
lib/musicality/performance/supercollider/synthdefs/other.rb,
lib/musicality/performance/supercollider/synthdefs/hihats.rb,
lib/musicality/performance/supercollider/synthdefs/pianos.rb,
lib/musicality/performance/supercollider/synthdefs/snares.rb,
lib/musicality/performance/supercollider/synthdefs/volume.rb,
lib/musicality/performance/supercollider/synthdefs/cymbals.rb
Constant Summary collapse
- MOOG_BASS =
SynthDef.new(name: "moogbass", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1, :cutoff => 1000, :gain => 2.0, :lagamount => 0.01, :pan => 0.0 }, body: " var osc, filter, env, filterenv;\n\n 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));\n filterenv = EnvGen.ar(Env.adsr(0.2,0.0,1.0,0.2),gate,doneAction:2);\n filter = MoogFF.ar(osc,cutoff*(1.0+(0.5*filterenv)),gain);\n env = EnvGen.ar(Env.adsr(0.001,0.3,0.9,0.2),gate,doneAction:2);\n\n Out.ar(out,Pan2.ar((0.7*filter+(0.3*filter.distort))*env*amp*1.5,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- MOOG_BASS2 =
SynthDef.new(name: "moogbass2", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1, :attackTime => 0.2, :fenvamount => 0.5, :cutoff => 1000, :gain => 2.0, :pan => 0.0 }, body: " var osc, filter, env, filterenv;\n\n //alternative: richer source\n osc = Mix(Pulse.ar(freq.lag(0.05)*[1.0,1.001,2.0],Rand(0.45,0.5)!3,0.33));\n filterenv = EnvGen.ar(Env.adsr(attackTime,0.0,1.0,0.2),gate,doneAction:2);\n filter = MoogFF.ar(osc,cutoff*(1.0+(fenvamount*filterenv)),gain);\n env = EnvGen.ar(Env.adsr(0.001,0.3,0.9,0.2),gate,doneAction:2);\n\n Out.ar(out,Pan2.ar((0.7*filter+(0.3*filter.distort))*env*amp,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- BASS_FOUNDATION =
SynthDef.new(name: "bassfoundation", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1, :cutoff => 1000, :rq => 0.5, :pan => 0.0 }, body: " var osc, filter, env, filterenv;\n\n osc = Saw.ar(freq);\n filterenv = EnvGen.ar(Env.adsr(0.0,0.5,0.2,0.2),gate,doneAction:2);\n filter = RLPF.ar(osc,cutoff*filterenv+100,rq);\n env = EnvGen.ar(Env.adsr(0.01,0.0,0.9,0.05),gate,doneAction:2);\n\n Out.ar(out,Pan2.ar(filter*env*amp*2,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- BASS_HIGHEND =
SynthDef.new(name: "basshighend", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1, :cutoff => 3000, :rq => 0.1, :drive => 2.0, :pan => 0.0 }, body: " var osc, filter, env, filterenv;\n var ab;\n\n //osc = Mix(VarSaw.ar(freq*[0.25,1,1.5],Rand(0.0,1.0)!3,0.9,[0.5,0.4,0.1]));\n osc = Mix(Saw.ar(freq*[0.25,1,1.5],[0.5,0.4,0.1]));\n //osc = Mix(DPW4Saw.ar(freq*[0.25,1,1.5],[0.5,0.4,0.1]));\n filterenv = EnvGen.ar(Env.adsr(0.0,0.5,0.2,0.2),gate,doneAction:2);\n filter = RLPF.ar(osc,cutoff*filterenv+100,rq);\n\n //distortion\n //filter = filter.distort.softclip;\n\n ab = abs(filter);\n filter = (filter*(ab + drive)/(filter ** 2 + (drive - 1) * ab + 1));\n\n //remove low end\n filter = BLowShelf.ar(filter,300,1.0,-12);\n //dip at 1600Hz\n filter = BPeakEQ.ar(filter,1600,1.0,-6);\n\n env = EnvGen.ar(Env.adsr(0.01,0.0,0.9,0.05),gate,doneAction:2);\n\n Out.ar(out,Pan2.ar(filter*env*amp*2,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- FAT_VELOCITY_BASS =
SynthDef.new(name: "fatvelocitybass", params: { :out => 0, :freq => 440, :amp => 0.5, :gate => 1, :cutoff => 2000, :rq => 0.15, :lagTime => 0.01, :pan => 0.0 }, body: " var lfo, osc, filter, env;\n\n var basefreq = ((freq.lag(lagTime).cpsmidi)+[0,11.95,31.03]).midicps;\n osc = Saw.ar(basefreq,[0.5,0.4,0.1]); //+PinkNoise.ar(Line.kr(1.0,0,0.03));\n env = EnvGen.ar(Env.adsr(0.01,1.0,1.0,0.25),gate,doneAction:2);\n filter = BLowPass4.ar(osc,100+((amp.squared)*(freq+cutoff)),rq);\n\n Out.ar(out,Pan2.ar(Mix(filter)*env*amp*0.8,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- 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 }, body: " var sig, env;\n env = Env.adsr(0.01, 0.3, 0.4, 0.1);\n freq = Lag.kr(freq, slideTime);\n sig = Mix(VarSaw.ar([freq, freq * detune], 0, width, preamp)).distort;\n sig = sig * amp * EnvGen.kr(env, gate, doneAction: 2);\n sig = LPF.ar(sig, ffreq);\n Out.ar(out, sig ! 2)\n", source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns", )
- 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 }, body: " var env, sound;\n env=EnvGen.ar(Env.perc(releaseTime:releaseTime),doneAction:2);\n sound=FreeVerb.ar(RLPF.ar(LFSaw.ar(freq,0,amp),Line.kr(filtfreq1, filtfreq2,0.1),rq), reverb, 0.2, 0.5);\n Out.ar(out,Pan2.ar(sound*env, 0.0))\n", source: "https://github.com/willieavendano/SC-SynthDefs/blob/master/DrumMachines", )
- 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 }, body: " var env, sound;\n env=EnvGen.ar(Env.perc(releaseTime:releaseTime),doneAction:2);\n sound=FreeVerb.ar(RLPF.ar(LFTri.ar(freq,0,amp*2),Line.kr(filtfreq1, filtfreq2,0.1),rq) ,reverb, 0.2 ,0.5);\n Out.ar(out,Pan2.ar(sound*env, 0.0))\n", source: "https://github.com/willieavendano/SC-SynthDefs/blob/master/DrumMachines", )
- 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 }, body: " var sig,\n env = Env.adsr(0.01, 0.3, 0.4, 0.1);\n freq = Lag.kr(freq, slideTime);\n sig = Mix(VarSaw.ar([freq, freq * detune], 0, width, preamp)).distort * amp\n * EnvGen.kr(env, gate * dur * length , doneAction: 2);\n sig = LPF.ar(sig, ffreq);\n Out.ar(out, sig ! 2)\n", source: "https://github.com/mtytel/supersongs/", )
- 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 }, body: " var sig, env;\n var sig2, env2;\n\n // ghetto 303\n env = Env.adsr(0.05, 2, 0, 0.3, 0.8, -12);\n sig = LFPulse.ar(freq, width: width) + Pulse.ar(freq, width: 0.9);\n sig = sig * EnvGen.ar(env, gate, amp, doneAction: 2);\n sig = RLPF.ar(sig, lpf, res);\n\n env2 = Env.adsr(0.03, 2, 0, 0.3, 0.8, -13);\n sig2 = LFPulse.ar(freq, width: width) + Pulse.ar(freq, width: 0.9);\n sig2 = FreqShift.ar(sig2, 3);\n sig2 = sig2 * EnvGen.ar(env2, gate, amp, doneAction: 2);\n sig2 = RLPF.ar(sig2, lpf, res);\n\n\n Out.ar(out, [sig * vol, sig2 * vol]);\n\n", source: "https://github.com/mattvears/supercollider-stuff", )
- BASS4 =
SynthDef.new(name: "bass4", params: { :out => 0, :gate => 1, :freq => 440 }, body: " var aEnv, fEnv, osc, flt;\n aEnv = EnvGen.kr(Env.asr(0, 1, 1), gate, doneAction: 2);\n fEnv = EnvGen.kr(Env.perc(0, 3), levelScale: 6000);\n osc = Mix([Saw.ar(freq * [1, 1.005]), Pulse.ar(freq / 2, 0.5)]);\n flt = LPF.ar(osc, fEnv + 100, aEnv);\n Out.ar(out, flt);\n", credit: "From the Kraftwerk 'Spacelab' example in SuperCollider/examples by jy", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- TOM1 =
SynthDef.new(name: "tom1", params: { :out => 0, :freq => 200, :amp => 1, :pan => 0.0 }, body: " var env, tom;\n env = EnvGen.kr(Env.perc(0.001, 0.1, 1, -5), 1, doneAction:2);\n tom = SinOsc.ar(freq) * env;\n Out.ar(out, Pan2.ar(tom, pan, amp));\n", source: "http://superdupercollider.blogspot.com/2009/02/simple-drum-machine.html" )
- FM_TOM =
SynthDef.new(name: "fmtom", params: { :out => 0, :freq => 200, :gate => 1, :amp => 1 }, body: " 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));\n Out.ar(out, tom * amp ! 2);\n", source: "https://github.com/mattvears/supercollider-stuff", )
- ONECLAP =
SynthDef.new(name: "oneclap", params: { :out => 0, :amp => 0.1, :filterfreq => 100, :rq => 0.1, :pan => 0 }, body: "var env, signal, attack, noise, hpf1, hpf2;\n noise = WhiteNoise.ar(1)+SinOsc.ar([filterfreq/2,filterfreq/2+4 ], pi*0.5, XLine.kr(1,0.01,4));\n //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));\n //signal = signal * SinOsc.ar(1,0.75);\n hpf1 = RLPF.ar(noise, filterfreq, rq);\n hpf2 = RHPF.ar(noise, filterfreq/2, rq/4);\n env = EnvGen.kr(Env.perc(0.003, 0.00035));\n signal = (hpf1+hpf2) * env;\n signal = CombC.ar(signal, 0.5, 0.03, 0.031)+CombC.ar(signal, 0.5, 0.03016, 0.06);\n //signal = Decay2.ar(signal, 0.5);\n signal = FreeVerb.ar(signal, 0.23, 0.15, 0.2);\n Out.ar(out, Pan2.ar(signal * amp, pan));\n DetectSilence.ar(signal, doneAction:2);\n", credit: "published on the sc-users list 2009-01-08 by thor", source: "https://github.com/supercollider-quarks/SynthDefPool", )
- CLAP_OTO_309 =
SynthDef.new(name: "clap_oto309", params: { :out => 0, :amp => 0.6, :pan => 0 }, body: " var env1, env2, son, noise1, noise2;\n\n 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]));\n env2 = EnvGen.ar(Env.new([0, 1, 0], [0.02, 0.3], [0, -4]), doneAction:2);\n\n noise1 = WhiteNoise.ar(env1);\n noise1 = HPF.ar(noise1, 600);\n noise1 = BPF.ar(noise1, 2000, 3);\n\n noise2 = WhiteNoise.ar(env2);\n noise2 = HPF.ar(noise2, 1000);\n noise2 = BPF.ar(noise2, 1200, 0.7, 0.7);\n\n son = noise1 + noise2;\n son = son * 2;\n son = son.softclip * amp;\n\n Out.ar(out, Pan2.ar(son, pan));\n", credit: "from 08091500Acid309 by_otophilia", source: "https://github.com/supercollider-quarks/SynthDefPool", )
- CLAP1 =
SynthDef.new(name: "clap1", params: { :out => 0, :amp => 0.5 }, body: " var env1, env2, sig, noise1, noise2;\n\n env1 = EnvGen.ar(Env(\n [0, 1, 0, 1, 0, 1, 0, 1, 0],\n [0.001, 0.013, 0, 0.01, 0, 0.01, 0, 0.03],\n [0, -3, 0, -3, 0, -3, 0, -4]\n ));\n env2 = EnvGen.ar(Env([0, 1, 0], [0.02, 0.3], [0, -4]), doneAction:2);\n\n noise1 = WhiteNoise.ar(env1);\n noise1 = HPF.ar(noise1, 600);\n noise1 = BPF.ar(noise1, 2000, 3);\n\n noise2 = WhiteNoise.ar(env2);\n noise2 = HPF.ar(noise2, 1000);\n noise2 = BPF.ar(noise2, 1200, 0.7, 0.7);\n\n sig = noise1 + noise2;\n sig = sig * 2;\n sig = sig.softclip * amp;\n\n Out.ar(out, sig.dup);\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- KICK808 =
SynthDef.new(name: "kick808", params: { :out => 0, :freq => 440, :amp => 0.1, :ringTime => 10.0, :releaseTime => 1.0, :distortion => 0.1, :pan => -0.1 }, body: " var impulse, filter, env;\n\n impulse = Impulse.ar(0);\n filter = Ringz.ar(impulse,XLine.ar(freq,60,0.1),ringTime);\n env = EnvGen.ar(Env.perc(0.001,releaseTime),doneAction:2);\n filter = (1.0-distortion)*filter + (distortion*(filter.distort));\n\n Out.ar(out,Pan2.ar(filter*env*amp,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- KICK2 =
SynthDef.new(name: "kick2", params: { :out => 0, :amp => 0.2 }, body: " var env0, env1, env1m, sig;\n\n env0 = EnvGen.ar(\n Env([0.5, 1, 0.5, 0], [0.005, 0.06, 0.26], [-4, -2, -4]), doneAction:2\n );\n env1 = EnvGen.ar(Env([110, 59, 29], [0.005, 0.29], [-4, -5]));\n env1m = env1.midicps;\n\n sig = LFPulse.ar(env1m, 0, 0.5, 1, -0.5);\n sig = sig + WhiteNoise.ar(1);\n sig = LPF.ar(sig, env1m * 1.5, env0);\n sig = sig + SinOsc.ar(env1m, 0.5, env0);\n\n sig = sig * 1.2;\n sig = sig.clip2(1);\n\n Out.ar(out, sig.dup * amp);\n", credit: "Reformatted for the Roundhouse Synth Design course from 08091500Acid309 by otophilia from SuperCollider/examples folder", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- KICK3 =
SynthDef.new(name: "kick3", params: { :out => 0, :punch => 1, :amp => 1 }, body: " var freq = EnvGen.kr(Env([400, 66], [0.08], -3)),\n sig = Normalizer.ar(SinOsc.ar(freq, 0.5pi, punch).distort, 1) * amp\n * EnvGen.kr(Env([0, 1, 0.8, 0], [0.01, 0.1, 0.2]), doneAction: 2);\n Out.ar(out, sig ! 2);\n", source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns", )
- RING_KICK =
SynthDef.new(name: "ringkick", params: { :out => 0, :freq => 40, :decay => 0.05, :amp => 1 }, body: " var snd;\n snd = Ringz.ar(\n in: LPF.ar(\n in: Impulse.ar(0),\n freq: 1000),\n freq: freq,\n decaytime: decay,\n mul: 7 * amp).tanh.sin*2;\n Out.ar(out, snd!2);\n", source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns", )
- KICK_CHIRP =
SynthDef.new(name: "kick_chrp", params: { :out => 0, :amp => 1, :pan => 0 }, body: " // a kick made using what radio folks would call a \"chirp\"\n var ampenv, pitchenv;\n\n ampenv = EnvGen.ar(Env.perc(0, 0.2, curve: 0), doneAction: 2);\n pitchenv = EnvGen.ar(Env.perc(0, 0.1, curve: -20).exprange(0, 1000), doneAction: 0);\n\n Out.ar(out, Pan2.ar(SinOsc.ar(pitchenv) * amp, pan));\n", credit: "by dan stowell. public domain", source: "https://github.com/supercollider-quarks/SynthDefPool", )
- KICK_OTO_309 =
SynthDef.new(name: "kick_oto309", params: { :out => 0, :amp => 0.1, :pan => 0 }, body: " var env0, env1, env1m, son;\n\n env0 = EnvGen.ar(Env.new([0.5, 1, 0.5, 0], [0.005, 0.06, 0.26], [-4, -2, -4]), doneAction:2);\n env1 = EnvGen.ar(Env.new([110, 59, 29], [0.005, 0.29], [-4, -5]));\n env1m = env1.midicps;\n\n son = LFPulse.ar(env1m, 0, 0.5, 1, -0.5);\n son = son + WhiteNoise.ar(1);\n son = LPF.ar(son, env1m*1.5, env0);\n son = son + SinOsc.ar(env1m, 0.5, env0);\n\n son = son * 1.2;\n son = son.clip2(1);\n\n Out.ar(out, Pan2.ar(son * amp));\n", credit: "from 08091500Acid309 by_otophilia", source: "https://github.com/supercollider-quarks/SynthDefPool", )
- DRUM_KICK =
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 },
body: " var fcurve = EnvGen.kr(Env([basefreq * ratio, basefreq], [sweeptime], \\exp)),\n env = EnvGen.kr(Env([1, decay1L, 0], [decay1, decay2], -4), doneAction: 2),\n sig = SinOsc.ar(fcurve, 0.5pi, preamp).distort * env * amp;\n Out.ar(out, sig ! 2)\n",SCLANG
source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns",)
SynthDef.new(name: "drum_kick", params: { :out => 0, :freq => 440, :gate => 1, :amp => 0.8, :source => nil,:pan => 0.0 }, body: " var x1, x2, x3;\n\n x1 = SinOsc.ar(EnvGen.kr(Env.perc(0.0001, 1.5, 1, -200), gate, 1000, 45, doneAction:2), 1, 1);\n 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));\n x3 = EnvGen.kr(Env.perc(0.0001, 0.09, amp, 8));\n source = Pan2.ar(x1 + x2 * x3, 0);\n Out.ar(out, source);\n", source: "https://github.com/willieavendano/SC-SynthDefs/blob/master/DrumMachines", )
- KICK1 =
SynthDef.new(name: "kick", params: { :out => 0, :amp => 1, :dur => 0.05 }, body: "var tone;\ntone = SinOsc.ar(XLine.ar(800,2,dur*4, mul: 0.2, doneAction:2));\nOut.ar(out, amp * tone.dup * XLine.ar(2,1/1000,dur*4));\n", source: "https://github.com/bwestergard/supercollider-experiments", )
- MARIO =
SynthDef.new(name: "mario", params: { :out => 0, :freq => 440, :length => 0.1, :dur => 0.2 }, body: " var snd, amp;\n snd = LFPulse.ar(freq)!2;\n amp = LFTri.ar(freq/50)!2;\n snd = snd * EnvGen.ar(Env.linen(0.001, length * dur, 0.03), doneAction:2);\n OffsetOut.ar(out, snd*amp);\n", source: "https://github.com/mtytel/supersongs/", )
- MARIO_BASS =
SynthDef.new(name: "mariobass", params: { :out => 0, :amp => 1.0, :freq => 440, :length => 0.1, :dur => 0.2 }, body: " var snd;\n snd = LFTri.ar(freq)!2;\n snd = snd * EnvGen.ar(Env.linen(0.001, length * dur, 0.03), doneAction:2);\n OffsetOut.ar(out, snd*amp);\n", source: "https://github.com/mtytel/supersongs/", )
- BEAT =
SynthDef.new(name: "beat", params: { :out => 0, :amp => 1.0, :sustain => 0.1, :dur => 0.1 }, body: " var snd;\n snd = BrownNoise.ar()!2;\n snd = HPF.ar(snd, 2000);\n snd = snd * EnvGen.ar(Env.linen(0.005, dur * sustain, 0.01), doneAction:2);\n OffsetOut.ar(out, snd*amp);\n", source: "https://github.com/mtytel/supersongs/", )
- BOOP =
SynthDef.new(name: "boop", params: { :out => 0, :dur => 1.0, :amp => 1.0, :freq => 440 }, body: " var env, sig;\n env = EnvGen.ar(Env.new([1, 0.1, 0], [0.06, dur - 0.06]), doneAction: 2);\n sig = LFTri.ar([freq * 0.995, freq * 1.005], 0, env * amp);\n Out.ar(out, sig ! 2);\n", source: "https://github.com/mtytel/supersongs/", )
- AXEL =
DEFAULT = SynthDef.new(name: "axel", params: { :freq => 440, :lpfreq => 12000, :rq => 0.2, :gate => 1, :out => 0 }, body: " var chorus = LFNoise2.ar(1).range(0.99, 1.01);\n var saw1 = LFSaw.ar(freq * chorus, 0, 0.1);\n var saw2 = LFSaw.ar((freq.cpsmidi - 0.1).midicps * chorus, 0, 0.1);\n var tri = LFTri.ar(freq * chorus, 0, 0.1);\n var mix = Mix([saw1, saw2, tri]);\n var lpf = RLPF.ar(mix, lpfreq, rq);\n var env = EnvGen.ar(Env.adsr(0.3, 0.6, 0.5, 0.25), gate, doneAction: 2);\n Out.ar(out, Pan2.ar(lpf * env, 0));\n", credit: "By Arthur Carabott, based on Sound on Sound article", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- BRASS =
SynthDef.new(name: "brass", params: { :freq => 220, :detune1 => 1, :detune2 => 0.5, :ffreq => 12000, :rq => 0.4, :pan => 0, :gate => 1, :out => 0 }, body: " var sig, env, fenv;\n\n sig = Mix([freq, freq - detune1, freq + detune2, freq / 2].collect {|freq|\n LFSaw.ar(freq);\n });\n fenv = EnvGen.kr(Env([ffreq, 0], [0.06], \\\\sin));\n sig = RHPF.ar(sig, fenv, rq);\n env = EnvGen.ar(Env.asr(0.01, 1, 0.1), gate, doneAction:2);\n\n Out.ar(out, Pan2.ar(sig * env * 0.2, pan));\n", credit: "Based on Sound on Sound Synth Secrets Part 25 by Arthur Carabott", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- RES =
SynthDef.new(name: "res", params: { :out => 0, :gate => 1, :freq => 440, :ffreq => 1500 }, body: " var aEnv, osc, flt;\n aEnv = EnvGen.kr(Env.perc(0, 0.7), gate, doneAction: 2);\n osc = Mix([Saw.ar(freq), Pulse.ar(freq / 2, 0.5)]);\n flt = RLPF.ar(osc, ffreq, 0.1, aEnv);\n Out.ar(out, Pan2.ar(flt, 0));\n", credit: "From the Kraftwerk 'Spacelab' example in SuperCollider/examples by jy", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- POLY2 =
SynthDef.new(name: "poly2", params: { :out => 0, :gate => 1, :freq => 440 }, body: " var aEnv, fEnv, osc1, osc2, flt;\n aEnv = EnvGen.kr(Env.asr(0.2, 1, 0.1), gate, doneAction: 2);\n fEnv = EnvGen.kr(Env.asr(7, 1, 0.2), levelScale: 12000);\n osc1 = Pulse.ar(freq * [1, 1.007], LFCub.kr(2, 0, 0.3, 0.5));\n osc2 = Pulse.ar(freq / 2, 0.3);\n flt = RLPF.ar(osc1 + osc2, fEnv, 0.9, aEnv);\n Out.ar(out, flt);\n", credit: "From the Kraftwerk 'Spacelab' example in SuperCollider/examples by jy", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- SOLO =
SynthDef.new(name: "solo", params: { :out => 0, :gate => 1, :freq => 440 }, body: " var aEnv, fEnv, osc, flt;\n aEnv = EnvGen.kr(Env.asr(0.2, 1, 2), gate);\n fEnv = EnvGen.kr(Env.adsr(0.4, 1.2, 0.7, 2), gate, 800);\n osc = Saw.ar(Lag.kr(freq, 0.1) * [1, 1.005]);\n flt = LPF.ar(osc, fEnv + 600, aEnv);\n Out.ar(out, flt);\n", credit: "From the Kraftwerk 'Spacelab' example in SuperCollider/examples by jy", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- STRING =
SynthDef.new(name: "string", params: { :out => 0, :gate => 1, :freq => 1000 }, body: " var aEnv, osc, flt;\n aEnv = EnvGen.kr(Env.asr(0.2, 1, 0.5), gate, doneAction: 2);\n osc = Saw.ar([\n LFCub.kr(0.3, Rand(0, 1), freq * 0.003, freq),\n freq,\n LFCub.kr(0.7, Rand(0, 1), freq * 0.001, freq)\n ]);\n flt = LPF.ar(osc, 1500, aEnv);\n Out.ar(out, flt);\n", credit: "From the Kraftwerk 'Spacelab' example in SuperCollider/examples by jy", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- ESM =
SynthDef.new(name: "esm", params: { :freq => 440, :mix => 0.5, :glide => 0, :cutoff => 20000, :rq => 1, :fdec => 0, :fint => 1, :vel => 1, :fvel => 1, :t_gate => 1, :vdec => 1, :vvel => 0, :od => 0, :mul => 0.1, :pan => 0, :out => 0 }, body: " var sig, saw, rect, fstart, fenv, vstart, venv;\n\n freq = freq.lag(glide);\n\n // oscillators\n saw = LFSaw.ar(freq, 0, 1);\n rect = LFPulse.ar(freq, 0, 0.5, 1);\n sig = Mix([saw * (1-mix), rect * mix]);\n\n // filter\n fstart = vel.linlin(0, fvel, 0, fint).linexp(0, 1, cutoff, 20000);\n fenv = EnvGen.kr(Env([fstart, fstart, cutoff], [0.001, fdec]), t_gate);\n sig = LPF.ar(sig, fenv, rq);\n\n // volume env\n vstart = vel.linlin(0, vvel.max(10e-1), 0, 1);\n venv = EnvGen.ar(Env([vstart, vstart, 0], [0.01, vdec], \\cub), t_gate);\n sig = sig * venv;\n\n // distortion\n sig = sig * od.linlin(0, 1, 1, 100).clip2(mul);\n\n Out.ar(out, Pan2.ar(sig, pan));\n", credit: "Emulations of two synths from Logic Pro X, by Arthur Carabott", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- ROCKIT =
SynthDef.new(name: "rockit", params: { :freq => 440, :detune => 2, :gate => 1, :out => 0 }, body: " var osc1, osc2, pwm, mix, env;\n\n // envelope for pulse width\n pwm = EnvGen.kr(Env([0, 0.5, 0], [0.1, 0.3], ['lin', -1]));\n\n // two oscillators, slightly detuned\n osc1 = LFPulse.ar(freq, 0, pwm);\n osc2 = LFPulse.ar(freq - detune, 0, pwm);\n\n // mixdown oscillators\n mix = Mix([osc1, osc2]);\n\n // amplitude envelope\n env = EnvGen.ar(Env.asr(0.001, 1, 0.05), gate, doneAction:2);\n mix = mix * env;\n\n Out.ar(out, Pan2.ar(mix, 0));\n", credit: "From the 'Emulating Video Game Sounds' recipe, page 78 of 'Steal This Sound' by Mitchell Sigman, Adapted by Arthur Carabott", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- PROPHET5_STRINGS =
SynthDef.new(name: "prophet5pwmstrings", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1, :lforate => 3, :lfowidth => 0.1, :cutoff => 12000, :rq => 0.5, :pan => 0.0 }, body: " var lfo, pulse, filter, env;\n\n lfo = LFTri.kr(lforate*[1,1.01],Rand(0,2.0)!2);\n pulse = Pulse.ar(freq*[1,1.01],lfo*lfowidth+0.5);\n filter = RLPF.ar(pulse,cutoff,rq);\n env = EnvGen.ar(Env.adsr(0.01,0.0,1.0,0.5),gate,doneAction:2);\n\n Out.ar(out,Pan2.ar(Mix(filter)*env*amp*0.5,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- OSC_WOBBLE =
SynthDef.new(name: "singleoscillatorwobble", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1, :lforate => 10, :lfowidth => 0.5, :cutoff => 12000, :rq => 0.5, :pan => 0.0 }, body: " var lfo, pulse, filter, env;\n\n lfo = LFTri.kr(lforate,Rand(0,2.0)!2);\n pulse = Pulse.ar(freq*(1.0+(lfowidth*lfo)),0.5);\n filter = RLPF.ar(pulse,cutoff,rq);\n env = EnvGen.ar(Env.adsr(0.01,0.0,1.0,0.5),gate,doneAction:2);\n\n Out.ar(out,Pan2.ar(filter*env*amp*0.5,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- TRI_BELLS =
SynthDef.new(name:"trianglewavebells", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1, :lforate => 10, :lfowidth => 0.0, :cutoff => 100, :rq => 0.5, :pan => 0.0 }, body: " var osc1, osc2, vibrato, filter, env;\n\n vibrato = SinOsc.ar(lforate,Rand(0,2.0));\n osc1 = Saw.ar(freq*(1.0+(lfowidth*vibrato)),0.75);\n //Saw a bit rough, possibly slighter smoother:\n //osc1 = DPW4Saw.ar(freq*(1.0+(lfowidth*vibrato)),0.5);\n osc2 = Mix(LFTri.ar((freq.cpsmidi+[11.9,12.1]).midicps));\n //filter = (osc1+(osc2*0.5))*0.5; //no filter version\n filter = RHPF.ar((osc1+(osc2*0.5))*0.5,cutoff,rq);\n env = EnvGen.ar(Env.adsr(0.01,0.1,1.0,0.5),gate,doneAction:2);\n\n Out.ar(out,Pan2.ar(filter*env*amp,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- LASER_BEAM =
SynthDef.new(name: "laserbeam", params: { :out => 0, :freq => 440, :amp => 0.8, :attackTime => 0.04, :gate => 1, :pan => 0.0 }, body: " var osc1, freqenv, env;\n\n freqenv = EnvGen.ar(Env([4,0.5,1,1],[attackTime,0.01,1.0]));\n\n osc1 = LFTri.ar(freq*freqenv);\n\n env = EnvGen.ar(Env.adsr(0.01,0.0,1.0,0.1),gate,doneAction:2);\n //no gate, fixed envelope size\n //env = EnvGen.ar(Env([0,1,0.5,0.0],[0.02,0.2,0.1]),doneAction:2);\n\n Out.ar(out,Pan2.ar(osc1*env*amp,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- PLASTICKY_STRINGS =
SynthDef.new(name: "plastickystrings", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1, :lforate => 5900, :lfowidth => 0.01, :cutoff => 12000, :rq => 0.5, :pan => 0.0 }, body: " var lfo, saw, filter, env;\n\n lfo = LFTri.ar(lforate,Rand(0,2.0));\n saw = Saw.ar(freq*(1.0+(lfowidth*lfo)),0.5);\n //filter = BBandPass.ar(saw,freq,4);\n filter = BHiPass.ar(saw,freq,rq); //or using cutoff\n env = EnvGen.ar(Env.adsr(0.4,0.0,1.0,1.0),gate,doneAction:2);\n\n Out.ar(out,Pan2.ar(filter*env*amp,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- WINWOOD_LEAD =
SynthDef.new(name: "winwoodlead", params: { :out => 0, :freq => 440, :amp => 0.8, :gate => 1, :cutoff => 8000, :rq => 0.8, :lfowidth => 0.01, :lforate => 8, :lagamount => 0.01, :pan => 0.0 }, body: " var pulse, filter, env, lfo;\n\n lfo = LFTri.kr(lforate,Rand(0,2.0)!2);\n pulse = Mix(Pulse.ar((freq.lag(lagamount))*[1,1.001]*(1.0+(lfowidth*lfo)),[0.2,0.19]))*0.5;\n filter = RLPF.ar(pulse,cutoff,rq);\n //remove low end\n filter = BLowShelf.ar(filter,351,1.0,-9);\n env = EnvGen.ar(Env.adsr(0.01,0.0,0.9,0.05),gate,doneAction:2);\n\n Out.ar(out,Pan2.ar(filter*env*amp,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- SITUATION_SYNTH =
SynthDef.new(name: "situationsynth", params: { :out => 0, :freq => 440, :amp => 0.1, :gate => 1, :cutoff => 8000, :rq => 0.8, :lfowidth => 0.001, :lforate => 3.3, :pan => -0.1 }, body: " var pulse, filter, env, filterenv, lfo;\n\n lfo = LFTri.kr(lforate,Rand(0,2.0)!2);\n pulse = Mix(Pulse.ar((((freq.cpsmidi)+[0,0.14])+(lfo*lfowidth)).midicps,[0.5,0.51]+(lfowidth*lfo)))*0.5;\n filterenv = EnvGen.ar(Env([0.0,1.0,0.3,0.0],[0.005,0.57,0.1],-3));\n filter = RLPF.ar(pulse,100+(filterenv*cutoff),rq);\n env = EnvGen.ar(Env.adsr(0.002,0.57,1.0,0.3),gate,doneAction:2);\n\n Out.ar(out,Pan2.ar(filter*env*amp,pan));\n", )
- RES_SQUARES =
SynthDef.new(name: "ressquares", params: { :out => 0, :freq => 440, :amp => 0.1, :gate => 1, :cutoff => 8000, :rq => 0.8, :pan => -0.1 }, body: " var pulse, filter, env;\n\n //2 cents detune for second oscillator\n pulse = Mix(Pulse.ar( ((freq.cpsmidi)+[0,0.02]).midicps, 0.5))*0.5;\n filter = BLowPass.ar(pulse,100+cutoff,rq);\n env = EnvGen.ar(Env.adsr(0.002,0.1,1.0,0.2),gate,doneAction:2);\n\n Out.ar(out,Pan2.ar(filter*env*amp,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- TONEWHEEL_TWO =
SynthDef.new(name: "tonewheeltwo", params: { :out => 0, :freq => 440, :amp => 0.1, :gate => 1, :lforate => 4.85, :lfowidth => 0.1, :cutoff => 5000, :rq => 0.25, :pan => 0.0 }, body: " //tone wheel organ emulation via two oscillators pp. 50-51\n\n var lfo, pulse, filter, env;\n\n lfo = LFTri.kr(lforate*[1,1.01],Rand(0,2.0)!2);\n pulse = Pulse.ar( (((freq*[1,3]).cpsmidi) + (lfo*lfowidth)).midicps,[0.5,0.51],[0.4,0.6]);\n env = EnvGen.ar(Env.adsr(0.0,0.0,1.0,0.1),gate,doneAction:2);\n filter = BLowPass4.ar(pulse,cutoff,rq);\n filter = BPeakEQ.ar(filter,500,1.0,3);\n\n Out.ar(out,Pan2.ar(Mix(filter)*env*amp,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- SPACE_THEREMIN =
SynthDef.new(name: "spacetheremin", params: { :out => 0, :freq => 440, :amp => 0.1, :gate => 1, :lforate => 6, :lfowidth => 0.5, :cutoff => 4000, :rq => 0.25, :lagTime => 0.1, :pan => 0.0 }, body: " var lfo, osc, filter, env;\n\n lfo = LFTri.kr(lforate+(LFNoise1.kr(5,0.3,0.3)),Rand(0,2.0));\n osc = Saw.ar((freq.lag(lagTime).cpsmidi+(lfo*lfowidth)).midicps,0.5);\n filter = BLowPass4.ar(osc,cutoff.lag(lagTime*4),rq);\n env = EnvGen.ar(Env.adsr(0.6,0.0,1.0,0.05),gate,doneAction:2);\n\n Out.ar(out,Pan2.ar(filter*env*amp.lag(lagTime*4),pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- PMC_ROTALE =
SynthDef.new(name: "PMCrotale", params: { :out => 0, :freq => 261, :tone => 3, :art => 1, :amp => 0.8, :pan => 0 }, body: " var env, mod, sig;\n\n env = Env.perc(0, art);\n mod = 5 + (1/IRand(2, 6));\n\n sig = PMOsc.ar(freq, mod*freq,\n pmindex: EnvGen.kr(env, timeScale: art, levelScale: tone),\n mul: EnvGen.kr(env, timeScale: art, levelScale: 0.3));\n\n sig = Pan2.ar(sig, pan);\n\n sig = sig * EnvGen.kr(env, timeScale: 1.3*art,\n levelScale: Rand(0.1, 0.5), doneAction:2);\n Out.ar(out, sig*amp);\n", source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns", )
- KRAFTY_SNR =
SynthDef.new(name: "kraftySnr", params: { :out => 0, :amp => 1, :freq => 2000, :rq => 3, :decay => 0.3, :pan => 0 }, body: " var sig = PinkNoise.ar(amp),\n env = EnvGen.kr(Env.perc(0.01, decay), doneAction: 2);\n sig = BPF.ar(sig, freq, rq, env);\n Out.ar(out, Pan2.ar(sig, pan))\n", source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns", )
- SILLY_VOICE =
SynthDef.new(name: "sillyVoice", params: { :out => 0, :freq => 220, :amp => 0.5, :vibratoSpeed => 6, :vibratoDepth => 4, :vowel => 0, :att => 0.01, :rel => 0.1, :lag => 1, :gate => 1 }, body: " var in, vibrato, env, va, ve, vi, vo, vu, snd;\n\n vibrato = SinOsc.kr(vibratoSpeed, mul: vibratoDepth);\n in = Saw.ar(Lag.kr(freq, lag) + vibrato);\n env = EnvGen.kr(Env.asr(att, 1, rel), gate, doneAction: 2);\n\n va = BBandPass.ar(\n in: in,\n freq: [ 600, 1040, 2250, 2450, 2750 ],\n bw: [ 0.1, 0.067307692307692, 0.048888888888889, 0.048979591836735, 0.047272727272727 ],\n mul: [ 1, 0.44668359215096, 0.35481338923358, 0.35481338923358, 0.1 ]);\n\n ve = BBandPass.ar(\n in: in,\n freq: [ 400, 1620, 2400, 2800, 3100 ] ,\n bw: [ 0.1, 0.049382716049383, 0.041666666666667, 0.042857142857143, 0.038709677419355 ],\n mul: [ 1, 0.25118864315096, 0.35481338923358, 0.25118864315096, 0.12589254117942 ]);\n\n vi = BBandPass.ar(\n in: in,\n freq: [ 250, 1750, 2600, 3050, 3340 ] ,\n bw: [ 0.24, 0.051428571428571, 0.038461538461538, 0.039344262295082, 0.035928143712575 ],\n mul: [ 1, 0.031622776601684, 0.15848931924611, 0.079432823472428, 0.03981071705535 ] );\n\n vo = BBandPass.ar(\n in: in,\n freq:[ 400, 750, 2400, 2600, 2900 ] ,\n bw: [ 0.1, 0.10666666666667, 0.041666666666667, 0.046153846153846, 0.041379310344828 ],\n mul: [ 1, 0.28183829312645, 0.089125093813375, 0.1, 0.01 ]);\n\n vu = BBandPass.ar(\n in: in,\n freq: [ 350, 600, 2400, 2675, 2950 ],\n bw: [ 0.11428571428571, 0.13333333333333, 0.041666666666667, 0.044859813084112, 0.040677966101695 ],\n mul: [ 1, 0.1, 0.025118864315096, 0.03981071705535, 0.015848931924611 ]);\n\n snd = SelectX.ar(Lag.kr(vowel, lag), [va, ve, vi, vo, vu]);\n snd = Mix.new(snd);\n Out.ar(out, snd!2 * env * amp);\n", source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns", )
- PLUCKING =
SynthDef.new(name: "plucking", params: { :out => 0, :amp => 0.1, :freq => 440, :decay => 5, :coef => 0.1 }, body: "var env, snd;\nenv = EnvGen.kr(Env.linen(0, decay, 0), doneAction: 2);\nsnd = Pluck.ar(\n in: WhiteNoise.ar(amp),\n trig: Impulse.kr(0),\n\n maxdelaytime: 0.1,\n delaytime: freq.reciprocal,\n decaytime: decay,\n coef: coef);\n Out.ar(out, [snd, snd]);\n", source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns", )
- TRIG_DEMO =
SynthDef.new(name: "trig_demo", params: { :out => 0, :freq => 440, :gate => 1, :t_trig => 1 }, body: " var env, sig;\n env = Decay2.kr(t_trig, 0.01, 0.1);\n sig = SinOsc.ar(freq, 0, env);\n sig = sig * Linen.kr(gate, 0.01, 0.1, 0.1, doneAction: 2);\n Out.ar(out, sig ! 2)\n", source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns", )
- SINE_WLFO =
SynthDef.new(name: "sineWlfo", params: { :out => 0, :rate => 0.5, :freqlo => 150, :freqhi => 300, :amp => 0.1 }, body: " var sig, lfo, rms;\n lfo = SinOsc.kr(rate).range(freqlo, freqhi);\n sig = SinOsc.ar(lfo);\n sig = sig*amp.dbamp;\n Out.ar(out, sig)\n", source: "From https://github.com/elosine/synthdefs", )
- NOISE_BURST =
SynthDef.new(name: "noiseBurst", params: { :out => 0, :rate => 1.0, :atk => 0.03, :decay => 0.75, :amp => 0 }, body: " var sig;\n sig = PinkNoise.ar(0.5) * Decay2.ar( Impulse.ar(rate), atk, decay );\n sig = sig*amp.dbamp;\n Out.ar(out, sig)\n", source: "From https://github.com/elosine/synthdefs", )
- ACID_OTO_309 =
SynthDef.new(name: "acid_oto309", params: { :out => 0, :gate => 1, :freq => 440, :amp => 0.1, :pan => 0 }, body: " var env1, env2, son, pitch;\n pitch = freq.cpsmidi;\n pitch = Lag.kr(pitch, 0.12 * (1-Trig.kr(gate, 0.001)) * gate);\n env1 = EnvGen.ar(Env.new([0, 1.0, 0, 0], [0.001, 2.0, 0.04], [0, -4, -4], 2), gate, amp);\n env2 = EnvGen.ar(Env.adsr(0.001, 0.8, 0, 0.8, 70, -4), gate);\n son = LFPulse.ar(pitch.midicps, 0.0, 0.51, 2, -1);\n\n son = RLPF.ar(son, (pitch + env2).midicps, 0.3);\n son = son * env1;\n\n Out.ar(out, Pan2.ar(son, pan));\n", credit: "from 08091500Acid309 by_otophilia", source: "https://github.com/supercollider-quarks/SynthDefPool", )
- APAD_MH =
SynthDef.new(name: "apad_mh", params: { :freq => 880, :amp => 0.5, :attack => 0.4, :decay => 0.5, :sustain => 0.8, :release => 1.0, :gate => 1, :out => 0 }, body: " var env,sig,mod1,mod2,mod3;\n env=EnvGen.kr(Env.adsr(attack,decay,sustain,release),gate,levelScale:amp,doneAction:2);\n mod1=SinOsc.kr(6).range(freq*0.99,freq*1.01);\n mod2=LFNoise2.kr(1).range(0.2,1);\n mod3=SinOsc.kr(rrand(4.0,6.0)).range(0.5,1);\n sig=SinOsc.ar([freq,mod1],0,env).distort;\n sig=sig*mod2*mod3;\n Out.ar(out,sig);\n", credit: "A simple sustained sound with vibrato --Mike Hairston", source: "https://github.com/supercollider-quarks/SynthDefPool", )
- CS80_LEAD_MH =
SynthDef.new(name: "cs80lead_mh", params: { :freq => 880, :amp => 0.5, :att => 0.75, :decay => 0.5, :sus => 0.8, :rel => 1.0, :fatt => 0.75, :fdecay => 0.5, :fsus => 0.8, :frel => 1.0, :cutoff => 200, :pan => 0, :dtune => 0.002, :vibrate => 4, :vibdepth => 0.015, :gate => 1, :ratio => 1,:out => 0 }, body: " var env,fenv,vib,ffreq,sig;\n cutoff=1000;\n env=EnvGen.kr(Env.adsr(att,decay,sus,rel),gate,levelScale:1,doneAction:2);\n fenv=EnvGen.kr(Env.adsr(fatt,fdecay,fsus,frel,curve:2),gate,levelScale:1,doneAction:2);\n vib=SinOsc.kr(vibrate).range(-1*vibdepth,vibdepth)+1;\n freq=Line.kr(freq,freq*ratio,5);\n freq=freq*vib;\n sig=Mix.ar(Saw.ar([freq,freq*(1+dtune)],mul:env*amp));\n // keep this below nyquist!!\n ffreq=max(fenv*freq*12,cutoff)+100;\n sig=LPF.ar(sig,ffreq);\n Out.ar(out, Pan2.ar(sig,pan) );\n", credit: "Vangelis/Blade Runner lead sound, based on tutorial by meastempo @ http://www.youtube.com/watch?v=Fne0oIEv-WI", source: "https://github.com/supercollider-quarks/SynthDefPool", )
- PING_MH =
SynthDef.new(name: "ping_mh", params: { :freq => 440,:amp => 0.2,:dur => 1,:attack => 0.001,:pan => 0,:out => 0 }, body: " var sig,freq2;\n freq=freq*rrand(1,1.01);\n freq2=freq*rrand(1,1.01);\n e=EnvGen.ar(Env.perc(attack,dur,curve:-4),doneAction:2);\n sig=SinOsc.ar([freq,freq2],0,amp*e);\n sig=Pan2.ar(sig,pan);\n Out.ar(out,sig)\n", credit: "Your basic percussive synth instrument, a good default sound for testing patterns, etc.", source: "https://github.com/supercollider-quarks/SynthDefPool", )
- SOS_BELL =
SynthDef.new(name: "sos_bell", params: { :freq => 440, :out => 0, :amp => 0.1, :pan => 0 }, body: " var son, strike, hum;\n\n // Stretched harmonic series\n son = SinOsc.ar(#[2, 3, 4.1, 5.43, 6.8, 8.21] * freq, 0,\n #[1, 0.9, 0.8, 0.7, 0.6, 0.5] * 0.1);\n\n son = son * EnvGen.ar(Env.new([0,1,0.3, 0.2, 0], [0, 0.3, 0.3, 0.3]));\n\n // A bit of FM adds 'warble'\n son = son * LFTri.ar({Rand(1.0, 1.8)}.dup(6), 1, 0.3, 0.7);\n\n // Mix down the partials in the main sound\n son = son.mean;\n\n strike = SinOsc.ar(LFNoise1.ar(freq * 36, 100, freq*8), 1, 0.1) *\n EnvGen.ar(Env.new([0,1,0.2, 0.1, 0], [0, 0.01, 0, 0.04]));\n\n hum = SinOsc.ar([freq*1.01, freq*0.47], 0, EnvGen.ar(Env.new([0,0.05,0.05,0], [0.5,0.5,1]), doneAction:2)).mean;\n\n Out.ar(out, Pan2.ar((son + strike + hum) * 4 * amp, pan));\n", credit: "by dan stowell. based on a sound-on-sound 'synth secrets' tutorial", source: "https://github.com/supercollider-quarks/SynthDefPool", )
- KRGN_GEN_FMDEVIL =
SynthDef.new(name: "krgn_gen_fmdevil", params: { :out => 0, :freq => 440, :amp => 1.0, :index => 3, :detune => 1.02, :gate => 1 }, body: " var mod1, mod2, mod3, car, idx, env;\n env = EnvGen.ar(Env.adsr(0,0.4,0.3,0.2),gate: gate, levelScale: amp, doneAction: 2);\n idx = EnvGen.ar(Env.adsr(0,0.8,0.0,0.8),gate: gate, levelScale: index);\n mod1 = SinOsc.ar((freq / 12) * 2, LocalIn.ar(2), idx);\n mod2 = SinOsc.ar((freq / 12) * 6, mod1, idx);\n mod3 = SinOsc.ar([(freq / 12) * (9 * detune.neg), (freq / 12) * (9*detune)], mod2, idx);\n LocalOut.ar( mod3 * 0.25);\n car = SinOsc.ar(freq, mod3, env);\n Out.ar(out!2,car)\n", source: "https://github.com/mtytel/supersongs/", )
- DROPLET =
SynthDef.new(name: "droplet", params: { :amp => 0.2, :out => 0, :freq => 3000, :dur => 1, :rate => 1 }, body: " /**\n * No.2 - Droplet\n *\n * pitch envelope-based synth\n */\n\n var sound,volEnv,pitchEnv, gate;\n gate = Pulse.kr(rate);\n pitchEnv=EnvGen.ar(Env.new([0.9,0.7,1,1],[0.06,0.05,0.89]*dur,\\exponential), gate);\n volEnv=EnvGen.ar(Env.new([0,1,0.8,0.0],[0.2,0.05,0.75]*dur),gate);\n sound=SinOsc.ar(freq*pitchEnv,mul:volEnv);\n Out.ar(out, Pan2.ar(sound) * amp);\n", source: "https://github.com/johncburnett/Matrix", )
- PHASE_MOD =
SynthDef.new(name: "phaseMod", params: { :amp => 0.2, :out => 0, :freq => 30, :gate => 1 }, body: " /**\n * No.4 - phaseMod\n *\n * Phase modulation\n */\n\n var fund, oscA, oscB, pm, env, sig;\n fund = freq;\n oscA = PMOsc.ar(fund, fund / 2.05, 2pi * 0.1);\n oscB = SinOsc.ar(fund / 2.01, oscA * 2pi * 0.5);\n pm = SinOsc.ar(fund / 2.02, oscB * 2pi * 0.8);\n env = EnvGen.ar(Env.adsr, gate: gate);\n sig = env * pm;\n Out.ar(out, (amp*sig)!2);\n", source: "https://github.com/johncburnett/Matrix", )
- NOISE =
SynthDef.new(name: "noise", params: { :amp => 0.2, :out => 0 }, body: " /**\n * No.5 - noise\n *\n */\n\n var noise = HenonN.ar(SampleRate.ir/4, Rand(1,1.4), Rand(0,0.3)) * 0.2;\n Out.ar(out, noise!2 * amp);\n", source: "https://github.com/johncburnett/Matrix", )
- NS_STATIC =
SynthDef.new(name: "nsStatic", params: { :amp => 0.2, :out => 0,:mix => 0.9 }, body: " /**\n * No.6 - nsSTatic\n *\n */\n\n var sound, sound2, stereo, dummy, dummy2;\n dummy = Rand(0.2, 2.01);\n //dummy2 = 0.01*Rand(0, 100);\n dummy2 = mix;\n sound = Crackle.ar(dummy, 0.5, 0.5);//chaosParam val ~0.95 -> ~2.05\n sound2 = PitchShift.ar(sound, 0.2, 0.249, 0.02,2);\n mix = sound*dummy2 + (sound2*(1.0+(-1*dummy2)));\n stereo = Limiter.ar(Pan2.ar(mix), 0.5);\n Out.ar(out,stereo*amp);\n", source: "https://github.com/johncburnett/Matrix", )
- POOM =
SynthDef.new(name: "poom", params: { :out => 0, :freq => 400, :level => 0.1 }, body: " var env = Env.perc(level: level);\n var envgen = EnvGen.kr(env, doneAction: 2);\n var sin = SinOsc.ar([freq, freq + 0.1], mul: envgen);\n var sin2 = SinOsc.ar([freq, freq + 0.1] * 17, mul: envgen / 17);\n Out.ar(out, sin + sin2);\n", source: "https://github.com/philthomson/imp", )
- SINTH =
SynthDef.new(name: "sinth", params: { :out => 0, :curve => 0, :dur => 1, :freq => 400, :level => 0.1 }, body: " var env = Env.perc(releaseTime: dur, level: level, curve: curve);\n var envgen = EnvGen.kr(env, doneAction: 2);\n var sin = SinOsc.ar([freq, freq + 0.1], mul: envgen);\n var sin2 = SinOsc.ar([freq, freq + 0.1] * 2.01, mul: envgen / 8);\n var sin3 = SinOsc.ar([freq, freq * 0.1] * 20.1, mul: envgen / 32);\n Out.ar(out, sin + sin2 + sin3);\n", source: "https://github.com/philthomson/imp", )
- AEOLIAN_STRINGS =
SynthDef.new(name: "aeolian_strings", params: { :out => 0 }, body: " // aeolian strings\n var sig = Mix.fill(9,{i=Dust.ar(0.4)!2;CombC.ar(i,1,Select.ar(TIRand.kr(0,7,i),(55+Scale.aeolian.degrees).collect{|x|DC.ar(1/x.midicps)}),3)});\n Out.ar(out,sig);\n", source: "https://github.com/thormagnusson/sctweets", )
- BONFIRE_NIGHT =
SynthDef.new(name: "bonfire_night", params: { :out => 0 }, body: " // the sound of new years eve in frosty Reykjavik\n var x=Decay;\n var d=Dust.ar(4);\n var sig = FreeVerb.ar(LPF.ar(x.ar(d,0.5,WhiteNoise.ar),2000)+x.ar(d,0.15,SinOsc.ar([40,47],pi,5)), 0.4,0.6,TRand.ar(0,1,d));\n Out.ar(out, sig);\n", source: "https://github.com/thormagnusson/sctweets", )
- THAT_CLUB =
SynthDef.new(name: "thatclub", params: { :out => 0 }, body: " // the nightclub downstairs\n var x =SinOsc;\n var y =LFNoise0;\n var a = y.ar(8);\n var sig = x.ar(Pulse.ar(1)*24)+x.ar(90+(a*90))+MoogFF.ar(Saw.ar(y.ar(4,333,666)),a*XLine.ar(1,39,99,99,0,2));\n Out.ar(out, sig!2/3);\n", source: "https://github.com/thormagnusson/sctweets", )
- DRUNK_DRUMMER =
SynthDef.new(name: "drunk_drummer", params: { :out => 0 }, body: " var i=Dust.ar(4), a=0.5, b=5e-3, q=Decay2, p=PulseDivider, n=WhiteNoise.ar;\n var sig = (SinOsc.ar(80)*q.ar(p.ar(i,2),a,b)+(n*q.ar(p.ar(i,4),b,a)));\n Out.ar(out,sig!2);\n", source: "https://github.com/thormagnusson/sctweets", )
- EIGHTBIT_FUNK =
SynthDef.new(name: "eightbit_funk", params: { :out => 0 }, body: " // 8-bit funk\n var o=LFSaw.ar(LFSaw.kr(0.0005,-1).range(0.5,1)).abs*40;\n var sig = (o*15&(o>>5))|(o*100&(o>>1)&(o<<2))|(o*1e3&(o>>[1,2])&(LFSaw.kr(0.01).abs*5).ceil);\n Out.ar(out,sig!2);\n", source: "https://github.com/thormagnusson/sctweets", )
- TWO_TIMPANIS =
SynthDef.new(name: "two_timpanis", params: { :out => 0 }, body: " var x=LFNoise0.ar(1)>0;\n var sig = SinOsc.ar(Spring.ar(x,4,3e-05)*(70.rand+190)+(30.rand+90))*EnvGen.kr(Env.perc(0.001,5),x);\n Out.ar(out, sig!2);\n", source: "https://github.com/thormagnusson/sctweets", )
- TWO_TIMPANIS2 =
SynthDef.new(name: "two_timpanis2", params: { :out => 0 }, body: " var x=LFNoise0.ar(1)>0;\n var sig = SinOsc.ar(Spring.ar(x,4,3e-05)*(70.rand+190)+LFNoise2.ar(1).range(90,120))*EnvGen.kr(Env.perc(0.001,5),x);\n Out.ar(out, sig!2);\n", source: "https://github.com/thormagnusson/sctweets", )
- HOOVER =
Out.ar(out, Mix.new([sig1, sig2, sig3]) ! 2); SCLANG
source: "https://github.com/mattvears/supercollider-stuff",)
SynthDef.new(name: "hoover", params: { :freq => 220, :amp => 0.1, :lgu => 0.1, :lgd => 1, :gate => 1 }, body: "var pwm, mix, env;\n\nfreq = freq.cpsmidi.lag(lgu,lgd).midicps;\nfreq = SinOsc.kr( { 2.9 rrand: 3.1 }!3, {2pi.rand}!3 ).exprange( 0.995, 1.005 ) * freq;\npwm = SinOsc.kr( {2.0 rrand: 4.0}!3 ).range(0.125,0.875);\n\n// the saw/pulses\nmix = (LFSaw.ar( freq * [0.25,0.5,1], 1 ).range(0,1)\n * (1 - LFPulse.ar(freq * [0.5,1,2], 0, pwm))).sum * 0.1;\n\n// the bass\nmix = mix + LFPar.ar( freq * 0.25, 0, 0.1 );\n\n// eq for extra sharpness\nmix = BPeakEQ.ar( mix, 6000, 1, 3 );\nmix = BPeakEQ.ar( mix, 3500, 1, 6 );\n\n// kind of chorus\nmix = mix + CombC.ar( mix.dup, 1/200,\n SinOsc.kr( 3, [0.5pi, 1.5pi] ).range(1/300,1/200),\n 0.0 ) * 0.5;\n\nenv = EnvGen.kr( Env.asr, gate );\n\nOut.ar( 0, mix * env * amp );\n", source: "https://github.com/rukano/scprivatepool", )
- 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 }, body: " var sig, plfo, fcurve;\n plfo = SinOsc.kr(plfofreq, mul:mw, add:1);\n freq = Lag.kr(freq, freqlag * 8) * plfo * 0.25;\n fcurve = EnvGen.kr(Env.adsr(0.1, 0.1, 0.4, 0.2), gate);\n fcurve = (fcurve - 1).madd(0.7, 1) * ffreq;\n sig = VarSaw.ar(freq*[1.001,3/2,1/2.001,1/4,1/2,3.001/2,1], width: LFNoise2.ar(0.3,0));\n //sig = BPF.ar(sig, fcurve, 0.2);\n // * EnvGen.kr(Env.adsr(0.01, 0.2, 0.8, 1), gate, doneAction:2)\n // * amp * 3;\n sig = sig * EnvGen.kr(Env.adsr(0.01, 0.2, 0.8, 1), gate, doneAction:2);\n Out.ar(out, Splay.ar(sig * 0.2, 1));\n", source: "https://github.com/bwestergard/supercollider-experiments", )
- SAWPULSE2 =
SynthDef.new(name: "sawpulse2", params: { :out => 0, :freq => 440, :gate => 0.5, :plfofreq => 6, :mw => 0, :ffreq => 2000, :rq => 0.3, :freqlag => 0.05, :amp => 1 }, body: " var sig, plfo, fcurve;\n plfo = SinOsc.kr(plfofreq, mul:mw, add:1);\n freq = Lag.kr(freq, freqlag * 8) * plfo * 0.25;\n fcurve = EnvGen.kr(Env.adsr(0.1, 0.1, 0.4, 0.2), gate);\n fcurve = (fcurve - 1).madd(0.7, 1) * ffreq;\n sig = LFPulse.ar(freq*[1.001,3/2,1/2.001,1/4,1/2,3.001/2,1]*2, width: LFNoise2.ar(1/2).exprange(0.5,0.4));\n //sig = LPF.ar(sig, fcurve, 0.2) * 3;\n sig = sig * EnvGen.kr(Env.adsr(1, 0.2, 0.8, 0.3), gate, doneAction:2);\n Out.ar(out, Splay.ar(sig * 0.1, 1));\n", source: "https://github.com/bwestergard/supercollider-experiments", )
- SINEPLUCK =
SynthDef.new(name: "sinepluck", params: { :out => 0, :freq => 440, :amp => 1, :dur => nil }, body: " var mod,tone;\n amp = amp * 0.8;\n dur =1/6;\n mod = VarSaw.ar(freq*2, mul: XLine.ar(0.2,0.8,dur/2), width: XLine.ar(1,1/1000,dur*64));\n tone = SinOsc.ar(freq, mod).dup * 0.1 * XLine.ar(1,1/1000,dur*4, doneAction:2) * XLine.ar(1/1000,1,0.001) * amp;\n tone = [DelayC.ar(tone , 1, LFNoise2.ar(1/2).range(0,0.012)), DelayC.ar(tone , 1, LFNoise2.ar(1/2).range(0.012,0))];\n tone = tone * XLine.ar(1/10000,1,0.005);\n Out.ar(out,tone);\n", source: "https://github.com/bwestergard/supercollider-experiments", )
- POLY1 =
SynthDef.new(name: "poly1", params: { :out => 0, :gate => 1, :freq => 440 }, body: " var aEnv,fEnv,osc1, osc2,flt;\n aEnv=EnvGen.kr(Env.asr(0.2,1,0.1), gate, doneAction:2);\n fEnv=EnvGen.kr(Env.asr(7,1,0.2), levelScale:12000);\n osc1=Pulse.ar(freq*[1,1007], LFCub.kr(2,0,0.3,0.5));\n osc2= Pulse.ar(freq/2,0.3);\n flt=RLPF.ar(osc1+osc2, fEnv,0.9, aEnv);\n Out.ar(out, flt);\n", source: "https://github.com/k-o-l-e-k-t-i-v/supercollider", )
- HIHAT1 =
SynthDef.new(name: 'hihat1', params: { :out => 0, :pan => 0, :amp => 1, :release => 0.2 }, body: " var click, clickAmp;\n var noise, noiseAmp;\n var snd;\n\n // noise -> resonance -> expodec envelope\n noiseAmp = EnvGen.ar(Env.perc(0.001, release, curve: -8), doneAction: 2);\n noise = Mix(BPF.ar(ClipNoise.ar, [4010, 4151], [0.15, 0.56], [1.0, 0.6])) * 0.7 * noiseAmp;\n\n snd = noise;\n\n Out.ar(out, Pan2.ar(snd, pan, amp));\n", source: "http://sccode.org/1-523" )
- HAT808 =
SynthDef.new(name: "hat808", params: { :out => 0, :freq => 230, :hpf => 6500, :release => 0.15, :amp => 1, :fxb => 0, :fxv => 0, :bbcb => 0, :bbcv => 0 }, body: " var pulse, sig, env, freqs;\n freqs = [freq, freq*1.4471, freq*1.617, freq*1.9265, freq*2.5028, freq*2.6637];\n pulse = Mix.ar(Pulse.ar(freqs, {0.9.rand}!6, mul: 0.15));\n sig = RHPF.ar(RHPF.ar(pulse, hpf), hpf);\n env = EnvGen.kr(Env.perc(0,release),doneAction:2);\n sig = sig*env;\n Out.ar(out, Pan2.ar(sig*amp,0));\n", credit: "Christoph Kummerer", source: "http://new-supercollider-mailing-lists-forums-use-these.2681727.n2.nabble.com/High-Hats-td4823993.html" )
- CLOSED_HAT =
SynthDef.new(name: "closedhat", params: { :out => 0, :lpf => 8000, :hpf => 2400, :amp => 1 }, body: " var hatosc, hatenv, hatnoise, hatoutput;\n\n hatnoise = {LPF.ar(WhiteNoise.ar(1),lpf)};\n hatosc = {HPF.ar(hatnoise,hpf)};\n hatenv = {Line.ar(1, 0, 0.1)};\n hatoutput = (hatosc * hatenv);\n\n Out.ar(out, Pan2.ar(hatoutput*amp, 0));\n", source: "https://github.com/willieavendano/SC-SynthDefs/blob/master/DrumMachines", )
- OPEN_HAT =
SynthDef.new(name: 'openhat', params: { :out => 0, :lpf => 6000, :hpf => 2000, :amp => 1 }, body: " var hatosc, hatenv, hatnoise, hatoutput;\n\n hatnoise = {LPF.ar(WhiteNoise.ar(1),lpf)};\n hatosc = {HPF.ar(hatnoise,hpf)};\n hatenv = {Line.ar(1, 0, 0.3)};\n hatoutput = (hatosc * hatenv);\n\n Out.ar(out, Pan2.ar(hatoutput*amp, 0));\n", credit: "Rumblesan", source: "http://blog.rumblesan.com/post/53271713518/drum-sounds-in-supercollider-part-1" )
- CHEAP_PIANO =
SynthDef.new(name: "cheappiano", params: { :out => 0, :freq => 440, :amp => 1, :dur => 1, :gate => 1, :pan => 0 }, body: " var sig, in, n = 6, max = 0.04, min = 0.01, delay, pitch, detune, hammer;\n freq = freq.cpsmidi;\n hammer = Decay2.ar(Impulse.ar(0.001), 0.008, 0.04, LFNoise2.ar([2000,4000].asSpec.map(amp), 0.25));\n sig = Mix.ar(Array.fill(3, { arg i;\n detune = #[-0.04, 0, 0.03].at(i);\n delay = (1/(freq + detune).midicps);\n CombL.ar(hammer, delay, delay, 50 * amp)\n }) );\n\n sig = HPF.ar(sig,50) * EnvGen.ar(Env.perc(0.0001,dur, amp * 4, -1), gate: gate, doneAction:2);\n Out.ar(out, Pan2.ar(sig, pan));\n", credit: "based on something posted 2008-06-17 by jeff, based on an old example by james mcc", source: "https://github.com/supercollider-quarks/SynthDefPool", )
- EVERYTHING_RHODES =
SynthDef.new(name: "everythingrhodes", params: { :out => 0, :freq => 440, :amp => 0.1, :gate => 1, :lforate => 1.85, :lfowidth => 0.5, :cutoff => 2000, :rq => 0.2, :pan => 0.0 }, body: " var pulse, filter, env;\n\n pulse = Pulse.ar(freq*[1,33.5.midiratio],[0.2,0.1],[0.7,0.3]);\n env = EnvGen.ar(Env.adsr(0.0,1.0,0.8,3.0),gate,doneAction:2);\n //keyboard tracking filter cutoff\n filter = BLowPass4.ar(pulse,(cutoff*(env.squared))+200+freq,rq);\n\n Out.ar(out,Pan2.ar(Mix(filter)*env*amp,pan));\n", credit: "Sound recipes from:\nMitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books\nadapted for SuperCollider and elaborated by Nick Collins (http://www.sussex.ac.uk/Users/nc81/index.html)\nunder GNU GPL 3 as per SuperCollider license\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- SNARE1 =
SynthDef.new(name: "snare1", params: { :out => 0, :amp => 0.8 }, body: " var env0, env1, env2, env1m, oscs, noise, sig;\n\n env0 = EnvGen.ar(Env([0.5, 1, 0.5, 0], [0.005, 0.03, 0.10], [-4, -2, -4]));\n env1 = EnvGen.ar(Env([110, 60, 49], [0.005, 0.1], [-4, -5]));\n env1m = env1.midicps;\n env2 = EnvGen.ar(Env([1, 0.4, 0], [0.05, 0.13], [-2, -2]), doneAction:2);\n\n oscs = LFPulse.ar(env1m, 0, 0.5, 1, -0.5) +\n LFPulse.ar(env1m * 1.6, 0, 0.5, 0.5, -0.25);\n oscs = LPF.ar(oscs, env1m * 1.2, env0);\n oscs = oscs + SinOsc.ar(env1m, 0.8, env0);\n\n noise = WhiteNoise.ar(0.2);\n noise = HPF.ar(noise, 200, 2);\n noise = BPF.ar(noise, 6900, 0.6, 3) + noise;\n noise = noise * env2;\n\n sig = oscs + noise;\n sig = sig.clip2(1) * amp;\n\n Out.ar(out, sig.dup);\n", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- SNARE2 =
SynthDef.new(name: "snare2", params: { :sfreq => 1500, :out => 0 }, body: " var tri = Mix([LFTri.ar([111, 175, 224])]) * 0.5;\n var sine = Mix([SinOsc.ar([330, 180])]) * 0.5;\n var env = EnvGen.ar(Env.perc(0.01, 0.2), doneAction:2);\n var snares = WhiteNoise.ar(1);\n var snareEnv = EnvGen.ar(Env.perc(0.01, 0.2));\n\n snares = HPF.ar(snares, sfreq);\n snares = snares * snareEnv;\n\n Out.ar(out, Mix([tri, sine, snares]) * env);\n", credit: "Based on Sound on Sound Synth Secrets 35, by Arthur Carabott", source: "https://github.com/acarabott/roundhouse-synth-design-course-2014", )
- 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 }, body: " var drum_mode_sin_1, drum_mode_sin_2, drum_mode_pmosc, drum_mode_mix,\ndrum_mode_env;\n var snare_noise, snare_brf_1, snare_brf_2, snare_brf_3, snare_brf_4,\nsnare_reson;\n var snare_env;\n var snare_drum_mix;\n\n drum_mode_env = EnvGen.ar(Env.perc(0.005, decay), 1.0, doneAction: 2);\n drum_mode_sin_1 = SinOsc.ar(freq*0.53, 0, drum_mode_env * 0.5);\n drum_mode_sin_2 = SinOsc.ar(freq, 0, drum_mode_env * 0.5);\n drum_mode_pmosc = PMOsc.ar( Saw.ar(freq*0.85), 184, 0.5/1.3, mul: drum_mode_env*5, add: 0);\n drum_mode_mix = Mix.new([drum_mode_sin_1, drum_mode_sin_2, drum_mode_pmosc]) * drum_mode_level;\n\n // choose either noise source below\n // snare_noise = Crackle.ar(2.01, 1);\n snare_noise = LFNoise0.ar(20000, 0.1);\n snare_env = EnvGen.ar(Env.perc(0.005, decay, curve:-5), 1.0, doneAction: 2);\n snare_brf_1 = BRF.ar(in: snare_noise, freq: 8000, mul: 0.5, rq: 0.1);\n snare_brf_2 = BRF.ar(in: snare_brf_1, freq: 5000, mul: 0.5, rq: 0.1);\n snare_brf_3 = BRF.ar(in: snare_brf_2, freq: 3600, mul: 0.5, rq: 0.1);\n snare_brf_4 = BRF.ar(in: snare_brf_3, freq: 2000, mul: snare_env, rq: 0.0001);\n snare_reson = Resonz.ar(snare_brf_4, snare_tightness, mul: snare_level) ;\n snare_drum_mix = Mix.new([drum_mode_mix, snare_reson]) * 5 * amp;\n Out.ar(out, [snare_drum_mix, snare_drum_mix])\n", credit: "recipe basically from Gordon Reid http://www.soundonsound.com/sos/Mar02/articles/synthsecrets0302.asp programmed by Renick Bell, renick_at_gmail.com", source: "https://github.com/willieavendano/SC-SynthDefs/blob/master/DrumMachines", )
- SNARE_OTO_309 =
SynthDef.new(name: "snare_oto309", params: { :out => 0, :amp => 0.1, :pan => 0 }, body: " var env0, env1, env2, env1m, oscs, noise, son;\n\n env0 = EnvGen.ar(Env.new([0.5, 1, 0.5, 0], [0.005, 0.03, 0.10], [-4, -2, -4]));\n env1 = EnvGen.ar(Env.new([110, 60, 49], [0.005, 0.1], [-4, -5]));\n env1m = env1.midicps;\n env2 = EnvGen.ar(Env.new([1, 0.4, 0], [0.05, 0.13], [-2, -2]), doneAction:2);\n\n oscs = LFPulse.ar(env1m, 0, 0.5, 1, -0.5) + LFPulse.ar(env1m * 1.6, 0, 0.5, 0.5, -0.25);\n oscs = LPF.ar(oscs, env1m*1.2, env0);\n oscs = oscs + SinOsc.ar(env1m, 0.8, env0);\n\n noise = WhiteNoise.ar(0.2);\n noise = HPF.ar(noise, 200, 2);\n noise = BPF.ar(noise, 6900, 0.6, 3) + noise;\n noise = noise * env2;\n\n son = oscs + noise;\n son = son.clip2(1) * amp;\n\n Out.ar(out, Pan2.ar(son, pan));\n", credit: "from 08091500Acid309 by_otophilia", source: "https://github.com/supercollider-quarks/SynthDefPool", )
- SNARE_STEIN =
SynthDef.new(name: "snare_stein", params: { :out => 0, :amp => 0.1, :pan => 0 }, body: " var snare, filtWhite;\n\n filtWhite = LPF.ar(WhiteNoise.ar(1), 7040, 1);\n\n 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);\n Out.ar(out, Pan2.ar(snare * amp * 10, pan));\n", credit: "Snare written by Esben Stein, I believe", source: "https://github.com/supercollider-quarks/SynthDefPool", )
- SNARE3 =
SynthDef.new(name: "snare", params: { :amp => 1, :dur => 0.05, :out => 0 }, body: "dur = dur * 16;\nOut.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);\n", source: "https://github.com/bwestergard/supercollider-experiments", )
- SNARE_909 =
SynthDef.new(name: "snare909", params: { :out => 0, :lpFreq => 1000, :vol => 1, :gate => 1 }, body: " var sig1, sig2;\n var triEnv;\n var shifted1;\n var shifted2;\n var sinEnv;\n var sin1, sin2;\n var mixed;\n var sig3;\n var noiseEnv;\n\n // tri -> final mixer\n triEnv = Env.adsr(0, 0.4, 0, 0, curve: -4, peakLevel: 0.5);\n sig1 = LFTri.ar(111, 0, 0.5) * EnvGen.kr(triEnv, gate: gate, doneAction: 2);\n shifted1 = FreqShift.ar(sig1, 175);\n shifted2 = FreqShift.ar(sig1, 224);\n sig1 = Mix.new([shifted1, shifted2]);\n\n // sines -> final mixer\n sin1 = SinOsc.ar(330, mul: 0.2);\n sin2 = SinOsc.ar(180, mul: 0.2);\n sinEnv = Env.adsr(0, 0.2, 0, 0);\n sig2 = Mix.new([sin1, sin2]) * EnvGen.kr(sinEnv, gate: gate, doneAction: 2);\n\n // noise -> final mixer\n noiseEnv = Env.adsr(0, 0.3, 0, 0);\n sig3 = LPF.ar(WhiteNoise.ar() * EnvGen.kr(noiseEnv, gate: gate, doneAction: 2), 1000);\n sig3 = HPF.ar(sig3, 600);\n\n mixed = Mix.new([sig1, sig2, sig3]);\n mixed = LPF.ar(mixed, lpFreq) * vol;\n Out.ar(out, mixed ! 2);\n", source: "https://github.com/mattvears/supercollider-stuff", )
- VOLUME_CONTROL =
SynthDef.new(name: "volume_control", params: { :in => nil, :out => nil, :control => nil }, body: " var sig = In.ar([in,in+1]) * In.kr(control);\n Out.ar(out,sig);\n", credit: "James Tunnell", )
- VOLUME_CHANGE =
SynthDef.new(name: "volume_change", params: { :vol_bus => nil, :vol => nil, :dur => nil }, body: " Out.kr(vol_bus, Line.kr(In.kr(vol_bus), vol, dur));", credit: "James Tunnell", )
- CYMBAL_808 =
SynthDef.new(name: "cymbal808", params: { :out => 0, :baseFreq => 300, :time => 250, :amp => 0.1 }, body: " //var freqs = [baseFreq, baseFreq*1.3420, baseFreq*1.2312, baseFreq*1.6532, baseFreq*1.9523, baseFreq*2.1523];\n //var freqs = [78.6, 140.44, 123.87, 219.4, 787.5, 531.3];\n //var freqs = [205.35, 254.29, 294.03, 304.41, 369.64, 522.71];\n var freqs = [205.35, 304.41, 369.64, 522.71, 540.54, 812.21];\n var signal, pulseEnv;\n\n pulseEnv = EnvGen.ar(Env.new([1.0, 0.6], [time], [-0.5]), timeScale:(1/1000));\n signal = Mix.new(LFPulse.ar(freqs * 4.09));\n signal = (BinaryOpUGen('==', signal, 6.0) * 0.6) + (BinaryOpUGen('==', signal, 2.0) * 0.2) + (BinaryOpUGen('==', signal, 1.0) * 0.9); // XOR\n signal = (signal * pulseEnv) + (Mix.new(LFPulse.ar(freqs, width:0.55)) * 0.9);\n signal = RLPF.ar(signal, 7000, 0.6);\n signal = RHPF.ar(signal, 6800, 1.5);\n signal = RHPF.ar(signal, 6800, 1.5);\n signal = RHPF.ar(signal, 1200, 1.5);\n signal = signal + FreeVerb.ar(signal);\n 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);\n signal = [signal, DelayN.ar(signal, 0.005, 0.005)];\n OffsetOut.ar(out, signal*amp ! 2);\n", credit: "Published on sc-users 2007-08-25 by Ryan Brown", source: "https://github.com/supercollider-quarks/SynthDefPool", )
- CYMBALIC_MCLD =
SynthDef.new(name: "cymbalic_mcld", params: { :out => 0, :pan => 0, :amp => 0.1, :lo_attack => 0.1, :lo_release => 1, :hi_attack => 0.2, :hi_release => 1 }, body: " var lodriver, locutoffenv, hidriver, hicutoffenv, freqs, res, thwack;\n\n locutoffenv = EnvGen.ar(Env.perc(lo_attack, lo_release)) * 20000 + 10;\n lodriver = LPF.ar(WhiteNoise.ar(0.1), locutoffenv);\n\n hicutoffenv = 10001 - (EnvGen.ar(Env.perc(hi_attack, hi_release)) * 10000);\n hidriver = HPF.ar(WhiteNoise.ar(0.1), hicutoffenv);\n hidriver = hidriver * EnvGen.ar(Env.perc(hi_attack, hi_release * 0.75, 0.25));\n\n thwack = EnvGen.ar(Env.perc(0.001,0.001,0.5));\n\n // This bit will regenerate new freqs every time you evaluate the SynthDef!\n freqs = {exprand(300, 20000)}.dup(100);\n\n res = Ringz.ar(lodriver + hidriver + thwack, freqs).mean;\n\n Out.ar(out, Pan2.ar(((res * 1) + (lodriver * 2) + thwack) * amp, pan));\n", credit: "Based on the example at http://www.mcld.co.uk/cymbalsynthesis/ published 2008 by Dan Stowell", source: "https://github.com/supercollider-quarks/SynthDefPool", )