<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>codehop &#187; Jacob Joaquin</title>
	<atom:link href="http://codehop.com/author/jacobjoaquin/feed/" rel="self" type="application/rss+xml" />
	<link>http://codehop.com</link>
	<description>#code #art #music</description>
	<lastBuildDate>Mon, 23 Apr 2012 18:37:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>Introducing &#8220;Python Score&#8221; for Csound</title>
		<link>http://codehop.com/introducing-python-score-for-csound/</link>
		<comments>http://codehop.com/introducing-python-score-for-csound/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 17:00:29 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[Csound]]></category>
		<category><![CDATA[csound]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://codehop.com/?p=1695</guid>
		<description><![CDATA[PYTHON SCORE is a Python script for Csound score generation and processing. With it you will compose music easily and efficiently. No computer should be without one! This effort has been weeks in the making, if you disregard the 10+ &#8230; <a href="http://codehop.com/introducing-python-score-for-csound/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="https://github.com/jacobjoaquin/csd/blob/master/demo/pysco/test11.csd"><img src="http://codehop.com/wp-content/uploads/2012/04/intro_python_score-1024x640.png" alt="" title="intro_python_score" width="584" height="365" class="alignnone size-large wp-image-1697" /></a></p>
<p><a href="https://github.com/jacobjoaquin/csd/tree/master/demo/pysco">PYTHON SCORE</a> is a Python script for Csound score generation and processing. With it you will compose music easily and efficiently. No computer should be without one!</p>
<p>This effort has been weeks in the making, if you disregard the 10+ years I&#8217;ve spent creating various Csound score utilities I&#8217;ve coded up in Perl, Python, C and Java. Much of the focus on this project is directed at keeping the score familiar to Csounders, integrating Python with the Csound score using the CsScore bin feature, and removing as much unnecessary clutter. For example, you won&#8217;t need to open and close any files in your programs, Python Score handles it for you. And I&#8217;m attempting to keep the point of entry easy as possible for all; You&#8217;ll only need to know tiny bit of Python to get started.</p>
<p>Python Score is currently part of the <a href="https://github.com/jacobjoaquin/csd">Csound CSD Python library</a>, though it will receive its own repository in the future. Here are the highlights. More information will follow.</p>
<h2>The score() function</h2>
<p>The first priority of Python Score is to allow traditional Csound score composers to transition into this new score environment in a near seamless fashion. <em>Csounders will be able to use the full breadth of their knowledge of the traditional score they&#8217;ve acquired over the years.</em> With the score() function, Csounders accomplish just that. The following example (<a href="https://github.com/jacobjoaquin/csd/blob/master/demo/pysco/test.csd">test.csd</a>) is a complete CsScore section in a Csound csd file:</p>
<pre><code>&lt;CsScore bin="python pysco.py"&gt;

score('''
f 1 0 8192 10 1
t 0 189

i 1 0 0.5 0.707 9.02
i 1 + .   .     8.07
i 1 + .   .     8.09
i 1 + .   .     8.11
i 1 + .   .     9.00
i 1 + .   .     8.09
i 1 + .   .     8.11
i 1 + .   .     8.07
''')

&lt;/CsScore&gt;</code></pre>
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F43260585&#038;show_artwork=false"></iframe></p>
<p>A Csounder has successfully transitioned into this new environment once they&#8217;ve learned how to setup the call in the CsScore tag using the bin feature and embed their traditional Csound score code in a score() function. Once this has taken place, the composer is now only a step away from a plethora of new features to include in their arsenal of computer music tools.</p>
<h2>The &#8220;cue&#8221; Object</h2>
<p>Where as the score() function makes it easy for Csounders to make the leap into Python Score, the &#8220;cue&#8221; object is what makes it worthwhile. That and all the goodness Python brings to the mix.</p>
<p>The &#8220;cue&#8221; object enables composers to utilize nested programming techniques for placing events in time, similar to for-loops and if-then conditional branching. This allows composers to do things such as think-in-time localized to a measure rather than the absolute time of the global score.</p>
<p>The &#8220;cue&#8221; object works by translating the start values in pfield 2. Consider the following line of code:</p>
<pre><code>score('i 1 0 4 0.707 8.00')</code></pre>
<p>Looking at p-field 2, the event takes place at beat 0. By utilizing the &#8220;cue&#8221; object using the Python &#8220;with&#8221; statement, we can move the start time of the event without ever touching p-field 2. The follow block of code plays the same event at beat 64 in the score.</p>
<pre><code>with cue(64):
    score('i 1 0 4 0.707 8.00')</code></pre>
<p>The &#8220;cue&#8221; is a bit like a flux capacitor, as it makes time travel possible. Or at minimum, it saves a composer time, and lots of it, since they can easily move small and/or large sections of score, in time, without changing each and every value in the p-field 2 column. Notes, licks, phrases, bars, sections, entire compositions, etc&#8230; All of these time-based musical concepts benefit from the organizational power of the &#8220;cue&#8221;.</p>
<p>The following example from <a href="https://github.com/jacobjoaquin/csd/blob/master/demo/pysco/test10.csd">test10.csd</a> shows the first three measures of Bach&#8217;s Invention 1. The beginning of each measure is designated by the use of a &#8220;with cue(t)&#8221; statement. Since the native time of the Csound score is in beats, and the fact that the piece is in 4/4, the values used with the &#8220;cue&#8221; object are multiples of 4.</p>
<pre><code>with cue(0):
    score('''
    i 1 0.5 0.5 0.5 8.00
    i 1 +   .   .   8.02
    i 1 +   .   .   8.04
    i 1 +   .   .   8.05
    i 1 +   .   .   8.02
    i 1 +   .   .   8.04
    i 1 +   .   .   8.00
    ''')

with cue(4):
    score('''
    i 1 0 1    0.5 8.07
    i 1 + .    .   9.00
    i 1 + 0.25 .   8.11
    i 1 + 0.25 .   8.09
    i 1 + 0.5  .   8.11
    i 1 + .    .   9.00

    i 1 0.5 0.5 0.5 7.00
    i 1 +   .   .   7.02
    i 1 +   .   .   7.04
    i 1 +   .   .   7.05
    i 1 +   .   .   7.02
    i 1 +   .   .   7.04
    i 1 +   .   .   7.00
    ''')

with cue(8):
    score('''
    i 1 0 0.5 0.5 9.02
    i 1 + .   .   8.07
    i 1 + .   .   8.09
    i 1 + .   .   8.11
    i 1 + .   .   9.00
    i 1 + .   .   8.09
    i 1 + .   .   8.11
    i 1 + .   .   8.07

    i 1 0 1 0.5 7.07
    i 1 + . 0.5 6.07
    ''')
</code></pre>
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F43261176&#038;show_artwork=false"></iframe></p>
<p>The &#8220;cue&#8221; also acts as a stack, meaning you can nest multiple &#8220;with cue(t)&#8221; statements. The following score event happens at 21.05. That is 16 + 4 + 1 + 0.05.</p>
<pre><code>with cue(16):
    with cue(4):
        with cue(1):
            with cue(0.05):
                score('i 1 0 1 0.707 8.00')</code></pre>
<h2>P-field Converters</h2>
<p>Csound is loaded with value converters. Though all of these exist in the orchestra side of Csound and there is currently no Csound mechanism to apply value converters to the score. Unless you count macros, but these are limiting. Two functions have been created to allow composers to apply pfield converters, either from an existing library or to create their own. These functions are p_callback() and pmap().</p>
<p>The p_callback() function registers a user-selected function that is applied to a selected pfield for a selected instrument. This registered function is applied when the score() function is called.</p>
<p>The pmap() function works similarly, except that it applies a user-selected function to everything already written to the score. Think of it is a post-score processor, while p_callback() is a pre-score processor.</p>
<p>The example (<a href="https://github.com/jacobjoaquin/csd/blob/master/demo/pysco/test2.csd">test2.csd</a>) demonstrates two functions: conv_to_hz() which translates conventional notation into hz, and dB() which translates decibel values into standard amplitude values. Both of these are located in <a href="https://github.com/jacobjoaquin/csd/blob/master/demo/pysco/convert.py">convert.py</a>.</p>
<pre><code>&lt;CsScore bin="./pysco.py"&gt;

p_callback('i', 1, 5, conv_to_hz)

score('''
f 1 0 8192 10 1
t 0 120

i 1 0 0.5 -3 D5
i 1 + .   .  G4
i 1 + .   .  A4
i 1 + .   .  B4
i 1 + .   .  C5
i 1 + .   .  A4
i 1 + .   .  B4
i 1 + .   .  G5
''')

pmap('i', 1, 4, dB)

&lt;/CsScore&gt;</code></pre>
<p><iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F43261037&#038;show_artwork=false"></iframe></p>
<h2>What else?</h2>
<p>The functions presented so far are just the basic mechanisms included in Python Score to help solve specific score related issues. Beyond these there is Python. Having a true mature scripting language at your disposal opens up score creation an processing in ways that Csound alone could never do on it&#8217;s own. What Python offers will be the topic of many follow up posts and examples to come.</p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/introducing-python-score-for-csound/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>For Ann (rising) by James Tenney</title>
		<link>http://codehop.com/for-ann-rising-by-james-tenney/</link>
		<comments>http://codehop.com/for-ann-rising-by-james-tenney/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 18:10:19 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[Computer Music]]></category>
		<category><![CDATA[Csound]]></category>
		<category><![CDATA[SuperCollider]]></category>

		<guid isPermaLink="false">http://codehop.com/?p=1631</guid>
		<description><![CDATA[In 1969, American composer James Tenney wrote For Ann (rising), one of the &#8220;earliest applications of gestalt theory and cognitive science to music.&#8221; (source: wikipedia). The auditory illusion heard in the piece is achieved by layering multiple rising sine waves. &#8230; <a href="http://codehop.com/for-ann-rising-by-james-tenney/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><iframe width="584" height="438" src="http://www.youtube.com/embed/RqRd555v0Hg?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>In 1969, American composer <a href="http://en.wikipedia.org/wiki/James_Tenney">James Tenney</a> wrote <a href="http://en.wikipedia.org/wiki/For_Ann_(rising)">For Ann (rising)</a>, one of the &#8220;earliest applications of gestalt theory and cognitive science to music.&#8221; (source: <a href="http://en.wikipedia.org/wiki/For_Ann_(rising)">wikipedia</a>). The auditory illusion heard in the piece is achieved by layering multiple rising sine waves.</p>
<p>Tom Erbe recent wrote a blog post, <a href="http://musicweb.ucsd.edu/~tre/wordpress/?p=131">Some notes on For Ann (rising)</a>, in which he describes in detail the specifications of the piece. This includes a thorough description, an excerpt of <a href="http://csounds.com/">Csound</a> code, and a <a href="http://puredata.info/">PD</a> patch he recently created. The PD patch is available for download at his site.</p>
<p>I myself love studying classic computer music languages and instrument designs, so this afforded me the perfect opportunity to study the piece. For Ann (rising) is also a personal favorite of mine.</p>
<p>First, I assembled the Csound version based on Erbe&#8217;s notes and Csound code excerpt, which was a straight forward process. I copied the instrument without any modifications. Then I generated the score with the following two lines of Python code:</p>
<pre><code>for i in range(0, 240):
	print 'i 1 ' + str(i * 2.8) + ' 33.6'</code></pre>
<p>The Csound csd is available for download <a href="https://gist.github.com/1502516">here</a>.</p>
<p>The next thing I did was realize the piece in <a href="http://supercollider.sourceforge.net/">SuperCollider</a> based on Erbe&#8217;s Csound code. The technical simplicity of the instrument as well as the process for spawning voices allows for the piece to be expressed in less than 140 characters when translated into SuperCollider, making the following line of code twitter ready:</p>
<pre><code>fork{{play{SinOsc.ar(EnvGen.ar(Env.new([40,10240],[33.6],\exp)),0,EnvGen.ar(Env.linen(8.4,16.8,8.4),1,0.1,0,1,2))!2};2.8.wait}!240}//JTenney</code></pre>
<p>You can view the tweet <a href="http://twitter.com/#!/codehop/status/149187134711009281">here</a>.</p>
<p>I want to thank Tom Erbe for publicly sharing his work and insight, which has allowed this classical computer music piece to be reconstructed in multiple modern day mediums.</p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/for-ann-rising-by-james-tenney/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Music IV Block Diagram and Computer Code</title>
		<link>http://codehop.com/music-iv-block-diagram-and-computer-code/</link>
		<comments>http://codehop.com/music-iv-block-diagram-and-computer-code/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 14:59:30 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[Computer Music]]></category>

		<guid isPermaLink="false">http://codehop.com/?p=1617</guid>
		<description><![CDATA[From the MUSIC IV PROGRAMMER&#8217;S MANUAL by M. V. Mathews and Joan E. Miller. (1967)]]></description>
				<content:encoded><![CDATA[<p><a href="ftp://ccrma-ftp.stanford.edu/pub/Lisp/music-iv-programmers-manual.pdf"><img src="http://codehop.com/wp-content/uploads/2011/12/music_iv_block_diagram.jpg" alt="" title="music_iv_block_diagram" width="500" height="952" class="alignnone size-full wp-image-1619" /></a></p>
<p>From the <a href="ftp://ccrma-ftp.stanford.edu/pub/Lisp/music-iv-programmers-manual.pdf">MUSIC IV PROGRAMMER&#8217;S MANUAL</a> by M. V. Mathews and Joan E. Miller. (1967)</p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/music-iv-block-diagram-and-computer-code/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Mark Ballora &#8211; Opening Your Ears to Data</title>
		<link>http://codehop.com/mark-ballora-opening-your-ears-to-data/</link>
		<comments>http://codehop.com/mark-ballora-opening-your-ears-to-data/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 15:25:00 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[SuperCollider]]></category>

		<guid isPermaLink="false">http://codehop.com/?p=1610</guid>
		<description><![CDATA[Utilizing the computer music language SuperCollider, Ballora translates data sets into audio. In this TEDxPSU talk, he discusses the potential role data sonification plays in understanding the natural world.]]></description>
				<content:encoded><![CDATA[<p><iframe width="584" height="329" src="http://www.youtube.com/embed/aQJfQXGbWQ4?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>Utilizing the computer music language <a href="http://supercollider.sourceforge.net/">SuperCollider</a>, Ballora translates data sets into audio. In this TEDxPSU talk, he discusses the potential role data <a href="http://en.wikipedia.org/wiki/Sonification">sonification</a> plays in understanding the natural world.</p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/mark-ballora-opening-your-ears-to-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WolframAlpha FM Synthesizer</title>
		<link>http://codehop.com/wolframalpha-fm-synthesizer/</link>
		<comments>http://codehop.com/wolframalpha-fm-synthesizer/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 18:01:41 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[Computer Music]]></category>

		<guid isPermaLink="false">http://codehop.com/?p=1601</guid>
		<description><![CDATA[Did you know that WolframAlpha is also an FM Synthesizer? Note: The &#8220;Play sound&#8221; button doesn&#8217;t always appear, but when it does it&#8217;s magical.]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.wolframalpha.com/input/?i=play+sin%28440+pi+t+%2B+16%281+-+t%29+sin%28711.92+pi+t%29%29"><img src="http://codehop.com/wp-content/uploads/2011/11/wolframalpha_fm_synthesizer.jpg" alt="" title="wolframalpha_fm_synthesizer" width="587" height="676" class="alignnone size-full wp-image-1602" /></a></p>
<p>Did you know that <a href="http://www.wolframalpha.com/input/?i=play+sin%28440+pi+t+%2B+16%281+-+t%29+sin%28711.92+pi+t%29%29">WolframAlpha</a> is also an <a href="http://en.wikipedia.org/wiki/Frequency_modulation_synthesis">FM Synthesizer</a>?</p>
<p>Note: The &#8220;Play sound&#8221; button doesn&#8217;t always appear, but when it does it&#8217;s magical.</p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/wolframalpha-fm-synthesizer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sampler Concrete</title>
		<link>http://codehop.com/sampler-concrete/</link>
		<comments>http://codehop.com/sampler-concrete/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 15:18:32 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[Csound]]></category>
		<category><![CDATA[composition]]></category>
		<category><![CDATA[computer music]]></category>
		<category><![CDATA[csound]]></category>
		<category><![CDATA[Musique Concrete]]></category>
		<category><![CDATA[NYU Software Synthesis]]></category>
		<category><![CDATA[synthesis]]></category>

		<guid isPermaLink="false">http://codehop.com/?p=1562</guid>
		<description><![CDATA[Photo by Carbon Arc. Licensed under Creative Commons. First, I want to welcome aboard Jean-Luc Sinclair. As part of his NYU Software Synthesis class, he has graciously decided to share the articles he is writing for his students. His first &#8230; <a href="http://codehop.com/sampler-concrete/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/41002268@N03/4892952082/"><img src="http://codehop.com/wp-content/uploads/2011/10/tape_reel.jpeg" alt="" title="7-inch (17.8cm) tape reel 4" width="500" height="500" class="alignnone size-full wp-image-1593" /></a><br />
<em>Photo by <a href="http://www.flickr.com/photos/41002268@N03/">Carbon Arc</a>. Licensed under <a href="http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en">Creative Commons</a>.</em></p>
<p>First, I want to welcome aboard Jean-Luc Sinclair. As part of his NYU Software Synthesis class, he has graciously decided to share the articles he is writing for his students. His first contribution <a href="http://codehop.com/organizing-sounds-musique-concrete-part-i/" title="Organizing Sounds: Musique Concrete, Part I">Organizing Sounds: Musique Concrete, Part I</a> has already proven to be the most popular post here at CodeHop. Last year, before The Csound Blog became CodeHop, Jean-Luc had written another amazing piece, <a href="http://codehop.com/organizing-sounds-sonata-form/" title="Organizing Sounds: Sonata Form">Organizing Sounds: Sonata Form</a>, which I highly recommend. Thank you, Jean-Luc!</p>
<p>Now on to today&#8217;s example. (Get <a href="https://gist.github.com/1270309">sampler_concrete.csd</a>)</p>
<p>Many tape techniques are simplistic in nature and are easily mimic-able in the digital domain. After all, a sampler can be thought of as a high-tech featured-endowed tape machine. A more apt comparison would be that of a waveform editor such as Peak, WaveLab or <a href="http://audacity.sourceforge.net/">Audacity</a>.</p>
<p>I&#8217;ve designed a Csound instrument called &#8220;splice&#8221; that is about as basic as it gets when it comes to samplers. My hope is that the simplicity of the instrument will bring attention to the fact that many of the tape concrete techniques mentioned in Jean-Luc&#8217;s article are themselves simple.</p>
<p>Let&#8217;s take a look at the score interface to &#8220;splice&#8221;:</p>
<pre><code>i "splice" start_time duration amplitude begin_splice end_splice</code></pre>
<p>The start time and duration are both default parameters of a score instrument event. Three additional parameters are included for setting the amplitude, specifying the beginning time (in seconds) of the sample and specifying the end time (in seconds) of the sample to be played. </p>
<p>With this short list of instrument parameters, the following techniques are showcased in the Csound example: Splicing, Vari-speed, Reversal, &#8220;Tape&#8221; Loop, Layering, Delay and Comb Filtering.</p>
<p>Continuing Schaeffer&#8217;s tradition of using recordings of train, I&#8217;m using a <a href="http://en.wikipedia.org/wiki/Found_art#Other_art_forms">found sound</a> that I found on SoundCloud of the <a href="http://soundcloud.com/olpc-samples/sounds-of-the-manhattan-subway-nyc-usa-wav">Manhattan subway</a>. The recording is approximately 30 seconds in length. Most of the splicing in the examples take place between 17 and 26 seconds into the recording. Here are the results.</p>
<object height="81" width="100%"><param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F24986176&amp;g=1&amp;auto_play=false&amp;show_comments=true&amp;color=&amp;theme_color="></param><param name="allowscriptaccess" value="always"></param><embed allowscriptaccess="always" height="81" src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F24986176&amp;g=1&amp;auto_play=false&amp;show_comments=true&amp;color=&amp;theme_color=" type="application/x-shockwave-flash" width="100%"> </embed></object>
<p>With this one simple instrument, it is entirely conceivable to compose a complete piece in the style of classic tape music.</p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/sampler-concrete/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Overheard in Black Rock City</title>
		<link>http://codehop.com/overheard-in-black-rock-city/</link>
		<comments>http://codehop.com/overheard-in-black-rock-city/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 17:51:40 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[SuperCollider]]></category>

		<guid isPermaLink="false">http://codehop.com/?p=1540</guid>
		<description><![CDATA[Overheard at 2:00 and Anniversary in Black Rock City. fork{{play{SinOsc.ar(0.2*WhiteNoise.ar*1943+1932)*EnvGen.ar(Env.new([1,0.4,0],[0.05,2],-4),2,1,0,1,2)};15.wait}!inf} // 2:00 &#038; Anniversary]]></description>
				<content:encoded><![CDATA[<p>Overheard at 2:00 and Anniversary in Black Rock City.</p>
<pre><code>fork{{play{SinOsc.ar(0.2*WhiteNoise.ar*1943+1932)*EnvGen.ar(Env.new([1,0.4,0],[0.05,2],-4),2,1,0,1,2)};15.wait}!inf} // 2:00 &#038; Anniversary</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/overheard-in-black-rock-city/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SuperCollider Bohlen-Pierce Tweet</title>
		<link>http://codehop.com/supercollider-bohlen-pierce-tweet/</link>
		<comments>http://codehop.com/supercollider-bohlen-pierce-tweet/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 00:17:43 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[SuperCollider]]></category>

		<guid isPermaLink="false">http://codehop.com/?p=1527</guid>
		<description><![CDATA[There is definitely a Zen thing to composing in 140 characters or less. This next tweet features the Bohlen-Pierce scale. fork{loop{play{f=_*3.pow(17.rand/13);e=EnvGen.ar(Env.perc,1,0.3,0,1,2);PMOsc.ar(f.([438,442]),f.(880),f.(e))*e};[1/6,1/3].choose.wait}}]]></description>
				<content:encoded><![CDATA[<p>There is definitely a Zen thing to composing in 140 characters or less. This next tweet features the <a href="http://en.wikipedia.org/wiki/Bohlen%E2%80%93Pierce_scale">Bohlen-Pierce scale</a>.</p>
<pre><code>fork{loop{play{f=_*3.pow(17.rand/13);e=EnvGen.ar(Env.perc,1,0.3,0,1,2);PMOsc.ar(f.([438,442]),f.(880),f.(e))*e};[1/6,1/3].choose.wait}}</code></pre>
<object height="81" width="100%"><param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F21826250&amp;g=1&amp;auto_play=false&amp;show_comments=true&amp;color=&amp;theme_color="></param><param name="allowscriptaccess" value="always"></param><embed allowscriptaccess="always" height="81" src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F21826250&amp;g=1&amp;auto_play=false&amp;show_comments=true&amp;color=&amp;theme_color=" type="application/x-shockwave-flash" width="100%"> </embed></object>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/supercollider-bohlen-pierce-tweet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SuperCollider Markov Chain</title>
		<link>http://codehop.com/supercollider-markov-chain/</link>
		<comments>http://codehop.com/supercollider-markov-chain/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 12:31:20 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[Csound]]></category>
		<category><![CDATA[SuperCollider]]></category>

		<guid isPermaLink="false">http://codehop.com/?p=1502</guid>
		<description><![CDATA[During my aggressive push to learn as much as possible about SuperCollider over the weekend, I&#8217;ve translated an earlier Csound etude of mine into SC code that generates a sequence in real-time using a Markov chain. I&#8217;ve come away with &#8230; <a href="http://codehop.com/supercollider-markov-chain/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://codehop.com/wp-content/uploads/2011/08/markovExpII.jpeg"><img src="http://codehop.com/wp-content/uploads/2011/08/markovExpII.jpeg" alt="" title="Markov Experiment II" width="500" height="422" class="alignnone size-full wp-image-1503" /></a></p>
<p>During my aggressive push to learn as much as possible about <a href="http://supercollider.sourceforge.net/">SuperCollider</a> over the weekend, I&#8217;ve translated an earlier <a href="http://csounds.com/">Csound</a> etude of mine into SC code that generates a sequence in real-time using a <a href="http://en.wikipedia.org/wiki/Markov_chain">Markov chain</a>. I&#8217;ve come away with a few thoughts.</p>
<p>While I believe Csound definitely has an sharp edge in the DSP department, SuperCollider excels in allowing users to compose their own algorithmic sequencers. Even though the syntax of this <a href="http://en.wikipedia.org/wiki/Smalltalk">Smalltalk</a>-based language looks and feels very slippery to me, the SC code comes off as being much more concise and expressive than the Csound counterpart.</p>
<p>As for the work itself, I consider this to be very much a technical exercise; There is still so much about SuperCollider I&#8217;m completely ignorant of, including basic patterns and Pbinds, etc, and grinding against a problem like this is a big help in leveling up. Though it appears I&#8217;ll be able to build a generic Markov chain engine, separating the the SynthDefs from the nodes in a reusable function of some sort, which is the long term goal. This earliest of prototypes already goes pretty far in this direction, but there is plenty room for improvement.</p>
<object height="81" width="100%"><param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F21613205&amp;g=1&amp;auto_play=false&amp;show_comments=true&amp;color=&amp;theme_color="></param><param name="allowscriptaccess" value="always"></param><embed allowscriptaccess="always" height="81" src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F21613205&amp;g=1&amp;auto_play=false&amp;show_comments=true&amp;color=&amp;theme_color=" type="application/x-shockwave-flash" width="100%"> </embed></object>
<p>Grab the <a href="https://gist.github.com/1161256">SuperCollider code</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/supercollider-markov-chain/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Audio Programming Book at Facebook</title>
		<link>http://codehop.com/the-audio-programming-book-at-facebook/</link>
		<comments>http://codehop.com/the-audio-programming-book-at-facebook/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 14:53:42 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://codehop.com/?p=1495</guid>
		<description><![CDATA[The Audio Programming Book, edited by Richard Boulanger and Victor Lazzarini, has a brand new Facebook page. I personally love this book. I spent a lot of time with it when I first received my copy. Within that timeframe, many &#8230; <a href="http://codehop.com/the-audio-programming-book-at-facebook/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://codehop.com/wp-content/uploads/2010/11/TheAudioProgrammingBook.jpg"><img src="http://codehop.com/wp-content/uploads/2010/11/TheAudioProgrammingBook.jpg" alt="" title="The Audio Programming Book" width="550" height="412" class="alignnone size-full wp-image-1146" /></a></p>
<p><a href="http://www.amazon.com/Audio-Programming-Book-Richard-Boulanger/dp/0262014467/ref=sr_1_1?ie=UTF8&#038;qid=1313765489&#038;sr=8-1">The Audio Programming Book</a>, edited by Richard Boulanger and Victor Lazzarini, has a brand new <a href="http://www.facebook.com/pages/The-Audio-Programming-Book/240913839282277">Facebook page</a>.</p>
<p>I personally love this book. I spent a lot of time with it when I first received my copy. Within that timeframe, many concepts of what is actually happening behind the scenes of digital audio and synthesis started to become clear to me.</p>
<p>Unfortunately, I got crazy busy, and had to shelf-it. Though I have plans to revisit it this upcoming October. </p>
<p>I did post some of the exercises I was working over at GitHub. If you&#8217;re interested:</p>
<p><a href="https://gist.github.com/718095">MIDI to Frequency Chart</a><br />
<a href="https://gist.github.com/719159">Breakpoint List</a><br />
<a href="https://gist.github.com/726087">simple_aiff.c</a><br />
<a href="https://gist.github.com/729308">simple_buffer.c</a><br />
<a href="https://gist.github.com/739142">zero_shape.c</a></p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/the-audio-programming-book-at-facebook/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
