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

<channel>
	<title>lithium flowers bloom &#187; final</title>
	<atom:link href="http://leejayxia.com/blog/tag/final/feed/" rel="self" type="application/rss+xml" />
	<link>http://leejayxia.com/blog</link>
	<description>the weblog</description>
	<lastBuildDate>Sat, 15 May 2010 20:52:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Automating The Brush Stroke</title>
		<link>http://leejayxia.com/blog/automating-the-brush-stroke/</link>
		<comments>http://leejayxia.com/blog/automating-the-brush-stroke/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 18:40:40 +0000</pubDate>
		<dc:creator>L.J</dc:creator>
				<category><![CDATA[Drawing Machine]]></category>
		<category><![CDATA[drawing]]></category>
		<category><![CDATA[Fall 2009]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[simulation]]></category>

		<guid isPermaLink="false">http://leejayxia.com/blog/?p=764</guid>
		<description><![CDATA[Here&#8217;s a rough diagram of the drawing machine architecture that I have in mind. I&#8217;m building the components from bottom to top. I moved on from the brush stroke and started to work on a set of drawing functions that incorporate the stroke. Currently coverage: moveTo, lineTo, rect, circle the moveTo function is necessary since [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a rough diagram of the drawing machine architecture that I have in mind. I&#8217;m building the components from bottom to top.</p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2009/11/Drawing-Machine.png" rel="lightbox[764]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/11/Drawing-Machine-300x149.png" alt="Drawing Machine" title="Drawing Machine" width="300" height="149" class="alignnone size-medium wp-image-767" /></a></p>
<p>I moved on from the brush stroke and started to work on a set of drawing functions that incorporate the stroke. </p>
<p>Currently coverage:</p>
<ul>
<li>moveTo,	</li>
<li>lineTo,</li>
<li>rect,</li>
<li>circle</li>
</ul>
<p>the moveTo function is necessary since the dynamics of the brush motion would depend on the last stroke, both position and speed.</p>
<p>currently i&#8217;m working on the curve function, it&#8217;s quite a challenge to get the brush movement natural enough and calculation is also dependent on the stroke length and brush size too. once this is done I think all basic drawing functions are covered for now and I will move onto the composition stage.</p>
<p>this is a simple test:</p>
<p><object width="603" height="358"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7675016&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7675016&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ffffff&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="603" height="358"></embed></object>
<p><a href="http://vimeo.com/7675016">stroke update</a> from <a href="http://vimeo.com/liangjie">Liangjie Xia</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://leejayxia.com/blog/automating-the-brush-stroke/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Humon beings update</title>
		<link>http://leejayxia.com/blog/humon-beings-update/</link>
		<comments>http://leejayxia.com/blog/humon-beings-update/#comments</comments>
		<pubDate>Sat, 02 May 2009 07:55:59 +0000</pubDate>
		<dc:creator>L.J</dc:creator>
				<category><![CDATA[Redial:Interactive Telephony]]></category>
		<category><![CDATA[The Nature of Code]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[monster]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Spring 2009]]></category>

		<guid isPermaLink="false">http://leejayxia.com/blog/?p=653</guid>
		<description><![CDATA[Li and I presented the humons on Wednesday and Thursday in both Redial and Nature of Code class. Although we&#8217;ve been playing around for weeks and a lot of people already saw it, it&#8217;s still so joyful to see a lot people actually play with it at the same time. Here&#8217;s the video from the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lilidada.com">Li</a> and I presented the <a title="humon dev weblog" href="http://humon.us/about">humons</a> on Wednesday and Thursday in both Redial and Nature of Code class. Although we&#8217;ve been playing around for weeks and a lot of people already saw it, it&#8217;s still so joyful to see a lot people actually play with it at the same time.</p>
<p>Here&#8217;s the video from the nature of code class presentation.</p>
<p><object width="640" height="432" data="http://vimeo.com/moogaloop.swf?clip_id=4420465&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=4420465&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" /></object></p>
<p>A short demo of the basic motions we have so far: basic motion, jelly-ish body shape, gravity, collision, multiple ground tracks. The physics are implemented with the great <a href="http://code.google.com/p/toxiclibs/">toxi verletphysics</a> library.</p>
<p><object width="640" height="400" data="http://vimeo.com/moogaloop.swf?clip_id=4420912&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=4420912&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" /></object></p>
<p>Basic interactions are all accessible from the phone, which allow a lot of people to interact at the same time without introducing more human-computer interfaces.  In this demo video: basic movements (horizontal moving),  jumping, message recording.</p>
<p><object width="640" height="480" data="http://vimeo.com/moogaloop.swf?clip_id=4423441&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=4423441&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" /></object></p>
<p>Another key feature of the humon project is to allow people to record and broadcast voice messages to the whole community. The instant playback will probably be replaced by a queueing system in short future, so that the audience may be able to focus on certain messages.</p>
<p><object width="640" height="432" data="http://vimeo.com/moogaloop.swf?clip_id=4421322&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=4421322&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" /></object></p>
<p>Some more screenshots from early processing sketches and different scenes:</p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2009/05/e59bbee78987-15.png" rel="lightbox[653]"><img class="alignnone size-medium wp-image-665" title="e59bbee78987-15" src="http://leejayxia.com/blog/wp-content/uploads/2009/05/e59bbee78987-15-300x187.png" alt="e59bbee78987-15" width="300" height="187" /></a>&nbsp;<a href="http://leejayxia.com/blog/wp-content/uploads/2009/05/e59bbee78987-13.png" rel="lightbox[653]"><img class="alignnone size-medium wp-image-663" title="e59bbee78987-13" src="http://leejayxia.com/blog/wp-content/uploads/2009/05/e59bbee78987-13-300x187.png" alt="e59bbee78987-13" width="300" height="187" /></a>&nbsp;<a href="http://leejayxia.com/blog/wp-content/uploads/2009/05/e59bbee78987-11.png" rel="lightbox[653]"><img class="alignnone size-medium wp-image-662" title="e59bbee78987-11" src="http://leejayxia.com/blog/wp-content/uploads/2009/05/e59bbee78987-11-300x187.png" alt="e59bbee78987-11" width="300" height="187" /></a> <a href="http://leejayxia.com/blog/wp-content/uploads/2009/05/e59bbee78987-10.png" rel="lightbox[653]"><img class="alignnone size-medium wp-image-661" title="e59bbee78987-10" src="http://leejayxia.com/blog/wp-content/uploads/2009/05/e59bbee78987-10-300x187.png" alt="e59bbee78987-10" width="300" height="187" /></a> <a href="http://leejayxia.com/blog/wp-content/uploads/2009/05/e59bbee78987-9.png" rel="lightbox[653]"><img class="alignnone size-medium wp-image-660" title="e59bbee78987-9" src="http://leejayxia.com/blog/wp-content/uploads/2009/05/e59bbee78987-9-300x187.png" alt="e59bbee78987-9" width="300" height="187" /></a> <a href="http://leejayxia.com/blog/wp-content/uploads/2009/05/wonderscene.png" rel="lightbox[653]"><img class="alignnone size-medium wp-image-671" title="wonderscene" src="http://leejayxia.com/blog/wp-content/uploads/2009/05/wonderscene-300x187.png" alt="wonderscene" width="300" height="187" /></a> <a href="http://leejayxia.com/blog/wp-content/uploads/2009/05/nightscene.png" rel="lightbox[653]"><img class="alignnone size-medium wp-image-670" title="nightscene" src="http://leejayxia.com/blog/wp-content/uploads/2009/05/nightscene-300x187.png" alt="nightscene" width="300" height="187" /></a> <a href="http://leejayxia.com/blog/wp-content/uploads/2009/05/landscene.png" rel="lightbox[653]"><img class="alignnone size-medium wp-image-669" title="landscene" src="http://leejayxia.com/blog/wp-content/uploads/2009/05/landscene-300x187.png" alt="landscene" width="300" height="187" /></a> <a href="http://leejayxia.com/blog/wp-content/uploads/2009/05/cityscene.png" rel="lightbox[653]"><img class="alignnone size-medium wp-image-668" title="cityscene" src="http://leejayxia.com/blog/wp-content/uploads/2009/05/cityscene-300x187.png" alt="cityscene" width="300" height="187" /></a></p>
<p>The <strong>development weblog</strong> is now live too, we&#8217;ll keep updating there more often.</p>
<p>Check it out: <a href="http://humon.us">humon doings</a></p>
<p>I stayed up late to check if we got into the spring show, but it&#8217;s still not out yet. Time to sleep!</p>
]]></content:encoded>
			<wfw:commentRss>http://leejayxia.com/blog/humon-beings-update/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>US Intervention 1798 &#8211; 2009</title>
		<link>http://leejayxia.com/blog/us-intervention-1798-2009/</link>
		<comments>http://leejayxia.com/blog/us-intervention-1798-2009/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 18:35:17 +0000</pubDate>
		<dc:creator>L.J</dc:creator>
				<category><![CDATA[Mainstreaming Info]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Military Intervention]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Spring 2009]]></category>
		<category><![CDATA[Visualization]]></category>

		<guid isPermaLink="false">http://leejayxia.com/blog/?p=643</guid>
		<description><![CDATA[&#8220;The United States military has been intervening in other countries for a long time. In 1898, it seized the Philippines, Cuba, and Puerto Rico from Spain, and in 1917-18 became embroiled in World War I in Europe. In the first half of the 20th century it repeatedly sent Marines to &#8216;protectorates&#8217; such as Nicaragua, Honduras, [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;The United States military has been intervening in other countries for a long time. In 1898, it seized the Philippines, Cuba, and Puerto Rico from Spain, and in 1917-18 became embroiled in World War I in Europe. In the first half of the 20th century it repeatedly sent Marines to &#8216;protectorates&#8217; such as Nicaragua, Honduras, Panama, Haiti, and the Dominican Republic. All these interventions directly served corporate interests, and many resulted in massive losses of civilians, rebels, and soldiers.&#8221; (via A BRIEFING ON THE HISTORY OF U.S. MILITARY INTERVENTIONS, By Zoltán Grossman, October 2001)</p>
<p>People might be familiar with recent US military interventions in Middle East, or those in Asia in 1970s, however in the past 200 years&#8217; history, overseas interventions actually happened a lot more frequent than people usually think and played an important role to this country&#8217;s development. </p>
<p>This visualization is not intended to create a narrative piece of intervention history, it&#8217;s more created as a tool to go through the mass amount of history events and discover the correlations among those events in a certain period of time, or within a certain region.</p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2009/04/e59bbee78987-2.png" rel="lightbox[643]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/04/e59bbee78987-2-1024x767.png" alt="e59bbee78987-2" title="e59bbee78987-2" width="80%" class="alignnone size-large wp-image-648" /></a></p>
<p>DOWNLOAD</p>
<p>Download app for mac:</p>
<p><a href="http://leejayxia.com/processing/us_intervention_mono_present.zip">http://leejayxia.com/processing/us_intervention_mono_present.zip</a></p>
<p>For 1024 x 768:</p>
<p><a href="http://leejayxia.com/processing/us_intervention_mono_present_1024.zip">http://leejayxia.com/processing/us_intervention_mono_present_1024.zip</a></p>
<p>I&#8217;m still working on the source data since world wars are currently excluded. Download links will be updated when I finish.</p>
]]></content:encoded>
			<wfw:commentRss>http://leejayxia.com/blog/us-intervention-1798-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Storytelling stickers update</title>
		<link>http://leejayxia.com/blog/storytelling-stickers-update/</link>
		<comments>http://leejayxia.com/blog/storytelling-stickers-update/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 22:28:27 +0000</pubDate>
		<dc:creator>L.J</dc:creator>
				<category><![CDATA[Toy Design]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[RFID]]></category>
		<category><![CDATA[sound]]></category>
		<category><![CDATA[Spring 2009]]></category>
		<category><![CDATA[sticker]]></category>
		<category><![CDATA[toy]]></category>

		<guid isPermaLink="false">http://leejayxia.com/blog/?p=611</guid>
		<description><![CDATA[Wrapping up what&#8217;s happened to the storytelling stickers! THE READER The RFID reader is working! It took a while though. I did some search and ended up taking arduino codes from http://blog.formatlos.de/2008/12/08/arduino-id-12/ featuring the AF_SoftSerial library. It&#8217;s very well written and comprehensive. The scripts added a kicking off step and a disconnection detection as well. [...]]]></description>
			<content:encoded><![CDATA[<p>Wrapping up what&#8217;s happened to the <a href="http://leejayxia.com/blog/toy-design-proposal/">storytelling stickers</a>!</p>
<h3>THE READER</h3>
<p>The RFID reader is working! It took a while though. I did some search and ended up taking arduino codes from <a href="http://blog.formatlos.de/2008/12/08/arduino-id-12/">http://blog.formatlos.de/2008/12/08/arduino-id-12/</a> featuring the <a href="http://www.ladyada.net/make/eshield/AFSoftSerial.zip">AF_SoftSerial library</a>. It&#8217;s very well written and comprehensive. The scripts added a kicking off step and a disconnection detection as well. Great work! A simple processing sketch was made to display the identifier code. </p>
<p><object width="640" height="480"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3933690&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=3933690&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="640" height="480"></embed></object></p>
<p>The tag needs to be really close to the reader to be recognized, which is fine in my project. But since I probably needs to get reading from both ends of a miniature trumpet/horn, that might not be good enough. I&#8217;m trying to build some antenna for the reader and see if it could extend the accessibility.  </p>
<h3>THE TAG</h3>
<p>The tags arrived too. I ordered 300 raw EM4001 RFID tags (meaning that they come with exposed coil antennae) and unfortunately a lot of them broke. A lot of soldering is ahead! But I got enough to start anyway, like a hundred.</p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2009/04/image019.jpg" rel="lightbox[611]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/04/image019-300x225.jpg" alt="image019" title="image019" width="300" height="225" class="alignnone size-medium wp-image-616" /></a>&nbsp;<a href="http://leejayxia.com/blog/wp-content/uploads/2009/04/image017.jpg" rel="lightbox[611]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/04/image017-300x225.jpg" alt="image017" title="image017" width="300" height="225" class="alignnone size-medium wp-image-615" /></a>&nbsp;<a href="http://leejayxia.com/blog/wp-content/uploads/2009/04/image0251.jpg" rel="lightbox[611]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/04/image0251-300x225.jpg" alt="image0251" title="image0251" width="300" height="225" class="alignnone size-medium wp-image-617" /></a></p>
<h3>THE SOUND</h3>
<p>I got the <a href="http://www.ladyada.net/make/waveshield/">wave sound shield from Adafruit</a> and finished assembling while procrastinating. But I haven&#8217;t tried to use them because it doesn&#8217;t record to the card and I decided to fall back to use a computer in this phrase.</p>
<p>So now it works like this. Whenever a card/tag/sticker is seen/read, according to the mode an audio clip associated to the tag ID would be recorded or played, by the computer. All sound files are stored on the computer instead of any hardware/memory card as I previously planned. The processing sketch was adapted to keep track of a known card and pick the corresponding sound file to play/record. </p>
<p>[Videos to be uploaded soon]</p>
<div class="codecolorer-container java dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br />145<br />146<br />147<br />148<br />149<br />150<br />151<br />152<br />153<br />154<br />155<br />156<br />157<br />158<br />159<br />160<br />161<br />162<br />163<br />164<br />165<br />166<br />167<br />168<br />169<br />170<br />171<br />172<br />173<br />174<br />175<br />176<br />177<br />178<br />179<br />180<br />181<br />182<br />183<br />184<br />185<br />186<br />187<br />188<br />189<br />190<br />191<br />192<br />193<br />194<br />195<br />196<br />197<br />198<br />199<br />200<br />201<br />202<br />203<br />204<br />205<br />206<br />207<br />208<br />209<br />210<br />211<br />212<br />213<br />214<br />215<br />216<br />217<br />218<br />219<br />220<br />221<br />222<br />223<br />224<br />225<br />226<br />227<br />228<br />229<br />230<br />231<br />232<br />233<br />234<br />235<br />236<br />237<br />238<br />239<br />240<br />241<br />242<br />243<br />244<br />245<br />246<br />247<br />248<br />249<br />250<br />251<br />252<br />253<br />254<br />255<br />256<br />257<br />258<br />259<br />260<br />261<br />262<br />263<br />264<br />265<br />266<br />267<br />268<br />269<br />270<br />271<br />272<br />273<br />274<br />275<br />276<br />277<br />278<br />279<br />280<br />281<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">ddf.minim.signals.*</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">ddf.minim.*</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">ddf.minim.analysis.*</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">ddf.minim.effects.*</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">processing.serial.*</span><span style="color: #339933;">;</span><br />
<br />
Serial myPort<span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">boolean</span> connected <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #003399;">String</span> activeTag <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Waiting...&quot;</span><span style="color: #339933;">;</span><br />
PFont f <span style="color: #339933;">=</span> createFont<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Helvetica&quot;</span>, <span style="color: #cc66cc;">50</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #003399;">Hashtable</span> cards<span style="color: #339933;">;</span><br />
Minim minim<span style="color: #339933;">;</span><br />
AudioInput in<span style="color: #339933;">;</span><br />
AudioRecorder recorder<span style="color: #339933;">;</span><br />
AudioPlayer player<span style="color: #339933;">;</span><br />
<br />
<span style="color: #003399;">String</span> previousCard <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">boolean</span> playMode <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span><br />
<span style="color: #000066; font-weight: bold;">boolean</span> autoPilot <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">void</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; println<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;connecting...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; myPort <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Serial<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Serial.<span style="color: #006633;">list</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span>, <span style="color: #cc66cc;">9600</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; myPort.<span style="color: #006633;">clear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; cards <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Hashtable</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; loadCards<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; minim <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Minim<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; in <span style="color: #339933;">=</span> minim.<span style="color: #006633;">getLineIn</span><span style="color: #009900;">&#40;</span>Minim.<span style="color: #006633;">STEREO</span>, <span style="color: #cc66cc;">2048</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; size<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">800</span>,<span style="color: #cc66cc;">600</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; background<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; fill<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; noStroke<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; textAlign<span style="color: #009900;">&#40;</span>CENTER<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; textFont<span style="color: #009900;">&#40;</span>f<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; text<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;WAITING&quot;</span>,width <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span>, height <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">void</span> draw<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; background<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>connected<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; myPort.<span style="color: #006633;">write</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'C'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; text<span style="color: #009900;">&#40;</span>activeTag,width <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span>, height <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>playMode<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;PLAYING&quot;</span>,width <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span>, height <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;RECORDING&quot;</span>,width <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span>, height <span style="color: #339933;">/</span> <span style="color: #cc66cc;">2</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">90</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>recorder <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; stroke<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>playMode<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>player <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> player.<span style="color: #006633;">left</span>.<span style="color: #006633;">size</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; line<span style="color: #009900;">&#40;</span>i, <span style="color: #cc66cc;">50</span> <span style="color: #339933;">+</span> player.<span style="color: #006633;">left</span>.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">50</span>, i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">50</span> <span style="color: #339933;">+</span> player.<span style="color: #006633;">left</span>.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">50</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; line<span style="color: #009900;">&#40;</span>i, <span style="color: #cc66cc;">150</span> <span style="color: #339933;">+</span> player.<span style="color: #006633;">right</span>.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">50</span>, i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">150</span> <span style="color: #339933;">+</span> player.<span style="color: #006633;">right</span>.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">50</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> in.<span style="color: #006633;">bufferSize</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; line<span style="color: #009900;">&#40;</span>i, <span style="color: #cc66cc;">50</span> <span style="color: #339933;">+</span> in.<span style="color: #006633;">left</span>.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">50</span>, i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">50</span> <span style="color: #339933;">+</span> in.<span style="color: #006633;">left</span>.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">50</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; line<span style="color: #009900;">&#40;</span>i, <span style="color: #cc66cc;">150</span> <span style="color: #339933;">+</span> in.<span style="color: #006633;">right</span>.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">50</span>, i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">150</span> <span style="color: #339933;">+</span> in.<span style="color: #006633;">right</span>.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">50</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">void</span> closePlayer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>player <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> player.<span style="color: #006633;">isPlaying</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">try</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; player.<span style="color: #006633;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">void</span> closeRecorder<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>recorder <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #666666; font-style: italic;">/* &amp;&amp; recorder.isRecording()*/</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">try</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; recorder.<span style="color: #006633;">endRecord</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; recorder.<span style="color: #006633;">save</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">void</span> loadCards<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; cards.<span style="color: #006633;">clear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #003399;">String</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span>lines <span style="color: #339933;">=</span> loadStrings<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;index.txt&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>lines <span style="color: #339933;">==</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> lines.<span style="color: #006633;">length</span> <span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003399;">String</span> card <span style="color: #339933;">=</span> trim<span style="color: #009900;">&#40;</span>lines<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; cards.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>card, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">void</span> dumpCards<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #003399;">PrintWriter</span> writer <span style="color: #339933;">=</span> createWriter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;data/index.txt&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Enumeration</span> e <span style="color: #339933;">=</span> cards.<span style="color: #006633;">keys</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span> e.<span style="color: #006633;">hasMoreElements</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">;</span><span style="color: #009900;">&#41;</span> <br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003399;">String</span> card <span style="color: #339933;">=</span> e.<span style="color: #006633;">nextElement</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; writer.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>card<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; writer.<span style="color: #006633;">flush</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; writer.<span style="color: #006633;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">void</span> serialEvent<span style="color: #009900;">&#40;</span>Serial port<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #003399;">String</span> myString <span style="color: #339933;">=</span> port.<span style="color: #006633;">readStringUntil</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">' '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>myString <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; myString <span style="color: #339933;">=</span> trim<span style="color: #009900;">&#40;</span>myString<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>myString.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;connected&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; connected <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; println<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;connected~!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>myString.<span style="color: #006633;">equals</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;0000000000&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; activeTag <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Disconnected&quot;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>playMode <span style="color: #339933;">&amp;&amp;</span> player <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; println<span style="color: #009900;">&#40;</span>previousCard <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;: Disconnect from playing&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; closePlayer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; println<span style="color: #009900;">&#40;</span>previousCard <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;: Disconnect from recording&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; closeRecorder<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; previousCard <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; activeTag <span style="color: #339933;">=</span> myString<span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>cards.<span style="color: #006633;">containsKey</span><span style="color: #009900;">&#40;</span>activeTag<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cards.<span style="color: #006633;">put</span><span style="color: #009900;">&#40;</span>activeTag,<span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dumpCards<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>autoPilot<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; closePlayer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; playMode <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//auto switch to record &nbsp; &nbsp; &nbsp; </span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; println<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Autopilot: switch to record mode&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #666666; font-style: italic;">//found</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>autoPilot<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; playMode <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//auto switch to play&nbsp; </span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; closeRecorder<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; println<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Autopilot: switch to play mode&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>playMode<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>cards.<span style="color: #006633;">containsKey</span><span style="color: #009900;">&#40;</span>activeTag<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; println<span style="color: #009900;">&#40;</span>activeTag <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;: Start playing new file, disconnect from previous &quot;</span> <span style="color: #339933;">+</span> previousCard<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; closePlayer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; println<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;loading &quot;</span> <span style="color: #339933;">+</span> activeTag <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; to play&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; player <span style="color: #339933;">=</span> minim.<span style="color: #006633;">loadFile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;data/&quot;</span> <span style="color: #339933;">+</span> activeTag <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;.wav&quot;</span>, <span style="color: #cc66cc;">2048</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; player.<span style="color: #006633;">play</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; player.<span style="color: #006633;">loop</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; println<span style="color: #009900;">&#40;</span>activeTag <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;: Not recorded yet&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #666666; font-style: italic;">//record mode</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>activeTag <span style="color: #339933;">!=</span> previousCard<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; println<span style="color: #009900;">&#40;</span>activeTag <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;: Start playing new file, disconnect from previous &quot;</span> <span style="color: #339933;">+</span> previousCard<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; closePlayer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; closeRecorder<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; recorder <span style="color: #339933;">=</span> minim.<span style="color: #006633;">createRecorder</span><span style="color: #009900;">&#40;</span>in, <span style="color: #0000ff;">&quot;data/&quot;</span> <span style="color: #339933;">+</span> activeTag <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;.wav&quot;</span>, <span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; recorder.<span style="color: #006633;">beginRecord</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; previousCard <span style="color: #339933;">=</span> activeTag<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">void</span> stop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; in.<span style="color: #006633;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; closePlayer<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; closeRecorder<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; minim.<span style="color: #006633;">stop</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">stop</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<br />
<span style="color: #000066; font-weight: bold;">void</span> keyPressed<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>key <span style="color: #339933;">==</span> <span style="color: #0000ff;">' '</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; playMode <span style="color: #339933;">=</span> <span style="color: #339933;">!</span>playMode<span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>playMode<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; println<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;play mode&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; println<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;record mode&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>key <span style="color: #339933;">==</span> <span style="color: #0000ff;">'a'</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; autoPilot <span style="color: #339933;">=</span> <span style="color: #339933;">!</span>autoPilot<span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>autoPilot<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; println<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Autopilot: ON&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; println<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Autopilot: OFF&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<h3>THE NAME</h3>
<p>Any thoughts on a name for the toy?</p>
]]></content:encoded>
			<wfw:commentRss>http://leejayxia.com/blog/storytelling-stickers-update/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>More experiments with globe</title>
		<link>http://leejayxia.com/blog/more-experiments-with-globe/</link>
		<comments>http://leejayxia.com/blog/more-experiments-with-globe/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 20:51:11 +0000</pubDate>
		<dc:creator>L.J</dc:creator>
				<category><![CDATA[Mainstreaming Info]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Military Intervention]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[sketch]]></category>
		<category><![CDATA[Spring 2009]]></category>

		<guid isPermaLink="false">http://leejayxia.com/blog/?p=597</guid>
		<description><![CDATA[Some sketches to play with 3D globe and its motion. I have to made this to see if it makes sense at all if I plot the timeline data long the radius of the globe. Next step is to create better visual elements and put in text captions. The graph reads from the center to [...]]]></description>
			<content:encoded><![CDATA[<p>Some sketches to play with 3D globe and its motion. I have to made this to see if it makes sense at all if I plot the timeline data long the radius of the globe. Next step is to create better visual elements and put in text captions.</p>
<p>The graph reads from the center to the outside as from oldest to latest events. The size of the cubes indicates the length of the intervention event.</p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2009/04/e59bbee78987-14.png" rel="lightbox[597]"><img class="alignnone size-medium wp-image-602" title="e59bbee78987-14" src="http://leejayxia.com/blog/wp-content/uploads/2009/04/e59bbee78987-14-300x236.png" alt="e59bbee78987-14" width="300" height="236" /></a><a href="http://leejayxia.com/blog/wp-content/uploads/2009/04/e59bbee78987-13.png" rel="lightbox[597]"><img class="alignnone size-medium wp-image-601" title="e59bbee78987-13" src="http://leejayxia.com/blog/wp-content/uploads/2009/04/e59bbee78987-13-300x236.png" alt="e59bbee78987-13" width="300" height="236" /></a><a href="http://leejayxia.com/blog/wp-content/uploads/2009/04/e59bbee78987-12.png" rel="lightbox[597]"><img class="alignnone size-medium wp-image-600" title="e59bbee78987-12" src="http://leejayxia.com/blog/wp-content/uploads/2009/04/e59bbee78987-12-300x236.png" alt="e59bbee78987-12" width="300" height="236" /></a><a href="http://leejayxia.com/blog/wp-content/uploads/2009/04/e59bbee78987-11.png" rel="lightbox[597]"><img class="alignnone size-medium wp-image-599" title="e59bbee78987-11" src="http://leejayxia.com/blog/wp-content/uploads/2009/04/e59bbee78987-11-300x236.png" alt="e59bbee78987-11" width="300" height="236" /></a></p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2009/04/us_intervention_globe_time.zip">Download the sketch executable for Mac OS X.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://leejayxia.com/blog/more-experiments-with-globe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Face Blind (Revisited)</title>
		<link>http://leejayxia.com/blog/face-blind-revisited/</link>
		<comments>http://leejayxia.com/blog/face-blind-revisited/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 01:00:04 +0000</pubDate>
		<dc:creator>L.J</dc:creator>
				<category><![CDATA[Visualizing the Five Senses]]></category>
		<category><![CDATA[face-blindness]]></category>
		<category><![CDATA[Fall 2008]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Perlin Noise]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[prosopagnosia]]></category>

		<guid isPermaLink="false">http://leejayxia.com/blog/?p=421</guid>
		<description><![CDATA[Face Blind was my final project for Visualizing the Five Senses last semester. However for some reason I never had a chance to document it, and as a kicking off of my &#8220;blog catching up&#8221; week I would like to start with this project. Just as a quick recap of the project, Face Blind is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://leejayxia.com/blog/face-blind/" target="_blank">Face Blind</a> was my final project for <em>Visualizing the Five Senses</em> last semester. However for some reason I never had a chance to document it, and as a kicking off of my &#8220;blog catching up&#8221; week I would like to start with this project.</p>
<p>Just as a quick recap of the project, <em>Face Blind</em> is a visualization of prosopagnosia symptom and calls for the awareness of this perception disorder. On Wikipedia&#8217;s <a href="http://en.wikipedia.org/wiki/Prosopagnosia" target="_blank">prosopagnosia page</a>, the brief intro is given as follows,</p>
<blockquote><p>Prosopagnosia (sometimes known as face blindness) is a disorder of face perception where the ability to recognize faces is impaired, while the ability to recognize other objects may be relatively intact. The term usually refers to a condition following acute brain damage, but recent evidence suggests that a congenital form of the disorder may exist. The specific brain area usually associated with prosopagnosia is the fusiform gyrus.[1]</p>
<p>Few successful therapies have so far been developed for affected people, although individuals often learn to use <strong>&#8216;piecemeal&#8217; or &#8216;feature by feature&#8217; recognition strategies. This may involve secondary clues such as clothing, hair color, body shape, and voice.</strong> Because the face seems to function as an important identifying feature in memory, it can also be difficult for people with this condition to keep track of information about people, and socialize normally with others.</p></blockquote>
<p>The difficulty of face-blind people could hardly be explained and understood by people around because we are taking face recognition so for granted and seldom think of how faces are specifically optimized in our memory system. <a href="http://prosopagnosia.com/main/stones/index.asp" target="_blank">The analogy of the stones</a> were used by Cecilia Burman on her website on prosopagnosia and I found it a relatively effective approach of making this explanation short. I decided to create a set of cloud masks for every student in the ITP community to illustrate this idea in a similar yet different way.</p>
<p>The clouds are generated by several different features on peoples faces and are overlaying on their faces to obscure them The optimized mechanism for face-recognition in our brain would not be activated since most of the facial features are turned off by the noises (clouds). However since the clouds are generated from an abstraction of facial features so ideally I could still create a unique cloud mask for each person. In this way, we could probably experience the difficulty of face blindness and, however, could also experience the &#8220;piecemeal&#8221; or &#8220;feature by feature&#8221; recognition strategy by observing the shape, texture and other features of the clouds.</p>
<p><strong>Cloud Generation</strong></p>
<p>My first difficulty in the process is creating the cloud texture programmatically. I first thought of using stock photos of clouds textures and trimming them for my use. After some research I decided to create my clouds by Perlin Noise, which seems to be a classic and efficient way of generating the texture. Since I&#8217;m not only looking for the randomness of the clouds, I would also like to gain control of the generated result through a set of configuration parameters (which would be the output of my face recognition/analysis tool).</p>
<p>The first iteration and the later revision of the cloud generator looked like this. The clouds used in the final visualization were composition of two layers of cloud highlights and another two layers of shadows, plus a adjusting filter to make sure the generated cloud cover at least 50% of the face area.</p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2009/02/cloud_generator.jpg" rel="lightbox[421]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/02/cloud_generator-300x207.jpg" alt="cloud_generator" title="cloud_generator" width="300" height="207" class="alignnone size-medium wp-image-427" /></a> <a href="http://leejayxia.com/blog/wp-content/uploads/2009/02/cloud_generator_2.jpg" rel="lightbox[421]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/02/cloud_generator_2-300x221.jpg" alt="cloud_generator_2" title="cloud_generator_2" width="300" height="221" class="alignnone size-medium wp-image-429" /></a></p>
<p><strong>Facial Recognition</strong></p>
<p>Since I&#8217;m not building a sophisticated robot with computer vision that watch your door or build you an iron armor, my goal for the facial recognition program was to just extract certain features from the face, which in this case includes aspect ratio of the face shape, positions of the eyes, nose and mouth, and whether the person is wearing glasses or not.</p>
<p>In fact it worked pretty well. Click on the thumbnails below to view larger pictures. </p>
<ul>
<li>Rectangle on the top left indicates aspect radio of face shape;</li>
<li>Red stripe &#8211; position of eyes, brown of wearing glasses;</li>
<li>Lower stripes &#8211; position of nose/mouth, not really accurate from time to time;</li>
</ul>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2009/02/e59bbee78987-8.png" rel="lightbox[421]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/02/e59bbee78987-8-300x289.png" alt="feature recognition" title="feature recognition" width="300" height="289" class="alignnone size-medium wp-image-431" /></a> <a href="http://leejayxia.com/blog/wp-content/uploads/2009/02/e59bbee78987-2.png" rel="lightbox[421]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/02/e59bbee78987-2-300x294.png" alt="e59bbee78987-2" title="e59bbee78987-2" width="300" height="294" class="alignnone size-medium wp-image-432" /></a></p>
<p><strong>Composition</strong></p>
<p>After the preparation of the previous two steps, I tried to develop a showcase for the visualization. The performance problem emerged as I was putting everything together. The realtime rendering of the cloud for each individual took about 3-4 seconds in average and created an unacceptable latency in the viewing experience. Due to the short of time, I pre-rendered all graphics beforehand. I cannot argue this is the best way to present the final product. It might be better to cache the whole cloud space to optimize calculating time than pre-rendering. Anyway this is what I presented at the final.</p>
<p>See if you could recognize anyone. Click on the thumbnail for higher resolution. All headshot images courtesy of <a href="http://www.faludi.com/socialgenius/" target="_blank">Social Genius</a>. If you&#8217;re interested in getting your &#8220;cloud&#8221; just drop me a message at leejayxia [at] gmail.com.</p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2009/02/faceblind4static-1.jpg" rel="lightbox[421]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/02/faceblind4static-1-300x219.jpg" alt="faceblind4static-1" title="faceblind4static-1" width="300" height="219" class="alignnone size-medium wp-image-435" /></a>&nbsp;<a href="http://leejayxia.com/blog/wp-content/uploads/2009/02/faceblind4static-2.jpg" rel="lightbox[421]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/02/faceblind4static-2-300x219.jpg" alt="faceblind4static-2" title="faceblind4static-2" width="300" height="219" class="alignnone size-medium wp-image-436" /></a>&nbsp;<a href="http://leejayxia.com/blog/wp-content/uploads/2009/02/faceblind4static-3.jpg" rel="lightbox[421]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/02/faceblind4static-3-300x219.jpg" alt="faceblind4static-3" title="faceblind4static-3" width="300" height="219" class="alignnone size-medium wp-image-437" /></a>&nbsp;<a href="http://leejayxia.com/blog/wp-content/uploads/2009/02/faceblind4static-4.jpg" rel="lightbox[421]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/02/faceblind4static-4-300x219.jpg" alt="faceblind4static-4" title="faceblind4static-4" width="300" height="219" class="alignnone size-medium wp-image-438" /></a>&nbsp;<a href="http://leejayxia.com/blog/wp-content/uploads/2009/02/faceblind4static-5.jpg" rel="lightbox[421]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/02/faceblind4static-5-300x219.jpg" alt="faceblind4static-5" title="faceblind4static-5" width="300" height="219" class="alignnone size-medium wp-image-439" /></a>&nbsp;<a href="http://leejayxia.com/blog/wp-content/uploads/2009/02/faceblind4static-6.jpg" rel="lightbox[421]"><img src="http://leejayxia.com/blog/wp-content/uploads/2009/02/faceblind4static-6-300x219.jpg" alt="faceblind4static-6" title="faceblind4static-6" width="300" height="219" class="alignnone size-medium wp-image-440" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://leejayxia.com/blog/face-blind-revisited/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Final Presentation: Face Blind</title>
		<link>http://leejayxia.com/blog/final-presentation-face-blind/</link>
		<comments>http://leejayxia.com/blog/final-presentation-face-blind/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 08:24:37 +0000</pubDate>
		<dc:creator>L.J</dc:creator>
				<category><![CDATA[Visualizing the Five Senses]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[face-blindness]]></category>
		<category><![CDATA[facial recognition]]></category>
		<category><![CDATA[Fall 2008]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[Visualization]]></category>

		<guid isPermaLink="false">http://leejayxia.com/blog/?p=389</guid>
		<description><![CDATA[On Tuesday we had Paola Antonelli, Natalie Jeremijenko, Allyson Torrisi as guests in the Visualizing the Five Senses class final presentation. I showed my final work on the Face Blind project.]]></description>
			<content:encoded><![CDATA[<p>On Tuesday we had Paola Antonelli, Natalie Jeremijenko, Allyson Torrisi as guests in the Visualizing the Five Senses class final presentation. I showed my final work on the Face Blind project.</p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2008/12/face-blind-process.png" rel="lightbox[389]"><img class="alignnone size-medium wp-image-391" title="face-blind-process" src="http://leejayxia.com/blog/wp-content/uploads/2008/12/face-blind-process-300x182.png" alt="face-blind-process" width="300" height="182" /></a></p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2008/12/face-blind.png" rel="lightbox[389]"><img class="alignnone size-medium wp-image-390" title="face-blind" src="http://leejayxia.com/blog/wp-content/uploads/2008/12/face-blind-300x226.png" alt="face-blind" width="300" height="226" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://leejayxia.com/blog/final-presentation-face-blind/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Face blind</title>
		<link>http://leejayxia.com/blog/face-blind/</link>
		<comments>http://leejayxia.com/blog/face-blind/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 07:31:34 +0000</pubDate>
		<dc:creator>L.J</dc:creator>
				<category><![CDATA[Visualizing the Five Senses]]></category>
		<category><![CDATA[face-blindness]]></category>
		<category><![CDATA[facial recognition]]></category>
		<category><![CDATA[Fall 2008]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[proposal]]></category>
		<category><![CDATA[prosopagnosia]]></category>
		<category><![CDATA[vision]]></category>
		<category><![CDATA[Visualization]]></category>

		<guid isPermaLink="false">http://leejayxia.com/blog/?p=362</guid>
		<description><![CDATA[I chose the topic of face blindness of my final project for &#8220;visualizing the five senses&#8221; because I was simply stunned while I bump into the website of prosopagnosia. It was almost at once I decided to create something under this topic and also I think it&#8217;s highly related to this class. Prosopagnosia, also known [...]]]></description>
			<content:encoded><![CDATA[<p>I chose the topic of face blindness of my final project for &#8220;visualizing the five senses&#8221; because I was simply stunned while I bump into the website of <a href="http://www.prosopagnosia.com/" target="_blank">prosopagnosia</a>. It was almost at once I decided to create something under this topic and also I think it&#8217;s highly related to this class.</p>
<p>Prosopagnosia, also known as P.A. or face-blindness, is a symptom with which people lose the ability of identifying people by their faces. In my understanding the optimization module in the brain taking care of the facial recognition is not functioning, so that people can no longer associate the visually seen faces with the memory of people. Recognizing people in the social life becomes as hard as looking for one specific stone among thousands of them.</p>
<p>My proposed project is to recreate this experience for normal people by obscuring faces on the screen. Meanwhile the faces will be replaced by the texture of cloud. The idea is to create a mapping function between human faces and cloud shapes/patterns. Ideally I would be able to find a consistent conversion so that two similar faces should generate similar clouds.</p>
<p>some early sketches:</p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2008/12/facial-recognition.png" rel="lightbox[362]"><img src="http://leejayxia.com/blog/wp-content/uploads/2008/12/facial-recognition-300x202.png" alt="" title="facial-recognition" width="300" height="202" class="alignnone size-medium wp-image-364" /></a>&nbsp;<a href="http://leejayxia.com/blog/wp-content/uploads/2008/12/clouds.png" rel="lightbox[362]"><img src="http://leejayxia.com/blog/wp-content/uploads/2008/12/clouds-300x204.png" alt="" title="clouds" width="300" height="204" class="alignnone size-medium wp-image-363" /></a>&nbsp;</p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2008/12/cloudface.jpg" rel="lightbox[362]"><img src="http://leejayxia.com/blog/wp-content/uploads/2008/12/cloudface.jpg" alt="" title="cloudface" width="500" height="86" class="alignnone size-full wp-image-365" /></a></p>
<p>special thanks to &#8220;social genius&#8221;, images courtesy of ITP community</p>
]]></content:encoded>
			<wfw:commentRss>http://leejayxia.com/blog/face-blind/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Update on Physical Computing Final</title>
		<link>http://leejayxia.com/blog/update-on-physical-computing-final/</link>
		<comments>http://leejayxia.com/blog/update-on-physical-computing-final/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 07:05:19 +0000</pubDate>
		<dc:creator>L.J</dc:creator>
				<category><![CDATA[Introduction to Physical Computing]]></category>
		<category><![CDATA[Fall 2008]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[magnets]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[servomotor]]></category>
		<category><![CDATA[wood]]></category>

		<guid isPermaLink="false">http://leejayxia.com/blog/?p=357</guid>
		<description><![CDATA[I&#8217;ve been working with Liesje on the pcomp final and we had a lot of fun playing with magnets. Now it comes to a crucial question what are we gonna do to put some real pcomp into this project. Finally today we came to narrow down our ideas and focused on a still exciting solution! [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working with Liesje on the pcomp final and we had a lot of fun playing with magnets. Now it comes to a crucial question what are we gonna do to put some real pcomp into this project. Finally today we came to narrow down our ideas and focused on a still exciting solution! We still want to keep the organic look and feel of this piece and we&#8217;re adding a little bit servo-driven motion just to strengthen the interaction and exaggerate the motion of the magnets.</p>
<p>some 3 days ago pictures.</p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2008/12/dsc04929.jpg" rel="lightbox[357]"><img src="http://leejayxia.com/blog/wp-content/uploads/2008/12/dsc04929-300x225.jpg" alt="" title="dsc04929" width="300" height="225" class="alignnone size-medium wp-image-360" /></a><a href="http://leejayxia.com/blog/wp-content/uploads/2008/12/dsc04928.jpg" rel="lightbox[357]"><img src="http://leejayxia.com/blog/wp-content/uploads/2008/12/dsc04928-300x225.jpg" alt="" title="dsc04928" width="300" height="225" class="alignnone size-medium wp-image-359" /></a><a href="http://leejayxia.com/blog/wp-content/uploads/2008/12/dsc04927.jpg" rel="lightbox[357]"><img src="http://leejayxia.com/blog/wp-content/uploads/2008/12/dsc04927-300x225.jpg" alt="" title="dsc04927" width="300" height="225" class="alignnone size-medium wp-image-358" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://leejayxia.com/blog/update-on-physical-computing-final/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wrapping-up the five senses: poster and proposal</title>
		<link>http://leejayxia.com/blog/wrapping-up-the-five-senses-poster-and-proposal/</link>
		<comments>http://leejayxia.com/blog/wrapping-up-the-five-senses-poster-and-proposal/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 04:44:10 +0000</pubDate>
		<dc:creator>L.J</dc:creator>
				<category><![CDATA[Visualizing the Five Senses]]></category>
		<category><![CDATA[Fall 2008]]></category>
		<category><![CDATA[final]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Visualization]]></category>
		<category><![CDATA[Week10]]></category>

		<guid isPermaLink="false">http://leejayxia.com/blog/?p=340</guid>
		<description><![CDATA[The semester is coming to the end and we were creating a collage of all previous class works&#8230; and it turns out to be no-so-systematic as in one poster. Here is the archive for all posts regarding the class this semester. coin and collage: &#160; poster and proposal (more images): I&#8217;ll keep working on the [...]]]></description>
			<content:encoded><![CDATA[<p>The semester is coming to the end and we were creating a collage of all previous class works&#8230; and it turns out to be no-so-systematic as in one poster.</p>
<p><a href="http://leejayxia.com/blog/category/itp/visualizing-the-five-senses/">Here</a> is the archive for all posts regarding the class this semester.</p>
<p>coin and collage:<br />
<a href="http://leejayxia.com/blog/wp-content/uploads/2008/11/5senses_collage_coin.jpg" rel="lightbox[340]"><img class="alignnone size-medium wp-image-341" title="5senses_collage_coin" src="http://leejayxia.com/blog/wp-content/uploads/2008/11/5senses_collage_coin-300x231.jpg" alt="" width="300" height="231" /></a>&nbsp;<a href="http://leejayxia.com/blog/wp-content/uploads/2008/11/5senses_collage_poster.jpg" rel="lightbox[340]"><img class="alignnone size-medium wp-image-342" title="5senses_collage_poster" src="http://leejayxia.com/blog/wp-content/uploads/2008/11/5senses_collage_poster-300x231.jpg" alt="" width="300" height="231" /></a></p>
<p>poster and proposal (more images):</p>
<p>I&#8217;ll keep working on the odor database and try to find out how our sense of smell are manipulated and cheated by the artificial tastes. Ironically it is a reflection on the &#8220;mango cavier&#8221; effect presented by professor Ken Kirshchenbaum on last week&#8217;s class. </p>
<p>images for reference slash inspiration:  cartography / mutant food and taste / visual cue of the sensor / representation of the food and taste / visual cue of the sense </p>
<p><a href="http://leejayxia.com/blog/wp-content/uploads/2008/11/02-14-03.jpg" rel="lightbox[340]"><img src="http://leejayxia.com/blog/wp-content/uploads/2008/11/02-14-03-150x150.jpg" alt="" title="02-14-03" width="150" height="150" class="alignnone size-thumbnail wp-image-345" /></a><a href="http://leejayxia.com/blog/wp-content/uploads/2008/11/275689365_5de98044fd_o.jpg" rel="lightbox[340]"><img src="http://leejayxia.com/blog/wp-content/uploads/2008/11/275689365_5de98044fd_o-150x150.jpg" alt="" title="275689365_5de98044fd_o" width="150" height="150" class="alignnone size-thumbnail wp-image-346" /></a><a href="http://leejayxia.com/blog/wp-content/uploads/2008/11/323349008_82162521c0.jpg" rel="lightbox[340]"><img src="http://leejayxia.com/blog/wp-content/uploads/2008/11/323349008_82162521c0-150x150.jpg" alt="" title="323349008_82162521c0" width="150" height="150" class="alignnone size-thumbnail wp-image-347" /></a><a href="http://leejayxia.com/blog/wp-content/uploads/2008/11/3032139344_91b5e97c6e_o.jpg" rel="lightbox[340]"><img src="http://leejayxia.com/blog/wp-content/uploads/2008/11/3032139344_91b5e97c6e_o-150x150.jpg" alt="" title="3032139344_91b5e97c6e_o" width="150" height="150" class="alignnone size-thumbnail wp-image-348" /></a><a href="http://leejayxia.com/blog/wp-content/uploads/2008/11/speaking.jpg" rel="lightbox[340]"><img src="http://leejayxia.com/blog/wp-content/uploads/2008/11/speaking-150x150.jpg" alt="" title="speaking" width="150" height="150" class="alignnone size-thumbnail wp-image-349" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://leejayxia.com/blog/wrapping-up-the-five-senses-poster-and-proposal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
