{"id":251,"date":"2010-09-25T13:42:00","date_gmt":"2010-09-25T12:42:00","guid":{"rendered":"http:\/\/www.celesteh.com\/blog\/2010\/09\/25\/julian-rohrhuber-and-two-simple\/"},"modified":"2015-06-19T00:23:31","modified_gmt":"2015-06-18T23:23:31","slug":"julian-rohrhuber-and-two-simple","status":"publish","type":"post","link":"https:\/\/www.celesteh.com\/blog\/2010\/09\/25\/julian-rohrhuber-and-two-simple\/","title":{"rendered":"Julian Rohrhuber: &lt;&lt;&gt; and &lt;&gt;&gt; : Two Simple Operators for Composing Processes at Runtime"},"content":{"rendered":"<p>Still Live blogging the SC symposium<br \/>\nA Proposal for a new thing, which everybody else here seems to already know about.<\/p>\n<h4>NamedControl<\/h4>\n<pre>\na = { |freq = 700, t_trig = 1.0| Decay.kr(t_trig) * Blip.ar(freq) * 0.1}.play\n<\/pre>\n<p>becomes<\/p>\n<pre>\na = { Decay.kr(trig.tr) * Blip.ar(freq.kr(400) * 0.1}.play;\na.set(trig . . .\n<\/pre>\n<h4>JITLib<\/h4>\n<p>Proxy stuff.  (Man, I learned SC 3.0 and then now there&#8217;s just all this extra stuff in the last 7 years and I should probably learn it.)<\/p>\n<pre>\nProxySapce.push(s);\n~out.play;\n~out = {Dust.ar(5000 ! 2, 0.01) };\n~out.fadeTime = 4\n\na = NodeProxy(s);\na.source =  {Dust.ar(5000 ! 2, 0.01) };\n\nNdef(x, . . .)\n<\/pre>\n<p>(there are too many fucking syntaxes to do exactly the same thing. Why do we need three different ones? Why?!!)<\/p>\n<pre>\nNdef(x, { BPF.ar(Dust.ar(5000 ! 2, 0.01)) }).play;\n\nNdef(x, { BPF.ar(Ndef.ar(y), 2000, 0.1)}).play;\nNdef(y, {Dust.ar(500)})\n<\/pre>\n<p> . . .<\/p>\n<pre>\nNdef(out) &lt;&lt;&gt; Ndef(k) &lt;&lt;&gt; Ndef(x)\n<\/pre>\n<p>does routing<br \/>\nNdefMixer(s) opens a GUI.<br \/>\nRon Kuivila asks: this is mapping input.  Notationally, you could pass the Ndef a symbol array.  Answer: you could write map(map(Ndef(out), in, Ndef(x) . . .<br \/>\nRon says this is beautiful and great.<br \/>\nNdef(comb &lt;&lt;&gt;.x nil \/\/adverb action<br \/>\nthe reverse syntax just works form the other direction.<br \/>\nNdefs can feedback, but everything is delayed on block size.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Still Live blogging the SC symposium A Proposal for a new thing, which everybody else here seems to already know about. NamedControl a = { |freq = 700, t_trig = 1.0| Decay.kr(t_trig) * Blip.ar(freq) * 0.1}.play becomes a = { Decay.kr(trig.tr) * Blip.ar(freq.kr(400) * 0.1}.play; a.set(trig . . . JITLib Proxy stuff. (Man, I learned &hellip; <a href=\"https:\/\/www.celesteh.com\/blog\/2010\/09\/25\/julian-rohrhuber-and-two-simple\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Julian Rohrhuber: &lt;&lt;&gt; and &lt;&gt;&gt; : Two Simple Operators for Composing Processes at Runtime<\/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,54,64,90],"class_list":["post-251","post","type-post","status-publish","format-standard","hentry","category-uncategorised","tag-celesteh","tag-live-blog","tag-supercollider","tag-symposium"],"_links":{"self":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/251","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=251"}],"version-history":[{"count":1,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/251\/revisions"}],"predecessor-version":[{"id":2451,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/251\/revisions\/2451"}],"wp:attachment":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/media?parent=251"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/categories?post=251"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/tags?post=251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}