{"id":334,"date":"2009-05-10T16:28:00","date_gmt":"2009-05-10T15:28:00","guid":{"rendered":"http:\/\/www.celesteh.com\/blog\/2009\/05\/10\/buffertoo\/"},"modified":"2015-06-19T00:23:50","modified_gmt":"2015-06-18T23:23:50","slug":"buffertoo","status":"publish","type":"post","link":"https:\/\/www.celesteh.com\/blog\/2009\/05\/10\/buffertoo\/","title":{"rendered":"BufferTool"},"content":{"rendered":"<p>A while back, I wrote some code and put it in a class called BufferTool.  It&#8217;s useful for granulation.  Any number of BufferTools may point at a single Buffer.  Each of them knows it&#8217;s own startFrame, endFrame and duration.  Each one also can hold an array of other BufferTools which are divisions of itself.  Each one may also know it&#8217;s own SynthDef for playback and it&#8217;s own amplitude.  You can mix and match arrays of them.<br \/>\nYou can give them rules for how to subdivide, like a set duration of each grain, a range of allowable durations or even an array of allowed duration lengths.  Or, it can detect pauses in itself and subdivide according to them.  It can calculate the fundamental pitch of itself.<br \/>\nI want to release this as a quark, but first I&#8217;d like it if some other people used it a bit.  The class file is <a href=\"http:\/\/www.berkeleynoise.com\/celesteh\/code\/BufferTool\/BufferTool.sc\">BufferTool.sc<\/a>, and there&#8217;s a <a href=\"http:\/\/www.berkeleynoise.com\/celesteh\/code\/BufferTool\/BufferTool.html\">helpfile<\/a> and a <a href=\"http:\/\/www.berkeleynoise.com\/celesteh\/code\/BufferTool\/BufferTool.quark\">quark file<\/a>.<br \/>\nLeave comments with feedback, if you&#8217;d like.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A while back, I wrote some code and put it in a class called BufferTool. It&#8217;s useful for granulation. Any number of BufferTools may point at a single Buffer. Each of them knows it&#8217;s own startFrame, endFrame and duration. Each one also can hold an array of other BufferTools which are divisions of itself. Each &hellip; <a href=\"https:\/\/www.celesteh.com\/blog\/2009\/05\/10\/buffertoo\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">BufferTool<\/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,65,64],"class_list":["post-334","post","type-post","status-publish","format-standard","hentry","category-uncategorised","tag-celesteh","tag-coding","tag-supercollider"],"_links":{"self":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/334","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=334"}],"version-history":[{"count":1,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/334\/revisions"}],"predecessor-version":[{"id":2543,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/334\/revisions\/2543"}],"wp:attachment":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/media?parent=334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/categories?post=334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/tags?post=334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}