<?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>Luke Loeffler &#187; blog</title>
	<atom:link href="http://lukeloeffler.com/cat/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://lukeloeffler.com</link>
	<description></description>
	<lastBuildDate>Thu, 29 Apr 2010 20:07:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fun with QR codes</title>
		<link>http://lukeloeffler.com/2010/qr-code-rr/</link>
		<comments>http://lukeloeffler.com/2010/qr-code-rr/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 18:24:19 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=773</guid>
		<description><![CDATA[I couldn&#8217;t resist.

]]></description>
			<content:encoded><![CDATA[<p>I couldn&#8217;t resist.</p>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/04/qrcode.png"><img class="alignnone size-full wp-image-774" title="qrcode" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/04/qrcode.png" alt="qrcode" width="324" height="324" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2010/qr-code-rr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Glass Camera Experiment</title>
		<link>http://lukeloeffler.com/2010/glass-camera/</link>
		<comments>http://lukeloeffler.com/2010/glass-camera/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 18:09:17 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[Work in Progress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[experiment]]></category>
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=756</guid>
		<description><![CDATA[An experimental photo process to hopefully record images on glass and copper]]></description>
			<content:encoded><![CDATA[<p>Inspired by some amazing <a href="http://helpmyphysics.co.uk/wordpress/?p=276">photos of the sun&#8217;s path</a>, I decided to put together a pinhole camera. Fortunately (or possibly unfortunately when I see the results after a few months), I didn&#8217;t have any photo paper and had to improvise. I&#8217;ve been <a href="http://lukeloeffler.com/2010/diy-pcb/">making PCBs</a> using a photo-sensitive thin-film mask over the copper.  I&#8217;ve also been experimenting with glass etching using HF acid.</p>
<p>The process I&#8217;m going to follow will be to expose the sensitized glass, develop it in a basic developer, and then etch in HF acid. The areas of the light sensitive film receiving light should become &#8220;hardened&#8221; so they adhere to the glass after the development process and during the etching process. The end result should be that dark areas of the exposure are frosted (opaque) and the light areas of the exposure are see-through. I also hope to complete the process on a piece of copper board leaving copper in the light areas and nothing in the dark areas.</p>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/04/IMG_2847.jpg"><img class="alignnone size-medium wp-image-758" title="IMG_2847" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/04/IMG_2847-360x240.jpg" alt="IMG_2847" width="360" height="240" /></a></p>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/04/IMG_2847.jpg"></a><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/04/IMG_2846.jpg"><img class="alignnone size-medium wp-image-757" title="IMG_2846" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/04/IMG_2846-360x259.jpg" alt="IMG_2846" width="360" height="259" /></a></p>
<p>Pictures are of the (hopeful) view, and the camera itself, lashed to a railing.</p>
<p>I&#8217;m not quite sure how long to let it go. Normally, the film takes 15 minutes to develop under a 100W full-spectrum lamp at 10 inches. I&#8217;m guessing with a 1/16&#8243; diameter hole, it could take months.  Fingers crossed, I don&#8217;t want to have to repeat this&#8230;</p>
<h3>Update</h3>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/04/neg.jpg"><img class="alignnone size-medium wp-image-767" title="neg" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/04/neg-360x221.jpg" alt="neg" width="360" height="221" /></a></p>
<p>I was impatient and peeked at the film as it was progressing. The blue color indicates it has been exposed while the greenish color indicates non-exposure. As you can see, the skyline was recorded&#8211;the bright sky causing the blue exposure and the buildings due to their non-reflectivity, left parts unexposed.  Unfortunately, there must not have been enough light because developing the film ate away the exposed areas as well.  Back to the drawing board.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2010/glass-camera/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Organic Processor #1</title>
		<link>http://lukeloeffler.com/2010/organic-processor/</link>
		<comments>http://lukeloeffler.com/2010/organic-processor/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 03:18:56 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[Work in Progress]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[sculpture]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=715</guid>
		<description><![CDATA[A sculpture exploring cognition and the characteristics of empathy in imaginary organisms]]></description>
			<content:encoded><![CDATA[<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/04/IMG_2351.jpg"><img class="alignnone size-medium wp-image-716" title="IMG_2351" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/04/IMG_2351-360x239.jpg" alt="IMG_2351" width="360" height="239" /></a></p>
<p><strong>Organic Processor #1</strong>. April 2010. Wood, glass, Porifera, jute, custom electronics, custom software.  9&#215;9x10 inches</p>
<p>Organic Processor #1 is the first in a series of sculptures exploring cognition and the characteristics of empathy in imaginary organisms.  The organism comprises several &#8220;neurons&#8221; in software, each responding to stimulus in the immediate environment, within itself, and remote information such as messages on twitter.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="intl_lang=en-us&amp;photo_secret=c35e884921&amp;photo_id=4495271507" /><param name="bgcolor" value="#000000" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.flickr.com/apps/video/stewart.swf?v=71377" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://www.flickr.com/apps/video/stewart.swf?v=71377" allowfullscreen="true" bgcolor="#000000" flashvars="intl_lang=en-us&amp;photo_secret=c35e884921&amp;photo_id=4495271507"></embed></object></p>
<p>Sample video of OP #1 deep in thought.  The software is still under development. I&#8217;m working on a number of different animated gestures that convey emotion.  As it processes sensory information and browses twitter, it will respond by displaying different moods (happiness, depression, anxiety, calm, etc.)  The video shows a generic animation for &#8220;thought&#8221; to indicate new information is being processed.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2010/organic-processor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Week in Sound</title>
		<link>http://lukeloeffler.com/2010/soundblog/</link>
		<comments>http://lukeloeffler.com/2010/soundblog/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 03:52:25 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[sound]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=699</guid>
		<description><![CDATA[I think one of the least-appreciated features of the new generation of smartphones is the voice recorder. We&#8217;re all taking more photos than ever, yet forgetting to capture a significant part of our everyday experience: sound. Lately I&#8217;ve made it a point to record interesting sounds I encounter as I go about my day. Interestingly, [...]]]></description>
			<content:encoded><![CDATA[<p>I think one of the least-appreciated features of the new generation of smartphones is the voice recorder. We&#8217;re all taking more photos than ever, yet forgetting to capture a significant part of our everyday experience: sound. Lately I&#8217;ve made it a point to record interesting sounds I encounter as I go about my day. Interestingly, they seem to have a more powerful effect of returning me to a scene than a photo, surpassed only perhaps by smell.  Try recording, post what you&#8217;re hearing, and let me know!</p>
<p>The first clip takes us to the campus of Carnegie Mellon University this winter. While in the arts building I heard a the beautiful and haunting sound of a <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/03/girl-practicing-marimbas-in-hall-at-CMU.m4a">girl practicing the marimbas</a>.  Contrast the solitary sound with he <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/03/music-practice-studio-cacophony-at-CMU.m4a">cacophony</a> of many music practice rooms mixing.  Later in the week, some dispatcher on a radio in a <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/03/cab-ride-in-queens.m4a">cab ride in Queens</a> was noteworthy for its strangely rhythmic musicality.  As if LaGuardia wasn&#8217;t bad enough already, this 20-minute <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/03/alarm-at-the-airport.m4a">alarm</a> at the airport made me vow to go through JFK next time.</p>
<p>Back home, leaving the garage, I noticed the beautiful <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/03/clicks-and-pops-of-a-car-cooling-down.m4a">clicks and pops of an engine cooling down</a>. While walking to work: <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/03/pigeons-under-the-bridge.m4a">pigeons under the bridge</a>. The terrifying <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/03/creaky-steps.m4a">creaky stairs</a> at the old warehouse in which my studio is located. It&#8217;s just a matter of time before they break.  Next, the sound of <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/03/relay-noise.m4a">relays chattering</a> in a little mechanical feedback noisemaker a made.  Lastly, I will leave you with the sound of the <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/03/death-throes-of-an-exhaust-fan.m4a">death throes of an exhaust fan</a> in the bathroom of the warehouse. It always manages to screech like some kind of killer primate when you&#8217;re least expecting it.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2010/soundblog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three DIY Circuit Board Methods Reviewed</title>
		<link>http://lukeloeffler.com/2010/diy-pcb/</link>
		<comments>http://lukeloeffler.com/2010/diy-pcb/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 05:42:18 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[electronics]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=692</guid>
		<description><![CDATA[Three popular methods for making Printed Circuit Boards at home are compared.]]></description>
			<content:encoded><![CDATA[<p>I have been doing a lot of circuit prototyping lately and have had to make printed circuit boards (PCBs). In order to save money and time, I started making them in-house, although it took several weeks of frustration, the purchase of three different systems, and some tinkering before I arrived at a method that worked for me. There are already numerous guides on how to make PCBs at home, but the purpose of this is to compare three popular systems and evaluate their claims to (hopefully) save you some trouble.  Each of the three systems has strengths and weaknesses&#8211;you must simply know when to use each.</p>
<p>The first system I tried this year was <a href="http://www.pulsarprofx.com/PCBfx/main_site/pages/index.html">Pulsar&#8217;s &#8220;PCB Fab in a Box&#8221;</a>. It was attractive because they claimed to offer a selection of toner transfer paper, foils, copper clad boards, and laminating machine that worked together flawlessly to quickly produce excellent, repeatable results. Unfortunately, despite carefully following the directions and using an approved printer, I got poor results.</p>
<p><img class="alignleft" title="Toner not sticking" src="http://farm5.static.flickr.com/4070/4431979011_a4ea05e2a8_m.jpg" alt="" width="180" height="240" />The first image shows that the traces simply would not adhere to the copper board. I was finally able to achieve some success by &#8220;tacking down&#8221; the paper into place with a regular iron before running it through the laminator, and then running it through a total of 6 times, rather than the recommended 2. The next image shows <img class="alignright" title="Problems with foil" src="http://farm3.static.flickr.com/2800/4431978569_fd3f10317e_m.jpg" alt="" width="240" height="180" />the toner adhering to the board much better than before. I think the added heat helped. Unfortunately, you cannot stop at this point and etch because toner is very porous and the etching solution will still eat at the copper beneath unless you seal it. Pulsar&#8217;s solution for this is their green foil which &#8220;seals&#8221; the toner. Unfortunately, after applying the foil with the laminator, it didn&#8217;t stick everywhere and in some areas, it actually pulled up a few pads and traces from the board. Overall, the resulting board was not useful. Perhaps my little HP laser jet P1006 is the problem, but testing with a large Xerox &#8220;mainframe&#8221; office printer offered similarly poor results.</p>
<p>Next I returned to the <a href="http://www.techniks.com/how_to.htm">Techniks Press-n-Peel</a> system, which I had used when I first made some PCBs around 2001. It worked reasonably well with only occasional breaks in traces. Unfortunately, a clothing iron was the only solution at the time to apply heat and pressure. However, with a fancy new laminator from the Pulsar kit in my possession, I decided to try the PnP system again with the hope the laminator would bring about consistency. Pulsar claims on their website the laminator is not compatible with the Press-n-Peel system, however this <em>is not true</em>. I got very good results by simply running the board through the laminator until the black artwork could be seen through the blue coating. This turned out to be 5-6 times. The best part is that after peeling the substrate away, no additional work is necessary. The blue coating on the plastic sheet sticks to the toner and accomplishes what Pulsar&#8217;s &#8220;green foil&#8221; does, but in one step. I found the PnP system with the laminator to be excellent for quick, simple, one-sided boards that did not require especially fine resolution. After attempting to create artwork for a TSSOP (a surface mount chip with pins just 0.6mm apart, the artwork was a bit too fuzzy.</p>
<p>The limitations of the Technics system led me to explore photo-based development&#8211;the use of photosensitive boards to create the etching mask. I avoided this route for some time as presensitized boards can be costly due to the additional coating. Furthermore, if you only make a one-sided board, an entire side goes to waste. After discovering the <a href="http://www.mgchemicals.ca/products/416dfr.html">MG Chemicals Negative Dry Film Resist</a>, however, I decided to try a photo process. The beauty of the dry resist film is that you only apply it when and where you need it, which allows you to buy any kind of copper clad board you wish&#8211;double/single sided, varying thicknesses, etc. The instructions for its application did not work as expected. I kept getting bubbles when I tried to apply the film to the board, and warping after running it through the laminator. <img class="alignleft" title="Bubbles" src="http://farm5.static.flickr.com/4049/4431976481_6d89d5e412_m.jpg" alt="" width="180" height="240" />With some experimentation, I was able to apply it perfectly every time.</p>
<p><strong>Unwritten directions for applying the dry resist film: </strong>First, lay the board on top of the film and cut around it with an exacto knife&#8211;no need to leave several centimeters around the edge as the MG directions say. Next (and this is the key), after you peel the soft coating, <em>place a few droplets of water on the copper board</em> before applying the film. The water helps the film to adhere to the board evenly. Center the film, pulling it up and repositioning if necessary. Lastly, squeegee the water out working from the center outwards. I used a small, rectangular piece of nylon with a hard edge to do the trick (you can use the edge of a credit card). Work out all the water and bubbles. <img style="border: 0px initial initial;" title="too much heat" src="http://farm5.static.flickr.com/4035/4432749198_a7ce17db4b_m.jpg" alt="" width="180" height="240" /> Lastly <em>do not use the laminator</em> as recommended (unless you can set the heat very low). I used a clothing iron and put it on the acrylic setting (the lowest it would go). Placing a sheet of printer paper between the iron and the board covered in film, I used moderate pressure for 30-60 seconds. This was adequate to adhere the film to the board. Absolutely no warping or bubbling occurred. You will know you&#8217;ve used too much heat if the surface is not even.  The next image shows a laminate applied with too much heat on the iron.</p>
<p>After the film has been applied, the rest of the process is straightforward. Directions are on the MG Chem website. With the photo-based system, I was able to get incredibly high resolution artwork. The following image shows artwork for two TSSOP (0.65mm pitch) chips being developed under a standard broad-spectrum (also sold as &#8220;daylight&#8221; spectrum) compact florescent (CFL) bulb.</p>
<table border="0">
<tbody>
<tr>
<td></td>
<td><strong>Pulsar</strong></td>
<td><strong>Press-n-Peel</strong></td>
<td><strong>MG Chem. Dry Film Resist</strong></td>
</tr>
<tr>
<td><strong>Pros</strong></td>
<td>transfers toner well to<em> bare</em> board for labels</td>
<td>Simple, straightforward process (print/apply/etch); good results</td>
<td>very high resolution possible; clear masks allow easier alignment for making two-sided boards</td>
</tr>
<tr>
<td><strong>Cons</strong></td>
<td>additional step of adding green foil (assuming you can even get the system to work)</td>
<td>artwork can be too fuzzy for fine-pitch SMT devices</td>
<td>Need darkroom environment; applying film takes a bit of extra time; added chemical step of developing the film before etching; must invert artwork first (toner goes where copper should be removed)</td>
</tr>
<tr>
<td><strong>Tips</strong></td>
<td>N/A</td>
<td>Use the laminator from the Pulsar system for added consistency</td>
<td>Use water when applying film to avoid bubbles; use very low heat to avoid warping</td>
</tr>
<tr>
<td><strong>Suggested Use</strong></td>
<td>Use the transfer paper for silkscreening labels, part outlines, etc. to bare (i.e. copper removed) board</td>
<td>Simple, single-sided projects that do not require high resolution; when you don&#8217;t have the time for the photo method</td>
<td>Double-sided boards, or when high-resolution necessary</td>
</tr>
</tbody>
</table>
<h3>Additional Tips</h3>
<p>When making double-sided artwork, include four small vias at the corners of the board&#8217;s artwork. Tape each transparency to a piece of glass with the presensitized board sandwiched between. Align the four holes and the artwork should register perfectly.</p>
<p>If you choose to etch with Ferric Chloride, many suggest using a sponge to wipe over the surface of the board. This is to bring fresh etchant into contact with the copper. I would suggest simply wearing latex disposable gloves and gently wiping the surface with your finger&#8211;this seems to be a bit more gentle (less chance of ripping off part of the mask), and just as effective.</p>
<p>When using a photo process, always place the side of the transparency with the toner against the board. The acetate sheet is actually a few thousandths of an inch thick and is just enough to allow light to get in from the sides and cause fuzzy lines if the toner mask isn&#8217;t directly against the board.</p>
<p>Cleaning the board thoroughly is necessary for the Press-n-Peel system, however scotch brite pads are not necessary as many suggest. I feel they are too abrasive and leave large scratches. I have found dish soap, followed by comet cleaner to be effective. If you don&#8217;t use too much water with the comet, leaving it as a moist paste, it will be sufficiently abrasive.</p>
<p>Use a magnifying eye loupe to check the toner prints, masks, and etched boards for problem areas, especially when working with fine-pitch surface mount artwork.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2010/diy-pcb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ephemeral Recordings</title>
		<link>http://lukeloeffler.com/2010/ephemeral-recordings/</link>
		<comments>http://lukeloeffler.com/2010/ephemeral-recordings/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 00:48:10 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[Work in Progress]]></category>
		<category><![CDATA[sculpture]]></category>
		<category><![CDATA[sound]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=671</guid>
		<description><![CDATA[A system for imprecise, ephemeral transmission of sound data]]></description>
			<content:encoded><![CDATA[<p>One recent idea I&#8217;ve been investigating is the transmission of data by ephemeral, imperfect, mechanical means. It began as the thought of using a knotted cord to transmit a sequence of notes around a room for a physical sonic sculpture, but has taken other directions as I have given more thought to what it means to make a mark.</p>
<p>Mark making can be broken into three categories: addition of material, removal of material, and the modification of a material (although there is a fair amount of overlap between the categories).  Examples of addition were to clamp a bead onto a passing string, to add a blob of glue, or to add a drop of water. Removal of material could mean cutting away, notching, or burning a substrate as it passes. Modification could be knotting the material as it passes, staining it, raising the temperature, etc.</p>
<p>Most media strive to be precise and permanent. By soaking portions of a passing rope with saline, these regions can be detected as they pass &#8220;listeners&#8221; further down the line. Due to the capillarity of the rope, however, the saline spreads out in several directions which causes slight conductivity and more gently ramping (as opposed to digital) signal. Due to evaporation, the signals get weaker and weaker as they progress through the system yielding unexpected results. Looping everything back around will allow one continuous rope to be used.</p>
<p>Additional possible methods could use a heating element to apply varying amounts of heat to a passing wire. As the heat spreads, the crispness of the signal is diminished and bleeds into adjoining signals. As the heat is transferred to the environment, the overall signal diminishes and returns the wire to its original state.</p>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/01/c59a24b7f9a2d7eccfa3dd16e680132c.jpg"><img class="alignleft size-medium wp-image-674" title="c59a24b7f9a2d7eccfa3dd16e680132c" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/01/c59a24b7f9a2d7eccfa3dd16e680132c-240x360.jpg" alt="c59a24b7f9a2d7eccfa3dd16e680132c" width="240" height="360" /></a><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/01/b522d2fd5c9ebf78b2d0c45ae8a1c027.jpg"><img class="alignleft size-medium wp-image-675" title="b522d2fd5c9ebf78b2d0c45ae8a1c027" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/01/b522d2fd5c9ebf78b2d0c45ae8a1c027-318x360.jpg" alt="b522d2fd5c9ebf78b2d0c45ae8a1c027" width="318" height="360" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2010/ephemeral-recordings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizations for new Display</title>
		<link>http://lukeloeffler.com/2010/fiberoptic-visualizations/</link>
		<comments>http://lukeloeffler.com/2010/fiberoptic-visualizations/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 21:22:38 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[puredata]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=604</guid>
		<description><![CDATA[Over the last couple months I&#8217;ve had the chance to develop a series of &#8220;paintings&#8221; for the fiberoptic tapestry, a new display system developed by artists Ligorano/Reese. It is essentially a hand-woven canvas of optic fibers, each illuminated by an electronically-controlled LED. The result is incredibly beautiful and expressive, producing a painterly effect. I was [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/12/IMG_1463.JPG"><img class="alignleft size-medium wp-image-608" style="padding-right: .5em" title="IMG_1463" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/12/IMG_1463-360x249.jpg" alt="IMG_1463" width="360" height="249" /></a>Over the last couple months I&#8217;ve had the chance to develop a series of &#8220;paintings&#8221; for the <em>fiberoptic tapestry</em>, a new display system developed by artists <a href="http://ligoranoreese.net">Ligorano/Reese</a>. It is essentially a hand-woven canvas of optic fibers, each illuminated by an electronically-controlled LED. The result is incredibly beautiful and expressive, producing a painterly effect. I was mesmerized by the gently-glowing canvases the first time I saw them and was very excited to get the chance to create content for them.</p>
<p>My work has been developing visualizations that utilize the new physical display in different ways. The first visualizes air traffic over four major airports in the US, drawing moving lines to indicate aircraft taking off and landing. The second, entitled <em>Order/Disorder</em>, displayed below aggregates a number of sources for natural disaster information and draws the disasters as &#8220;tears in the fabric&#8221; of the world. Lastly, I am working to create software that reacts to the environment and responds by flashing a series of animations developed by Marshall Reese.</p>
<p>A program in Processing communicates with the hardware and serves as a hub accepting drawing commands from other software via OSC. A number of scripts in Python perform data aggregation, scraping, parsing and animation for the flight tracker. A patch in Pd performs sound analysis and drives the canvases through OSC.</p>
<p><object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="640" height="480" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="autoplay" value="false" /><param name="src" value="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/01/order_disorder.mov" /><embed type="video/quicktime" width="640" height="480" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/01/order_disorder.mov" autoplay="false"></embed></object></p>
<p><em>&#8220;Order/Disorder</em> is a software visualization of destructive and restorative forces in the world. The software runs on an electronically-controlled tapestry of woven fiberoptic threads created by New York-based artists Ligorano/Reese. Two computer programs, named order and disorder, modify the tapestry throughout the day in response to natural and man-caused events such as earthquakes, biohazards, and aircraft accidents. Order seeks to weave a rainbow-gradated pattern representing peace and wholeness while Disorder seeks to destroy and unravel the tapestry by &#8220;tearing&#8221; the fabric and weaving in aberrant threads.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2010/fiberoptic-visualizations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/01/order_disorder.mov" length="6832221" type="video/quicktime" />
		</item>
		<item>
		<title>Reverse Engineering the Speaking Piano</title>
		<link>http://lukeloeffler.com/2010/speaking-piano/</link>
		<comments>http://lukeloeffler.com/2010/speaking-piano/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 23:18:33 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[puredata]]></category>
		<category><![CDATA[sound]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=648</guid>
		<description><![CDATA[How Puredata can be used to translate sound to a restricted sequence of discrete notes.]]></description>
			<content:encoded><![CDATA[<p>I was really intrigued by Peter Ablinger&#8217;s <a href="http://createdigitalmusic.com/2009/10/06/the-speaking-piano-and-transforming-audio-to-midi/">Speaking Piano</a> (officially titled <a href="http://ablinger.mur.at/docu11.html">Quadraturen</a>, auf Deutsch)–a system that takes human speech and translates it to a sequence of notes to be played on a piano by a bunch of solenoids, or &#8220;mechanical fingers.&#8221;</p>
<p>Since I&#8217;ve been learning Puredata, I thought it would be a fun exercise to attempt to recreate the software Ablinger wrote to translate speech to midi notes. The secondary purpose was to turn my oft-idle digital piano into an interactive sound piece, translating sound from another part of the house into music downstairs. The result isn&#8217;t perfect, but I think it still achieves the same ambiguous result where you are able to hear the voice once you see the transcript. The biggest difference is obviously that I&#8217;m using a digital piano, not a mechanically-actuated analog piano. However, the Roland has a fairly sophisticated physical model with things like dampening and string resonance, so it&#8217;s better than nothing.</p>
<p>Below are the two components to the software. Clicking the image will link to the pd file if you&#8217;d like to experiment yourself. You can either load in a pre-recorded wave file and play it back, or set the gain to the adc~ to 1 and use a microphone to drive it in real time (although I set up a delay of about 3 seconds so I could evaluate the results without hearing my own voice).  <em>delread~ </em>passes the data into <em>fiddle~</em> which does all the hard work of Fourier analysis. A metronome set to 15 ms samples the outputs of the individual sine components and creates midi notes.  The blocks that create the actual notes are <em>partial_key</em>.  The highest key on the piano is midi 108, which corresponds to 4186 Hz, so I added a low pass filter to remove frequencies that couldn&#8217;t be reproduced.</p>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/01/talking_piano.pd"><img class=" size-large wp-image-649" title="talking_piano.pd" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/01/talking_piano.pd-681x800.jpg" alt="talking_piano.pd" width="681" height="800" /></a></p>
<p>partial_key.pd creates the midi notes which are sent to the piano. The signal makenote_b is received from the metronome, which causes the note to be made. Additionally, no note is sent if the midi key number is higher than 108, the limit of my piano, or if the amplitude is too small (&lt; 0.01).</p>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/01/partial_key.pd"><img class=" size-full wp-image-653" title="partial_key.pd" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/01/partial_key.pd1.jpg" alt="partial_key.pd" width="377" height="378" /></a></p>
<p>Here is <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/01/talkingpiano01.mp3">a sample of the result</a>, speaking the following: &#8220;these are very profound words, which is why they are being spoken by a piano. I hope you are forever moved by these profound words.&#8221;</p>
<p>I&#8217;d love any feedback from Puredata or DSP gurus on how the software could be improved. I&#8217;m not quite sure what sorts of additional analysis and synthesis steps are being taken in the Quadraturen software as it is not available.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2010/speaking-piano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://lukeloeffler.com/wordpress/wp-content/uploads/2010/01/talkingpiano01.mp3" length="215863" type="audio/mpeg" />
		</item>
		<item>
		<title>Wind Carol</title>
		<link>http://lukeloeffler.com/2009/wind-carol/</link>
		<comments>http://lukeloeffler.com/2009/wind-carol/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 02:20:04 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[puredata]]></category>
		<category><![CDATA[sound]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=620</guid>
		<description><![CDATA[It&#8217;s that time of year again. Christmas is coming, snow is falling outside my window, and the wind is whistling.  Maybe it&#8217;s late, or my mind is playing tricks on me, but the wind seems a bit more coherent than usual&#8230; Musical, even. Creepy.

This is how I&#8217;d like to imagine the first Christmas–even the wind [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s that time of year again. Christmas is coming, snow is falling outside my window, and the wind is whistling.  Maybe it&#8217;s late, or my mind is playing tricks on me, but the wind seems a bit more coherent than usual&#8230; Musical, even. Creepy.</p>
<p><object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="400" height="100" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"><param name="src" value="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/12/windsong.mp3" /><embed type="video/quicktime" width="400" height="100" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/12/windsong.mp3"></embed></object></p>
<p>This is how I&#8217;d like to imagine the first Christmas–even the wind crying out. And doing so subtly, not unlike the whispering symbolic language of babies and cattle stalls.</p>
<p>The idea came about from the desire to manipulate various parts of the built environment to create music as the wind is blowing. Maybe change the orientation of a sheet of metal, the size of some opening, etc. With a feedback loop, the system could progress through a melody once it detected that the desired notes of the sequence had been played. Although a composer could control the content, the weather would determine the tempo. A listener may have to wait weeks or months for the piece to complete without sufficient wind.</p>
<p>In the meantime, I created the above synthetic version of what I imagine it could sound like (though the song above would probably have to be recorded somewhere in Antarctica). The synthesized version uses a custom patch written in Pure Data to shape the frequency of white noise to follow a midi file of choice.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2009/wind-carol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/12/windsong.mp3" length="3048050" type="audio/mpeg" />
		</item>
		<item>
		<title>Pure Data: The Swiss Army Knife of Audio</title>
		<link>http://lukeloeffler.com/2009/pure-data/</link>
		<comments>http://lukeloeffler.com/2009/pure-data/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 06:30:16 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[experiment]]></category>
		<category><![CDATA[puredata]]></category>
		<category><![CDATA[sound]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=597</guid>
		<description><![CDATA[After a weekend workshop (thanks to Hans-Christoph Steiner and Eyebeam) on Pure Data, I&#8217;ve been tinkering with it quite a bit lately and geeking out on old signal processing stuff I haven&#8217;t touched since college.
Over the years I&#8217;ve played with a number of tools for audio processing: Matlab, jMusic, a Java library for algorithmic composition, Nyquist, a [...]]]></description>
			<content:encoded><![CDATA[<p>After a weekend workshop (thanks to Hans-Christoph Steiner and Eyebeam) on <a href="http://puredata.info">Pure Data</a>, I&#8217;ve been tinkering with it quite a bit lately and geeking out on old signal processing stuff I haven&#8217;t touched since college.</p>
<p>Over the years I&#8217;ve played with a number of tools for audio processing: Matlab, <a href="http://jmusic.ci.qut.edu.au/">jMusic</a>, a Java library for algorithmic composition, <a href="http://www.cs.cmu.edu/~music/nyquist/">Nyquist</a>, a Lisp-based synthesis/analysis environment, <a href="http://beadsproject.net">Beads</a>, another Java library for synthesis and analysis, and <a href="http://www.audiosynth.com/">Supercollider</a>, another synth/analysis environment with smalltalk-like syntax. All of these are powerful tools, but aren&#8217;t as engaging in terms of interactivity. Having been forced to use LabVIEW in the past, another dataflow language, I was initially reluctant to pick up another, but for audio work, it&#8217;s been great. It is so easy to try new ideas without any need to recompile. It&#8217;s a lot like playing with a running circuit.</p>
<p>So far I&#8217;ve used to to analyze sound and control some lighting panels to create a reactive environment, synthesize tones for my invisible chimes project, and do some other synth experiments. This brief <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/12/pd-subtractive-synth-test.mp3">subtractive synth</a> test uses filters to shape pink noise into hazy tones forming a chord. <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/12/Mac-Audio_recording-7.mp3">synth2</a> tinkers with sample playback and ring modulation. Next up, granular synthesis to build some instrumental Christmas music?</p>
<h3>Other Useful Audio Software</h3>
<p><a href="http://www.jackosx.com/">Jack</a> is a great tool for routing inputs and outputs on your system. It has made it really simple, for example, to send the output of iTunes to Pure Data, which allows me to sample chunks, process them, and mix it back into songs playing. I made a small program that samples chunks of the last song and then injects them into the new song when it detects beats. It also supports plugins, so you could use Pure Data as a signal processor for other programs like Logic.</p>
<p><a href="http://www.ambrosiasw.com/utilities/wiretap/">Wiretap Studio</a> is really useful for capturing any sound source on your system, doing basic waveform editing, fades, effects, and exporting to any other sound file format.</p>
<p><a href="http://rjdj.me/">RjDj</a> for the iPhone is a program that lets you download (and create, using Pd) &#8220;scenes&#8221; that generate music or process environmental sound and play it through the headphones. For example, one might identify that fan humming along at 300 Hz and re-inject overtones to change its timbre.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2009/pure-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/12/pd-subtractive-synth-test.mp3" length="659490" type="audio/mpeg" />
<enclosure url="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/12/Mac-Audio_recording-7.mp3" length="1274076" type="audio/mpeg" />
		</item>
		<item>
		<title>Tangible Drawing Interfaces</title>
		<link>http://lukeloeffler.com/2009/tangible-drawing-interfaces/</link>
		<comments>http://lukeloeffler.com/2009/tangible-drawing-interfaces/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 23:36:11 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[experiment]]></category>
		<category><![CDATA[interactive]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[trackmate]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=556</guid>
		<description><![CDATA[An experiment with tangible interfaces allowing on-screen drawing using assorted physical objects, each of which have a specific function.]]></description>
			<content:encoded><![CDATA[<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/12/3601289505_23738aab71_b.jpg"><img class="alignleft size-medium wp-image-557" title="3601289505_23738aab71_b" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/12/3601289505_23738aab71_b-360x239.jpg" alt="3601289505_23738aab71_b" width="360" height="239" /></a>This is a screenshot of one of the resulting paintings from an experiment using <a href="http://trackmate.media.mit.edu/">trackmate</a> to create a tangible drawing interface. By placing special coded labels on the bottom of miscellaneous objects I had lying around my desk, I was able to assign a different function to each object. For example, a green candle drew green lines and a yellow one drew in yellow. Another one was a &#8220;universal&#8221; brush that took on the color determined by the rotation of a fourth object. Another object only erased, and one final one controlled the opacity of the brushes by its position.</p>
<p>The trackmate system examines an image (in this case coming from a cheap webcam) and looks for special coded labels. Each label contains a unique ID and also encodes its rotational direction. When trackmate identifies a label, it sends the id, position, and rotation to my software in processing which in turn draws lines.</p>
<p>The screenshot was taking during an interactive session where one person was controlling the color, the other was controlling the opacity, and the third was moving the brush.</p>
<p>The lines in the drawing are broken up due to the low resolution of the camera (this could have possibly been solved with interpolation).  I need to calibrate the camera again (and really, buy a cam with a res higher than 640&#215;480), and find a better surface that will filter some of the &#8216;noise&#8217; from the scene.  Still, trackmate behaved remarkably well given the circumstances.</p>
<p>The trackmate website has good tutorials on how to get a system up and running. My <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/12/trackmate_tangible_drawing_interface.pde">source code</a> is provided to help get you started if you want to play around with the system, although I accidentally lost the final revision, so the code provided may not function as expected.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2009/tangible-drawing-interfaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Cam Heart Rate Monitor</title>
		<link>http://lukeloeffler.com/2009/web-cam-heart-rate-monitor/</link>
		<comments>http://lukeloeffler.com/2009/web-cam-heart-rate-monitor/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 02:34:18 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[experiment]]></category>
		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=463</guid>
		<description><![CDATA[How to measure your heart rate with a webcam and some Processing code.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been experimenting with methods to determine my heart rate in order to add bio-feedback to software. This Processing sketch uses the same principle as the devices in the doctor&#8217;s office that clip on to your finger. When your heart beats, more blood is pumped through the capillaries in your fingertip, thus absorbing more light and causing a slight darkening of your fingertip.</p>
<p>To use the code you&#8217;ll need a copy of <a href="http://processing.org">Processing</a>. Shine a bright flashlight against your thumbnail (I used a bright LED flashlight) and place your thumb over the webcam lens so it completely blocks it. Try to hold as still as possible.  The brightness of the red channel is measured each frame and a running average is kept. If the brightness drops below the recent average, a small circle is drawn representing a contracting heart.</p>
<p>If it is unreliable, you may need to tweak the navg parameter and/or find a way to stabilize the light source, finger, and camera, as small shifts will cause a change in the amount of light detected by the camera.</p>
<p><a href='http://lukeloeffler.com/wordpress/wp-content/uploads/2009/11/heartrate_monitor_camera.pde'>Download the Code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2009/web-cam-heart-rate-monitor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Text on a Curve</title>
		<link>http://lukeloeffler.com/2009/text-on-a-curve/</link>
		<comments>http://lukeloeffler.com/2009/text-on-a-curve/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 22:57:03 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[typography]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=383</guid>
		<description><![CDATA[I&#8217;m researching methods to render text along a path, like you can easily do in Illustrator. Unfortunately, it&#8217;s not so simple in Processing (unless someone knows of a library that does this).

You can find a demo and the source here. Click four times to set the curve points and handles. Move the mouse left and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m researching methods to render text along a path, like you can easily do in Illustrator. Unfortunately, it&#8217;s not so simple in Processing (unless someone knows of a library that does this).</p>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/09/Screen-shot-2009-09-01-at-5.57.37-PM.png"><img class="alignnone size-medium wp-image-392" title="Screen shot 2009-09-01 at 5.57.37 PM" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/09/Screen-shot-2009-09-01-at-5.57.37-PM-360x157.png" alt="Screen shot 2009-09-01 at 5.57.37 PM" width="360" height="157" /></a></p>
<p>You can find a demo and the source <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/09/growing_text_tree.html">here</a>. Click four times to set the curve points and handles. Move the mouse left and right to alter the curve tightness.</p>
<p>In a nutshell, the algorithm computes the approximate length of the line segment by chopping it into smaller segments and computing the linear distance between points.  Once the length of the segment is known in pixels, <em>textWidth()</em> is called to obtain the width in pixels of each character. This width divided by the length of the curve determines the percentage of the curve the character occupies. Once this is know, the amount to increment the variable <em>t</em> in the parametric <em>curvePoint(&#8230;)</em> function is known. From here, we can find the starting point, determine the tangent, and draw the letter.</p>
<p>All straightforward, right? For whatever reason, though, the kerning is severely off under certain conditions. When there is a slight curve in the line segment, it seems to be balanced. When the curve tightness is altered and becomes very flat, or very curved, the letters become overly spaced out at one end, and overly compressed at the other.  Does anyone have any suggestions as to why this is happening?</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2009/text-on-a-curve/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Making a Stacked Area Chart With Processing</title>
		<link>http://lukeloeffler.com/2009/stacked_area_chart/</link>
		<comments>http://lukeloeffler.com/2009/stacked_area_chart/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 06:37:25 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=370</guid>
		<description><![CDATA[In order to visualize multiple variables in a single time series, a stacked area (sometimes called a &#8220;stream&#8221;) chart is often useful. I am currently doing research for an upcoming visualization that will trace the development of ideas through a conversation. Unable to find processing code to create an area chart, I decided to write [...]]]></description>
			<content:encoded><![CDATA[<p>In order to visualize multiple variables in a single time series, a stacked area (sometimes called a &#8220;stream&#8221;) chart is often useful. I am currently doing research for an upcoming visualization that will trace the development of ideas through a conversation. Unable to find <a href="http://processing.org">processing</a> code to create an area chart, I decided to write my own. I imagine if I looked, there is something out there, but I also wanted something I could completely control to change the appearance of. Hopefully you will find <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/river.pde">the source</a> useful in a project of your own.  The image below is an example of the output from the code.</p>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/river1.png"><img style="border: 0px initial initial;" title="river1" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/river1-360x155.png" alt="river1" width="360" height="155" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2009/stacked_area_chart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Van Gogh, Remixed</title>
		<link>http://lukeloeffler.com/2009/van-gogh-remixed/</link>
		<comments>http://lukeloeffler.com/2009/van-gogh-remixed/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 05:18:25 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[illustrator]]></category>
		<category><![CDATA[remix]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=357</guid>
		<description><![CDATA[When you find old van Gogh images on your computer, what could be more logical than to shatter them into a thousand abstract pieces and rearrange?
This image was the first experimenting with this process. Pretty ugly. I don&#8217;t know what I was going for. It was late.

The second in the series came from a cell image. [...]]]></description>
			<content:encoded><![CDATA[<p>When you find old van Gogh images on your computer, what could be more logical than to shatter them into a thousand abstract pieces and rearrange?</p>
<p>This image was the first experimenting with this process. Pretty ugly. I don&#8217;t know what I was going for. It was late.</p>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/vg_remix-02.png"><img style="border: 0px initial initial;" title="vg_remix-02" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/vg_remix-02-220x360.png" alt="vg_remix-02" width="220" height="360" /></a></p>
<p>The second in the series came from a <a href="http://www.flickr.com/photos/ukle/3799782642/">cell image</a>. The fragments from this image seemed to lend themselves to new kinds of creatures. Or maybe it was just the weather, or what I had for dinner. Who knows.</p>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/abstract-03.png"><img style="border: 0px initial initial;" title="abstract-03" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/abstract-03.png" alt="abstract-03" width="484" height="161" /></a></p>
<p>And next, tasty:</p>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/abstract4-04.png"><img class="alignnone size-full wp-image-364" title="abstract4-04" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/abstract4-04.png" alt="abstract4-04" width="250" height="168" /></a></p>
<p>Finally, some abstract patterns (one friend saw a headless, demonic horseman–wow):</p>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/pattern-05.png"><img class="alignnone size-medium wp-image-365" title="pattern-05" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/pattern-05-360x289.png" alt="pattern-05" width="360" height="289" /></a></p>
<p>And finally, these are some fragments from another van gogh, which I decided to turn into a fake map of somewhere.</p>
<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/fake_scand-01.png"><img style="border: 0px initial initial;" title="fake_scand-01" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/fake_scand-01-360x236.png" alt="fake_scand-01" width="360" height="236" /></a></p>
<p>I think I like this process for the same reasons I enjoyed shuffling around scraps of paper on my desk, or playing with my mashed potatoes as a kid.  Creating meaning from the abstract.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2009/van-gogh-remixed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Color of Rhyme</title>
		<link>http://lukeloeffler.com/2009/the-color-of-rhyme/</link>
		<comments>http://lukeloeffler.com/2009/the-color-of-rhyme/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 02:42:57 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[linguistics]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=344</guid>
		<description><![CDATA[Over the last few weeks I&#8217;ve been exploring language and words and how to deal with them algorithmically. Lately I&#8217;ve been thinking about ways to visualize various aspects of language, and one of the first that came to mind was the idea of representing the sound of words with color.
I am using the Carnegie Mellon [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last few weeks I&#8217;ve been exploring language and words and how to deal with them algorithmically. Lately I&#8217;ve been thinking about ways to visualize various aspects of language, and one of the first that came to mind was the idea of representing the sound of words with color.</p>
<p>I am using the Carnegie Mellon Pronouncing Dictionary to encode each word. The CMUPD provides a list of 39 phonemes, the unique sounds that comprise spoken English. These are as follows:</p>
<div style="height: 150px; width: 300px; overflow-x: hidden; overflow-y: scroll;">
<pre>Phoneme Example Translation
AA	odd     AA D
AE	at	AE T
AH	hut	HH AH T
AO	ought	AO T
AW	cow	K AW
AY	hide	HH AY D
B 	be	B IY
CH	cheese	CH IY Z
D 	dee	D IY
DH	thee	DH IY
EH	Ed	EH D
ER	hurt	HH ER T
EY	ate	EY T
F 	fee	F IY
G 	green	G R IY N
HH	he	HH IY
IH	it	IH T
IY	eat	IY T
JH	gee	JH IY
K 	key	K IY
L 	lee	L IY
M 	me	M IY
N 	knee	N IY
NG	ping	P IH NG
OW	oat	OW T
OY	toy	T OY
P 	pee	P IY
R 	read	R IY D
S 	sea	S IY
SH	she	SH IY
T 	tea	T IY
TH	theta	TH EY T AH
UH	hood	HH UH D
UW	two	T UW
V 	vee	V IY
W 	we	W IY
Y 	yield	Y IY L D
Z 	zee	Z IY
ZH	seizure	S IY ZH ER</pre>
</div>
<p>Initially I gave each phoneme a different hue (from 1-360 degrees) by spreading each phoneme out on the color wheel equidistantly. Using this mapping, the phrase &#8220;Who knew sniffing glue could give you the flu?&#8221; translates to the following image: <a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/phrase1.png"><img class="alignnone size-full wp-image-345" title="phrase1" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/phrase1.png" alt="phrase1" width="215" height="23" /></a>.  You can clearly see the phoneme UW in magenta appearing at the end of each word.  Unfortunately, there is a lot of visual noise introduced by displaying all the other phonemes.</p>
<p>Realizing not all phonemes are going to be equally represented in the corpus, I decided to find the distribution of each. The sound AH (the &#8220;uhh&#8221; in the word &#8220;hut&#8221;) is the  most commonly occurring, accounting for nearly 10% of phonemes (this may be different if the most common 10% of words are analyzed, haven&#8217;t looked). This also happens to answer the question I asked my linguistics studies cousin at Christmas dinner some years back after doing imitations of other languages: &#8220;So, what does a non-English speaker hear when an American speaks?&#8221; It sounds like the answer may be &#8220;uhh&#8230; duh.. buh&#8230; fuh.&#8221;</p>
<div style="height: 150px; width: 300px; overflow-x: hidden; overflow-y: scroll;">
<pre>Phon.   Count   Prob.
AH	70564	0.0938934151927
N	53577	0.0712902826622
L	44148	0.0587439274124
S	43349	0.0576807671786
T	41698	0.0554839241923
R	40794	0.0542810495348
K	38174	0.0507948420096
IH	33779	0.0449467954168
IY	30957	0.0411918039527
D	28491	0.0379105109157
M	26330	0.0350350550142
ER	25871	0.0344243033905
EH	24564	0.0326851914686
Z	23955	0.0318748478111
AA	22175	0.0295063556757
AE	19151	0.0254825802726
B	18943	0.0252058126523
P	17305	0.0230262676423
OW	17147	0.0228160306999
G	12248	0.0162973548733
F	12147	0.0161629629038
EY	11851	0.0157691012903
AO	10059	0.0133846417922
AY	9838	0.0130905761956
V	9349	0.0124399061651
NG	8692	0.0115656930567
UW	8579	0.0114153337245
HH	8439	0.0112290478262
W	7737	0.0102949571077
SH	7730	0.0102856428128
JH	5461	0.00726648064689
Y	4392	0.00584405475209
CH	4378	0.00582542616226
AW	2932	0.00390135895563
TH	2597	0.00345560341329
UH	2021	0.00268917000318
OY	1124	0.00149560964056
DH	504	0.000670629233846
ZH	482	0.000641355735543</pre>
</div>
<p>The next step is to take the frequency distribution into account&#8230; Before diving any farther into palette selection, I created a simple <a href="http://lukeloeffler.com/labs/WordDna.html">test application</a> which you may play with (though be warned, it may be broken and may be an older version).</p>
<p>In this screen shot, syllable stress was taken into account as I experiment with the pre-attentive characteristic of height to aid visualization.<br />
<a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/Safari.png"><img src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/Safari.png" alt="test with stress" title="test with stress" width="423" height="149" class="alignnone size-full wp-image-350" /></a></p>
<p>In the following version the previous phrase was repeated with a palette restricted to vowels only and colors assigned according to probability. Phonemes with a higher rate of occurrence received hues that were more distinct from others.<br />
<a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/Safari1.png"><img src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/08/Safari1.png" alt="palette restriction" title="palette restriction" width="413" height="40" class="alignnone size-full wp-image-353" /></a></p>
<p>This change appears to have improved the legibility somewhat. More experimentation will be necessary.  I suspect this linear format will be a failed experiment. It seems there is little improvement in recognition of rhyme, as the viewer must use working memory to hold what amounts to merely a new representation of sound rather than use pre-attentive factors to quickly match sounds together.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2009/the-color-of-rhyme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Natural Language Processing</title>
		<link>http://lukeloeffler.com/2009/natural-language-processing/</link>
		<comments>http://lukeloeffler.com/2009/natural-language-processing/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 05:07:08 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=314</guid>
		<description><![CDATA[I have become increasingly interested in tools to perform natural language processing. So much of how we approach and see problems is tied up in the words we find to describe them. I am currently exploring ways to use language to help define and understand problems as well as get out of creative blocks.
Below are [...]]]></description>
			<content:encoded><![CDATA[<p>I have become increasingly interested in tools to perform natural language processing. So much of how we approach and see problems is tied up in the words we find to describe them. I am currently exploring ways to use language to help define and understand problems as well as get out of creative blocks.</p>
<p>Below are a few useful tools:</p>
<p>Princeton&#8217;s <a href="http://wordnet.princeton.edu/">Wordnet</a> is a massive linguistic database containing not just definitions, but how words are related to each other.</p>
<p>The Python <a href="http://www.nltk.org/">Natural Language Toolkit</a>, which provides tools for parsing and understanding natural language semantics.</p>
<p>The Carnegie Mellon <a href="http://www.speech.cs.cmu.edu/cgi-bin/cmudict">Pronouncing Dictionary</a>, which breaks words down into their phonemes, providing information regarding pronouncing, rhyming, and syllable counts.</p>
<p>Having found no simple resource to provide syllable counts for common words, I want to share a quick solution I wrote in Python, which uses the CMU dictionary. Simply download the dictionary to the same directory as this script, naming it cmu_pron.txt.</p>
<pre>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">f = open("cmu_pron.txt")</div>

f = open("cmu_pron.txt")
lines = f.readlines()
f.close()
words = {}

for line in lines:
	pieces = line.split()
	if pieces[0] == ";;;":
		continue
	words[pieces[0]] = pieces[1:]

def num_syllables(word):
	global words
	key = word.upper()
	plist = words[key]
	return len(filter(lambda c: c in ("0","1","2"),"".join(plist)))

print "alphabet: %s" % num_syllables("alphabet")</pre>
<p>The result for alphabet is indeed 3. There are probably more efficient ways to do this, but it gets the job done.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2009/natural-language-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nest</title>
		<link>http://lukeloeffler.com/2009/nest/</link>
		<comments>http://lukeloeffler.com/2009/nest/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 22:27:24 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[abstract]]></category>
		<category><![CDATA[graphic]]></category>
		<category><![CDATA[illustrator]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=310</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><a href="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/07/nest-01.jpg"><img class="alignnone size-full wp-image-309" title="nest-01" src="http://lukeloeffler.com/wordpress/wp-content/uploads/2009/07/nest-01.jpg" alt="nest-01" width="699" height="715" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2009/nest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enemies of Creating: Consumption, Distraction, and Demoralization</title>
		<link>http://lukeloeffler.com/2009/enemies-of-creating/</link>
		<comments>http://lukeloeffler.com/2009/enemies-of-creating/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 10:20:08 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[creating]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=304</guid>
		<description><![CDATA[Everyone has one of those days at times—you reach the end and wonder where all your time went. Worse, you realize you haven&#8217;t done anything productive at all. And worse still, some of us can look back not just to days, but months or longer periods.
With increasing regularity I have heard the following message in [...]]]></description>
			<content:encoded><![CDATA[<p>Everyone has one of those days at times—you reach the end and wonder where all your time went. Worse, you realize you haven&#8217;t done anything productive at all. And worse still, some of us can look back not just to days, but months or longer periods.</p>
<p>With increasing regularity I have heard the following message in a number of ways from a variety of sources: the key to producing is to… produce! In the context of research, the academic world has long used the phrase &#8220;publish or perish.&#8221; In the realm of design, my architecture studio instructor would tell me to crank out ten iterations of an idea by the next morning—quantity, not quality. Merlin Mann <a href="http://www.maximumfun.org/sound-young-america/maxfuncon-merlin-mann-doing-creative-work-sound-young-america" target="_blank">spoke</a> about the distinction between doing and thinking about doing. Seth Godin, in a talk he gave at the NYC <a href="http://treehouse-nyc.com/jelly-talks-w-seth-godin" target="_blank">Jelly</a> at the Brooklyn Treehouse, said that today we are not faced with a scarcity of ideas, production capability, marketing opportunities, or capital, but an an ability to &#8220;ship,&#8221; i.e. get work done and out the door. In the new book on the psychology of focus, <em>Rapt</em>, Gallagher argues that an increase in distractions has lead to a decrease in the ability to focus, and without steady focus we are unable to finish work.</p>
<p>So why has this become a recurring theme so recently? Perhaps it is an increased sensitivity to the message due to a period of declining output. Going back farther, I would pin it to the massive and sudden increase in the volume and availability of content, tools, and ideas on the internet. The same system that has catalyzed so much creative work and research in recent years has also sapped the ability of so many to create. I believe it works in several different ways.</p>
<p>First, it is easier than ever to simply waste inordinate amounts of time passively consuming content or talking to friends and acquaintances. We can still feel productive because we are learning, experiencing new things, and forming connections. Secondly, we waste more time than ever deciding what to do and how to do it. With so many new mediums, ideas, forms of expression, tools, platforms, and methods, it easier than ever to get distracted. Lastly, the quality and complexity of things being created today is greater than ever. Much of this is due to the availability of information, increased refinement of tools, and increased collaboration, bringing together the strength of disparate components in symphony. Viewed in the wrong way, as competition rather than inspiration, great work can be demoralizing.</p>
<p>How do you overcome the problem of production? Over the course of a long drive with long-time friend and software developer Jeff, we both agreed that setting deadlines and sticking to them is critical—the shorter the better. When you give yourself too much time to complete something, you will end up second-guessing yourself  and spending far too much time thinking about process, rather than doing work. Time spent will expand to fill the time given. Try giving yourself one day to create something rather than one week, knowing in advance you will probably have to throw it away. You will learn more, gain momentum, and start to realize you&#8217;re better equipped than you thought. Additionally, try to schedule work with someone else in advance. This may mean working with a partner or &#8220;foolishly&#8221; committing to a project you don&#8217;t feel quite ready for. Either way, you&#8217;re helping your future self avoid weaseling out. Lastly, turn down the volume on distractions. Limit your exposure to media streams, social bookmarking sites, RSS feed readers, and the like to once a week or less to limit the factors of distraction and demoralization. Instead, turn to first inspirations—the world around you.</p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2009/enemies-of-creating/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Past Photos</title>
		<link>http://lukeloeffler.com/2009/favorite-photos/</link>
		<comments>http://lukeloeffler.com/2009/favorite-photos/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 01:01:49 +0000</pubDate>
		<dc:creator>luke</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://lukeloeffler.com/?p=293</guid>
		<description><![CDATA[Photography has been one of my favorite creative outlets since my dad bought me my first digital camera when I turned 18. In this album are a few of my favorites from over the years. Click on any of the images to go to my flickr site, where yet more photos eagerly await you.













]]></description>
			<content:encoded><![CDATA[<p>Photography has been one of my favorite creative outlets since my dad bought me my first digital camera when I turned 18. In this album are a few of my favorites from over the years. Click on any of the images to go to my flickr site, where yet more photos eagerly await you.</p>
<p><a class="flickrImage" href="http://www.flickr.com/photos/ukle/3373814526" target="_blank"><img src="http://farm4.static.flickr.com/3272/3373814526_6f35de3f8e.jpg" border="0" alt="" /></a></p>
<p><a class="flickrImage" href="http://www.flickr.com/photos/ukle/2912226771" target="_blank"><img src="http://farm4.static.flickr.com/3254/2912226771_62d909210c.jpg" border="0" alt="" /></a></p>
<p><a title="Visions of Hawaii by ukle, on Flickr" href="http://www.flickr.com/photos/ukle/4544085948/"><img style="border: 0px initial initial;" src="http://farm5.static.flickr.com/4003/4544085948_855b783607.jpg" alt="Visions of Hawaii" width="500" height="500" /></a></p>
<p><a class="flickrImage" href="http://www.flickr.com/photos/ukle/2654745676" target="_blank"><img src="http://farm4.static.flickr.com/3288/2654745676_fdbcf669e2.jpg" border="0" alt="" /></a></p>
<p><a class="flickrImage" href="http://www.flickr.com/photos/ukle/2562760465" target="_blank"><img src="http://farm4.static.flickr.com/3052/2562760465_373f4f459c.jpg" border="0" alt="" /></a></p>
<p><a class="flickrImage" href="http://www.flickr.com/photos/ukle/2562758917" target="_blank"><img src="http://farm4.static.flickr.com/3113/2562758917_feb889f0f6.jpg" border="0" alt="" /></a></p>
<p><a class="flickrImage" href="http://www.flickr.com/photos/ukle/2563582096" target="_blank"><img src="http://farm4.static.flickr.com/3274/2563582096_4202d2163d.jpg" border="0" alt="" /></a></p>
<p><a class="flickrImage" href="http://www.flickr.com/photos/ukle/2562744053" target="_blank"><img src="http://farm4.static.flickr.com/3087/2562744053_3a1aeea6ab.jpg" border="0" alt="" /></a></p>
<p><a class="flickrImage" href="http://www.flickr.com/photos/ukle/2563566488" target="_blank"><img src="http://farm4.static.flickr.com/3018/2563566488_39c4faf80b.jpg" border="0" alt="" /></a></p>
<p><a class="flickrImage" href="http://www.flickr.com/photos/ukle/2563561308" target="_blank"><img src="http://farm4.static.flickr.com/3151/2563561308_2d2f04f0bd.jpg" border="0" alt="" /></a></p>
<p><a class="flickrImage" href="http://www.flickr.com/photos/ukle/2563576164" target="_blank"><img src="http://farm4.static.flickr.com/3030/2563576164_049d9711d8.jpg" border="0" alt="" /></a></p>
<p><a class="flickrImage" href="http://www.flickr.com/photos/ukle/2562729591" target="_blank"><img src="http://farm4.static.flickr.com/3093/2562729591_6c13e38960.jpg" border="0" alt="" /></a></p>
<p><a class="flickrImage" href="http://www.flickr.com/photos/ukle/575280478" target="_blank"><img src="http://farm2.static.flickr.com/1234/575280478_59a50104c7.jpg" border="0" alt="" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://lukeloeffler.com/2009/favorite-photos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
