<?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/"
		xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>LEESEAN.NET &#187; DIY</title>
	<atom:link href="http://leesean.net/category/diy/feed/" rel="self" type="application/rss+xml" />
	<link>http://leesean.net</link>
	<description>The Life of an Artist-Activist-Musician-Nerd</description>
	<lastBuildDate>Wed, 01 Feb 2012 14:09:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<copyright>2006-2009 </copyright>
	<managingEditor>ls@leesean.net (LEESEAN.NET)</managingEditor>
	<webMaster>ls@leesean.net (LEESEAN.NET)</webMaster>
	<ttl>1440</ttl>
	<image>
		<url>http://leesean.net/wp-content/plugins/podpress/images/powered_by_podpress.png</url>
		<title>LEESEAN.NET</title>
		<link>http://leesean.net</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>the adventures of lee-sean: life, media, music, art, politics, activism, style, travel, cuisine, and more...</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &#38; Culture" />
	<itunes:author>LEESEAN.NET</itunes:author>
	<itunes:owner>
		<itunes:name>LEESEAN.NET</itunes:name>
		<itunes:email>ls@leesean.net</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://leesean.net/wp-content/plugins/podpress/images/powered_by_podpress.png" />
		<item>
		<title>Rotobooth shots from the Awesome Foundation Party @ Babycastles</title>
		<link>http://leesean.net/2011/06/28/rotobooth-shots-from-the-awesome-foundation-party-babycastles/</link>
		<comments>http://leesean.net/2011/06/28/rotobooth-shots-from-the-awesome-foundation-party-babycastles/#comments</comments>
		<pubDate>Tue, 28 Jun 2011 04:08:01 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Awesome Foundation]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Babycastles]]></category>
		<category><![CDATA[Mike Kelberman]]></category>
		<category><![CDATA[Rotobooth]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=3388</guid>
		<description><![CDATA[Here are a couple Rotobooth shots from tonight&#8217;s Awesome Foundation NYC Party at Babycastles.  Babycastles, an independent video game arcade, were the co-hosts of the party and the recipients of the latest $1000 grant from Awesome NYC.  Rotobooth, a project by fellow ITP alum Mike Kelberman, is an automated photo booth that uploads pictures directly to Flickr. [...]]]></description>
			<content:encoded><![CDATA[<p>Here are a couple <a href="http://rotobooth.com/">Rotobooth</a> shots from tonight&#8217;s <a href="http://awesomefoundation.org/">Awesome Foundation</a> NYC Party at <a href="http://babycastles.com/">Babycastles</a>.  <a href="http://babycastles.com/">Babycastles</a>, an independent video game arcade, were the co-hosts of the party and the recipients of the latest $1000 grant from Awesome NYC.  <a href="http://rotobooth.com/">Rotobooth</a>, a project by fellow <a href="http://itp.nyu.edu">ITP</a> alum Mike Kelberman, is an automated photo booth that uploads pictures directly to Flickr.</p>
<p><a href="http://leesean.net/wp-content/uploads/2011/06/groupshot.jpg"><img class="alignnone size-full wp-image-3389" title="groupshot" src="http://leesean.net/wp-content/uploads/2011/06/groupshot.jpg" alt="" width="600" height="426" /></a></p>
<p>Above: Posing with fellow <a href="http://awesomefoundation.org">Awesome NYC</a> trustee <a href="http://twitter.com/#!/catherine_white">Catherine White</a> and <a href="http://twitter.com/#!/erikasays">Erika Johansson</a> and <a href="http://twitter.com/#!/Teeners">Martine Wisotsky</a> from <a href="http://purpose.com">Purpose</a>.</p>
<p><a href="http://leesean.net/wp-content/uploads/2011/06/ls.jpg"><img class="alignnone size-full wp-image-3390" title="ls" src="http://leesean.net/wp-content/uploads/2011/06/ls.jpg" alt="" width="563" height="478" /></a></p>
<p>Below: Awesome Foundation NYC trustees: <a href="http://twitter.com/#!/catherine_white">Catherine White</a>, <a href="http://jcn.me/">Jesse Chan-Norris</a>, and myself</p>
<p><a href="http://leesean.net/wp-content/uploads/2011/06/awesome.jpg"><img class="alignnone size-full wp-image-3393" title="awesome" src="http://leesean.net/wp-content/uploads/2011/06/awesome.jpg" alt="" width="640" height="427" /></a></p>
<p><a href="http://www.flickr.com/photos/fauxtauxs/sets/72157627065072034/">More photos on Flickr</a></p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2010/04/13/awesome-foundation-nyc-april-party/" rel="bookmark" class="crp_title">Awesome Foundation NYC April Party</a></li><li><a href="http://leesean.net/2010/01/02/the-awesome-foundation-nyc/" rel="bookmark" class="crp_title">The Awesome Foundation NYC</a></li><li><a href="http://leesean.net/2010/01/14/first-meeting-of-awesome-foundation-nyc-trustees/" rel="bookmark" class="crp_title">First meeting of Awesome Foundation NYC Trustees</a></li><li><a href="http://leesean.net/2010/09/15/awesome-foundation-nyc-september-party/" rel="bookmark" class="crp_title">Awesome Foundation NYC September Party</a></li><li><a href="http://leesean.net/2011/03/12/inside-out-purposenycs-swswnyc/" rel="bookmark" class="crp_title">Inside Out @ PurposeNYC&#8217;s #SWSWNYC</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2011/06/28/rotobooth-shots-from-the-awesome-foundation-party-babycastles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DIY Urban Agriculture Skillshare</title>
		<link>http://leesean.net/2010/06/06/diy-urban-agriculture-skillshare/</link>
		<comments>http://leesean.net/2010/06/06/diy-urban-agriculture-skillshare/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 19:18:59 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Brooklyn]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[New York]]></category>
		<category><![CDATA[NYC]]></category>
		<category><![CDATA[Compost]]></category>
		<category><![CDATA[DoTank]]></category>
		<category><![CDATA[Seed Bomb]]></category>
		<category><![CDATA[Urban Agriculture]]></category>
		<category><![CDATA[Window Farm]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=3211</guid>
		<description><![CDATA[I went to DoTank:Brooklyn&#8217;s DIY Urban Agriculture Skillshare at the Change You Want To See Gallery in Williamsburg, Brooklyn.  Carina Molnar of the CUNY Institute for Sustainable Cities taught us how to compost with worms in a plastic bin, Aurash Khawarzad of PPS.org showed us how to make seed bombs, and Ted Ullrich demonstrated how [...]]]></description>
			<content:encoded><![CDATA[<p>I went to <a href="http://dotankbrooklyn.org/">DoTank:Brooklyn&#8217;s</a> DIY Urban Agriculture Skillshare at the <a href="http://thechangeyouwanttosee.com/">Change You Want To See Gallery</a> in Williamsburg, Brooklyn.  Carina Molnar of the <a href="http://blog.cunysustainablecities.org/">CUNY Institute for Sustainable Cities</a> taught us how to <a href="http://en.wikipedia.org/wiki/Compost">compost</a> with worms in a plastic bin, <a href="http://twitter.com/AurashKhawarzad">Aurash Khawarzad</a> of <a href="http://www.pps.org/">PPS.org</a> showed us how to make <a href="http://www.guerrillagardening.org/ggseedbombs.html">seed bombs</a>, and <a href="http://tedullrich.com/">Ted Ullrich</a> demonstrated how to assemble a <a href="http://www.windowfarms.org/">Windowfarm</a>.</p>
<p><a href="http://leesean.net/wp-content/uploads/2010/06/IMG_5078.jpg"><img class="alignnone size-full wp-image-3214" title="Ted Ullrich introduces DoTank" src="http://leesean.net/wp-content/uploads/2010/06/IMG_5078.jpg" alt="" width="600" height="450" /></a><br />
Above: <a href="http://tedullrich.com/">Ted Ullrich</a> introduces <a href="http://dotankbrooklyn.org/">DoTank</a><br />
<span id="more-3211"></span></p>
<h3>Composting 101</h3>
<p>First drill air holes in a plastic bin.  Add raw plant-based kitchen scraps and strips of newspaper.<br />
<a href="http://leesean.net/wp-content/uploads/2010/06/IMG_5083.jpg"><img class="alignnone size-full wp-image-3215" title="IMG_5083" src="http://leesean.net/wp-content/uploads/2010/06/IMG_5083.jpg" alt="" width="500" height="500" /></a></p>
<p>Add worms, feed them more kitchen scraps over a few weeks, aerate, moisturize and otherwise keep the worms happy so they do their thing.<br />
<a href="http://leesean.net/wp-content/uploads/2010/06/IMG_5081.jpg"><img class="alignnone size-full wp-image-3218" title="IMG_5081" src="http://leesean.net/wp-content/uploads/2010/06/IMG_5081.jpg" alt="" width="499" height="500" /></a></p>
<p>And finally harvest the compost and separate out the worms.  &#8220;Cure&#8221; the compost by letting it dry out a bit before adding to plants.<br />
<a href="http://leesean.net/wp-content/uploads/2010/06/IMG_5087.jpg"><img class="alignnone size-full wp-image-3219" title="compost" src="http://leesean.net/wp-content/uploads/2010/06/IMG_5087.jpg" alt="" width="500" height="500" /></a></p>
<p>Recommended reading:<br />
<a href="http://www.amazon.com/gp/product/1889538035?ie=UTF8&amp;tag=ln080-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=1889538035">Easy Compost: The Secret to Great Soil and Spectacular Plants</a><br />
<a href="http://www.amazon.com/gp/product/0942256107?ie=UTF8&amp;tag=ln080-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0942256107">Worms Eat My Garbage: How to Set Up &amp; Maintain a Worm Composting System</a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=ln080-20&amp;l=as2&amp;o=1&amp;a=0942256107" border="0" alt="" width="1" height="1" /></p>
<p><a href="http://leesean.net/wp-content/uploads/2010/06/IMG_5080.jpg"><img class="alignnone size-full wp-image-3221" title="IMG_5080" src="http://leesean.net/wp-content/uploads/2010/06/IMG_5080.jpg" alt="" width="600" height="450" /></a></p>
<h3>Seed Bombing</h3>
<p><a href="http://leesean.net/wp-content/uploads/2010/06/seedbombing.jpg"><img class="alignnone size-full wp-image-3213" title="seedbombing" src="http://leesean.net/wp-content/uploads/2010/06/seedbombing.jpg" alt="" width="453" height="700" /></a></p>
<p>Image via <a href="http://dotankbrooklyn.org/post/645450738/seedbombing-in-6-easy-steps-this-is-some-of">DoTank:Brooklyn</a>. We didn&#8217;t have enough knives to go around at the skillshare, so I just shaped the clay into a thin wrapper with my hands, just like kneading a <a href="http://en.wikipedia.org/wiki/Jiaozi">gyoza</a> wrapper.  Also check out <a href="http://www.guardian.co.uk/environment/video/2008/apr/25/seedbombing">this video from the Guardian demonstrating how to make seed bombs</a>.</p>
<p><a href="http://leesean.net/wp-content/uploads/2010/06/IMG_5090.jpg"><img class="alignnone size-full wp-image-3220" title="IMG_5090" src="http://leesean.net/wp-content/uploads/2010/06/IMG_5090.jpg" alt="" width="500" height="500" /></a></p>
<h3>Windowfarms</h3>
<blockquote><p><a href="http://www.windowfarms.org/">Windowfarms</a> are vertical, hydroponic, modular, low-energy, high-yield edible window gardens built using low-impact or recycled local materials.</p></blockquote>
<p>Get <a href="http://our.windowfarms.org/">detailed instructions on how to build your own Windowfarms</a> and <a href="http://www.windowfarms.org/">join the Windowfarms community</a> for additional help and support.</p>
<p><a href="http://leesean.net/wp-content/uploads/2010/06/IMG_5075.jpg"><img class="alignnone size-full wp-image-3225" title="IMG_5075" src="http://leesean.net/wp-content/uploads/2010/06/IMG_5075.jpg" alt="" width="500" height="500" /></a></p>
<p><a href="http://leesean.net/wp-content/uploads/2010/06/IMG_5098.jpg"><img class="alignnone size-full wp-image-3223" title="IMG_5098" src="http://leesean.net/wp-content/uploads/2010/06/IMG_5098.jpg" alt="" width="500" height="500" /></a></p>
<p><a href="http://leesean.net/wp-content/uploads/2010/06/IMG_5100.jpg"><img class="alignnone size-full wp-image-3224" title="IMG_5100" src="http://leesean.net/wp-content/uploads/2010/06/IMG_5100.jpg" alt="" width="500" height="500" /></a></p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2010/06/13/clay-shirky-cognitive-surplus/" rel="bookmark" class="crp_title">Clay Shirky Cognitive Surplus</a></li><li><a href="http://leesean.net/2010/06/21/itp-heads-upstate/" rel="bookmark" class="crp_title">ITP Heads Upstate</a></li><li><a href="http://leesean.net/2010/09/15/awesome-foundation-nyc-september-party/" rel="bookmark" class="crp_title">Awesome Foundation NYC September Party</a></li><li><a href="http://leesean.net/2010/02/27/more-mumbo-jumbo/" rel="bookmark" class="crp_title">more mumbo jumbo</a></li><li><a href="http://leesean.net/2009/12/02/freedom-vs-security-the-struggle-for-balance/" rel="bookmark" class="crp_title">Freedom Vs Security: The Struggle for Balance</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2010/06/06/diy-urban-agriculture-skillshare/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ni Hao You Doin&#8217;?</title>
		<link>http://leesean.net/2010/05/18/ni-hao-you-doin/</link>
		<comments>http://leesean.net/2010/05/18/ni-hao-you-doin/#comments</comments>
		<pubDate>Tue, 18 May 2010 05:58:14 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Animals]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[China]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Fashion]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[HEPNOVA]]></category>
		<category><![CDATA[New York]]></category>
		<category><![CDATA[NYC]]></category>
		<category><![CDATA[Zazzle]]></category>
		<category><![CDATA[Bear]]></category>
		<category><![CDATA[Chinatown]]></category>
		<category><![CDATA[Chinese]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Italian]]></category>
		<category><![CDATA[Little Italy]]></category>
		<category><![CDATA[Panda]]></category>
		<category><![CDATA[t-shirt]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=3159</guid>
		<description><![CDATA[Ni Hao You Doin&#8217;? &#8211; A new Hepnova shirt on Zazzle in collaboration with Joey G. We were hanging out in Little Italy/Chinatown tonight and Joe came up with this brilliant bilingual pun that celebrates the confluence of cultures in a pizza/scallion pancake slice of Lower Manhattan with classic New York wit and attitude.  Here&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zazzle.com/ni_hao_you_doin_tshirt-235595969164224200?group=mens&amp;lifestyle=classic&amp;rf=238493302956630645"><img class="alignnone size-full wp-image-3160" title="NiHaoYouDoin'Shirt3" src="http://leesean.net/wp-content/uploads/2010/05/NiHaoYouDoinShirt3.jpg" alt="" width="600" height="600" /></a></p>
<p><a href="http://www.zazzle.com/ni_hao_you_doin_tshirt-235595969164224200?group=mens&amp;lifestyle=classic&amp;rf=238493302956630645">Ni Hao You Doin&#8217;?</a> &#8211; A new <a href="http://www.zazzle.com/ni_hao_you_doin_tshirt-235595969164224200?group=mens&amp;lifestyle=classic&amp;rf=238493302956630645">Hepnova shirt on Zazzle</a> in collaboration with Joey G.</p>
<p>We were hanging out in Little Italy/Chinatown tonight and Joe came up with this brilliant bilingual pun that celebrates the confluence of cultures in a pizza/scallion pancake slice of Lower Manhattan with classic New York wit and attitude.  Here&#8217;s to pasta and to potstickers and to Sino-Italian-American friendship! Ni hao you doin&#8217;?</p>
<p><a href="http://www.zazzle.com/ni_hao_you_doin_tshirt-235595969164224200?group=mens&amp;lifestyle=classic&amp;rf=238493302956630645">Buy the Ni Hao You Doin&#8217; shirt on Zazzle</a></p>
<div style="text-align: center; line-height: 150%;"><a href="http://www.zazzle.com/ni_hao_you_doin_tshirt-235595969164224200?group=mens&amp;lifestyle=classic&amp;rf=238493302956630645"><img style="border: 0;" src="http://rlv.zcache.com/ni_hao_you_doin_tshirt-p2355959691642242002mjxq_500.jpg" alt="Ni Hao You Doin'? shirt" /></a><br />
<a href="http://www.zazzle.com/ni_hao_you_doin_tshirt-235595969164224200?group=mens&amp;lifestyle=classic&amp;rf=238493302956630645">Ni Hao You Doin&#8217;?</a> by <a href="http://www.zazzle.com/hepnova*">Hepnova</a> in collaboration with Joey G<br />
<a href="http://www.zazzle.com/nyc+tshirts?rf=238493302956630645"></a></div>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2010/09/21/le-corbusier-t-shirt/" rel="bookmark" class="crp_title">Le Corbusier T-Shirt</a></li><li><a href="http://leesean.net/2010/02/07/saru-shigeki-and-snarky-sad-panda/" rel="bookmark" class="crp_title">Saru, Shigeki, and Snarky Sad Panda</a></li><li><a href="http://leesean.net/2009/04/09/im-so-goth-and-hepnova-twitter-nebula-shirts/" rel="bookmark" class="crp_title">I&#8217;m So Goth and HEPNOVA Twitter Nebula Shirts</a></li><li><a href="http://leesean.net/2009/04/09/video-of-jc-and-band-don-hills-and-eeean-t-shirt/" rel="bookmark" class="crp_title">Video of JC and Band @ Don Hill&#8217;s and £€€~$€AN T-Shirt</a></li><li><a href="http://leesean.net/2009/04/13/odi-and-amo-t-shirts/" rel="bookmark" class="crp_title">ODI and AMO T-shirts</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2010/05/18/ni-hao-you-doin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>You&#8217;re For Me (Featuring JC Cassis)</title>
		<link>http://leesean.net/2010/04/04/youre-for-me-featuring-jc-cassis/</link>
		<comments>http://leesean.net/2010/04/04/youre-for-me-featuring-jc-cassis/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 15:58:13 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[HEPNOVA]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[#musicMonday]]></category>
		<category><![CDATA[JC Cassis]]></category>
		<category><![CDATA[Remix]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=3080</guid>
		<description><![CDATA[Here&#8217;s a new groove for #MusicMonday: an updated version of the Hepnova track You&#8217;re For Me with vocals by the fierce and fabulous Ms. JC Cassis.   The original version of You&#8217;re For Me was on our eponymous 2009 album and featured vocals by Hepnova co-founder Nicholas Dibiase. The electric guitar solo (you know, the [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="300" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="allowScriptAccess" value="never" /><param name="allowNetworking" value="always" /><param name="wmode" value="transparent" /><param name="bgcolor" value="#EEEEEE" /><param name="src" value="http://bandcamp.com/EmbeddedPlayer.swf/album=3809674083/size=grande/bgcol=EEEEEE/linkcol=2D2D2D/" /><embed type="application/x-shockwave-flash" width="300" height="100" src="http://bandcamp.com/EmbeddedPlayer.swf/album=3809674083/size=grande/bgcol=EEEEEE/linkcol=2D2D2D/" bgcolor="#EEEEEE" wmode="transparent" allownetworking="always" allowscriptaccess="never" quality="high"></embed></object></p>
<p>Here&#8217;s a <a href="http://hepnova.bandcamp.com/track/youre-for-me-featuring-jc-cassis-bob-devine">new groove</a> for <a href="http://search.twitter.com/search?q=%23musicmonday">#MusicMonday</a>: an updated version of the <a href="http://hepnova.bandcamp.com/track/youre-for-me-featuring-jc-cassis-bob-devine">Hepnova track You&#8217;re For Me</a> with vocals by the fierce and fabulous <a href="http://jccassis.com/">Ms. JC Cassis</a>.   The <a href="http://hepnova.bandcamp.com/track/youre-for-me">original version   of You&#8217;re For Me</a> was on our eponymous 2009 album and featured vocals by <a href="http://hepnova.bandcamp.com/">Hepnova</a> co-founder <a href="http://twitter.com/hepnova">Nicholas  Dibiase</a>.</p>
<p>The electric guitar solo (you know, the part where you wonder, &#8220;who invited <a href="http://en.wikipedia.org/wiki/The_Edge">The Edge</a> to this Silk Road hoe down?&#8221;) was played by the brilliant <a href="http://bobdevine.com/">Dr. Bob Devine</a>.  And the crazy synth sounds you hear near the end come from the legendary Swedish <a href="http://www.elektron.se/products/sidstation">SidStation</a>.</p>
<p>Here are some reviews we have been getting:</p>
<p><a href="http://jccassis.wordpress.com/2010/04/03/new-collaboration-i-sing-lead-vocals-on-hepnovas-youre-for-me/">JC</a> calls You&#8217;re For me &#8220;a down-and-dirty country banger in the style of Johnny Cash.&#8221;</p>
<p><a href="http://mediocrestudent.wordpress.com/">Mediocre Student</a> says, &#8220;I like JC&#8217;s voice. and the pipa at the beginning. it&#8217;s like Detroit Chinatown. Your music has kind of a limping, offbeat rhythm  which is a nice contrast to the incessant and calculated thrust of the  bullshit Gaga house music I&#8217;ve been hearing in the Castro.&#8221; (*Actually the &#8220;<a href="http://en.wikipedia.org/wiki/Pipa">pipa</a>&#8221; sound is just a really cheap toy nylon string guitar, but also probably made in China, so I guess we are on the right track.)</p>
<p><a href="http://www.facebook.com/prestonism">Prestonism</a>: &#8220;RAD to the MAX&#8221;</p>
<p><a href="http://twitter.com/ToniaMBartz">@ToniaMBartz</a>: &#8220;GORGEOUS&#8221;</p>
<p><a href="http://twitter.com/KrysVS">@KrysVS</a>: &#8220;i would give it a &#8220;wow&#8221; to a &#8220;very wow&#8221;</p>
<p><a href="http://twitter.com/ClowerPower">@ClowerPower</a>: &#8220;I could picture this on the soundtrack for a Tarantino film!!! &#8221;</p>
<p><a href="http://twitter.com/AlexBerger">@AlexBerger</a>: &#8220;A very fun retro feel!&#8221;</p>
<p><a href="http://twitter.com/JackAlert">@JackAlert</a> : &#8220;Can&#8217;t wait for #<a href="http://search.twitter.com/search?q=%23musicmonday">MusicMonday</a>! Awesome new <a href="http://twitter.com/hepnova">@Hepnova</a> mix:&#8230; I think I might be in love with <a href="http://twitter.com/JCCassis">@JCCassis</a>&#8220;</p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2010/04/11/again-tonight-jc-cassis-version/" rel="bookmark" class="crp_title">Again Tonight (JC Cassis Version)</a></li><li><a href="http://leesean.net/2009/07/20/new-hepnova-album-free-download/" rel="bookmark" class="crp_title">New Hepnova Album (FREE download!)</a></li><li><a href="http://leesean.net/2011/01/03/petrosino-square/" rel="bookmark" class="crp_title">Petrosino Square</a></li><li><a href="http://leesean.net/2009/09/07/new-hepnova-music-en-la-plaza-de-mi-pueblo-and-mark-hur-var-skugga/" rel="bookmark" class="crp_title">New HEPNOVA music: &#8220;En la plaza de mi pueblo&#8221; and &#8220;Märk Hur Vår Skugga&#8221;</a></li><li><a href="http://leesean.net/2009/07/20/brand-well-raise-money/" rel="bookmark" class="crp_title">Brand Well, Raise Money</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2010/04/04/youre-for-me-featuring-jc-cassis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>RIP: A Remix Manifesto Screening and Dance Party</title>
		<link>http://leesean.net/2009/07/24/rip-a-remix-manifesto-screening-and-dance-party/</link>
		<comments>http://leesean.net/2009/07/24/rip-a-remix-manifesto-screening-and-dance-party/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 08:53:11 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Democracy]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Copyright]]></category>
		<category><![CDATA[Dan O'Neill]]></category>
		<category><![CDATA[RIP: A Remix Manifesto]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=2338</guid>
		<description><![CDATA[RIP: A Remix Manifesto filmmaker Brett Gaylor and underground cartoonist/fair-use icon Dan O&#8217;Neill in San Francisco, 23 June 2009. Tonight Creative Commons co-hosted a San Francisco screening of RIP: A Remix Manifest, a documentary about remix and copyright.  The movie features interviews with remix culture pioneers and opinion leaders like Girl Talk, Lawrence Lessig, Gilberto Gil, and Cory Doctorow. [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Brett Gaylor and special guest Dan O'Neill by leesean, on Flickr" href="http://www.flickr.com/photos/leesean/3751891694/"><img src="http://farm3.static.flickr.com/2581/3751891694_8e0349dca7.jpg" alt="Brett Gaylor and special guest Dan O'Neill" width="500" height="375" /></a><br />
<a href="http://www.ripremix.com/">RIP: A Remix Manifesto filmmaker Brett Gaylor</a> and underground cartoonist/fair-use icon <a href="http://www.danoneillcomics.com/">Dan O&#8217;Neill</a> in San Francisco, 23 June 2009.<br />
<a title="Brett Gaylor and special guest Dan O'Neill by leesean, on Flickr" href="http://www.flickr.com/photos/leesean/3751902286/"><img src="http://farm3.static.flickr.com/2581/3751902286_3dbfea238b.jpg" alt="Brett Gaylor and special guest Dan O'Neill" width="500" height="375" /></a></p>
<p>Tonight <a href="http://creativecommons.org/weblog/entry/15987">Creative Commons</a> co-hosted a San Francisco screening of <a href="http://www.ripremix.com/">RIP: A Remix Manifest</a>, a documentary about remix and copyright.  The movie features interviews with remix culture pioneers and opinion leaders like <a href="http://74.124.198.47/illegal-art.net/__girl__talk___feed__the__anima.ls___/">Girl Talk</a>, <a href="http://www.lessig.org/">Lawrence Lessig</a>, <a href="http://www.gilbertogil.com.br/">Gilberto Gil</a>, and <a href="http://craphound.com/">Cory Doctorow</a>.  RIP was on <a href="http://leesean.net/2009/07/02/summer-reading-viewing-list/">my summer viewing list</a>.</p>
<p>I went to check out the screening with <a href="http://creativecommons.org/about/people/fellows">Michelle</a>, another Creative Commons (and lurking reader of this blog).  Filmmaker Brett Gaylor did a Q&amp;A after the screening.  He also introduced special guest <a href="http://www.danoneillcomics.com/">Dan O&#8217;Neill</a> of <a href="http://en.wikipedia.org/wiki/Air_Pirates">Air Pirates</a> fame, who was profiled in the documentary.  You can <a href="http://www.ripremix.com/getdownloads/">download the film online</a> under a pay-what-you-want model.</p>
<p>After the Q&amp;A came the dance party. <a href="http://www.aplusd.net/">DJs Adrian and the Mysterious D</a> and VJs <a href="http://www.eclecticmethod.net/">Eclectic Method</a> rocked the house with their mash-up madness.  I haven&#8217;t danced that hard in years. Awesome!</p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2009/07/02/summer-reading-viewing-list/" rel="bookmark" class="crp_title">Summer Reading/Viewing List</a></li><li><a href="http://leesean.net/2007/11/03/human-rights-watch-voices-for-justice-annual-dinner/" rel="bookmark" class="crp_title">Human Rights Watch Voices for Justice Annual Dinner</a></li><li><a href="http://leesean.net/2007/10/11/san-francisco/" rel="bookmark" class="crp_title">San Francisco</a></li><li><a href="http://leesean.net/2007/11/23/thanksgiving-2007/" rel="bookmark" class="crp_title">Thanksgiving 2007</a></li><li><a href="http://leesean.net/2008/11/02/southampton/" rel="bookmark" class="crp_title">Southampton</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2009/07/24/rip-a-remix-manifesto-screening-and-dance-party/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Summer Reading/Viewing List</title>
		<link>http://leesean.net/2009/07/02/summer-reading-viewing-list/</link>
		<comments>http://leesean.net/2009/07/02/summer-reading-viewing-list/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 03:15:15 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Activism]]></category>
		<category><![CDATA[Creative Commons]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Democracy]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Movies]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Copyright]]></category>
		<category><![CDATA[Documentary]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Society]]></category>
		<category><![CDATA[Summer]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=2073</guid>
		<description><![CDATA[Here is a summer reading/viewing list of books and documentaries relating to my internship at Creative Commons and to my ongoing personal interests.  It&#8217;s a self-assigned curriculum for summer self-improvement if you will.  The general themes include technology, the internet, copyright, culture, creativity, and food.  I haven&#8217;t actually read all the books yet, but I [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a summer reading/viewing list of books and documentaries relating to my internship at <a href="http://creativecommons.org/">Creative Commons</a> and to my ongoing personal interests.  It&#8217;s a self-assigned curriculum for summer self-improvement if you will.  The general themes include technology, the internet, copyright, culture, creativity, and food.  I haven&#8217;t actually read all the books yet, but I have seen all the movies.</p>
<p>At the time of writing, all of the works are available for free (legal) viewing or download online except for <a href="http://www.foodincmovie.com/">Food Inc.</a>, which is now in theaters around the US &#8211; and a must see for <strong>EVERY</strong> American.  I know I have kind of geeky interests, and not everybody cares to read 300+ page books about copyright, but everybody eats, so go see Food Inc already!</p>
<p><strong>Books</strong></p>
<p><a href="http://cyber.law.harvard.edu/wealth_of_networks/Main_Page">The Wealth of Networks<br />
</a><em>How Social Production Transforms Markets and Freedom</em><br />
Yochai Benkler</p>
<p><a href="http://codev2.cc/download+remix/">Code and Other Laws of Cyberspace 2.0</a><br />
Lawrence Lessig</p>
<p><a href="http://www.free-culture.cc/">Free Culture<br />
</a><em>How Big Media Uses Technology and the Law to Lock Down Culture and Control Creativity</em><br />
Lawrence Lessig</p>
<p><a href="http://www.bloomsburyacademic.com/remix.htm">Remix</a><br />
<em> Making art and commerce thrive in the hybrid economy</em><br />
Lawrence Lessig</p>
<p><a href="http://thepiratesdilemma.com/about-the-book">The Pirates Dilemma</a><br />
How Youth Culture Is Reinventing Capitalism<br />
Matt Mason</p>
<p><a href="http://www.thepublicdomain.org/">The Public Domain</a><br />
<em> Enclosing the Commons of the Mind</em><br />
James Boyle</p>
<p><a href="http://www.viralspiral.cc/download-book">Viral Spiral</a><br />
<em> How the Commoners Built a Digital Republic of Their Own</em><br />
David Bollier</p>
<p><a href="http://futureoftheinternet.org/">The Future of the Internet And How to Stop It</a><br />
Jonathan Zittrain</p>
<p><a href="http://www.indigestio.com/observatori/intro%20llibre%204.html">Music and It&#8217;s Reflection on Society</a><br />
Catalan: <em>La Música i el seu reflex en la societat</em><br />
Spanish: <em>La música y su reflejo en la sociedad</em><br />
Edited by Indigestió<br />
A collection of essays about the role of music in contemporary society.  Only in Spanish and Catalan for now though.</p>
<p><a href="http://www.law.duke.edu/cspd/comics/">Tales from the Public Domain: Bound By Law?</a><br />
<em>“Bound by Law translates law into plain English and abstract ideas into ‘visual metaphors.’ So the comic&#8217;s heroine, Akiko, brandishes a laser gun as she fends off a cyclopean &#8216;Rights Monster&#8217; &#8211; all the while learning copyright law basics, including the line between fair use and copyright infringement.” </em>-Brandt Goldstein, The Wall Street Journal online</p>
<p><strong>Documentaries</strong></p>
<p><a href="http://www.goodcopybadcopy.net/">Good Copy/Bad Copy</a><br />
A Danish documentary about the current state of copyright and culture</p>
<p><a href="http://www3.nfb.ca/webextension/rip-a-remix-manifesto/">Rip: A Remix Manifesto</a><br />
A Canadian documentary film about copyright and remix culture.</p>
<p><a href="http://www.thefutureoffood.com/">The Future of Food</a><br />
An in-depth look into the controversy over genetically modified foods.  <a href="http://www.snagfilms.com/films/title/the_future_of_food/">Watch it online at Snagfilms</a>.</p>
<p><a href="http://www.foodincmovie.com/">Food, Inc.</a><br />
<em>Filmmaker Robert Kenner lifts the veil on our nation&#8217;s food industry, exposing the highly mechanized underbelly that has been hidden from the American consumer with the consent of our government&#8217;s regulatory agencies, USDA and FDA.</em></p>
<p><a href="http://www.snagfilms.com/films/title/the_legend_of_leigh_bowery/">The Legend of Leigh Bowery</a><br />
<em>The Legend of Leigh Bowery explores a life lived as if it was a performance. Leigh Bowery was a costume/clothing designer, nightclub impresario, performer, and musician whose vision influenced many of today’s most important artists. He later became known to the world at large as the muse and subject of preeminent British painter Lucian Freud.</em></p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2009/10/09/itp-driveby-creativity-copyright-and-control/" rel="bookmark" class="crp_title">ITP Driveby: Creativity, Copyright, and Control</a></li><li><a href="http://leesean.net/2009/07/24/rip-a-remix-manifesto-screening-and-dance-party/" rel="bookmark" class="crp_title">RIP: A Remix Manifesto Screening and Dance Party</a></li><li><a href="http://leesean.net/2008/11/03/response-to-the-ecstasy-of-influence-a-plagiarism-by-jonathan-lethem/" rel="bookmark" class="crp_title">Response to The Ecstasy of Influence: A Plagiarism by Jonathan Lethem</a></li><li><a href="http://leesean.net/2009/08/10/comments-on-in-a-digital-future-textbooks-are-history/" rel="bookmark" class="crp_title">Comments on &#8220;In a Digital Future, Textbooks Are History&#8221;</a></li><li><a href="http://leesean.net/2010/06/08/delivering-happiness/" rel="bookmark" class="crp_title">Delivering Happiness</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2009/07/02/summer-reading-viewing-list/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>ODI and AMO T-shirts</title>
		<link>http://leesean.net/2009/04/13/odi-and-amo-t-shirts/</link>
		<comments>http://leesean.net/2009/04/13/odi-and-amo-t-shirts/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 17:27:48 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[VisualMusic]]></category>
		<category><![CDATA[Zazzle]]></category>
		<category><![CDATA[AMO]]></category>
		<category><![CDATA[HEPNOVA]]></category>
		<category><![CDATA[ODI]]></category>
		<category><![CDATA[t-shirt]]></category>
		<category><![CDATA[Visual Music]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1690</guid>
		<description><![CDATA[I worked on my ODI and AMO characters this weekend, adding color, and putting them on t-shirts: ODI et AMO by Hepnova ODI et AMO by Hepnova Buy a tee shirt online from zazzle.com More info Related PostsODI et AMO StickersI&#8217;m So Goth and HEPNOVA Twitter Nebula ShirtsNi Hao You Doin&#8217;?Video of JC and Band [...]]]></description>
			<content:encoded><![CDATA[<p>I worked on my <a href="http://leesean.net/2009/04/04/odi-et-amo-final-project-proposal/">ODI and AMO characters</a> this weekend, adding color, and putting them on t-shirts:</p>
<div style="text-align:center;line-height:150%"><a href="http://www.zazzle.com/odi_et_amo_tshirt-235292977847228194?group=mens&amp;lifeStyle=all&amp;rf=238493302956630645"><img style="border:0;" src="http://rlv.zcache.com/odi_et_amo_tshirt-p2352929778472281942aie8_500.jpg" alt="ODI et AMO shirt" /></a><br />
<a href="http://www.zazzle.com/odi_et_amo_tshirt-235292977847228194?group=mens&amp;lifeStyle=all&amp;rf=238493302956630645">ODI et AMO</a> by <a href="http://www.zazzle.com/hepnova*">Hepnova</a></div>
<div style="text-align:center;line-height:150%"><a href="http://www.zazzle.com/odi_et_amo_tshirt-235292977847228194?view=back&amp;group=mens&amp;lifeStyle=all&amp;rf=238493302956630645"><img style="border:0;" src="http://rlv.zcache.com/odi_et_amo_tshirt-p2352929778472281942aiek_500.jpg" alt="ODI et AMO shirt" /></a><br />
<a href="http://www.zazzle.com/odi_et_amo_tshirt-235292977847228194?view=back&amp;group=mens&amp;lifeStyle=all&amp;rf=238493302956630645">ODI et AMO</a> by <a href="http://www.zazzle.com/hepnova*">Hepnova</a><br />
Buy a <a href="http://www.zazzle.com/tshirts?rf=238493302956630645">tee shirt</a> online from <a href="http://www.zazzle.com/?rf=238493302956630645">zazzle.com</a></div>
<p><a href="http://leesean.net/2009/04/04/odi-et-amo-final-project-proposal/">More info</a></p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2009/07/25/odi-et-amo-stickers/" rel="bookmark" class="crp_title">ODI et AMO Stickers</a></li><li><a href="http://leesean.net/2009/04/09/im-so-goth-and-hepnova-twitter-nebula-shirts/" rel="bookmark" class="crp_title">I&#8217;m So Goth and HEPNOVA Twitter Nebula Shirts</a></li><li><a href="http://leesean.net/2010/05/18/ni-hao-you-doin/" rel="bookmark" class="crp_title">Ni Hao You Doin&#8217;?</a></li><li><a href="http://leesean.net/2009/04/09/video-of-jc-and-band-don-hills-and-eeean-t-shirt/" rel="bookmark" class="crp_title">Video of JC and Band @ Don Hill&#8217;s and £€€~$€AN T-Shirt</a></li><li><a href="http://leesean.net/2010/02/07/saru-shigeki-and-snarky-sad-panda/" rel="bookmark" class="crp_title">Saru, Shigeki, and Snarky Sad Panda</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2009/04/13/odi-and-amo-t-shirts/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Video of JC and Band @ Don Hill&#8217;s and £€€~$€AN T-Shirt</title>
		<link>http://leesean.net/2009/04/09/video-of-jc-and-band-don-hills-and-eeean-t-shirt/</link>
		<comments>http://leesean.net/2009/04/09/video-of-jc-and-band-don-hills-and-eeean-t-shirt/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 21:04:06 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[HEPNOVA]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[YouTube]]></category>
		<category><![CDATA[Zazzle]]></category>
		<category><![CDATA[£€€~$€AN]]></category>
		<category><![CDATA[Don Hill's]]></category>
		<category><![CDATA[JC Cassis]]></category>
		<category><![CDATA[Lee-Sean]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[New York]]></category>
		<category><![CDATA[NYC]]></category>
		<category><![CDATA[t-shirt]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1675</guid>
		<description><![CDATA[Here&#8217;s a video JC Cassis and company performing &#8220;Get Out&#8221; live for the first time at Don Hill&#8217;s in SoHo last weekend. More videos from our gig on kathryncchiu&#8217;s YouTube channel. You can see me rocking out on the keys in the video. I designed the £€€~$€AN T-shirt that I am wearing. Get one from [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a video <a href="http://www.jccassis.com/">JC Cassis</a> and company performing &#8220;Get Out&#8221; live for the first time at Don Hill&#8217;s in SoHo last weekend.</p>
<p><object width="425" height="344" data="http://www.youtube.com/v/Z3vFRgTAq18&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Z3vFRgTAq18&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>More videos from our gig on <a href="http://www.youtube.com/user/kathryncchiu">kathryncchiu&#8217;s YouTube channel</a>.</p>
<p>You can see me rocking out on the keys in the video.  I designed the <a href="http://www.zazzle.com/lee_sean_bling_tshirt-235415879283725538?gl=Hepnova&amp;group=mens&amp;lifeStyle=all&amp;rf=238493302956630645">£€€~$€AN T-shirt</a> that I am wearing. Get one from the <a href="http://www.zazzle.com/lee_sean_bling_tshirt-235415879283725538?gl=Hepnova&amp;group=mens&amp;lifeStyle=all&amp;rf=238493302956630645">HEPNOVA Zazzle store</a>, because you know you want to wear my B£ING€D-OUT name on your ¢H€$T.</p>
<div style="text-align:center;line-height:150%"><a href="http://www.zazzle.com/lee_sean_bling_tshirt-235415879283725538?gl=Hepnova&amp;group=mens&amp;lifeStyle=all&amp;rf=238493302956630645"><img style="border:0;" src="http://rlv.zcache.com/lee_sean_bling_tshirt-p2354158792837255382huoc_500.jpg" alt="LEE-SEAN Bling shirt" /></a><br />
<a href="http://www.zazzle.com/lee_sean_bling_tshirt-235415879283725538?gl=Hepnova&amp;group=mens&amp;lifeStyle=all&amp;rf=238493302956630645">LEE-SEAN Bling</a> by <a href="http://www.zazzle.com/hepnova*">Hepnova</a><br />
Create <a href="http://www.zazzle.com/custom/tshirts?rf=238493302956630645">Custom Tee Shirts</a> With <a href="http://www.zazzle.com/?rf=238493302956630645">zazzle</a><br />
Browse other <a href="http://www.zazzle.com/people+health+cultures+tshirts?rf=238493302956630645">People Health Cultures T-Shirts</a></div>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2010/05/18/ni-hao-you-doin/" rel="bookmark" class="crp_title">Ni Hao You Doin&#8217;?</a></li><li><a href="http://leesean.net/2009/04/09/im-so-goth-and-hepnova-twitter-nebula-shirts/" rel="bookmark" class="crp_title">I&#8217;m So Goth and HEPNOVA Twitter Nebula Shirts</a></li><li><a href="http://leesean.net/2009/04/13/odi-and-amo-t-shirts/" rel="bookmark" class="crp_title">ODI and AMO T-shirts</a></li><li><a href="http://leesean.net/2010/09/21/le-corbusier-t-shirt/" rel="bookmark" class="crp_title">Le Corbusier T-Shirt</a></li><li><a href="http://leesean.net/2009/06/01/music-monday-cake-city-la-ciudad-de-cake/" rel="bookmark" class="crp_title">Music Monday: Cake City!</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2009/04/09/video-of-jc-and-band-don-hills-and-eeean-t-shirt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MyOnlineLife</title>
		<link>http://leesean.net/2009/04/05/myonlinelife/</link>
		<comments>http://leesean.net/2009/04/05/myonlinelife/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 23:52:03 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[dwd]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[People]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Flickr]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[translation]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1668</guid>
		<description><![CDATA[MyOnlineLife is a web page I programmed for my Dynamic Web Development class @ ITP.  It allows you to see my latest blog posts, Flickr photos and Facebook status updates all in one place.  I would have also included my Twitter feed, but I just echo my Facebook status updates on Twitter anyway, so no [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://leesean.net/itp/dwd/myOnlineLife/">MyOnlineLife</a> is a web page I programmed for my <a href="http://itp.nyu.edu/~cs220/dwd/syllabus.php">Dynamic Web Development class @ ITP</a>.  It allows you to see my latest blog posts, Flickr photos and Facebook status updates all in one place.  I would have also included my Twitter feed, but I just echo my Facebook status updates on Twitter anyway, so no need to double up and be redundant <img src='http://leesean.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Enjoy cyberstalking me <a href="http://leesean.net/itp/dwd/myOnlineLife/">here</a>.</p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2009/03/30/snapshots-three-ways/" rel="bookmark" class="crp_title">Snapshots Three Ways</a></li><li><a href="http://leesean.net/2009/05/04/leeseannet-redesign/" rel="bookmark" class="crp_title">LEESEAN.NET Redesign</a></li><li><a href="http://leesean.net/2009/04/11/givkwik/" rel="bookmark" class="crp_title">Givkwik</a></li><li><a href="http://leesean.net/2009/12/13/txttone/" rel="bookmark" class="crp_title">TXTTONE</a></li><li><a href="http://leesean.net/2010/06/03/design-for-the-first-world/" rel="bookmark" class="crp_title">Design For the First World</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2009/04/05/myonlinelife/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Odi et Amo (Final Project Proposal)</title>
		<link>http://leesean.net/2009/04/04/odi-et-amo-final-project-proposal/</link>
		<comments>http://leesean.net/2009/04/04/odi-et-amo-final-project-proposal/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 21:32:08 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Animals]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[VisualMusic]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[Anime]]></category>
		<category><![CDATA[Characters]]></category>
		<category><![CDATA[Manga]]></category>
		<category><![CDATA[Odi et Amo]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1637</guid>
		<description><![CDATA[I will be doing a joint final project for my Visual Music and Animals, et al classes.  I am basing the project on Catullus 85, a love poem by the Roman poet Catullus to his mistress Lesbia: Odi et amo. Quare id faciam, fortasse requiris. Nescio, sed fieri sentio et excrucior. English translation: I hate [...]]]></description>
			<content:encoded><![CDATA[<p>I will be doing a joint final project for my <a href="http://zachlaytonindustries.com/visualmusic.html">Visual Music</a> and <a href="http://itp.nyu.edu/animals/">Animals, et al</a> classes.  I am basing the project on <a href="http://en.wikipedia.org/wiki/Catullus_85">Catullus 85</a>, a love poem by the Roman poet Catullus to his mistress Lesbia:</p>
<blockquote><p>Odi et amo. Quare id faciam, fortasse requiris.<br />
Nescio, sed fieri sentio et excrucior.</p></blockquote>
<p>English translation:</p>
<blockquote><p>I hate and I love. Why I do this, perhaps you ask.<br />
I do not know, but I sense that it is happening and I am tortured.</p></blockquote>
<p>Used in a different context, this could easily be the lyrics for an Emo track or a Britney Spears track penned by a Swede.</p>
<p>I will be creating an Avant-Pop deconstructed karaoke audio and video track based on the poem.  The video will feature AMO and ODI, two mascot characters I have created based on my exploration with <a href="http://jankey.hp.infoseek.co.jp/kaomoj.shtml">Kaomoji</a> (Japanese emoticons/ASCII art)  and The Cute (<a href="http://en.wikipedia.org/wiki/Cuteness_in_Japanese_culture">Kawaisa</a>).  Together with vocalist <a href="http://www.jccassis.com/">JC Cassis</a>, I will perform with the track at the Visual Music class show at <a href="http://issueprojectroom.org/">ISSUE Project Room</a> on April 28.</p>
<p style="text-align: left;"><strong>AMO</strong></p>
<p><img class="alignnone size-full wp-image-1644" title="Video and Film" src="http://leesean.net/wp-content/uploads/2009/04/amo-sketch3.jpg" alt="Video and Film" /></p>
<p><strong>ODI</p>
<p></strong></p>
<p><img class="alignnone size-full wp-image-1645" title="Video and Film" src="http://leesean.net/wp-content/uploads/2009/04/odi-sketch.jpg" alt="Video and Film" /></p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2009/04/17/odi-et-amo-sneak-peak-screenshots/" rel="bookmark" class="crp_title">ODI et AMO sneak peak screenshots</a></li><li><a href="http://leesean.net/2009/04/20/odi-et-amo-the-music-video/" rel="bookmark" class="crp_title">ODI et AMO: The Music Video</a></li><li><a href="http://leesean.net/2009/05/02/odi-et-amo-live-in-brooklyn/" rel="bookmark" class="crp_title">ODI et AMO LIVE in Brooklyn</a></li><li><a href="http://leesean.net/2009/05/04/givkwik-and-odi-et-amo-in-the-itp-spring-show/" rel="bookmark" class="crp_title">Givkwik and ODI et AMO in the ITP Spring Show</a></li><li><a href="http://leesean.net/2009/09/12/ls-jc-at-the-tank/" rel="bookmark" class="crp_title">LS &#038; JC at The Tank</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2009/04/04/odi-et-amo-final-project-proposal/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Thai Green Curry from scratch</title>
		<link>http://leesean.net/2009/01/14/thai-green-curry-from-scratch/</link>
		<comments>http://leesean.net/2009/01/14/thai-green-curry-from-scratch/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 19:55:29 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Cooking]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Food]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Recipe]]></category>
		<category><![CDATA[Green Curry]]></category>
		<category><![CDATA[Thai]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1471</guid>
		<description><![CDATA[Day 3 of 4-in-4:  Cook something I&#8217;ve never made before I love Thai food, and especially Thai curry.  I&#8217;ve made Thai green curry plenty of times before, but I have always used store-bought curry paste, so for today&#8217;s project, I decided to make my own green curry paste from scratch.  There are some (slightly) obscure [...]]]></description>
			<content:encoded><![CDATA[<p>Day 3 of <a href="http://itp.nyu.edu/4-in-4/">4-in-4</a>:  <strong>Cook something I&#8217;ve never made before</strong></p>
<p><a title="Thai Green Curry by leesean, on Flickr" href="http://www.flickr.com/photos/leesean/3196524223/"><img src="http://farm4.static.flickr.com/3331/3196524223_14610c39d3.jpg" alt="Thai Green Curry" width="500" height="375" /></a></p>
<p>I love Thai food, and especially Thai curry.  I&#8217;ve made Thai green curry plenty of times before, but I have always used store-bought curry paste, so for today&#8217;s project, I decided to make my own green curry paste from scratch.  There are some (slightly) obscure ingredients involved, so besides Whole Foods, I also had to hit up the <a href="http://www.thai-grocery.com/">Thai Grocery in Chinatown</a> to get supplies like <a href="http://en.wikipedia.org/wiki/Shrimp_paste">shrimp paste</a>, <a href="http://en.wikipedia.org/wiki/Thai_basil">Thai basil</a>, <a href="http://www.thaitable.com/Thai/Ingredients/kaffir_lime_leaves.htm">lime leaves</a>, and <a href="http://en.wikipedia.org/wiki/Palm_sugar">palm sugar</a>.</p>
<p><a title="Thai Green Curry by leesean, on Flickr" href="http://www.flickr.com/photos/leesean/3196527513/"><img src="http://farm4.static.flickr.com/3452/3196527513_a41583ecb6.jpg" alt="Thai Green Curry" width="500" height="375" /></a></p>
<p>I don&#8217;t have exact measurements for you to follow along at home, but there are plenty of exact recipes for Thai green curry paste on the Internets, so just do the Google.  I made my curry paste based on ingredient lists I found online and just improvised my own version.</p>
<p><a title="Thai Green Curry by leesean, on Flickr" href="http://www.flickr.com/photos/leesean/3196503359/"><img src="http://farm4.static.flickr.com/3383/3196503359_17820e5189.jpg" alt="Thai Green Curry" width="500" height="375" /></a></p>
<p>First, roast some cumin, coriander, and black pepper in a dry frying pan until fragrant, then grind in a large mortar and pestle.</p>
<p><a title="Thai Green Curry by leesean, on Flickr" href="http://www.flickr.com/photos/leesean/3196529327/"><img src="http://farm4.static.flickr.com/3359/3196529327_9c07c63a4f.jpg" alt="Thai Green Curry" width="500" height="375" /></a></p>
<p>Next, cut up the curry paste ingredients (below) and then bash them all up in a mortar and pestle.</p>
<ul>
<li>Green chilies</li>
<li>Garlic</li>
<li>Shallots</li>
<li>Lemongrass</li>
<li><a href="http://en.wikipedia.org/wiki/Galangal">Galangal</a> and/or ginger</li>
<li>Lime zest, juice, and leaves</li>
<li>Cilantro</li>
<li><a href="http://en.wikipedia.org/wiki/Shrimp_paste">Shrimp paste</a></li>
</ul>
<p>The paste will be a lot chunkier and more fibrous than the stuff you buy in the store, so put a few tablespoons of the paste in a blender with a can of coconut milk and blended it, then strained the mixture through a strainer before cooking.  Heat the curry and coconut milk in a pot until bubbly and fragrant, then add vegetables and proteins and simmer until done.  You might also want to add half a can to a can worth of water to dilute the curry to your liking at this point..  Season to taste with <a href="http://en.wikipedia.org/wiki/Fish_sauce">fish sauce</a>, palm sugar, and/or sliced fresh green chilies.  Add a handful of Thai basil leaves and cilantro and a squeeze of lime juice in the last couple minutes of cooking.  Serve with jasmine rice.</p>
<p>I made two variations of green curry.  The shrimp and scallops cooked up very quickly, but the cod-potato-eggplant version took a bit longer for the vegetables to get tender, then I added the cod towards the end of cooking.</p>
<p><strong>Green Curry with Shrimp and Scallops</strong><br />
<a title="Thai Green Curry by leesean, on Flickr" href="http://www.flickr.com/photos/leesean/3197376720/"><img src="http://farm4.static.flickr.com/3341/3197376720_53da9164f3.jpg" alt="Thai Green Curry" width="500" height="375" /></a></p>
<p><strong>Green Curry with Cod, Tofu, Eggplant and Potatoes </strong><br />
<a title="Thai Green Curry by leesean, on Flickr" href="http://www.flickr.com/photos/leesean/3197343250/"><img src="http://farm4.static.flickr.com/3261/3197343250_3fe80768a5.jpg" alt="Thai Green Curry" width="500" height="375" /></a></p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2009/05/07/indian-ocean-crab-and-prawn-curry/" rel="bookmark" class="crp_title">Indian Ocean Crab and Prawn Curry</a></li><li><a href="http://leesean.net/2007/02/01/haw-mok-at-thailand-cafe/" rel="bookmark" class="crp_title">Haw Mok at Thailand Cafe</a></li><li><a href="http://leesean.net/2009/06/12/magic-curry-kart/" rel="bookmark" class="crp_title">Magic Curry Kart</a></li><li><a href="http://leesean.net/2008/08/10/bluefish-curry/" rel="bookmark" class="crp_title">Bluefish Curry</a></li><li><a href="http://leesean.net/2009/06/20/mandalay-restaurant/" rel="bookmark" class="crp_title">Mandalay Restaurant</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2009/01/14/thai-green-curry-from-scratch/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Kris &amp; Sophia meet the head(banger)phones</title>
		<link>http://leesean.net/2009/01/14/kris-sophia-meet-the-headbangerphones/</link>
		<comments>http://leesean.net/2009/01/14/kris-sophia-meet-the-headbangerphones/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 18:25:53 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Pictures]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[head(banger)phones]]></category>
		<category><![CDATA[Photos]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1465</guid>
		<description><![CDATA[Here are some photos of Sophia and Kris trying out my head(banger)phones the other day: I&#8217;m finding more blog posts about the head(banger)phones from across the international Internets. Here are posts from Australia, Brazil, and France. Related Postshead(banger)phones @ ITP Winter Show 2008head(banger)phoneshead(banger)phones &#8211; FINALhead(banger)phones part 2ITP Winter ShowPowered by Contextual Related Posts]]></description>
			<content:encoded><![CDATA[<p>Here are some photos of <a href="http://52faces.blogspot.com/">Sophia</a> and <a href="http://krishartley.com/">Kris</a> trying out <a href="http://leesean.net/2008/12/18/headbangerphones-itp-winter-show-2008/">my head(banger)phones</a> the other day:</p>
<p><a href="http://52faces.blogspot.com/"><img class="alignnone size-full wp-image-1466" title="Sophia meets head(banger)phones" src="http://leesean.net/wp-content/uploads/2009/01/3197327044_ea90145e35.jpg" alt="Sophia meets head(banger)phones" /></a></p>
<p><img class="alignnone size-full wp-image-1467" title="Kris meets head(banger)phones" src="http://leesean.net/wp-content/uploads/2009/01/3197331314_278af3eca5.jpg" alt="Kris meets head(banger)phones" /></p>
<p>I&#8217;m finding more blog posts about the head(banger)phones from across the international Internets.</p>
<p>Here are posts from <a href="http://www.mrgadget.com.au/gadget/2008/experience-music-in-motion-via-accelerometer-headphones/">Australia</a>, <a href="http://superbacana-djs.blogspot.com/2009/01/fones-de-ouvido-com-acelermetros.html">Brazil</a>, and <a href="http://www.gizmodo.fr/2008/12/23/mixez-vos-morceaux-en-secouant-la-tete.html">France</a>.</p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2008/12/18/headbangerphones-itp-winter-show-2008/" rel="bookmark" class="crp_title">head(banger)phones @ ITP Winter Show 2008</a></li><li><a href="http://leesean.net/2008/11/05/headbangerphones/" rel="bookmark" class="crp_title">head(banger)phones</a></li><li><a href="http://leesean.net/2008/12/16/headbangerphones-final/" rel="bookmark" class="crp_title">head(banger)phones &#8211; FINAL</a></li><li><a href="http://leesean.net/2008/12/06/headbangerphones-part-2/" rel="bookmark" class="crp_title">head(banger)phones part 2</a></li><li><a href="http://leesean.net/2008/12/13/itp-winter-show/" rel="bookmark" class="crp_title">ITP Winter Show</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2009/01/14/kris-sophia-meet-the-headbangerphones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kris &amp; LS Cover the Velvet Underground&#8217;s Candy Says</title>
		<link>http://leesean.net/2009/01/13/kris-ls-cover-the-velvet-undergrounds-candy-says/</link>
		<comments>http://leesean.net/2009/01/13/kris-ls-cover-the-velvet-undergrounds-candy-says/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 05:01:49 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Velvet Underground]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1461</guid>
		<description><![CDATA[Project for Day 2 of 4-in-4: Kris and LS cover the Velvet Underground&#8217;s Candy Says. Related PostsPink and Noseworthy at Pete&#8217;s Candy StoreKris &#038; Sophia meet the head(banger)phonesSan Francisco Podcast Episode 1LS and Kris at Kia&#8217;s Birthday PartyLS &#038; Kris Remix the BuildingPowered by Contextual Related Posts]]></description>
			<content:encoded><![CDATA[<p>Project for <a href="http://itp.nyu.edu/4-in-4/">Day 2 of 4-in-4</a>:</p>
<p><a href="http://krishartley.com/">Kris</a> and LS cover the Velvet Underground&#8217;s Candy Says.</p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2007/01/30/pink-and-noseworthy-at-petes-candy-store/" rel="bookmark" class="crp_title">Pink and Noseworthy at Pete&#8217;s Candy Store</a></li><li><a href="http://leesean.net/2009/01/14/kris-sophia-meet-the-headbangerphones/" rel="bookmark" class="crp_title">Kris &#038; Sophia meet the head(banger)phones</a></li><li><a href="http://leesean.net/2007/10/11/san-francisco-podcast-episode-1/" rel="bookmark" class="crp_title">San Francisco Podcast Episode 1</a></li><li><a href="http://leesean.net/2007/11/15/ls-and-kris-at-kias-birthday-party/" rel="bookmark" class="crp_title">LS and Kris at Kia&#8217;s Birthday Party</a></li><li><a href="http://leesean.net/2009/01/12/ls-kris-remix-the-building/" rel="bookmark" class="crp_title">LS &#038; Kris Remix the Building</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2009/01/13/kris-ls-cover-the-velvet-undergrounds-candy-says/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<enclosure url="http://leesean.net/podcast/CandySays.mp3" length="2220912" type="audio/mpeg" />
		<itunes:duration>0:03:05</itunes:duration>
		<itunes:subtitle>Project for Day 2 of 4-in-4:
Kris and LS cover the Velvet Underground&#8217;s Candy Says.
Related PostsPink and Noseworthy at Pete&#8217;s Candy StoreKris &#038; Sophia meet the head(banger)phonesSan Francisco Podcast Episode 1LS and Kris at Kia[...]</itunes:subtitle>
		<itunes:summary>Project for Day 2 of 4-in-4:
Kris and LS cover the Velvet Underground&#8217;s Candy Says.
Related PostsPink and Noseworthy at Pete&#8217;s Candy StoreKris &#038; Sophia meet the head(banger)phonesSan Francisco Podcast Episode 1LS and Kris at Kia&#8217;s Birthday PartyLS &#038; Kris Remix the BuildingPowered by Contextual Related Posts</itunes:summary>
		<itunes:keywords>Audio, DIY, Fun, Music</itunes:keywords>
		<itunes:author>ls@leesean.net</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>no</itunes:block>
	</item>
		<item>
		<title>head(banger)phones @ ITP Winter Show 2008</title>
		<link>http://leesean.net/2008/12/18/headbangerphones-itp-winter-show-2008/</link>
		<comments>http://leesean.net/2008/12/18/headbangerphones-itp-winter-show-2008/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 20:07:06 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[New York]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[Pictures]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[head(banger)phones]]></category>
		<category><![CDATA[Lee-Sean]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1449</guid>
		<description><![CDATA[Video by Elizabeth Fuller Here are some photos of me presenting the head(banger)phones at the ITP Winter Show 2008 last night.  Thanks to Justin Tedaldi, editor of the JETAANY Newsletter, for the photos. The head(banger)phones are a personal music device made up of a pair of headphones and a sensor.  When the user wears the [...]]]></description>
			<content:encoded><![CDATA[<p><embed src="http://blip.tv/play/AYGllBsC" type="application/x-shockwave-flash" width="480" height="390" allowscriptaccess="always" allowfullscreen="true"></embed><br />
Video by <a href="http://efuller.net/">Elizabeth Fuller</a></p>
<p>Here are some photos of me presenting the <a href="http://leesean.net/2008/12/16/headbangerphones-final/">head(banger)phones</a> at the <a href="http://itp.nyu.edu/shows/winter2008/">ITP Winter Show 2008</a> last night.  Thanks to Justin Tedaldi, editor of the <a href="http://jetaany.org/quarterly-newsletter-latest-edition/">JETAANY Newsletter</a>, for the photos.</p>
<p><img class="alignnone size-full wp-image-1451" title="itp_winter_show_head_banger_phones2" src="http://leesean.net/wp-content/uploads/2008/12/itp_winter_show_head_banger_phones2.jpg" alt="itp_winter_show_head_banger_phones2" /></p>
<p><img class="alignnone size-full wp-image-1450" title="itp_winter_show_head_banger_phones1" src="http://leesean.net/wp-content/uploads/2008/12/itp_winter_show_head_banger_phones1.jpg" alt="itp_winter_show_head_banger_phones1" /></p>
<p><em>The head(banger)phones are a personal music device made up of a pair of headphones and a sensor.  When the user wears the head(banger)phones, the motion and position of her head triggers different sounds, creating a dynamic interactive musical experience.</em></p>
<p>Here is some internet ink about head(banger)phones:</p>
<p><a href="http://www.psfk.com/2008/12/nod-your-head-change-the-beat-accelerometer-headphones.html">Nod Your Head, Change the Beat: Accelerometer Headphones | PSFK</a></p>
<p><a href="http://gizmodo.com/5113631/accelerometer-headphones-control-music-via-headbanging">ITP Winter 2008: Accelerometer Headphones Control Music Via Headbanging<br />
</a></p>
<p><a href="http://thelistenerd.com/2008/12/18/links-for-121808-myspaces-swift-love-being-late-typewriters/">The Listenerd&#8217;s Links for 12.18.08</a></p>
<p><a href="http://gizmodo.com/5113631/accelerometer-headphones-control-music-via-headbanging">Gizmodo</a> reports that I did the project using <a href="http://www.cycling74.com/products/max5">Max/MSP</a>, but actually I used <a href="http://processing.org/">Processing</a>/<a href="http://www.arduino.cc/">Arduino</a>.</p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2009/01/14/kris-sophia-meet-the-headbangerphones/" rel="bookmark" class="crp_title">Kris &#038; Sophia meet the head(banger)phones</a></li><li><a href="http://leesean.net/2008/11/05/headbangerphones/" rel="bookmark" class="crp_title">head(banger)phones</a></li><li><a href="http://leesean.net/2008/12/16/headbangerphones-final/" rel="bookmark" class="crp_title">head(banger)phones &#8211; FINAL</a></li><li><a href="http://leesean.net/2008/12/06/headbangerphones-part-2/" rel="bookmark" class="crp_title">head(banger)phones part 2</a></li><li><a href="http://leesean.net/2008/12/13/itp-winter-show/" rel="bookmark" class="crp_title">ITP Winter Show</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2008/12/18/headbangerphones-itp-winter-show-2008/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>ITP Winter Show on the Internets</title>
		<link>http://leesean.net/2008/12/18/itp-winter-show-on-the-internets/</link>
		<comments>http://leesean.net/2008/12/18/itp-winter-show-on-the-internets/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 19:38:26 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[New York]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[head(banger)phones]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1446</guid>
		<description><![CDATA[Here are some news clippings of the ITP Winter Show from across the Internets: MAKE: Blog: ITP Winter Show 2008 &#8211; Best of show&#8230; Plate spinning DJ, drinking piano, magnet music MAKE: Blog: More from the ITP Winter Show 2008 More from the ITP Winter Appearance 2008 &#124; USD6.com ITP Winter Show 2008 &#8211; Highlights.  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://itp.nyu.edu/shows/winter2008/"><img class="alignnone size-full wp-image-1447" title="itp_win08show_sm" src="http://leesean.net/wp-content/uploads/2008/12/itp_win08show_sm.jpg" alt="itp_win08show_sm" /></a></p>
<p>Here are some news clippings of the <a href="http://itp.nyu.edu/shows/winter2008/">ITP Winter Show</a> from across the Internets:</p>
<p><a href="http://blog.makezine.com/archive/2008/12/itp_winter_show_2008_best_of_show_p.html?CMP=OTC-0D6B48984890">MAKE: Blog: ITP Winter Show 2008 &#8211; Best of show&#8230; Plate spinning DJ, drinking piano, magnet music</a></p>
<p><a href="http://blog.makezine.com/archive/2008/12/more_from_the_itp_winter_show_2008.html">MAKE: Blog: More from the ITP Winter Show 2008</a></p>
<p><a href="http://www.usd6.com/more-from-the-itp-winter-appearance-2008/">More from the ITP Winter Appearance 2008 | USD6.com</a></p>
<p><a href="http://wiredset.com/blogs/markghuneim/2008/12/itp-winter-show-2008.html">ITP Winter Show 2008 &#8211; Highlights.  &#8211; Wiredset / Blogs / Mark Ghuneim</a></p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2008/12/13/itp-winter-show/" rel="bookmark" class="crp_title">ITP Winter Show</a></li><li><a href="http://leesean.net/2008/12/18/headbangerphones-itp-winter-show-2008/" rel="bookmark" class="crp_title">head(banger)phones @ ITP Winter Show 2008</a></li><li><a href="http://leesean.net/2009/01/14/kris-sophia-meet-the-headbangerphones/" rel="bookmark" class="crp_title">Kris &#038; Sophia meet the head(banger)phones</a></li><li><a href="http://leesean.net/2009/05/04/givkwik-and-odi-et-amo-in-the-itp-spring-show/" rel="bookmark" class="crp_title">Givkwik and ODI et AMO in the ITP Spring Show</a></li><li><a href="http://leesean.net/2008/09/26/the-presidential-debate-i-have-a-bracelet/" rel="bookmark" class="crp_title">The Presidential Debate: I HAVE A BRACELET so I should be president</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2008/12/18/itp-winter-show-on-the-internets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>head(banger)phones &#8211; FINAL</title>
		<link>http://leesean.net/2008/12/16/headbangerphones-final/</link>
		<comments>http://leesean.net/2008/12/16/headbangerphones-final/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 22:54:02 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[New York]]></category>
		<category><![CDATA[NYC]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[head(banger)phones]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1444</guid>
		<description><![CDATA[I&#8217;m getting ready to present the head(banger)phones for the ITP Winter Show.  A little bit of solder helped to get rid of the short circuit problem I was having periodically with the accelerometer.  I also replaced the orchestral audio samples I originally used to demo the head(banger)phones with some synth samples I recorded from my [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m getting ready to present the head(banger)phones for the <a href="http://itp.nyu.edu/shows/winter2008/">ITP Winter Show</a>.  A little bit of solder helped to get rid of the short circuit problem I was having periodically with the accelerometer.  I also replaced the orchestral audio samples I originally used to demo the head(banger)phones with some synth samples I recorded from my <a href="http://www.sidstation.com/">Sidstation</a>.</p>
<p><em>The head(banger)phones are a personal music device made up of a pair of headphones and a sensor.  When the user wears the head(banger)phones, the motion and position of her head triggers different sounds, creating a dynamic interactive musical experience.</em></p>
<p>Source code after the jump:<span id="more-1444"></span></p>
<blockquote><p>import ddf.minim.signals.*;<br />
import ddf.minim.*;<br />
import ddf.minim.analysis.*;<br />
import ddf.minim.effects.*;<br />
import processing.serial.*;</p>
<p>int counter = 0;  //variable for controlling tempo<br />
int tempo = 20; //the higher the number, the slower it goes</p>
<p>//minimum and maximum values coming from accelerometer<br />
int minX = 270;<br />
int maxX = 440;<br />
int minY = 270;<br />
int maxY = 440;</p>
<p>Serial myPort;  // The serial port<br />
int accelX=0;<br />
int accelY=0;</p>
<p>Minim minim;<br />
AudioSample kick;<br />
AudioSample x1;<br />
AudioSample x2;<br />
AudioSample x3;<br />
AudioSample x4;<br />
AudioSample x5;<br />
AudioSample x6;<br />
AudioSample y1;<br />
AudioSample y2;<br />
AudioSample y3;<br />
AudioSample y4;<br />
AudioSample y5;<br />
AudioSample y6;</p>
<p>void setup()<br />
{<br />
println(Serial.list());<br />
myPort = new Serial (this, Serial.list()[0], 9600);<br />
minim = new Minim(this);<br />
size(1440,850);<br />
background(0);<br />
textFont(createFont(&#8220;Helvetica&#8221;, 80));<br />
textAlign(CENTER);<br />
fill(255,0,0);<br />
text(&#8220;head(banger)phones&#8221;, width/2, height/2 &#8211; 50);<br />
fill(255);<br />
text(&#8220;(move your head)&#8221;, width/2, height/2 + 50);</p>
<p>kick = minim.loadSample(&#8220;kick.mp3&#8243;, 1440);</p>
<p>x1 = minim.loadSample(&#8220;x1.mp3&#8243;, 1440);<br />
x2 = minim.loadSample(&#8220;x2.mp3&#8243;, 1440);<br />
x3 = minim.loadSample(&#8220;x3.mp3&#8243;, 1440);<br />
x4 = minim.loadSample(&#8220;x4.mp3&#8243;, 1440);<br />
x5 = minim.loadSample(&#8220;x5.mp3&#8243;, 1440);<br />
x6 = minim.loadSample(&#8220;x6.mp3&#8243;, 1440);</p>
<p>y1 = minim.loadSample(&#8220;y1.mp3&#8243;, 1440);<br />
y2 = minim.loadSample(&#8220;y2.mp3&#8243;, 1440);<br />
y3 = minim.loadSample(&#8220;y3.mp3&#8243;, 1440);<br />
y4 = minim.loadSample(&#8220;y4.mp3&#8243;, 1440);<br />
y5 = minim.loadSample(&#8220;y5.mp3&#8243;, 1440);<br />
y6 = minim.loadSample(&#8220;y6.mp3&#8243;, 1440);<br />
}</p>
<p>void draw()<br />
{<br />
counter = (counter+1)%tempo;</p>
<p>if (counter == 0)<br />
{<br />
//always play the kick<br />
kick.trigger();<br />
//play samples according the the X value<br />
if (accelX == 1) {<br />
x1.trigger();<br />
}<br />
else if (accelX == 2) {<br />
x2.trigger();<br />
}<br />
else if (accelX == 3) {<br />
x3.trigger();<br />
}<br />
else if (accelX == 4) {<br />
x4.trigger();<br />
}<br />
else if (accelX == 5) {<br />
x5.trigger();<br />
}<br />
else if (accelX == 6) {<br />
x6.trigger();<br />
}</p>
<p>//play samples according the the Y value<br />
if (accelY == 1) {<br />
y1.trigger();<br />
}<br />
else if (accelY == 2) {<br />
y2.trigger();<br />
}<br />
else if (accelY == 3) {<br />
y3.trigger();<br />
}<br />
else if (accelY == 4) {<br />
y4.trigger();<br />
}<br />
else if (accelY == 5) {<br />
y5.trigger();<br />
}<br />
else if (accelY == 6) {<br />
y6.trigger();<br />
}<br />
}<br />
}</p>
<p>void serialEvent(Serial myPort)<br />
{<br />
// read the serial buffer:<br />
String myString = myPort.readStringUntil(&#8216;\n&#8217;);<br />
// if you got any bytes other than the linefeed:<br />
if (myString != null) {<br />
myString = trim(myString);<br />
// split the string at the commas<br />
// and convert the sections into integers:<br />
int sensors[] = int(split(myString, &#8216;,&#8217;));<br />
if (sensors.length &gt; 0) {<br />
accelX = int(map(sensors[0], minX,maxX,1,6));<br />
accelY = int(map(sensors[1], minY,maxY,1,6));<br />
println(accelX + &#8220;,&#8221; +accelY); //debugging to make sure the values are coming through and being translated<br />
}<br />
}<br />
}</p>
<p>//don&#8217;t really know what this does, but the Minim sample code says to be sure to do this, so can&#8217;t hurt<br />
void stop()<br />
{<br />
x1.close();<br />
x2.close();<br />
x3.close();<br />
x4.close();<br />
x5.close();<br />
x6.close();<br />
y1.close();<br />
y2.close();<br />
y3.close();<br />
y4.close();<br />
y5.close();<br />
y6.close();<br />
minim.stop();<br />
super.stop();<br />
}</p></blockquote>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2008/12/06/headbangerphones-part-2/" rel="bookmark" class="crp_title">head(banger)phones part 2</a></li><li><a href="http://leesean.net/2008/11/13/icm-final-musical-typewriter-take-2/" rel="bookmark" class="crp_title">ICM Final: Musical Typewriter &#8211; take 2</a></li><li><a href="http://leesean.net/2008/11/14/icm-final-musical-typewriter-screenshot/" rel="bookmark" class="crp_title">ICM Final: Musical Typewriter Screenshot</a></li><li><a href="http://leesean.net/2008/12/02/icm-final-source-code/" rel="bookmark" class="crp_title">ICM Final: Post-Modern Poster Child (Musical Typeface Reinvention)</a></li><li><a href="http://leesean.net/2008/10/10/p-comp-sine-wave-of-doom-aka-the-poser-theremin/" rel="bookmark" class="crp_title">P-Comp: Sine Wave of Doom AKA the Poser Theremin</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2008/12/16/headbangerphones-final/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>ITP Winter Show</title>
		<link>http://leesean.net/2008/12/13/itp-winter-show/</link>
		<comments>http://leesean.net/2008/12/13/itp-winter-show/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 05:18:23 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[New York]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Show]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1436</guid>
		<description><![CDATA[I will be presenting the head(banger)phones.  Please come Related PostsITP Winter Show on the Internetshead(banger)phones @ ITP Winter Show 2008Kris &#038; Sophia meet the head(banger)phonesITP Spring Show 2010Kia&#8217;s Homemade Bake SalePowered by Contextual Related Posts]]></description>
			<content:encoded><![CDATA[<p><a href="http://itp.nyu.edu/shows/winter2008/"><img class="alignnone size-full wp-image-1437" title="ITP Winter Show 2008" src="http://leesean.net/wp-content/uploads/2008/12/picture-11.png" alt="" /></a><a href="http://itp.nyu.edu/shows/winter2008/"><img class="alignnone size-full wp-image-1440" title="picture-211" src="http://leesean.net/wp-content/uploads/2008/12/picture-211.png" alt="" /></a></p>
<p><a href="http://itp.nyu.edu/shows/winter2008/"></a>I will be presenting the <a href="http://leesean.net/2008/12/06/headbangerphones-part-2/">head(banger)phones</a>.  Please come <img src='http://leesean.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2008/12/18/itp-winter-show-on-the-internets/" rel="bookmark" class="crp_title">ITP Winter Show on the Internets</a></li><li><a href="http://leesean.net/2008/12/18/headbangerphones-itp-winter-show-2008/" rel="bookmark" class="crp_title">head(banger)phones @ ITP Winter Show 2008</a></li><li><a href="http://leesean.net/2009/01/14/kris-sophia-meet-the-headbangerphones/" rel="bookmark" class="crp_title">Kris &#038; Sophia meet the head(banger)phones</a></li><li><a href="http://leesean.net/2010/05/10/itp-spring-show-2010/" rel="bookmark" class="crp_title">ITP Spring Show 2010</a></li><li><a href="http://leesean.net/2008/12/04/kias-homemade-bake-sale/" rel="bookmark" class="crp_title">Kia&#8217;s Homemade Bake Sale</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2008/12/13/itp-winter-show/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>head(banger)phones part 2</title>
		<link>http://leesean.net/2008/12/06/headbangerphones-part-2/</link>
		<comments>http://leesean.net/2008/12/06/headbangerphones-part-2/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 03:10:47 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[head(banger)phones]]></category>
		<category><![CDATA[Headphones]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1428</guid>
		<description><![CDATA[UPDATE to the update:  I&#8217;ve just uploaded my final presentation slides for the head(banger)phones in PDF format.  Download here. This is an progress update on my final project for Physical Computing, the head(banger)phones. Since I presented my work in progress in class two weeks ago, I have moved the accelerometer (pictured above) to the top [...]]]></description>
			<content:encoded><![CDATA[<p>UPDATE to the update:  I&#8217;ve just uploaded <a href="http://leesean.net/itp/pcomp/head(banger)phones.pdf">my final presentation slides for the head(banger)phones</a> in PDF format.  <a href="http://leesean.net/itp/pcomp/head(banger)phones.pdf">Download here</a>.</p>
<p>This is an progress update on my final project for Physical Computing, the <a href="http://leesean.net/2008/11/05/headbangerphones/">head(banger)phones</a>.</p>
<p><a title="head(banger)phones by leesean, on Flickr" href="http://www.flickr.com/photos/leesean/3088425250/"><img src="http://farm4.static.flickr.com/3200/3088425250_a94f9b33be.jpg" alt="head(banger)phones" width="500" height="375" /></a></p>
<p><a title="head(banger)phones by leesean, on Flickr" href="http://www.flickr.com/photos/leesean/3088428150/"><img src="http://farm4.static.flickr.com/3278/3088428150_b1455f4dfb.jpg" alt="head(banger)phones" width="500" height="375" /></a></p>
<p><a title="head(banger)phones by leesean, on Flickr" href="http://www.flickr.com/photos/leesean/3087589177/"><img src="http://farm4.static.flickr.com/3026/3087589177_0f96187851.jpg" alt="head(banger)phones" width="500" height="375" /></a></p>
<p><span id="more-1428"></span>Since I presented my work in progress in class two weeks ago, I have moved the accelerometer (pictured above) to the top of the headphones instead of on the side of the left headphone.  I also reconsidered the actual &#8220;headbanging&#8221; motion required by the user to trigger sounds.  After doing some user testing on myself, I realized that this wasn&#8217;t the most comfortable of motions to keep up (or to track in software).  I am still going to retain the name head(banger)phones for the project though, because it sounds cool, is unique enough to show up first on Google, and because the parentheses evoke headphones.</p>
<p>Anyway, the new concept is to have the user move his/her head front and back, left and right while wearing the head(banger)phones.  The program will play a constant minimalist beat, and the action of head tilt on 2 axes trigger other sound elements to be played at different degress of head tilt.  In other words, I am composing a musical object that exists in the perceptual space of the headphones, and the user will hear different aspects of the musical object depending on the position of his/her head.</p>
<p>Also, I&#8217;ve decided that I don&#8217;t actually need to use MIDI at all to make this work.  I can just have the <a href="http://arduino.cc">Arduino</a> send a serial out message to <a href="http://processing.org/">Processing</a>, which in turn interprets the accelerometer tilt readings and uses the <a href="http://code.compartmental.net/tools/minim/">Minim</a> library to play back samples I have created.</p>
<p><a href="http://leesean.net/2008/11/05/headbangerphones/">[head(banger)phones part 1]</a></p>
<p>Here is the simple and straightforward Arduino code I am using to send the accelerometer readings to Processing:</p>
<blockquote><p>int accelerometerX = 0;<br />
int accelerometerY = 1;</p>
<p>int accelValueX=0;<br />
int accelValueY=0;<br />
void setup()<br />
{<br />
// start serial port at 9600 bps:<br />
Serial.begin(9600);<br />
}</p>
<p>void loop()<br />
{<br />
accelValueX = analogRead(accelerometerX);<br />
accelValueY = analogRead(accelerometerY);<br />
Serial.print(accelValueX, DEC);<br />
Serial.print(&#8220;,&#8221;);<br />
Serial.println(accelValueY, DEC);<br />
// pause for 10 milliseconds:<br />
//delay(10);<br />
}</p></blockquote>
<p><strong>Update:</strong> Here is my Processing code:</p>
<blockquote><p>import ddf.minim.signals.*;<br />
import ddf.minim.*;<br />
import ddf.minim.analysis.*;<br />
import ddf.minim.effects.*;<br />
import processing.serial.*;</p>
<p>int counter = 0;  //variable for controlling tempo<br />
int tempo = 60; //the higher the number, the slower it goes</p>
<p>//minimum and maximum values coming from accelerometer<br />
int minX = 250;<br />
int maxX = 480;<br />
int minY = 250;<br />
int maxY = 480;</p>
<p>Serial myPort;  // The serial port<br />
int accelX=0;<br />
int accelY=0;</p>
<p>Minim minim;<br />
AudioSample x1;<br />
AudioSample x2;<br />
AudioSample x3;<br />
AudioSample x4;<br />
AudioSample x5;<br />
AudioSample x6;<br />
AudioSample y1;<br />
AudioSample y2;<br />
AudioSample y3;<br />
AudioSample y4;<br />
AudioSample y5;<br />
AudioSample y6;</p>
<p>void setup()<br />
{<br />
println(Serial.list());<br />
myPort = new Serial (this, Serial.list()[0], 9600);<br />
minim = new Minim(this);<br />
size(1440,850);<br />
background(0);<br />
textFont(createFont(&#8220;Courier&#8221;, 80));<br />
textAlign(CENTER);<br />
fill(255);<br />
text(&#8220;head(banger)phones&#8221;, width/2, height/2 &#8211; 50);<br />
text(&#8220;(move your head)&#8221;, width/2, height/2 + 50);</p>
<p>x1 = minim.loadSample(&#8220;x1.mp3&#8243;, 1440);<br />
x2 = minim.loadSample(&#8220;x2.mp3&#8243;, 1440);<br />
x3 = minim.loadSample(&#8220;x3.mp3&#8243;, 1440);<br />
x4 = minim.loadSample(&#8220;x4.mp3&#8243;, 1440);<br />
x5 = minim.loadSample(&#8220;x5.mp3&#8243;, 1440);<br />
x6 = minim.loadSample(&#8220;x6.mp3&#8243;, 1440);</p>
<p>y1 = minim.loadSample(&#8220;y1.mp3&#8243;, 1440);<br />
y2 = minim.loadSample(&#8220;y2.mp3&#8243;, 1440);<br />
y3 = minim.loadSample(&#8220;y3.mp3&#8243;, 1440);<br />
y4 = minim.loadSample(&#8220;y4.mp3&#8243;, 1440);<br />
y5 = minim.loadSample(&#8220;y5.mp3&#8243;, 1440);<br />
y6 = minim.loadSample(&#8220;y6.mp3&#8243;, 1440);<br />
}</p>
<p>void draw()<br />
{<br />
counter = (counter+1)%tempo;</p>
<p>if (counter == 0)<br />
{<br />
//play samples according the the X value<br />
if (accelX == 1) {<br />
x1.trigger();<br />
}<br />
else if (accelX == 2) {<br />
x2.trigger();<br />
}<br />
else if (accelX == 3) {<br />
x3.trigger();<br />
}<br />
else if (accelX == 4) {<br />
x4.trigger();<br />
}<br />
else if (accelX == 5) {<br />
x5.trigger();<br />
}<br />
else if (accelX == 6) {<br />
x6.trigger();<br />
}</p>
<p>//play samples according the the Y value<br />
if (accelY == 1) {<br />
y1.trigger();<br />
}<br />
else if (accelY == 2) {<br />
y2.trigger();<br />
}<br />
else if (accelY == 3) {<br />
y3.trigger();<br />
}<br />
else if (accelY == 4) {<br />
y4.trigger();<br />
}<br />
else if (accelY == 5) {<br />
y5.trigger();<br />
}<br />
else if (accelY == 6) {<br />
y6.trigger();<br />
}<br />
}<br />
}</p>
<p>void serialEvent(Serial myPort)<br />
{<br />
// read the serial buffer:<br />
String myString = myPort.readStringUntil(&#8216;\n&#8217;);<br />
// if you got any bytes other than the linefeed:<br />
if (myString != null) {<br />
myString = trim(myString);<br />
// split the string at the commas<br />
// and convert the sections into integers:<br />
int sensors[] = int(split(myString, &#8216;,&#8217;));<br />
if (sensors.length &gt; 0) {<br />
accelX = int(map(sensors[0], minX,maxX,1,6));<br />
accelY = int(map(sensors[1], minY,maxY,1,6));<br />
println(accelX + &#8220;,&#8221; +accelY); //debugging to make sure the values are coming through and being translated<br />
}<br />
}<br />
}</p>
<p>//don&#8217;t really know what this does, but the Minim sample code says to be sure to do this, so can&#8217;t hurt<br />
void stop()<br />
{<br />
x1.close();<br />
x2.close();<br />
x3.close();<br />
x4.close();<br />
x5.close();<br />
x6.close();<br />
y1.close();<br />
y2.close();<br />
y3.close();<br />
y4.close();<br />
y5.close();<br />
y6.close();<br />
minim.stop();<br />
super.stop();<br />
}</p></blockquote>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2008/12/16/headbangerphones-final/" rel="bookmark" class="crp_title">head(banger)phones &#8211; FINAL</a></li><li><a href="http://leesean.net/2008/11/13/icm-final-musical-typewriter-take-2/" rel="bookmark" class="crp_title">ICM Final: Musical Typewriter &#8211; take 2</a></li><li><a href="http://leesean.net/2008/11/14/icm-final-musical-typewriter-screenshot/" rel="bookmark" class="crp_title">ICM Final: Musical Typewriter Screenshot</a></li><li><a href="http://leesean.net/2008/12/02/icm-final-source-code/" rel="bookmark" class="crp_title">ICM Final: Post-Modern Poster Child (Musical Typeface Reinvention)</a></li><li><a href="http://leesean.net/2008/10/10/p-comp-sine-wave-of-doom-aka-the-poser-theremin/" rel="bookmark" class="crp_title">P-Comp: Sine Wave of Doom AKA the Poser Theremin</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2008/12/06/headbangerphones-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ICM Final: Post-Modern Poster Child (Musical Typeface Reinvention)</title>
		<link>http://leesean.net/2008/12/02/icm-final-source-code/</link>
		<comments>http://leesean.net/2008/12/02/icm-final-source-code/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 19:03:40 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[HEPNOVA]]></category>
		<category><![CDATA[ICM]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[Podcasting]]></category>
		<category><![CDATA[Podcasts]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[YouTube]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1397</guid>
		<description><![CDATA[Post-Modern Poster Child (Musical Typewriter Mix) from lee-sean on Vimeo. [Blip.tv] [YouTube] [Vimeo] I presented my final project for Intro to Computational Media today.  Building on the work I did with the Musical Typewriter, I ended up making some last minute tweaks to my &#8220;musical typeface,&#8221; which consists of audio samples corresponding to each letter [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="377" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=2414146&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="500" height="377" src="http://vimeo.com/moogaloop.swf?clip_id=2414146&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<a href="http://vimeo.com/2414146">Post-Modern Poster Child (Musical Typewriter Mix)</a> from <a href="http://vimeo.com/hepnova">lee-sean</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><a href="http://blip.tv/file/1532628/">[Blip.tv]</a> <a href="http://www.youtube.com/watch?v=GdgqCgwQrL0">[YouTube]</a> <a href="http://vimeo.com/2414146">[Vimeo]</a></p>
<p>I presented my final project for <a href="http://itp.nyu.edu/varwiki/Syllabus/ICM-Danny-Rozin-F08">Intro to Computational Media</a> today.  Building on the work I did with the <a href="http://leesean.net/2008/11/13/icm-final-in-progress-musical-typewriter/">Musical Typewriter</a>, I ended up making some last minute tweaks to my &#8220;musical typeface,&#8221; which consists of audio samples corresponding to each letter of the alphabet.  Originally I had used all single-hit percussion sounds, but I reworked the alphabet to include short musical phrases or gestures, and brought in wind and string instrument samples for greater musicality and richness.  The final version of my <a href="http://processing.org/">Processing</a> program reads a text file and &#8220;translates&#8221; the text into music by playing back the samples corresponding to the letters of the words as musical phrase &#8220;cluster.&#8221;</p>
<p><img class="alignnone size-full wp-image-1403" title="existential_pomo_posterchild_web500" src="http://leesean.net/wp-content/uploads/2008/12/existential_pomo_posterchild_web500.jpg" alt="" /></p>
<p>While playing back a text as a song, the <a href="http://processing.org/">Processing </a>sketch also simultaneously displays the word corresponding to the musical sample cluster being played and visualizes the frequency waves of the music on the screen.  Refer to the screenshot above.</p>
<p>For my in-class performance, I used the lyrics to the <a href="http://www.hepnova.com/music.php?lyrics&amp;artist=Hepnova&amp;album=Tourist%20You%20Are%20The%20Terrorist&amp;track=Post-Modern%20Poster%20Child">HEPNOVA track Post-Modern Poster Child</a> and reinterpreted words through the Musical Typewriter.  <a href="http://leesean.net/podcast/Post-Modern%20Posterchild%20(Musical%20Typeface%20Reinvention).mp3">[MP3]</a> <a href="http://leesean.net/podcast/Post-Modern%20Posterchild%20(Musical%20Typeface%20Reinvention).aif">[AIFF]</a></p>
<p>During my presentation, I also <a href="http://www.youtube.com/watch?v=oHg5SJYRHA0">Rick Rolled</a> the class with <a href="http://www.youtube.com/watch?v=oHg5SJYRHA0">Rick Astley&#8217;s</a> immortal lyrics played through my program.</p>
<p>Source code after the jump.<span id="more-1397"></span></p>
<p>My source code for my ICM final project, a self-playing version of the <a href="http://leesean.net/2008/11/13/icm-final-in-progress-musical-typewriter/">Musical Typewriter</a> <a href="http://leesean.net/2008/11/13/icm-final-musical-typewriter-take-2/">[2]</a> <a href="http://leesean.net/2008/11/14/icm-final-musical-typewriter-screenshot/">[3]</a>.</p>
<blockquote><p>import ddf.minim.signals.*;<br />
import ddf.minim.*;<br />
import ddf.minim.analysis.*;<br />
import ddf.minim.effects.*;<br />
import processing.video.*;</p>
<p>// Declare MovieMaker object<br />
//MovieMaker mm;<br />
Minim minim;<br />
WaveformRenderer waveform;<br />
//AudioSample objects for each letter of the alphabet<br />
AudioSample play_a;<br />
AudioSample play_b;<br />
AudioSample play_c;<br />
AudioSample play_d;<br />
AudioSample play_e;<br />
AudioSample play_f;<br />
AudioSample play_g;<br />
AudioSample play_h;<br />
AudioSample play_i;<br />
AudioSample play_j;<br />
AudioSample play_k;<br />
AudioSample play_l;<br />
AudioSample play_m;<br />
AudioSample play_n;<br />
AudioSample play_o;<br />
AudioSample play_p;<br />
AudioSample play_q;<br />
AudioSample play_r;<br />
AudioSample play_s;<br />
AudioSample play_t;<br />
AudioSample play_u;<br />
AudioSample play_v;<br />
AudioSample play_w;<br />
AudioSample play_x;<br />
AudioSample play_y;<br />
AudioSample play_z;</p>
<p>// Variable to store text currently being typed<br />
//String typing = &#8220;&#8221;;<br />
String[] lyrics;<br />
// Variable to store saved text when return is hit<br />
String saved = &#8220;&#8221;;<br />
int i;<br />
int counter = 0;  //frame counter for vibration<br />
int play = 0;</p>
<p>void setup()<br />
{<br />
minim = new Minim(this);<br />
size(1440,800);<br />
//mm = new MovieMaker(this, width, height, &#8220;pomo.mov&#8221; , 30, MovieMaker.H263,<br />
//MovieMaker.HIGH);<br />
background(0);<br />
textFont(createFont(&#8220;Courier&#8221;, 60));<br />
textAlign(CENTER);</p>
<p>play_a = minim.loadSample(&#8220;A.mp3&#8243;, 1440);<br />
play_b = minim.loadSample(&#8220;B.mp3&#8243;, 1440);<br />
play_c = minim.loadSample(&#8220;C.mp3&#8243;, 1440);<br />
play_d = minim.loadSample(&#8220;D.mp3&#8243;, 1440);<br />
play_e = minim.loadSample(&#8220;E.mp3&#8243;, 1440);<br />
play_f = minim.loadSample(&#8220;F.mp3&#8243;, 1440);<br />
play_g = minim.loadSample(&#8220;G.mp3&#8243;, 1440);<br />
play_h = minim.loadSample(&#8220;H.mp3&#8243;, 1440);<br />
play_i = minim.loadSample(&#8220;I.mp3&#8243;, 1440);</p>
<p>play_j = minim.loadSample(&#8220;J.mp3&#8243;, 1440);<br />
play_k = minim.loadSample(&#8220;K.mp3&#8243;, 1440);<br />
play_l = minim.loadSample(&#8220;L.mp3&#8243;, 1440);<br />
play_m = minim.loadSample(&#8220;M.mp3&#8243;, 1440);<br />
play_n = minim.loadSample(&#8220;N.mp3&#8243;, 1440);<br />
play_o = minim.loadSample(&#8220;O.mp3&#8243;, 1440);<br />
play_p = minim.loadSample(&#8220;P.mp3&#8243;, 1440);<br />
play_q = minim.loadSample(&#8220;Q.mp3&#8243;, 1440);<br />
play_r = minim.loadSample(&#8220;R.mp3&#8243;, 1440);<br />
play_s = minim.loadSample(&#8220;S.mp3&#8243;, 1440);<br />
play_t = minim.loadSample(&#8220;T.mp3&#8243;, 1440);<br />
play_u = minim.loadSample(&#8220;U.mp3&#8243;, 1440);<br />
play_v = minim.loadSample(&#8220;V.mp3&#8243;, 1440);<br />
play_w = minim.loadSample(&#8220;W.mp3&#8243;, 1440);<br />
play_x = minim.loadSample(&#8220;X.mp3&#8243;, 1440);<br />
play_y = minim.loadSample(&#8220;Y.mp3&#8243;, 1440);<br />
play_z = minim.loadSample(&#8220;Z.mp3&#8243;, 1440);</p>
<p>waveform = new WaveformRenderer();<br />
play_a.addListener(waveform);<br />
play_b.addListener(waveform);<br />
play_c.addListener(waveform);<br />
play_d.addListener(waveform);<br />
play_e.addListener(waveform);<br />
play_f.addListener(waveform);<br />
play_g.addListener(waveform);<br />
play_h.addListener(waveform);<br />
play_i.addListener(waveform);<br />
play_j.addListener(waveform);<br />
play_k.addListener(waveform);<br />
play_l.addListener(waveform);<br />
play_m.addListener(waveform);<br />
play_n.addListener(waveform);<br />
play_o.addListener(waveform);<br />
play_p.addListener(waveform);<br />
play_q.addListener(waveform);<br />
play_r.addListener(waveform);<br />
play_s.addListener(waveform);<br />
play_t.addListener(waveform);<br />
play_u.addListener(waveform);<br />
play_v.addListener(waveform);<br />
play_w.addListener(waveform);<br />
play_x.addListener(waveform);<br />
play_y.addListener(waveform);<br />
play_z.addListener(waveform);</p>
<p>noStroke();<br />
lyrics = loadStrings(&#8220;lyrics.txt&#8221;);<br />
i = 0;<br />
background(0);<br />
}</p>
<p>void draw()<br />
{<br />
if (play == 1){<br />
counter = (counter+1)%25;<br />
noStroke();<br />
fill(255);<br />
//text (lyrics[i],width/2, height/2);<br />
//mm.addFrame();<br />
if (counter == 0) {<br />
if (i &lt; lyrics.length)<br />
{<br />
background(0);<br />
text (lyrics[i],width/2, height/2);<br />
int wordLength = lyrics[i].length();<br />
for (int j=0; j &lt; wordLength; j++)<br />
{<br />
for(int k=0; k &lt; wordLength; k++)<br />
{<br />
char letter = lyrics[i].charAt(k);<br />
playLetter(letter);<br />
waveform.draw();<br />
}<br />
}<br />
waveform.draw();<br />
i++;<br />
}<br />
else {<br />
background(0);<br />
//mm.finish();<br />
//noLoop();<br />
}<br />
}<br />
}<br />
}</p>
<p>void playLetter (char letter_)<br />
{<br />
if ((letter_ == &#8216;a&#8217;) || (letter_ == &#8216;A&#8217;))<br />
{<br />
play_a.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;b&#8217;) || (letter_ == &#8216;B&#8217;))<br />
{<br />
play_b.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;c&#8217;) || (letter_ == &#8216;C&#8217;))<br />
{<br />
play_c.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;d&#8217;) || (letter_ == &#8216;D&#8217;))<br />
{<br />
play_d.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;e&#8217;) || (letter_ == &#8216;E&#8217;))<br />
{<br />
play_e.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;f&#8217;) || (letter_ == &#8216;F&#8217;))<br />
{<br />
play_f.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;g&#8217;) || (letter_ == &#8216;G&#8217;))<br />
{<br />
play_g.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;h&#8217;) || (letter_ == &#8216;H&#8217;))<br />
{<br />
play_h.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;i&#8217;) || (letter_ == &#8216;I&#8217;))<br />
{<br />
play_i.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;j&#8217;) || (letter_ == &#8216;J&#8217;))<br />
{<br />
play_j.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;k&#8217;) || (letter_ == &#8216;K&#8217;))<br />
{<br />
play_k.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;l&#8217;) || (letter_ == &#8216;L&#8217;))<br />
{<br />
play_l.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;m&#8217;) || (letter_ == &#8216;M&#8217;))<br />
{<br />
play_m.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;n&#8217;) || (letter_ == &#8216;N&#8217;))<br />
{<br />
play_n.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;o&#8217;) || (letter_ == &#8216;O&#8217;))<br />
{<br />
play_o.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;p&#8217;) || (letter_ == &#8216;P&#8217;))<br />
{<br />
play_p.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;q&#8217;) || (letter_ == &#8216;Q&#8217;))<br />
{<br />
play_q.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;r&#8217;) || (letter_ == &#8216;R&#8217;))<br />
{<br />
play_r.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;s&#8217;) || (letter_ == &#8216;S&#8217;))<br />
{<br />
play_s.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;t&#8217;) || (letter_ == &#8216;T&#8217;))<br />
{<br />
play_t.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;u&#8217;) || (letter_ == &#8216;U&#8217;))<br />
{<br />
play_u.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;v&#8217;) || (letter_ == &#8216;V&#8217;))<br />
{<br />
play_v.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;w&#8217;) || (letter_ == &#8216;W&#8217;))<br />
{<br />
play_w.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;x&#8217;) || (letter_ == &#8216;X&#8217;))<br />
{<br />
play_x.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;y&#8217;) || (letter_ == &#8216;Y&#8217;))<br />
{<br />
play_y.trigger();<br />
}</p>
<p>if ((letter_ == &#8216;z&#8217;) || (letter_ == &#8216;Z&#8217;))<br />
{<br />
play_z.trigger();<br />
}<br />
}</p>
<p>void stop()<br />
{<br />
play_a.close();<br />
minim.stop();<br />
super.stop();<br />
}</p>
<p>class WaveformRenderer implements AudioListener<br />
{<br />
private float[] left;<br />
private float[] right;</p>
<p>WaveformRenderer()<br />
{<br />
left = null;<br />
right = null;<br />
}</p>
<p>synchronized void samples(float[] samp)<br />
{<br />
left = samp;<br />
}</p>
<p>synchronized void samples(float[] sampL, float[] sampR)<br />
{<br />
left = sampL;<br />
right = sampR;<br />
}</p>
<p>synchronized void draw()<br />
{<br />
// we&#8217;ve got a stereo signal if right or left are not null<br />
if ( left != null &amp;&amp; right != null )<br />
{<br />
noFill();<br />
stroke(255);<br />
beginShape();<br />
for ( int i = 0; i &lt; left.length; i++ )<br />
{<br />
vertex(i, height/4 + left[i]*120);<br />
}<br />
endShape();<br />
beginShape();<br />
for ( int i = 0; i &lt; right.length; i++ )<br />
{<br />
vertex(i, 3*(height/4) + right[i]*120);<br />
}<br />
endShape();<br />
}<br />
else if ( left != null )<br />
{<br />
noFill();<br />
stroke(255);<br />
beginShape();<br />
for ( int i = 0; i &lt; left.length; i++ )<br />
{<br />
vertex(i, height/2 + left[i]*120);<br />
}<br />
endShape();<br />
}<br />
}<br />
}</p>
<p>void keyPressed(){<br />
play = 1;<br />
}</p></blockquote>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2008/11/14/icm-final-musical-typewriter-screenshot/" rel="bookmark" class="crp_title">ICM Final: Musical Typewriter Screenshot</a></li><li><a href="http://leesean.net/2008/11/13/icm-final-musical-typewriter-take-2/" rel="bookmark" class="crp_title">ICM Final: Musical Typewriter &#8211; take 2</a></li><li><a href="http://leesean.net/2008/12/16/headbangerphones-final/" rel="bookmark" class="crp_title">head(banger)phones &#8211; FINAL</a></li><li><a href="http://leesean.net/2008/11/13/icm-final-in-progress-musical-typewriter/" rel="bookmark" class="crp_title">ICM Final in Progress: Musical Typewriter</a></li><li><a href="http://leesean.net/2008/12/06/headbangerphones-part-2/" rel="bookmark" class="crp_title">head(banger)phones part 2</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2008/12/02/icm-final-source-code/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
			<enclosure url="http://leesean.net/podcast/Post-Modern%20Posterchild%20(Musical%20Typeface%20Reinvention).mp3" length="1" type="audio/mpeg" />
		<itunes:duration>0:00:01</itunes:duration>
		<itunes:subtitle>
Post-Modern Poster Child (Musical Typewriter Mix) from lee-sean on Vimeo.
[Blip.tv] [YouTube] [Vimeo]
I presented my final project for Intro to Computational Media today.  Building on the work I did with the Musical Typewriter, I ended up making so[...]</itunes:subtitle>
		<itunes:summary>
Post-Modern Poster Child (Musical Typewriter Mix) from lee-sean on Vimeo.
[Blip.tv] [YouTube] [Vimeo]
I presented my final project for Intro to Computational Media today.  Building on the work I did with the Musical Typewriter, I ended up making some last minute tweaks to my &#8220;musical typeface,&#8221; which consists of audio samples corresponding to each letter of the alphabet.  Originally I had used all single-hit percussion sounds, but I reworked the alphabet to include short musical phrases or gestures, and brought in wind and string instrument samples for greater musicality and richness.  The final version of my Processing program reads a text file and &#8220;translates&#8221; the text into music by playing back the samples corresponding to the letters of the words as musical phrase &#8220;cluster.&#8221;

While playing back a text as a song, the Processing sketch also simultaneously displays the word corresponding to the musical sample cluster being played and visualizes the frequency waves of the music on the screen.  Refer to the screenshot above.
For my in-class performance, I used the lyrics to the HEPNOVA track Post-Modern Poster Child and reinterpreted words through the Musical Typewriter.  [MP3] [AIFF]
During my presentation, I also Rick Rolled the class with Rick Astley&#8217;s immortal lyrics played through my program.
Source code after the jump.
My source code for my ICM final project, a self-playing version of the Musical Typewriter [2] [3].
import ddf.minim.signals.*;
import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;
import processing.video.*;
// Declare MovieMaker object
//MovieMaker mm;
Minim minim;
WaveformRenderer waveform;
//AudioSample objects for each letter of the alphabet
AudioSample play_a;
AudioSample play_b;
AudioSample play_c;
AudioSample play_d;
AudioSample play_e;
AudioSample play_f;
AudioSample play_g;
AudioSample play_h;
AudioSample play_i;
AudioSample play_j;
AudioSample play_k;
AudioSample play_l;
AudioSample play_m;
AudioSample play_n;
AudioSample play_o;
AudioSample play_p;
AudioSample play_q;
AudioSample play_r;
AudioSample play_s;
AudioSample play_t;
AudioSample play_u;
AudioSample play_v;
AudioSample play_w;
AudioSample play_x;
AudioSample play_y;
AudioSample play_z;
// Variable to store text currently being typed
//String typing = &#8220;&#8221;;
String[] lyrics;
// Variable to store saved text when return is hit
String saved = &#8220;&#8221;;
int i;
int counter = 0;  //frame counter for vibration
int play = 0;
void setup()
{
minim = new Minim(this);
size(1440,800);
//mm = new MovieMaker(this, width, height, &#8220;pomo.mov&#8221; , 30, MovieMaker.H263,
//MovieMaker.HIGH);
background(0);
textFont(createFont(&#8220;Courier&#8221;, 60));
textAlign(CENTER);
play_a = minim.loadSample(&#8220;A.mp3&#8243;, 1440);
play_b = minim.loadSample(&#8220;B.mp3&#8243;, 1440);
play_c = minim.loadSample(&#8220;C.mp3&#8243;, 1440);
play_d = minim.loadSample(&#8220;D.mp3&#8243;, 1440);
play_e = minim.loadSample(&#8220;E.mp3&#8243;, 1440);
play_f = minim.loadSample(&#8220;F.mp3&#8243;, 1440);
play_g = minim.loadSample(&#8220;G.mp3&#8243;, 1440);
play_h = minim.loadSample(&#8220;H.mp3&#8243;, 1440);
play_i = minim.loadSample(&#8220;I.mp3&#8243;, 1440);
play_j = minim.loadSample(&#8220;J.mp3&#8243;, 1440);
play_k = minim.loadSample(&#8220;K.mp3&#8243;, 1440);
play_l = minim.loadSample(&#8220;L.mp3&#8243;, 1440);
play_m = minim.loadSample(&#8220;M.mp3&#8243;, 1440);
play_n = minim.loadSample(&#8220;N.mp3&#8243;, 1440);
play_o = minim.loadSample(&#8220;O.mp3&#8243;, 1440);
play_p = minim.loadSample(&#8220;P.mp3&#8243;, 1440);
play_q = minim.loadSample(&#8220;Q.mp3&#8243;, 1440);
play_r = minim.loadSample(&#8220;R.mp3&#8243;, 1440);
play_s = minim.loadSample(&#8220;S.mp3&#8243;, 1440);
play_t = minim.loadSample(&#8220;T.mp3&#8243;, 1440);
play_u = minim.loadSample(&#8220;U.mp3&#8243;, 1440);
play_v = minim.loadSample(&#8220;V.mp3&#8243;, 1440);
play_w = minim.loadSample([...]</itunes:summary>
		<itunes:keywords>Art, Audio, DIY, HEPNOVA, ICM, ITP, Music, NYU, Podcasting, Podcasts, Video, YouTube</itunes:keywords>
		<itunes:author>ls@leesean.net</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>no</itunes:block>
		<enclosure url="http://leesean.net/podcast/pomoposterchild_typewriter_mix.mp3" length="1275264" type="audio/mpeg" />
		<enclosure url="http://leesean.net/podcast/pomoposterchild_typewriter_mix.aif" length="28133632" type="audio/x-aiff" />
	</item>
		<item>
		<title>Safety is Dangerous</title>
		<link>http://leesean.net/2008/11/25/safety-is-dangerous/</link>
		<comments>http://leesean.net/2008/11/25/safety-is-dangerous/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 07:44:43 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Communications Lab]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[HEPNOVA]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[Pictures]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[YouTube]]></category>
		<category><![CDATA[AfterEffects]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[Dada]]></category>
		<category><![CDATA[MTV]]></category>
		<category><![CDATA[Rap]]></category>
		<category><![CDATA[Surrealism]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1367</guid>
		<description><![CDATA[Safety is Dangerous from lee-sean on Vimeo. Here is my first attempt at animation with Adobe After Effects, inspired by Surrealism, Dada, and early MTV animations. All the source images were taken by me or Kris and can be found in my Flickr account. Music: Netmaster 2 (Safety is Dangerous Glitch Mix) by HEPNOVA. [YouTube] [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="333" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=2340064&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="500" height="333" src="http://vimeo.com/moogaloop.swf?clip_id=2340064&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<a href="http://vimeo.com/2340064">Safety is Dangerous</a> from <a href="http://vimeo.com/hepnova">lee-sean</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Here is my first attempt at animation with <a href="http://en.wikipedia.org/wiki/Adobe_After_Effects">Adobe After Effects</a>, inspired by Surrealism, Dada, and early MTV animations.</p>
<p>All the source images were taken by me or <a href="http://krishartley.com/">Kris</a> and can be found in <a href="http://www.flickr.com/photos/leesean/">my Flickr account</a>.</p>
<p>Music: <a href="http://www.hepnova.com/music.php">Netmaster 2 (Safety is Dangerous Glitch Mix)</a> by <a href="http://www.hepnova.com/music.php">HEPNOVA.</a></p>
<p><a href="http://www.youtube.com/watch?v=fDHYgvYLdFA">[YouTube]</a> <a href="http://vimeo.com/2340064">[Vimeo]</a> <a href="http://hepnova.blip.tv/#1513016">[Blip.tv]</a></p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2008/10/18/herbivores/" rel="bookmark" class="crp_title">Herbivores</a></li><li><a href="http://leesean.net/2009/05/27/cant-stop-music-video/" rel="bookmark" class="crp_title">Can&#8217;t Stop Music Video</a></li><li><a href="http://leesean.net/2008/09/26/protest-against-the-bush-bailout-on-wall-street/" rel="bookmark" class="crp_title">Protest Against the Bush Bailout on Wall Street</a></li><li><a href="http://leesean.net/2007/11/08/avaazorgs-ricken-patel-on-bbcs-hardtalk/" rel="bookmark" class="crp_title">Avaaz.org&#8217;s Ricken Patel on BBC&#8217;s HARDtalk</a></li><li><a href="http://leesean.net/2009/07/16/how-trent-reznor-nin-represent-the-future-of-the-music-biz/" rel="bookmark" class="crp_title">How Trent Reznor &#038; NIN Represent the Future of the Music Biz</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2008/11/25/safety-is-dangerous/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Noir</title>
		<link>http://leesean.net/2008/11/24/noir/</link>
		<comments>http://leesean.net/2008/11/24/noir/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 04:38:07 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Communications Lab]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[HEPNOVA]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[YouTube]]></category>
		<category><![CDATA[Film Noir]]></category>
		<category><![CDATA[Lee-Sean]]></category>
		<category><![CDATA[Music Video]]></category>
		<category><![CDATA[Noir]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1362</guid>
		<description><![CDATA[Noir is the new video I made in Comm Lab @ ITP with Elizabeth, Catherine, and Kristin.  It is a music video for a song of the same name that I recorded circa 1998-1999 under the Ronald Raygun band name, and re-released online in 2006 under the new HEPNOVA brand.  It was the second or [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://vimeo.com/2327297"><img class="alignnone size-full wp-image-1363" title="noir" src="http://leesean.net/wp-content/uploads/2008/11/noir.jpg" alt="" /></a></p>
<p><a href="http://vimeo.com/2327297">Noir</a> is the new video I made in <a href="http://itp.nyu.edu/~mp51/commlab/moncommlab.html">Comm Lab</a> @ <a href="http://itp.nyu.edu/">ITP</a> with <a href="http://www.itp.efuller.net/">Elizabeth</a>, <a href="http://itp.nyu.edu/~clw336/myblog/">Catherine</a>, and <a href="http://itp.nyu.edu/~kml241/Hal/">Kristin</a>.  It is a music video for a song of the same name that I recorded circa 1998-1999 under the Ronald Raygun band name, and re-released online in 2006 under the new <a href="http://www.hepnova.com/music.php">HEPNOVA brand</a>.  It was the second or third song that I have ever written.  <a href="http://www.hepnova.com/music.php?lyrics&amp;artist=Hepnova&amp;album=Best%20Shots&amp;track=Telephone%20Tag">Telephone Tag</a> was the first, and either Noir or <a href="http://www.hepnova.com/music.php?lyrics&amp;artist=Hepnova&amp;album=Best%20Shots&amp;track=Bionic%20Boyband%20In%20Bollywood">Bionic Boyband in Bollywood</a> was second/third.  I did the vocals and played all of the instruments except for bass.  The bass credits go to Nico of <a href="http://tsarnicholas.com/">Tsar Nicholas</a> and <a href="http://hepnova.com">HEPNOVA</a> fame.</p>
<p>The video is a pastiche-y <em>hommage</em> to the <a href="http://en.wikipedia.org/wiki/Film_noir"><em>films noirs</em></a> of yesteryear, shot on location in Lower Manhattan, with basically no budget and only three weeks from pre to post.  Here it is in all its charmingly ghetto glory:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="333" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=2327297&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="500" height="333" src="http://vimeo.com/moogaloop.swf?clip_id=2327297&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<a href="http://vimeo.com/2327297"></a><br />
<a href="http://vimeo.com/2327297">Noir</a> from <a href="http://vimeo.com/hepnova">lee-sean</a> on <a href="http://vimeo.com">Vimeo</a>.  Also on <a href="http://blip.tv/file/1500239/">Blip.tv</a> and <a href="http://www.youtube.com/watch?v=W8wJMnFlq8Q">YouTube</a>.</p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2008/11/25/safety-is-dangerous/" rel="bookmark" class="crp_title">Safety is Dangerous</a></li><li><a href="http://leesean.net/2008/10/18/herbivores/" rel="bookmark" class="crp_title">Herbivores</a></li><li><a href="http://leesean.net/2009/05/27/cant-stop-music-video/" rel="bookmark" class="crp_title">Can&#8217;t Stop Music Video</a></li><li><a href="http://leesean.net/2010/01/25/video-of-mumbo-jumbo-maracas-high-res/" rel="bookmark" class="crp_title">Video of Mumbo Jumbo Maracas (High Res)</a></li><li><a href="http://leesean.net/2008/09/26/protest-against-the-bush-bailout-on-wall-street/" rel="bookmark" class="crp_title">Protest Against the Bush Bailout on Wall Street</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2008/11/24/noir/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New track: NO2H8</title>
		<link>http://leesean.net/2008/11/18/new-track-no2h8/</link>
		<comments>http://leesean.net/2008/11/18/new-track-no2h8/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 05:10:40 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Activism]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[Democracy]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Human Rights]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[New York]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[NYC]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Composition]]></category>
		<category><![CDATA[Gay Rights]]></category>
		<category><![CDATA[LGBT]]></category>
		<category><![CDATA[Mashup]]></category>
		<category><![CDATA[Prop 8]]></category>
		<category><![CDATA[Protest]]></category>
		<category><![CDATA[Remix]]></category>
		<category><![CDATA[song]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1354</guid>
		<description><![CDATA[Listen to my latest musical composition, NO2H8, based on audio I recorded of speeches at the Protest Against Prop 8 this Sunday and some organ and synth tracks of &#8220;deconstructed&#8221; Mendelsohn&#8217;s Wedding March. [MP3] [AIFF] Related PostsProtest Against Prop 8 &#8211; NYCJump (The Bailout Bash)Playing The Building: An Installation by David ByrneSouthamptonProtest Against the Bush [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Protest Against Prop 8 by leesean, on Flickr" href="http://www.flickr.com/photos/leesean/3033018602/"><img src="http://farm4.static.flickr.com/3167/3033018602_f277cd7548.jpg" alt="Protest Against Prop 8" width="500" height="375" /></a></p>
<p>Listen to my latest musical composition, <a href="http://leesean.net/itp/commlab/NO_on_H8.mp3">NO2H8</a>, based on audio I recorded of speeches at the <a href="http://leesean.net/2008/11/15/protest-against-prop-8-nyc/">Protest Against Prop 8</a> this Sunday and some organ and synth tracks of &#8220;deconstructed&#8221; Mendelsohn&#8217;s Wedding March.</p>
<p><a href="http://leesean.net/itp/commlab/NO_on_H8.mp3">[MP3]</a> <a href="http://leesean.net/itp/commlab/NO_on_H8.aif">[AIFF]</a></p>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2008/11/15/protest-against-prop-8-nyc/" rel="bookmark" class="crp_title">Protest Against Prop 8 &#8211; NYC</a></li><li><a href="http://leesean.net/2008/10/31/jump-the-bailout-bash/" rel="bookmark" class="crp_title">Jump (The Bailout Bash)</a></li><li><a href="http://leesean.net/2008/06/01/playing-the-building-an-installation-by-david-byrne/" rel="bookmark" class="crp_title">Playing The Building: An Installation by David Byrne</a></li><li><a href="http://leesean.net/2008/11/02/southampton/" rel="bookmark" class="crp_title">Southampton</a></li><li><a href="http://leesean.net/2008/09/26/protest-against-the-bush-bailout-on-wall-street/" rel="bookmark" class="crp_title">Protest Against the Bush Bailout on Wall Street</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2008/11/18/new-track-no2h8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<enclosure url="http://leesean.net/itp/commlab/NO_on_H8.mp3" length="4674259" type="audio/mpeg" />
		<itunes:duration>0:04:12</itunes:duration>
		<itunes:subtitle>
Listen to my latest musical composition, NO2H8, based on audio I recorded of speeches at the Protest Against Prop 8 this Sunday and some organ and synth tracks of &#8220;deconstructed&#8221; Mendelsohn&#8217;s Wedding March.
[MP3] [AIFF]
Related Po[...]</itunes:subtitle>
		<itunes:summary>
Listen to my latest musical composition, NO2H8, based on audio I recorded of speeches at the Protest Against Prop 8 this Sunday and some organ and synth tracks of &#8220;deconstructed&#8221; Mendelsohn&#8217;s Wedding March.
[MP3] [AIFF]
Related PostsProtest Against Prop 8 &#8211; NYCJump (The Bailout Bash)Playing The Building: An Installation by David ByrneSouthamptonProtest Against the Bush Bailout on Wall StreetPowered by Contextual Related Posts</itunes:summary>
		<itunes:keywords>Activism, Art, Audio, Culture, Democracy, DIY, Interactive, Music, News, NYC, Politics</itunes:keywords>
		<itunes:author>ls@leesean.net</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>no</itunes:block>
		<enclosure url="http://leesean.net/itp/commlab/NO_on_H8.aif" length="67147444" type="audio/x-aiff" />
	</item>
		<item>
		<title>ICM Final: Musical Typewriter Screenshot</title>
		<link>http://leesean.net/2008/11/14/icm-final-musical-typewriter-screenshot/</link>
		<comments>http://leesean.net/2008/11/14/icm-final-musical-typewriter-screenshot/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 08:40:42 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[ICM]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Musical Instrument]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Typewriter]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1349</guid>
		<description><![CDATA[I got the audio visualization to work.  The waves represent the audio waveforms of the percussion alphabet.  The letters fade out gradually after you type them to in order to help pace the user and to represent the &#8220;life cycle&#8221; of each note through time.  Here is a screenshot: Source code after the jump: import [...]]]></description>
			<content:encoded><![CDATA[<p>I got the audio visualization to work.  The waves represent the audio waveforms of the percussion alphabet.  The letters fade out gradually after you type them to in order to help pace the user and to represent the &#8220;life cycle&#8221; of each note through time.  Here is a screenshot:</p>
<p><img class="alignnone size-full wp-image-1350" title="typewriter" src="http://leesean.net/wp-content/uploads/2008/11/typewriter.jpg" alt="" /></p>
<p>Source code after the jump:</p>
<p><span id="more-1349"></span></p>
<blockquote><p>import ddf.minim.signals.*;<br />
import ddf.minim.*;<br />
import ddf.minim.analysis.*;<br />
import ddf.minim.effects.*;</p>
<p>Minim minim;<br />
WaveformRenderer waveform;<br />
//AudioSample objects for each letter of the alphabet<br />
AudioSample play_a;<br />
AudioSample play_b;<br />
AudioSample play_c;<br />
AudioSample play_d;<br />
AudioSample play_e;<br />
AudioSample play_f;<br />
AudioSample play_g;<br />
AudioSample play_h;<br />
AudioSample play_i;<br />
AudioSample play_j;<br />
AudioSample play_k;<br />
AudioSample play_l;<br />
AudioSample play_m;<br />
AudioSample play_n;<br />
AudioSample play_o;<br />
AudioSample play_p;<br />
AudioSample play_q;<br />
AudioSample play_r;<br />
AudioSample play_s;<br />
AudioSample play_t;<br />
AudioSample play_u;<br />
AudioSample play_v;<br />
AudioSample play_w;<br />
AudioSample play_x;<br />
AudioSample play_y;<br />
AudioSample play_z;</p>
<p>void setup()<br />
{<br />
minim = new Minim(this);<br />
size(500,500);</p>
<p>background(0);<br />
textFont(createFont(&#8220;Courier&#8221;, 50));<br />
text(&#8220;Type letters&#8221;, 50, height/2-30);<br />
text(&#8220;to play&#8221;, 50, height/2+45);</p>
<p>play_a = minim.loadSample(&#8220;A.mp3&#8243;, 512);<br />
play_b = minim.loadSample(&#8220;B.mp3&#8243;, 512);<br />
play_c = minim.loadSample(&#8220;C.mp3&#8243;, 512);<br />
play_d = minim.loadSample(&#8220;D.mp3&#8243;, 512);<br />
play_e = minim.loadSample(&#8220;E.mp3&#8243;, 512);<br />
play_f = minim.loadSample(&#8220;F.mp3&#8243;, 512);<br />
play_g = minim.loadSample(&#8220;G.mp3&#8243;, 512);<br />
play_h = minim.loadSample(&#8220;H.mp3&#8243;, 512);<br />
play_i = minim.loadSample(&#8220;I.mp3&#8243;, 512);<br />
play_j = minim.loadSample(&#8220;J.mp3&#8243;, 512);<br />
play_k = minim.loadSample(&#8220;K.mp3&#8243;, 512);<br />
play_l = minim.loadSample(&#8220;L.mp3&#8243;, 512);<br />
play_m = minim.loadSample(&#8220;M.mp3&#8243;, 512);<br />
play_n = minim.loadSample(&#8220;N.mp3&#8243;, 512);<br />
play_o = minim.loadSample(&#8220;O.mp3&#8243;, 512);<br />
play_p = minim.loadSample(&#8220;P.mp3&#8243;, 512);<br />
play_q = minim.loadSample(&#8220;Q.mp3&#8243;, 512);<br />
play_r = minim.loadSample(&#8220;R.mp3&#8243;, 512);<br />
play_s = minim.loadSample(&#8220;S.mp3&#8243;, 512);<br />
play_t = minim.loadSample(&#8220;T.mp3&#8243;, 512);<br />
play_u = minim.loadSample(&#8220;U.mp3&#8243;, 512);<br />
play_v = minim.loadSample(&#8220;V.mp3&#8243;, 512);<br />
play_w = minim.loadSample(&#8220;W.mp3&#8243;, 512);<br />
play_x = minim.loadSample(&#8220;X.mp3&#8243;, 512);<br />
play_y = minim.loadSample(&#8220;Y.mp3&#8243;, 512);<br />
play_z = minim.loadSample(&#8220;Z.mp3&#8243;, 512);</p>
<p>waveform = new WaveformRenderer();<br />
play_a.addListener(waveform);<br />
play_b.addListener(waveform);<br />
play_c.addListener(waveform);<br />
play_d.addListener(waveform);<br />
play_e.addListener(waveform);<br />
play_f.addListener(waveform);<br />
play_g.addListener(waveform);<br />
play_h.addListener(waveform);<br />
play_i.addListener(waveform);<br />
play_j.addListener(waveform);<br />
play_k.addListener(waveform);<br />
play_l.addListener(waveform);<br />
play_m.addListener(waveform);<br />
play_n.addListener(waveform);<br />
play_o.addListener(waveform);<br />
play_p.addListener(waveform);<br />
play_q.addListener(waveform);<br />
play_r.addListener(waveform);<br />
play_s.addListener(waveform);<br />
play_t.addListener(waveform);<br />
play_u.addListener(waveform);<br />
play_v.addListener(waveform);<br />
play_w.addListener(waveform);<br />
play_x.addListener(waveform);<br />
play_y.addListener(waveform);<br />
play_z.addListener(waveform);</p>
<p>textFont(createFont(&#8220;Courier&#8221;, 200));<br />
noStroke();<br />
frameRate(30);<br />
}</p>
<p>void draw()<br />
{<br />
noStroke();<br />
fill(0,0,0,20);<br />
rect(0,0,width,height);<br />
waveform.draw();<br />
}</p>
<p>void keyPressed()<br />
{<br />
fill(255);<br />
if ( key == &#8216;a&#8217;)<br />
{<br />
play_a.trigger();<br />
text(&#8220;A&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;b&#8217;)<br />
{<br />
play_b.trigger();<br />
text(&#8220;B&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;c&#8217;)<br />
{<br />
play_c.trigger();<br />
text(&#8220;C&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;d&#8217;)<br />
{<br />
play_d.trigger();<br />
text(&#8220;D&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;e&#8217;)<br />
{<br />
play_e.trigger();<br />
text(&#8220;E&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;f&#8217;)<br />
{<br />
play_f.trigger();<br />
text(&#8220;F&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;g&#8217;)<br />
{<br />
play_g.trigger();<br />
text(&#8220;G&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;h&#8217;)<br />
{<br />
play_h.trigger();<br />
text(&#8220;H&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;i&#8217;)<br />
{<br />
play_i.trigger();<br />
text(&#8220;I&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;j&#8217;)<br />
{<br />
play_j.trigger();<br />
text(&#8220;J&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;k&#8217;)<br />
{<br />
text(&#8220;K&#8221;, width/2-60, height/2+50);<br />
play_k.trigger();<br />
}</p>
<p>if ( key == &#8216;l&#8217;)<br />
{<br />
play_l.trigger();<br />
text(&#8220;L&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;m&#8217;)<br />
{<br />
text(&#8220;M&#8221;, width/2-60, height/2+50);<br />
play_m.trigger();<br />
}</p>
<p>if ( key == &#8216;n&#8217;)<br />
{<br />
play_n.trigger();<br />
text(&#8220;N&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;o&#8217;)<br />
{<br />
play_o.trigger();<br />
text(&#8220;O&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;p&#8217;)<br />
{<br />
play_p.trigger();<br />
text(&#8220;P&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;q&#8217;)<br />
{<br />
play_q.trigger();<br />
text(&#8220;Q&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;r&#8217;)<br />
{<br />
play_r.trigger();<br />
text(&#8220;R&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;s&#8217;)<br />
{<br />
play_s.trigger();<br />
text(&#8220;S&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;t&#8217;)<br />
{<br />
play_t.trigger();<br />
text(&#8220;T&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;u&#8217;)<br />
{<br />
play_u.trigger();<br />
text(&#8220;U&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;v&#8217;)<br />
{<br />
play_v.trigger();<br />
text(&#8220;V&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;w&#8217;)<br />
{<br />
play_w.trigger();<br />
text(&#8220;W&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;x&#8217;)<br />
{<br />
play_x.trigger();<br />
text(&#8220;X&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;y&#8217;)<br />
{<br />
play_y.trigger();<br />
text(&#8220;Y&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if ( key == &#8216;z&#8217;)<br />
{<br />
play_z.trigger();<br />
text(&#8220;Z&#8221;, width/2-60, height/2+50);<br />
}</p>
<p>if (key == &#8216; &#8216;)<br />
{<br />
fill(0,0,0,20);<br />
noStroke();<br />
rect(0,0,width,height);<br />
}<br />
}</p>
<p>void stop()<br />
{<br />
play_a.close();<br />
minim.stop();<br />
super.stop();<br />
}</p>
<p>class WaveformRenderer implements AudioListener<br />
{<br />
private float[] left;<br />
private float[] right;</p>
<p>WaveformRenderer()<br />
{<br />
left = null;<br />
right = null;<br />
}</p>
<p>synchronized void samples(float[] samp)<br />
{<br />
left = samp;<br />
}</p>
<p>synchronized void samples(float[] sampL, float[] sampR)<br />
{<br />
left = sampL;<br />
right = sampR;<br />
}</p>
<p>synchronized void draw()<br />
{<br />
// we&#8217;ve got a stereo signal if right or left are not null<br />
if ( left != null &amp;&amp; right != null )<br />
{<br />
noFill();<br />
stroke(255);<br />
beginShape();<br />
for ( int i = 0; i &lt; left.length; i++ )<br />
{<br />
vertex(i, height/4 + left[i]*120);<br />
}<br />
endShape();<br />
beginShape();<br />
for ( int i = 0; i &lt; right.length; i++ )<br />
{<br />
vertex(i, 3*(height/4) + right[i]*120);<br />
}<br />
endShape();<br />
}<br />
else if ( left != null )<br />
{<br />
noFill();<br />
stroke(255);<br />
beginShape();<br />
for ( int i = 0; i &lt; left.length; i++ )<br />
{<br />
vertex(i, height/2 + left[i]*120);<br />
}<br />
endShape();<br />
}<br />
}<br />
}</p></blockquote>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2008/11/13/icm-final-musical-typewriter-take-2/" rel="bookmark" class="crp_title">ICM Final: Musical Typewriter &#8211; take 2</a></li><li><a href="http://leesean.net/2008/12/02/icm-final-source-code/" rel="bookmark" class="crp_title">ICM Final: Post-Modern Poster Child (Musical Typeface Reinvention)</a></li><li><a href="http://leesean.net/2008/11/13/icm-final-in-progress-musical-typewriter/" rel="bookmark" class="crp_title">ICM Final in Progress: Musical Typewriter</a></li><li><a href="http://leesean.net/2008/12/16/headbangerphones-final/" rel="bookmark" class="crp_title">head(banger)phones &#8211; FINAL</a></li><li><a href="http://leesean.net/2008/12/06/headbangerphones-part-2/" rel="bookmark" class="crp_title">head(banger)phones part 2</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2008/11/14/icm-final-musical-typewriter-screenshot/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ICM Final: Musical Typewriter &#8211; take 2</title>
		<link>http://leesean.net/2008/11/13/icm-final-musical-typewriter-take-2/</link>
		<comments>http://leesean.net/2008/11/13/icm-final-musical-typewriter-take-2/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 21:59:08 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[ICM]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1343</guid>
		<description><![CDATA[Update to my two previous posts: ICM Final in Progress: Musical Typewriter ICM Final Project Proposal: Text2Drum After getting help from the ICM email list, I changed my AudioPlayer objects to AudioSamples, which only need to be triggered once, as opposed to AudioPlayer objects that require play and rewind functions.  This tweak solved my latency [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update to my two previous posts:</strong></p>
<p><a href="http://leesean.net/2008/11/13/icm-final-in-progress-musical-typewriter/">ICM Final in Progress: Musical Typewriter</a></p>
<p><a href="http://leesean.net/2008/11/08/icm-final-project-proposal-text2drum/">ICM Final Project Proposal: Text2Drum</a></p>
<p>After getting help from the ICM email list, I changed my AudioPlayer objects to AudioSamples, which only need to be triggered once, as opposed to AudioPlayer objects that require play and rewind functions.  This tweak solved my latency and crackle issues.</p>
<p>Testing out the new version has reminded me of the aural pleasure of typing on analog typewriters.  The rhythmic, percussive quality of clanking keys is now lost on contemporary computer keyboards that make more muted sounds when used.</p>
<p>I also thought it would be cool to visualize the waveform of the audio output and display that along with the letter on the screen.  Well, back to work&#8230;</p>
<p><strong>New code after the jump:</strong></p>
<p><span id="more-1343"></span></p>
<blockquote><p>import ddf.minim.signals.*;<br />
import ddf.minim.*;<br />
import ddf.minim.analysis.*;<br />
import ddf.minim.effects.*;</p>
<p>Minim minim;<br />
//AudioSample objects for each letter of the alphabet<br />
AudioSample play_a;<br />
AudioSample play_b;<br />
AudioSample play_c;<br />
AudioSample play_d;<br />
AudioSample play_e;<br />
AudioSample play_f;<br />
AudioSample play_g;<br />
AudioSample play_h;<br />
AudioSample play_i;<br />
AudioSample play_j;<br />
AudioSample play_k;<br />
AudioSample play_l;<br />
AudioSample play_m;<br />
AudioSample play_n;<br />
AudioSample play_o;<br />
AudioSample play_p;<br />
AudioSample play_q;<br />
AudioSample play_r;<br />
AudioSample play_s;<br />
AudioSample play_t;<br />
AudioSample play_u;<br />
AudioSample play_v;<br />
AudioSample play_w;<br />
AudioSample play_x;<br />
AudioSample play_y;<br />
AudioSample play_z;</p>
<p>void setup()<br />
{<br />
minim = new Minim(this);<br />
size(500,500);</p>
<p>background(0);<br />
textFont(createFont(&#8220;Courier&#8221;, 50));<br />
text(&#8220;Type letters&#8221;, 30, height/2-50);<br />
text(&#8220;to play&#8221;, 30, height/2+25);</p>
<p>play_a = minim.loadSample(&#8220;A.mp3&#8243;, 512);<br />
play_b = minim.loadSample(&#8220;B.mp3&#8243;, 512);<br />
play_c = minim.loadSample(&#8220;C.mp3&#8243;, 512);<br />
play_d = minim.loadSample(&#8220;D.mp3&#8243;, 512);<br />
play_e = minim.loadSample(&#8220;E.mp3&#8243;, 512);<br />
play_f = minim.loadSample(&#8220;F.mp3&#8243;, 512);<br />
play_g = minim.loadSample(&#8220;G.mp3&#8243;, 512);<br />
play_h = minim.loadSample(&#8220;H.mp3&#8243;, 512);<br />
play_i = minim.loadSample(&#8220;I.mp3&#8243;, 512);<br />
play_j = minim.loadSample(&#8220;J.mp3&#8243;, 512);<br />
play_k = minim.loadSample(&#8220;K.mp3&#8243;, 512);<br />
play_l = minim.loadSample(&#8220;L.mp3&#8243;, 512);<br />
play_m = minim.loadSample(&#8220;M.mp3&#8243;, 512);<br />
play_n = minim.loadSample(&#8220;N.mp3&#8243;, 512);<br />
play_o = minim.loadSample(&#8220;O.mp3&#8243;, 512);<br />
play_p = minim.loadSample(&#8220;P.mp3&#8243;, 512);<br />
play_q = minim.loadSample(&#8220;Q.mp3&#8243;, 512);<br />
play_r = minim.loadSample(&#8220;R.mp3&#8243;, 512);<br />
play_s = minim.loadSample(&#8220;S.mp3&#8243;, 512);<br />
play_t = minim.loadSample(&#8220;T.mp3&#8243;, 512);<br />
play_u = minim.loadSample(&#8220;U.mp3&#8243;, 512);<br />
play_v = minim.loadSample(&#8220;V.mp3&#8243;, 512);<br />
play_w = minim.loadSample(&#8220;W.mp3&#8243;, 512);<br />
play_x = minim.loadSample(&#8220;X.mp3&#8243;, 512);<br />
play_y = minim.loadSample(&#8220;Y.mp3&#8243;, 512);<br />
play_z = minim.loadSample(&#8220;Z.mp3&#8243;, 512);</p>
<p>textFont(createFont(&#8220;Courier&#8221;, 200));<br />
}</p>
<p>void draw()<br />
{</p>
<p>}</p>
<p>void keyPressed()<br />
{<br />
if ( key == &#8216;a&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;A&#8221;, width/2-60, height/2+20);<br />
play_a.trigger();<br />
}</p>
<p>if ( key == &#8216;b&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;B&#8221;, width/2-60, height/2+20);<br />
play_b.trigger();<br />
}</p>
<p>if ( key == &#8216;c&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;C&#8221;, width/2-60, height/2+20);<br />
play_c.trigger();<br />
}</p>
<p>if ( key == &#8216;d&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;D&#8221;, width/2-60, height/2+20);<br />
play_d.trigger();<br />
}</p>
<p>if ( key == &#8216;e&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;E&#8221;, width/2-60, height/2+20);<br />
play_e.trigger();<br />
}</p>
<p>if ( key == &#8216;f&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;F&#8221;, width/2-60, height/2+20);<br />
play_f.trigger();<br />
}</p>
<p>if ( key == &#8216;g&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;G&#8221;, width/2-60, height/2+20);<br />
play_g.trigger();<br />
}</p>
<p>if ( key == &#8216;h&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;H&#8221;, width/2-60, height/2+20);<br />
play_h.trigger();<br />
}</p>
<p>if ( key == &#8216;i&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;I&#8221;, width/2-60, height/2+20);<br />
play_i.trigger();<br />
}</p>
<p>if ( key == &#8216;j&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;J&#8221;, width/2-60, height/2+20);<br />
play_j.trigger();<br />
}</p>
<p>if ( key == &#8216;k&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;K&#8221;, width/2-60, height/2+20);<br />
play_k.trigger();<br />
}</p>
<p>if ( key == &#8216;l&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;L&#8221;, width/2-60, height/2+20);<br />
play_l.trigger();<br />
}</p>
<p>if ( key == &#8216;m&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;M&#8221;, width/2-60, height/2+20);<br />
play_m.trigger();<br />
}</p>
<p>if ( key == &#8216;n&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;N&#8221;, width/2-60, height/2+20);<br />
play_n.trigger();<br />
}</p>
<p>if ( key == &#8216;o&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;O&#8221;, width/2-60, height/2+20);<br />
play_o.trigger();<br />
}</p>
<p>if ( key == &#8216;p&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;P&#8221;, width/2-60, height/2+20);<br />
play_p.trigger();<br />
}</p>
<p>if ( key == &#8216;q&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;Q&#8221;, width/2-60, height/2+20);<br />
play_q.trigger();<br />
}</p>
<p>if ( key == &#8216;r&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;R&#8221;, width/2-60, height/2+20);<br />
play_r.trigger();<br />
}</p>
<p>if ( key == &#8216;s&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;S&#8221;, width/2-60, height/2+20);<br />
play_s.trigger();<br />
}</p>
<p>if ( key == &#8216;t&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;T&#8221;, width/2-60, height/2+20);<br />
play_t.trigger();<br />
}</p>
<p>if ( key == &#8216;u&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;U&#8221;, width/2-60, height/2+20);<br />
play_u.trigger();<br />
}</p>
<p>if ( key == &#8216;v&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;V&#8221;, width/2-60, height/2+20);<br />
play_v.trigger();<br />
}</p>
<p>if ( key == &#8216;w&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;W&#8221;, width/2-60, height/2+20);<br />
play_w.trigger();<br />
}</p>
<p>if ( key == &#8216;x&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;X&#8221;, width/2-60, height/2+20);<br />
play_x.trigger();<br />
}</p>
<p>if ( key == &#8216;y&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;Y&#8221;, width/2-60, height/2+20);<br />
play_y.trigger();<br />
}</p>
<p>if ( key == &#8216;z&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;Z&#8221;, width/2-60, height/2+20);<br />
play_z.trigger();<br />
}</p>
<p>if (key == &#8216; &#8216;)<br />
{<br />
background(0);<br />
}<br />
}</p>
<p>void stop()<br />
{<br />
minim.stop();<br />
super.stop();<br />
}</p></blockquote>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2008/11/14/icm-final-musical-typewriter-screenshot/" rel="bookmark" class="crp_title">ICM Final: Musical Typewriter Screenshot</a></li><li><a href="http://leesean.net/2008/11/13/icm-final-in-progress-musical-typewriter/" rel="bookmark" class="crp_title">ICM Final in Progress: Musical Typewriter</a></li><li><a href="http://leesean.net/2008/12/16/headbangerphones-final/" rel="bookmark" class="crp_title">head(banger)phones &#8211; FINAL</a></li><li><a href="http://leesean.net/2008/12/02/icm-final-source-code/" rel="bookmark" class="crp_title">ICM Final: Post-Modern Poster Child (Musical Typeface Reinvention)</a></li><li><a href="http://leesean.net/2008/12/06/headbangerphones-part-2/" rel="bookmark" class="crp_title">head(banger)phones part 2</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2008/11/13/icm-final-musical-typewriter-take-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ICM Final in Progress: Musical Typewriter</title>
		<link>http://leesean.net/2008/11/13/icm-final-in-progress-musical-typewriter/</link>
		<comments>http://leesean.net/2008/11/13/icm-final-in-progress-musical-typewriter/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 21:03:21 +0000</pubDate>
		<dc:creator>leesean</dc:creator>
				<category><![CDATA[Art]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[ICM]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Musical Instrument]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Typewriter]]></category>

		<guid isPermaLink="false">http://leesean.net/?p=1341</guid>
		<description><![CDATA[I have completed phase 1 of my ICM final project, Text2Drum,  which involves me creating a new &#8220;percussion alphabet&#8221;, perhaps another way to describe it is &#8220;a musical Morse code.&#8221;  I have assigned a unique percussion sample to each letter of the alphabet.  I have assigned &#8216;A&#8217; through &#8216;G&#8217; pitched percussion hits that correspond to [...]]]></description>
			<content:encoded><![CDATA[<p>I have completed phase 1 of my <a href="http://itp.nyu.edu/varwiki/Syllabus/ICM-Danny-Rozin-F08">ICM</a> final project, <a href="http://leesean.net/2008/11/08/icm-final-project-proposal-text2drum/">Text2Drum</a>,  which involves me creating a new &#8220;percussion alphabet&#8221;, perhaps another way to describe it is &#8220;a musical Morse code.&#8221;  I have assigned a unique percussion sample to each letter of the alphabet.  I have assigned &#8216;A&#8217; through &#8216;G&#8217; pitched percussion hits that correspond to the white keys on a piano, but voiced at different octaves.  All of the other letters are un-pitched percussion sounds.  I have not assigned sounds to punctuation marks or numbers (yet).  I&#8217;m not sure if I want to or if this is necessary for my new language.</p>
<p>I have written a <a href="http://processing.org/">Processing</a> sketch, with the help of the <a href="http://code.compartmental.net/tools/minim/">Minim</a> library, that that plays back the &#8220;percussion letters&#8221; when the user types on the keyboard.  There is a bit of latency and audio &#8220;crackle&#8221; that still needs to be worked out, but for the most part, the musical typewriter works.  The next step is to build a related program that can read a text file as a musical score, translate the letters into percussion alphabet, play back the results, and save the audio playback as a file.</p>
<p>For more info, refer to <a href="http://leesean.net/2008/11/08/icm-final-project-proposal-text2drum/">my previous post about Text2Drum</a>, or see my source code for the musical typewriter after the jump.</p>
<p><span id="more-1341"></span><br />
<strong>Musical Typewriter source code:</strong></p>
<blockquote><p>import ddf.minim.signals.*;<br />
import ddf.minim.*;<br />
import ddf.minim.analysis.*;<br />
import ddf.minim.effects.*;</p>
<p>Minim minim;<br />
//AudioPlayer objects for each letter of the alphabet<br />
AudioPlayer play_a;<br />
AudioPlayer play_b;<br />
AudioPlayer play_c;<br />
AudioPlayer play_d;<br />
AudioPlayer play_e;<br />
AudioPlayer play_f;<br />
AudioPlayer play_g;<br />
AudioPlayer play_h;<br />
AudioPlayer play_i;<br />
AudioPlayer play_j;<br />
AudioPlayer play_k;<br />
AudioPlayer play_l;<br />
AudioPlayer play_m;<br />
AudioPlayer play_n;<br />
AudioPlayer play_o;<br />
AudioPlayer play_p;<br />
AudioPlayer play_q;<br />
AudioPlayer play_r;<br />
AudioPlayer play_s;<br />
AudioPlayer play_t;<br />
AudioPlayer play_u;<br />
AudioPlayer play_v;<br />
AudioPlayer play_w;<br />
AudioPlayer play_x;<br />
AudioPlayer play_y;<br />
AudioPlayer play_z;</p>
<p>void setup()<br />
{<br />
minim = new Minim(this);<br />
size(500,500);</p>
<p>background(0);<br />
textFont(createFont(&#8220;Courier&#8221;, 50));<br />
text(&#8220;Type letters&#8221;, 30, height/2-50);<br />
text(&#8220;to play&#8221;, 30, height/2+25);</p>
<p>play_a = minim.loadFile(&#8220;A.mp3&#8243;, 512);<br />
play_b = minim.loadFile(&#8220;B.mp3&#8243;, 512);<br />
play_c = minim.loadFile(&#8220;C.mp3&#8243;, 512);<br />
play_d = minim.loadFile(&#8220;D.mp3&#8243;, 512);<br />
play_e = minim.loadFile(&#8220;E.mp3&#8243;, 512);<br />
play_f = minim.loadFile(&#8220;F.mp3&#8243;, 512);<br />
play_g = minim.loadFile(&#8220;G.mp3&#8243;, 512);<br />
play_h = minim.loadFile(&#8220;H.mp3&#8243;, 512);<br />
play_i = minim.loadFile(&#8220;I.mp3&#8243;, 512);<br />
play_j = minim.loadFile(&#8220;J.mp3&#8243;, 512);<br />
play_k = minim.loadFile(&#8220;K.mp3&#8243;, 512);<br />
play_l = minim.loadFile(&#8220;L.mp3&#8243;, 512);<br />
play_m = minim.loadFile(&#8220;M.mp3&#8243;, 512);<br />
play_n = minim.loadFile(&#8220;N.mp3&#8243;, 512);<br />
play_o = minim.loadFile(&#8220;O.mp3&#8243;, 512);<br />
play_p = minim.loadFile(&#8220;P.mp3&#8243;, 512);<br />
play_q = minim.loadFile(&#8220;Q.mp3&#8243;, 512);<br />
play_r = minim.loadFile(&#8220;R.mp3&#8243;, 512);<br />
play_s = minim.loadFile(&#8220;S.mp3&#8243;, 512);<br />
play_t = minim.loadFile(&#8220;T.mp3&#8243;, 512);<br />
play_u = minim.loadFile(&#8220;U.mp3&#8243;, 512);<br />
play_v = minim.loadFile(&#8220;V.mp3&#8243;, 512);<br />
play_w = minim.loadFile(&#8220;W.mp3&#8243;, 512);<br />
play_x = minim.loadFile(&#8220;X.mp3&#8243;, 512);<br />
play_y = minim.loadFile(&#8220;Y.mp3&#8243;, 512);<br />
play_z = minim.loadFile(&#8220;Z.mp3&#8243;, 512);</p>
<p>textFont(createFont(&#8220;Courier&#8221;, 200));<br />
}</p>
<p>void draw()<br />
{</p>
<p>}</p>
<p>void keyPressed()<br />
{<br />
if ( key == &#8216;a&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;A&#8221;, width/2-60, height/2+20);<br />
play_a.play();<br />
play_a.rewind();<br />
}</p>
<p>if ( key == &#8216;b&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;B&#8221;, width/2-60, height/2+20);<br />
play_b.play();<br />
play_b.rewind();<br />
}</p>
<p>if ( key == &#8216;c&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;C&#8221;, width/2-60, height/2+20);<br />
play_c.play();<br />
play_c.rewind();<br />
}</p>
<p>if ( key == &#8216;d&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;D&#8221;, width/2-60, height/2+20);<br />
play_d.play();<br />
play_d.rewind();<br />
}</p>
<p>if ( key == &#8216;e&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;E&#8221;, width/2-60, height/2+20);<br />
play_e.play();<br />
play_e.rewind();<br />
}</p>
<p>if ( key == &#8216;f&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;F&#8221;, width/2-60, height/2+20);<br />
play_f.play();<br />
play_f.rewind();<br />
}</p>
<p>if ( key == &#8216;g&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;G&#8221;, width/2-60, height/2+20);<br />
play_g.play();<br />
play_g.rewind();<br />
}</p>
<p>if ( key == &#8216;h&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;H&#8221;, width/2-60, height/2+20);<br />
play_h.play();<br />
play_h.rewind();<br />
}</p>
<p>if ( key == &#8216;i&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;I&#8221;, width/2-60, height/2+20);<br />
play_i.play();<br />
play_i.rewind();<br />
}</p>
<p>if ( key == &#8216;j&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;J&#8221;, width/2-60, height/2+20);<br />
play_j.play();<br />
play_j.rewind();<br />
}</p>
<p>if ( key == &#8216;k&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;K&#8221;, width/2-60, height/2+20);<br />
play_k.play();<br />
play_k.rewind();<br />
}</p>
<p>if ( key == &#8216;l&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;L&#8221;, width/2-60, height/2+20);<br />
play_l.play();<br />
play_l.rewind();<br />
}</p>
<p>if ( key == &#8216;m&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;M&#8221;, width/2-60, height/2+20);<br />
play_m.play();<br />
play_m.rewind();<br />
}</p>
<p>if ( key == &#8216;n&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;N&#8221;, width/2-60, height/2+20);<br />
play_n.play();<br />
play_n.rewind();<br />
}</p>
<p>if ( key == &#8216;o&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;O&#8221;, width/2-60, height/2+20);<br />
play_o.play();<br />
play_o.rewind();<br />
}</p>
<p>if ( key == &#8216;p&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;P&#8221;, width/2-60, height/2+20);<br />
play_p.play();<br />
play_p.rewind();<br />
}</p>
<p>if ( key == &#8216;q&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;Q&#8221;, width/2-60, height/2+20);<br />
play_q.play();<br />
play_q.rewind();<br />
}</p>
<p>if ( key == &#8216;r&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;R&#8221;, width/2-60, height/2+20);<br />
play_r.play();<br />
play_r.rewind();<br />
}</p>
<p>if ( key == &#8216;s&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;S&#8221;, width/2-60, height/2+20);<br />
play_s.play();<br />
play_s.rewind();<br />
}</p>
<p>if ( key == &#8216;t&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;T&#8221;, width/2-60, height/2+20);<br />
play_t.play();<br />
play_t.rewind();<br />
}</p>
<p>if ( key == &#8216;u&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;U&#8221;, width/2-60, height/2+20);<br />
play_u.play();<br />
play_u.rewind();<br />
}</p>
<p>if ( key == &#8216;v&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;V&#8221;, width/2-60, height/2+20);<br />
play_v.play();<br />
play_v.rewind();<br />
}</p>
<p>if ( key == &#8216;w&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;W&#8221;, width/2-60, height/2+20);<br />
play_w.play();<br />
play_w.rewind();<br />
}</p>
<p>if ( key == &#8216;x&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;X&#8221;, width/2-60, height/2+20);<br />
play_x.play();<br />
play_x.rewind();<br />
}</p>
<p>if ( key == &#8216;y&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;Y&#8221;, width/2-60, height/2+20);<br />
play_y.play();<br />
play_y.rewind();<br />
}</p>
<p>if ( key == &#8216;z&#8217;)<br />
{<br />
background(0);<br />
text(&#8220;Z&#8221;, width/2-60, height/2+20);<br />
play_z.play();<br />
play_z.rewind();<br />
}</p>
<p>if (key == &#8216; &#8216;)<br />
{<br />
background(0);<br />
}<br />
}</p></blockquote>
<div id="crp_related"><h4>Related Posts</h4><ul><li><a href="http://leesean.net/2008/11/13/icm-final-musical-typewriter-take-2/" rel="bookmark" class="crp_title">ICM Final: Musical Typewriter &#8211; take 2</a></li><li><a href="http://leesean.net/2008/11/14/icm-final-musical-typewriter-screenshot/" rel="bookmark" class="crp_title">ICM Final: Musical Typewriter Screenshot</a></li><li><a href="http://leesean.net/2008/12/02/icm-final-source-code/" rel="bookmark" class="crp_title">ICM Final: Post-Modern Poster Child (Musical Typeface Reinvention)</a></li><li><a href="http://leesean.net/2008/12/16/headbangerphones-final/" rel="bookmark" class="crp_title">head(banger)phones &#8211; FINAL</a></li><li><a href="http://leesean.net/2008/12/06/headbangerphones-part-2/" rel="bookmark" class="crp_title">head(banger)phones part 2</a></li><li>Powered by <a href="http://ajaydsouza.com/wordpress/plugins/contextual-related-posts/">Contextual Related Posts</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://leesean.net/2008/11/13/icm-final-in-progress-musical-typewriter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

