{"id":285,"date":"2010-05-28T18:44:00","date_gmt":"2010-05-28T17:44:00","guid":{"rendered":"http:\/\/www.celesteh.com\/blog\/2010\/05\/28\/bassdrum-update\/"},"modified":"2015-06-19T00:23:42","modified_gmt":"2015-06-18T23:23:42","slug":"bassdrum-update","status":"publish","type":"post","link":"https:\/\/www.celesteh.com\/blog\/2010\/05\/28\/bassdrum-update\/","title":{"rendered":"Bassdrum Update"},"content":{"rendered":"<p>Alas, my <a href=\"http:\/\/www.celesteh.com\/blog\/2010\/05\/26\/bassdru\/\">last bassdrum SynthDef<\/a> had errors in it.  You can&#8217;t do a .rand in a SynthDef, you need to use a UGen: Rand(lo, hi). And my sample and hold-ish bit was beyond screwed up.<\/p>\n<p> Alas.  To make up for this gruesome oversight, I&#8217;ve posted 16 samples of my analog drum patch to my <a href=\"http:\/\/www.berkeleynoise.com\/celesteh\/podcast\/?page_id=66\">sample library<\/a>.  They&#8217;re all public domain, because crediting individual samples is too annoying for users.  I hate having to keep track of stuff like that.  I use a personal wiki to track this stuff when I use samples that require attribution, and it&#8217;s still annoying.<br \/>\nAlso, here&#8217;s my fixed version:<\/p>\n<pre>\n\n(\n SynthDef(bassD, {|out = 0, hit_dur, amp, pan|\n \n  var ringmod, noise, lpf, hpf, lpf_env, hpf_env, noise_env, env, panner, \n   pitch_env, slew, trig, sh;\n  \n  \n  lpf_env = EnvGen.kr(Env.perc(0.05, 56.56, 12, -4));\n  hpf_env = EnvGen.kr(Env.perc(0.05, 48.54, 12, -6));\n  noise_env = EnvGen.kr(Env.perc(0.0001, 0.032, 1, -8));\n  pitch_env = EnvGen.kr(Env.perc(0.07, hit_dur, 12, -2));\n  \n  env = EnvGen.kr(Env.perc(0.00005, hit_dur, amp, -2), doneAction: 2);\n  \n  trig = Impulse.ar(0.45\/hit_dur, Rand(0.0, 1.0));\n  sh = Dwhite(-6.0, 6.0,inf);\n  slew =  Lag.ar(Demand.ar(trig, 0, sh), hit_dur\/1.7) + Rand(-6.0, 6.0);\n  \n  ringmod = LFTri.ar(\n     (31 + slew + LFTri.ar((27 + pitch_env).midicps, Rand(0.0, 4.0), 60)).midicps, \n     Rand(0.0, 4.0)); \/\/ 5 octave log range\n  noise = PinkNoise.ar(noise_env);\n\n  lpf = RLPF.ar(ringmod, (56.56 + lpf_env).midicps, 0.5);\n  hpf = RHPF.ar(lpf +  noise, (48.54 + hpf_env).midicps, 0.5);\n  \n  panner = Pan2.ar(hpf, pan, env);\n  \n  Out.ar(out, panner);\n }).store;\n)\n<\/pre>\n<p>It really doesn&#8217;t sound as good as the analog.  Frankly, nothing ever sounds as good as analog.  My dream system is to have a real analog synthesiser on a chip or a board with a physical interface with actual knobs and stuff.  However, in my dream system, you&#8217;d be able to save knob settings and patches.  And then you&#8217;d be able to use it with supercollider (or a similar system).  Of course, I&#8217;d need a bunch of these things to get polyphony, so the rig would be outrageously expensive, but a boy can dream.<br \/>\nIf you want to tell me that this already exists (in real analog, none of this fake stuff) please also tell me I&#8217;ve won the lottery! Er no, do tell me about it. It would certainly give me incentive to start buying lottery tickets.<br \/>\nSpeaking of analog, I&#8217;m still looking for synth repair in the greater London area.  My power supply for my <a href=\"http:\/\/matrixsynth.blogspot.com\/2010\/02\/evenfall-mini-modular.html\">Evenfall Minimodular<\/a> is dead and there&#8217;s just not an off-the-shelf one that I can find.  I theoretically know how to build my own, but I&#8217;d like my first power supply to power something slightly more replaceable.  Meh.  At least any new one I get will work with multiple voltages.  Hauling around step down converters is a pain.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Alas, my last bassdrum SynthDef had errors in it. You can&#8217;t do a .rand in a SynthDef, you need to use a UGen: Rand(lo, hi). And my sample and hold-ish bit was beyond screwed up. Alas. To make up for this gruesome oversight, I&#8217;ve posted 16 samples of my analog drum patch to my sample &hellip; <a href=\"https:\/\/www.celesteh.com\/blog\/2010\/05\/28\/bassdrum-update\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Bassdrum Update<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[1],"tags":[76,64],"class_list":["post-285","post","type-post","status-publish","format-standard","hentry","category-uncategorised","tag-celesteh","tag-supercollider"],"_links":{"self":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/285","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/comments?post=285"}],"version-history":[{"count":2,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/285\/revisions"}],"predecessor-version":[{"id":4425,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/285\/revisions\/4425"}],"wp:attachment":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/media?parent=285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/categories?post=285"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/tags?post=285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}