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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  source: "https://github.com/mattvears/supercollider-stuff",
)
BASS4 =
SynthDef.new(name: "bass4", params: { :out => 0, :gate => 1, :freq => 440 },
  body: <<-SCLANG,
  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: <<-SCLANG,
  var env, tom;
  env = EnvGen.kr(Env.perc(0.001, 0.1, 1, -5), 1, doneAction:2);
  tom = SinOsc.ar(freq) * env;
  Out.ar(out, Pan2.ar(tom, pan, amp));
SCLANG
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  credit: "from 08091500Acid309 by_otophilia",
  source: "https://github.com/supercollider-quarks/SynthDefPool",
)
CLAP1 =
SynthDef.new(name: "clap1", params: { :out => 0, :amp => 0.5 },
  body: <<-SCLANG,
  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: <<-SCLANG,
  credit: <<-EOS,
  source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
)
KICK2 =
SynthDef.new(name: "kick2", params: { :out => 0, :amp => 0.2 },
  body: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  source: "From https://github.com/brunoruviaro/SynthDefs-for-Patterns",
)
KICK_CHIRP =
SynthDef.new(name: "kick_chrp", params: { :out => 0, :amp => 1, :pan => 0 },
  body: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  var fcurve = EnvGen.kr(Env([basefreq * ratio, basefreq], [sweeptime], \exp)),
      env = EnvGen.kr(Env([1, decay1L, 0], [decay1, decay2], -4), doneAction: 2),
      sig = SinOsc.ar(fcurve, 0.5pi, preamp).distort * env * amp;
  Out.ar(out, sig ! 2)

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: <<-SCLANG,
  source: "https://github.com/willieavendano/SC-SynthDefs/blob/master/DrumMachines",
)
KICK1 =
SynthDef.new(name: "kick", params: { :out => 0, :amp => 1, :dur => 0.05 },
  body: <<-SCLANG,
  source: "https://github.com/bwestergard/supercollider-experiments",
)
MARIO =
SynthDef.new(name: "mario", params: { :out => 0, :freq => 440, :length => 0.1, :dur => 0.2 },
  body: <<-SCLANG,
  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: <<-SCLANG,
  source: "https://github.com/mtytel/supersongs/",
)
BEAT =
SynthDef.new(name: "beat", params: { :out => 0, :amp => 1.0, :sustain => 0.1, :dur => 0.1 },
  body: <<-SCLANG,
  source: "https://github.com/mtytel/supersongs/",
)
BOOP =
SynthDef.new(name: "boop", params: { :out => 0, :dur => 1.0, :amp => 1.0, :freq => 440 },
  body: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
)
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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
  credit: <<-EOS,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  source: "https://github.com/mtytel/supersongs/",
)
DROPLET =
SynthDef.new(name: "droplet", params: { :amp => 0.2, :out => 0, :freq => 3000, :dur => 1, :rate => 1 },
  body: <<-SCLANG,
  source: "https://github.com/johncburnett/Matrix",
)
PHASE_MOD =
SynthDef.new(name: "phaseMod", params: { :amp => 0.2, :out => 0, :freq => 30, :gate => 1 },
  body: <<-SCLANG,
  source: "https://github.com/johncburnett/Matrix",
)
NOISE =
SynthDef.new(name: "noise", params: { :amp => 0.2, :out => 0 },
  body: <<-SCLANG,
  source: "https://github.com/johncburnett/Matrix",
)
NS_STATIC =
SynthDef.new(name: "nsStatic", params: { :amp => 0.2, :out => 0,:mix => 0.9 },
  body: <<-SCLANG,
  source: "https://github.com/johncburnett/Matrix",
)
POOM =
SynthDef.new(name: "poom", params: { :out => 0, :freq => 400, :level => 0.1 },
  body: <<-SCLANG,
  source: "https://github.com/philthomson/imp",
)
SINTH =
SynthDef.new(name: "sinth", params: { :out => 0, :curve => 0, :dur => 1, :freq => 400, :level => 0.1 },
  body: <<-SCLANG,
  source: "https://github.com/philthomson/imp",
)
AEOLIAN_STRINGS =
SynthDef.new(name: "aeolian_strings", params: { :out => 0 },
  body: <<-SCLANG,
  source: "https://github.com/thormagnusson/sctweets",
)
BONFIRE_NIGHT =
SynthDef.new(name: "bonfire_night", params: { :out => 0 },
  body: <<-SCLANG,
  source: "https://github.com/thormagnusson/sctweets",
)
THAT_CLUB =
SynthDef.new(name: "thatclub", params: { :out => 0 },
  body: <<-SCLANG,
  source: "https://github.com/thormagnusson/sctweets",
)
DRUNK_DRUMMER =
SynthDef.new(name: "drunk_drummer", params: { :out => 0 },
  body: <<-SCLANG,
  source: "https://github.com/thormagnusson/sctweets",
)
EIGHTBIT_FUNK =
SynthDef.new(name: "eightbit_funk", params: { :out => 0 },
  body: <<-SCLANG,
  source: "https://github.com/thormagnusson/sctweets",
)
TWO_TIMPANIS =
SynthDef.new(name: "two_timpanis", params: { :out => 0 },
  body: <<-SCLANG,
  source: "https://github.com/thormagnusson/sctweets",
)
TWO_TIMPANIS2 =
SynthDef.new(name: "two_timpanis2", params: { :out => 0 },
  body: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  source: "https://github.com/bwestergard/supercollider-experiments",
)
SINEPLUCK =
SynthDef.new(name: "sinepluck", params: { :out => 0, :freq => 440, :amp => 1, :dur => nil },
  body: <<-SCLANG,
  source: "https://github.com/bwestergard/supercollider-experiments",
)
POLY1 =
SynthDef.new(name: "poly1", params: { :out => 0, :gate => 1, :freq => 440 },
  body: <<-SCLANG,
  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: <<-SCLANG,
  var click, clickAmp;
  var noise, noiseAmp;
  var snd;

  // noise -> resonance -> expodec envelope
  noiseAmp = EnvGen.ar(Env.perc(0.001, release, curve: -8), doneAction: 2);
  noise = Mix(BPF.ar(ClipNoise.ar, [4010, 4151], [0.15, 0.56], [1.0, 0.6])) * 0.7 * noiseAmp;

  snd = noise;

  Out.ar(out, Pan2.ar(snd, pan, amp));
SCLANG
  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: <<-SCLANG,
  var pulse, sig, env, freqs;
  freqs = [freq, freq*1.4471, freq*1.617, freq*1.9265, freq*2.5028, freq*2.6637];
  pulse = Mix.ar(Pulse.ar(freqs, {0.9.rand}!6, mul: 0.15));
  sig = RHPF.ar(RHPF.ar(pulse, hpf), hpf);
  env = EnvGen.kr(Env.perc(0,release),doneAction:2);
  sig = sig*env;
  Out.ar(out, Pan2.ar(sig*amp,0));
SCLANG
  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: <<-SCLANG,
  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: <<-SCLANG,
  var hatosc, hatenv, hatnoise, hatoutput;

  hatnoise = {LPF.ar(WhiteNoise.ar(1),lpf)};
  hatosc = {HPF.ar(hatnoise,hpf)};
  hatenv = {Line.ar(1, 0, 0.3)};
  hatoutput = (hatosc * hatenv);

  Out.ar(out, Pan2.ar(hatoutput*amp, 0));
SCLANG
  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: <<-SCLANG,
  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: <<-SCLANG,
  credit: <<-EOS,
  source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
)
SNARE1 =
SynthDef.new(name: "snare1", params: { :out => 0, :amp => 0.8 },
  body: <<-SCLANG,
  source: "https://github.com/acarabott/roundhouse-synth-design-course-2014",
)
SNARE2 =
SynthDef.new(name: "snare2", params: { :sfreq => 1500, :out => 0 },
  body: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  source: "https://github.com/bwestergard/supercollider-experiments",
)
SNARE_909 =
SynthDef.new(name: "snare909", params: { :out => 0, :lpFreq => 1000, :vol => 1, :gate => 1 },
  body: <<-SCLANG,
  source: "https://github.com/mattvears/supercollider-stuff",
)
VOLUME_CONTROL =
SynthDef.new(name: "volume_control", params: { :in => nil, :out => nil, :control => nil },
  body: <<-SCLANG,
  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: <<-SCLANG,
  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: <<-SCLANG,
  credit: "Based on the example at http://www.mcld.co.uk/cymbalsynthesis/ published 2008 by Dan Stowell",
  source: "https://github.com/supercollider-quarks/SynthDefPool",
)