<?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; max</title>
	<atom:link href="https://codehop.com/tag/max/feed/" rel="self" type="application/rss+xml" />
	<link>https://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>Music and Visuals</title>
		<link>https://codehop.com/music-and-visuals/</link>
		<comments>https://codehop.com/music-and-visuals/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 17:57:39 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[impromptu]]></category>
		<category><![CDATA[jitter]]></category>
		<category><![CDATA[max]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[msp]]></category>
		<category><![CDATA[visuals]]></category>

		<guid isPermaLink="false">http://slipmat.noisepages.com/?p=79</guid>
		<description><![CDATA[If slipmat at its core is a general purpose programming language augmented with advanced timing and scheduling capabilities, then slipmat would be well suited for both music and visuals. This isn&#8217;t really too much of a stretch. Audio unit generators &#8230; <a href="https://codehop.com/music-and-visuals/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>If slipmat at its core is a general purpose programming language augmented with advanced timing and scheduling capabilities, then slipmat would be well suited for both music and visuals.</p>
<p>This isn&#8217;t really too much of a stretch. Audio unit generators won&#8217;t be built into the core language, but instead will be stored as separate modules and imported as needed; The same would be true for visual modules. Musical GUI elements such as sliders are already visual in nature. There are existing audio/visual systems out in the wild, such as <a href="http://cycling74.com/products/maxmspjitter/">Max/MSP/Jitter</a> and <a href="http://impromptu.moso.com.au/">Impromptu</a>. Various functions and objects designed for music could also be applied to visuals; The same envelope that controls frequency can be used to control the position of a circle:</p>
<pre style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 1.2em; padding-bottom: 16px">
t = 10                          # time = 10 beats
my_circle = Circle(0, 200, 15)  # x position, y position, radius
env = line(0, t, 1)             # start value, duration, end value
sine(1.0, 440 * env)            # amp, frequency
my_circle.xpos(env * 400)       # x position over time
</pre>
<p>The example is a bit crude and omits many practical things, but the idea of syncing visuals with audio is there.</p>
<p>Beyond music and visuals, anything that is time-based would theoretically work in slipmat, providing a module is written.</p>
]]></content:encoded>
			<wfw:commentRss>https://codehop.com/music-and-visuals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On the Importance of Docstrings</title>
		<link>https://codehop.com/on-the-importance-of-docstrings/</link>
		<comments>https://codehop.com/on-the-importance-of-docstrings/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 15:23:22 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[doctring]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[max]]></category>
		<category><![CDATA[pd]]></category>
		<category><![CDATA[reaktor]]></category>
		<category><![CDATA[sphinx]]></category>

		<guid isPermaLink="false">http://slipmat.noisepages.com/?p=51</guid>
		<description><![CDATA[Docstrings can do wondrous things. Wikipedia describes a docstring as &#8220;a string literal specified in source code that is used, like a comment, to document a specific segment of code.&#8221; I&#8217;ve rewritten sine_arp() to demonstrate a theoretical docstring example: def &#8230; <a href="https://codehop.com/on-the-importance-of-docstrings/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img src="http://codehop.com/wp-content/uploads/2010/03/sine_arp_object.gif" alt="sine_arp visual object" title="sine_arp visual object" width="433" height="250" class="alignnone size-full wp-image-52" /></p>
<p>Docstrings can do wondrous things. Wikipedia describes a <a href="http://en.wikipedia.org/wiki/Docstring">docstring</a> as <em>&#8220;a string literal specified in source code that is used, like a comment, to document a specific segment of code.&#8221;</em> I&#8217;ve rewritten sine_arp() to demonstrate a theoretical docstring example:</p>
<pre style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 1.2em; padding-bottom: 16px">
def sine_arp(dur, amp, pitch, lfo_freq):
    '''Generates an arpeggiated sine tone.
    
    dur - Duration
    amp - Amp
    pitch - Pitch, in pitch-class format
    lfo_freq - Frequency of lfo arpeggiator    
    output - Audio signal
    '''
    
    self['dur'] = dur                            # Set life of instance
    notes = [0, 3, 7, 8]                         # List of half-steps
    arp = Wavetable.osc(1, lfo_freq, notes)      # Cycle through note list
    pitch = cpspch(pitch) * 2 ** (arp / 12.0)    # Modulate pitch with arp    
    osc = Wavetable.osc(amp, pitch, sine(1000))  # Generate audio
    output osc                                   # Return audio
</pre>
<p>The docstring is the string block between the matching triple quotes. It gives a basic description of what the function/opcode/unit generator does and descriptions for the inputs and output.</p>
<p>What are the advantages of building docstring capabilities directly into a computer music language?</p>
<p>One. A proper description of a function and its interface will allow other users to import and reuse code with ease, propagating a remix culture within the community.</p>
<p>Two. With a utility like the <a href="http://sphinx.pocoo.org/">Sphinx Python Documentation Generator</a>, complete documentation can be auto-generated in the form of HTML, PDF, LaTeX, etc. This gives users the opportunity to browse a library of synths, patterns, note generators without ever having to browse the code.</p>
<p>Three. They can provide interactive help from within an integrated development environment. For example, if your cursor is resting in the middle of a function, the description can automatically be displayed from somewhere within the IDE.</p>
<p>Four. Imagine if a visual GUI environment, such as Max or PD or Reaktor, was built <del datetime="2010-03-31T17:51:49+00:00">on top of</del> with slipmat. Docstring data could automatically be relayed to the visual object, as seen in the picture above. Furthermore, I have a hunch that if slipmat is designed properly, than all text function definitions could be visual objects, and vice versa, without modificaiton.</p>
<p><strong>Question:</strong> Are there any other music languages that utilize a Docstring-like system.  If so, I want to study them.</p>
]]></content:encoded>
			<wfw:commentRss>https://codehop.com/on-the-importance-of-docstrings/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Thing-a-day 17: Binary Clicker</title>
		<link>https://codehop.com/thing-a-day-17-binary-clicker/</link>
		<comments>https://codehop.com/thing-a-day-17-binary-clicker/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 16:18:01 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[the cosmos]]></category>
		<category><![CDATA[binary]]></category>
		<category><![CDATA[bre]]></category>
		<category><![CDATA[max]]></category>
		<category><![CDATA[tad2009]]></category>

		<guid isPermaLink="false">http://www.thumbuki.com/?p=263</guid>
		<description><![CDATA[Today&#8217;s device translates the wonderful world of binary into sound. Inspired by THINGS &#8211; COUNTING IN BINARY ON YOUR FINGERS by Bre. Listen &#8211; Day17-Binary_Clicker.mp3 Download &#8211; day17.max.zip (requires Max 5) For Thing-a-day 2009. UPDATE: Added a Creative Commons License &#8230; <a href="https://codehop.com/thing-a-day-17-binary-clicker/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/thumbuki/3287352861/" title="Binary Clicker by thumbuki, on Flickr"><img src="http://farm4.static.flickr.com/3190/3287352861_1816a2fd92.jpg" width="500" height="283" alt="Binary Clicker" /></a></p>
<p>Today&#8217;s device translates the wonderful world of binary into sound. Inspired by <a href="http://brepettis.com/blog/2009/02/16/things-counting-in-binary-on-your-fingers/">THINGS &#8211; COUNTING IN BINARY ON YOUR FINGERS</a> by <a href="http://brepettis.com/">Bre</a>.</p>
<p>Listen &#8211; <a href="http://thumbuki.com/thing-a-day2009/Day17-Binary_Clicker.mp3">Day17-Binary_Clicker.mp3</a></p>
<p>Download &#8211; <a href="http://thumbuki.com/thing-a-day2009/day17.max.zip">day17.max.zip</a> (requires Max 5)</p>
<p>For <a href="http://www.thing-a-day.com/">Thing-a-day 2009</a>.</p>
<p>UPDATE: Added a Creative Commons License to the mp3.</p>
<p><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a><br /><span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Sound" property="dc:title" rel="dc:type">Day17-Binary_Clicker.mp</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://www.thumbuki.com/20090217/thing-a-day-17-binary-clicker.html" property="cc:attributionName" rel="cc:attributionURL">Jacob Joaquin</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-Share Alike 3.0 United States License</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://codehop.com/thing-a-day-17-binary-clicker/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
<enclosure url="http://thumbuki.com/thing-a-day2009/Day17-Binary_Clicker.mp3" length="266175" type="audio/mpeg" />
		</item>
		<item>
		<title>Thing-a-day Day 1: Single-Grain Synth</title>
		<link>https://codehop.com/thing-a-day-day-1-single-grain-synth/</link>
		<comments>https://codehop.com/thing-a-day-day-1-single-grain-synth/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 13:30:03 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[the cosmos]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[instrument]]></category>
		<category><![CDATA[max]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[thing-a-day]]></category>

		<guid isPermaLink="false">http://www.thumbuki.com/?p=247</guid>
		<description><![CDATA[So I&#8217;ve decided to participate in Thing-a-day 2009. Which means that starting yesterday, I will create ten things over ten days, and share it with the world. Here&#8217;s a repost from my entry from yesterday: Single-Grain is a simple granular &#8230; <a href="https://codehop.com/thing-a-day-day-1-single-grain-synth/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>So I&#8217;ve decided to participate in <a href="http://www.thing-a-day.com/">Thing-a-day 2009</a>.  Which means that starting yesterday, I will create ten things over ten days, and share it with the world.  Here&#8217;s a repost from my <a href="http://www.thing-a-day.com/?p=1143">entry from yesterday</a>:</p>
<p><a href="http://www.flickr.com/photos/thumbuki/3246660938/" title="Single Grain Presentation by thumbuki, on Flickr"><img src="http://farm4.static.flickr.com/3450/3246660938_3162d17a32.jpg" width="500" height="370" alt="Single Grain Presentation" /></a></p>
<p>Single-Grain is a simple granular synthesizer/audio processor built with <a href="http://www.cycling74.com/products/max5">Max 5</a>.</p>
<p>You can download the original Max 5 Single-Grain patches <a href="http://www.thumbuki.com/thing-a-day2009/SingleGrainSource.zip">here</a>.  If you don&#8217;t own Max 5, but own a Mac, you can download the stand-alone application <a href="http://www.thumbuki.com/thing-a-day2009/SingleGrain.app.zip">here</a>.  Mileage may vary.</p>
<p><a href="http://www.flickr.com/photos/thumbuki/3245832157/" title="Single Grain Final Patch by thumbuki, on Flickr"><img src="http://farm4.static.flickr.com/3301/3245832157_58e91b7aaf.jpg" width="500" height="303" alt="Single Grain Final Patch" /></a></p>
]]></content:encoded>
			<wfw:commentRss>https://codehop.com/thing-a-day-day-1-single-grain-synth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
