{"id":343,"date":"2009-04-11T16:28:00","date_gmt":"2009-04-11T15:28:00","guid":{"rendered":"http:\/\/www.celesteh.com\/blog\/2009\/04\/11\/pattern-stuff\/"},"modified":"2015-06-19T00:23:52","modified_gmt":"2015-06-18T23:23:52","slug":"pattern-stuff","status":"publish","type":"post","link":"https:\/\/www.celesteh.com\/blog\/2009\/04\/11\/pattern-stuff\/","title":{"rendered":"pattern stuff"},"content":{"rendered":"<p>More supercollider symposium live blogging<\/p>\n<p>i missed the first session, alas. Too much devil liquor.<\/p>\n<p>now we will hear about patterns. They speaker&#8217;s car&#8217;s registration plate says &#8216;rlpf . ar&#8217;<\/p>\n<p>james harkins talk can be found on the internets.<\/p>\n<p>patterns are about anstractions.  You can write very concise cose that does things for you.<\/p>\n<p>you can describe a stream&#8217;s behavior with a pattern.  Some patterns can do values, others events.<\/p>\n<p>pseries counts, pgeom does some multiplying.for exponential increments<\/p>\n<p>there&#8217;s many random ones and some chaotic, etc<\/p>\n<p>can pass these to each other, like using a patern to control step size in pseries<\/p>\n<p>some list pattern things: pseq, prand, pxrand, pwrand, pshuf.  Please note these should all have capital p&#8217;s, but i&#8217;m blogging from an n800.<\/p>\n<p>list patterns send the message embedInStrem to everything in its array, so you can have them nested.<\/p>\n<p>an event in something that understands the message play.  You can write your own play function.  Must check this out.<\/p>\n<p>you can mess with the events innards<\/p>\n<p>synthdefs must be stored.  Or go into the synthdesclib<\/p>\n<p>event patterns are also list patterns. We&#8217;ve got pbind, pmono, etc.<\/p>\n<p>p=pbind(foo, 1).asStream; p.next(()); \/\/must pass in an empty event when you call next and the empty paren set is an empty event.<\/p>\n<p>.x is and adverb thing.  T does matrix operations on lists, kinds, element by element<\/p>\n<p>pkey is cool. It gives you the result of prevous event thingee<\/p>\n<p>patternproxy is a part of jitlib. It lets you chanhe patterns on the fly<\/p>\n<p>merging patterns, he calls pattern composition.<\/p>\n<p>you can put your own function in patterms. <\/p>\n<p>a magic square is like sudoku for notes<\/p>\n<p>now we are being evangelized.<\/p>\n<p>now ron is up to talk about some extra pattern classes. <\/p>\n<p>he notes patterns are sometimes unattractive to programmers.  The library is too big. Writing you own functions in it is hard.<\/p>\n<p>ron haw written a class Pspawner wich lets you do stuff in a more prommer.y way. It takes a function and gets this as an argument<\/p>\n<p>this cool, it&#8217;s a way to scedule paterns. I will use this.  This fixes a bunch of my problems. Yay ron.<\/p>\n<p>but now he&#8217;s in overly complicated example ron land.<\/p>\n<p>ok, now we&#8217;re on to cvs and conductors.  Cvs do constraints. They&#8217;re cool.  The conductor is a dictionary and a gui.  It&#8217;s got a bunch of cvs.<\/p>\n<p>conductors are nifty.  They can control a pattern. Cvs can now take a wndex message which treats it as a weight table.<\/p>\n<p>there&#8217;s a cursor thing now.<\/p>\n<p>there&#8217;s some array stuff going on in cvs<\/p>\n<p>streams do next, reset, embedInStream. Patterns do asStream, embedInStream<\/p>\n<p>routines have state.  There&#8217;s something important in yield vs embedInStream which went by quickly.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>More supercollider symposium live blogging i missed the first session, alas. Too much devil liquor. now we will hear about patterns. They speaker&#8217;s car&#8217;s registration plate says &#8216;rlpf . ar&#8217; james harkins talk can be found on the internets. patterns are about anstractions. You can write very concise cose that does things for you. you &hellip; <a href=\"https:\/\/www.celesteh.com\/blog\/2009\/04\/11\/pattern-stuff\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">pattern stuff<\/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],"class_list":["post-343","post","type-post","status-publish","format-standard","hentry","category-uncategorised","tag-celesteh"],"_links":{"self":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/343","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=343"}],"version-history":[{"count":1,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/343\/revisions"}],"predecessor-version":[{"id":2552,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/343\/revisions\/2552"}],"wp:attachment":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/media?parent=343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/categories?post=343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/tags?post=343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}