<?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>Limina.Log &#187; Thesis</title>
	<atom:link href="http://log.liminastudio.com/category/itp/thesis/feed" rel="self" type="application/rss+xml" />
	<link>http://log.liminastudio.com</link>
	<description>Research &#38; Development at Limina.Studio</description>
	<lastBuildDate>Sun, 15 Jan 2012 21:25:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>byteSlice()</title>
		<link>http://log.liminastudio.com/itp/byteslice</link>
		<comments>http://log.liminastudio.com/itp/byteslice#comments</comments>
		<pubDate>Sat, 01 May 2010 03:17:33 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[ITP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Thesis]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=605</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/byteslice' addthis:title='byteSlice() '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Here&#8217;s a weird little function I just wrote to &#8220;slice&#8221; an integer out of a byte: int byteSlice(byte input, byte startIndex, byte endIndex){ // generates an integer value from an arbitrary slice of a byte // Example: // // index: 01234567 // input = B01101100 (int 108) // // startIndex = 1 // endIndex = [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/byteslice' addthis:title='byteSlice() '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Here&#8217;s a weird little function I just wrote to &#8220;slice&#8221; an integer out of a byte:</p>
<pre>int byteSlice(byte input, byte startIndex, byte endIndex){

  // generates an integer value from an arbitrary slice of a byte
  // Example:
  //
  // index:   01234567
  // input = B01101100 (int 108)
  //
  // startIndex = 1
  // endIndex = 4
  // slice = B1101
  // returns int 13

  byte output;

  // shift left to shave off bits before startIndex
  output = input << startIndex;
  // shift right to shave off bits after endIndex
  output = output >> (7-endIndex) + startIndex;

  return int(output);
}</pre>
<p>This basically takes out a chunk of a byte and gives you the integer representation of its bits.  The input index byte datatypes are a neurotic memory optimization, since the indices can&#8217;t be greater than 7. <img src='http://log.liminastudio.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />   Example Arduino implementation:</p>
<pre>void setup(){

  Serial.begin(9600);
  byte in = 108;

  Serial.print(in, DEC);
  Serial.print("\t");
  Serial.println(in, BIN);
  Serial.println("----------------");
  Serial.print(byteSlice(in, 0, 7), DEC);
  Serial.print("\t");
  Serial.println(byteSlice(in, 0, 7), BIN);
  Serial.println("----------------");
  Serial.print(byteSlice(in, 1, 4), DEC);
  Serial.print("\t");
  Serial.println(byteSlice(in, 1, 4), BIN);
  Serial.println("----------------");
  Serial.print(byteSlice(in, 3, 6), DEC);
  Serial.print("\t");
  Serial.println(byteSlice(in, 3, 6), BIN);
}

void loop(){
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/itp/byteslice/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting a byte to an array and vice-versa</title>
		<link>http://log.liminastudio.com/itp/converting-a-byte-to-an-array-and-vice-versa</link>
		<comments>http://log.liminastudio.com/itp/converting-a-byte-to-an-array-and-vice-versa#comments</comments>
		<pubDate>Mon, 19 Apr 2010 00:48:00 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[ITP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Thesis]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[Bitmath]]></category>
		<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=596</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/converting-a-byte-to-an-array-and-vice-versa' addthis:title='Converting a byte to an array and vice-versa '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Here are two super-useful Arduino utility functions I just devised for my thesis: byte arrayToByte(int arr[], int len){ // Convert -1 to 0 and pack the array into a byte int i; byte result = 0; for(i=len-1; i&#62;=0; i--){ if(arr[i] == -1){ result &#38;= ~(0 &#60;&#60; i); } else { result &#124;= (1 &#60;&#60; i); [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/converting-a-byte-to-an-array-and-vice-versa' addthis:title='Converting a byte to an array and vice-versa '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Here are two super-useful Arduino utility functions I just devised for my thesis:</p>
<pre>byte arrayToByte(int arr[], int len){
  // Convert -1 to 0 and pack the array into a byte
  int i;
  byte result = 0;

  for(i=len-1; i&gt;=0; i--){
    if(arr[i] == -1){
      result &amp;= ~(0 &lt;&lt; i);
    } else {
      result |= (1 &lt;&lt; i);
    }
  }
  return result;
}</pre>
<pre>int* byteToArray(byte in){
  int i, temp, out[8];

  for(i=0; i&lt;8; i++){     temp = (in &gt;&gt; i) &amp; 1;
    if(temp == 0) temp = -1;
    out[i] = temp;
  }
  return out;
}</pre>
<p>The first function takes in an array of up to 8 integers valued 1 or -1 and generates a corresponding byte; the second does the reverse.  Easy to modify for other integer values.</p>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/itp/converting-a-byte-to-an-array-and-vice-versa/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementing the Perceptron Rule</title>
		<link>http://log.liminastudio.com/itp/implementing-the-perceptron-rule</link>
		<comments>http://log.liminastudio.com/itp/implementing-the-perceptron-rule#comments</comments>
		<pubDate>Sat, 17 Apr 2010 21:41:52 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[ITP]]></category>
		<category><![CDATA[Learning Bit by Bit]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Thesis]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Neural Networks]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=586</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/implementing-the-perceptron-rule' addthis:title='Implementing the Perceptron Rule '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>A perceptron is one of the simplest forms of neural networks: a linear classifier.  It is a method of associating input patterns with output patterns, with the advantage that it is forgiving of noise in the input. The network consists of an input and output layer (and optional &#8220;hidden&#8221; layers in between) with weighted connections [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/implementing-the-perceptron-rule' addthis:title='Implementing the Perceptron Rule '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>A <a href="http://en.wikipedia.org/wiki/Perceptron">perceptron</a> is one of the simplest forms of neural networks: a <a href="http://en.wikipedia.org/wiki/Linear_classifier">linear classifier</a>.  It is a method of associating input patterns with output patterns, with the advantage that it is forgiving of noise in the input.</p>
<p>The network consists of an input and output layer (and optional &#8220;hidden&#8221; layers in between) with weighted connections between all of them.  To train a perceptron, you present an input pattern and the output pattern it should learn to output.  Then you step through each pair of neurons in each pair of layers and modify their weights with this equation:</p>
<p>∆w<sub>i</sub> = c (d &#8211; sign( ∑x<sub>i</sub>w<sub>i</sub>)) x<sub>i</sub></p>
<p>&#8230;where w<sub>i</sub> is the ith weight (real-valued), c is the learning constant (i.e. 0.1), d is the desired output for this node (1 or -1), and x<sub>i</sub> is the input activation (1 or -1).  The input activation term indicates that the input node in question &#8220;contributes&#8221; to the output or &#8220;inhibits&#8221; it.  sign() is given by:</p>
<p>sign(x) = 1 if x ≥ 0, else -1</p>
<p>Here&#8217;s a C++ implementation from my <a href="http://github.com/virgildisgr4ce/Neuroduino">Neuroduino</a> Arduino library:</p>
<pre>int Neuroduino::signThreshold(double sum){
	if (sum &gt;= _net.Theta) {
		return 1;
	} else {
		return -1;
	}
}

double Neuroduino::weightedSum(int l, int node){
	// calculates input activation for a particular neuron
	int i;
	double currentWeight, sum = 0.0;

	for (i=0; i&lt;_net.Layer[l-1]-&gt;Units; i++) {
		currentWeight = _net.Layer[l]-&gt;Weight[node][i];
		sum += currentWeight * _net.Layer[l-1]-&gt;Output[i];
	}

	return sum;
}

void Neuroduino::adjustWeights(int trainArray[]){
	int l,i,j;
	int in,out, error;
	int activation;	// for each "rightmost" node
	double delta;

	for (l=1; l&lt;_numLayers; l++) {
		// cycle through each pair of nodes
		for (i=0; i&lt;_net.Layer[l]-&gt;Units; i++) {
			// "rightmost" layer
			// calculate current activation of this output node
			activation = signThreshold(weightedSum(l,i));
			out = trainArray[i];	// correct activation
			error = out - activation;	// -2, 2, or 0

			for (j=0; j&lt;_net.Layer[l-1]-&gt;Units; j++) {
				// "leftmost" layer

				in = _net.Layer[l-1]-&gt;Output[j];

				delta = _net.Eta * in * error;
				_net.Layer[l]-&gt;Weight[i][j] += delta;
			}
		}
	}
}

void Neuroduino::simulateNetwork(){
	/*****
	 Calculate activations of each output node
	 *****/
	int l,j;

	for (l=_numLayers-1; l&gt;0; l--) {
		// step backwards through layers
		// TODO: this will only work for _numLayers = 2!
		for (j=0; j &lt; _net.Layer[l]-&gt;Units; j++) {
			_output[j] = signThreshold(weightedSum(1, j));
		}
	}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/itp/implementing-the-perceptron-rule/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Measuring XBee signal strength from the RSSI pin</title>
		<link>http://log.liminastudio.com/itp/physical-computing/measuring-xbee-signal-strength-from-the-rssi-pin</link>
		<comments>http://log.liminastudio.com/itp/physical-computing/measuring-xbee-signal-strength-from-the-rssi-pin#comments</comments>
		<pubDate>Thu, 08 Apr 2010 01:52:24 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Thesis]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Microcontroller]]></category>
		<category><![CDATA[xbee]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=577</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/physical-computing/measuring-xbee-signal-strength-from-the-rssi-pin' addthis:title='Measuring XBee signal strength from the RSSI pin '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>In my thesis I wanted to read the signal strength of incoming packets and store it in a variable on a microcontroller without using the XBee&#8217;s API Mode (In API Mode, you construct packets to command the XBees explicitly, as opposed to just sending serial data in AT or &#8220;Transparent Mode&#8221;).  XBee modules have an [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/physical-computing/measuring-xbee-signal-strength-from-the-rssi-pin' addthis:title='Measuring XBee signal strength from the RSSI pin '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>In my <a href="http://log.liminastudio.com/itp/the-dawn-chorus">thesis</a> I wanted to read the signal strength of incoming packets and store it in a variable on a microcontroller without using the XBee&#8217;s API Mode (In API Mode, you <a href="http://code.google.com/p/xbee-arduino/">construct packets to command the XBees explicitly</a>, as opposed to just sending serial data in AT or &#8220;Transparent Mode&#8221;).  XBee modules have an RSSI (Received Signal Strength Indicator) pin that outputs a PWM signal representing this value.  But how do you turn that PWM duty cycle into a useable integer on your microcontroller?  Luckily Arduino has a function made for just this application: <a href="file:///Applications/Arduino.app/Contents/Resources/Java/reference/PulseIn.html">pulseIn</a>.</p>
<ol>
<li>Connect the RSSI pin (pin 6) to a digital pin on your microcontroller.</li>
<li>Use this line of code in your Arduino loop:
<pre>rssiDur = pulseIn(digitalPin, LOW, 200);</pre>
</li>
</ol>
<p>pulseIn returns the duration of a pulse (specified HIGH or LOW) in microseconds (µs).  The 200 is a timeout value in µs—it waits this long to see if there&#8217;s going to be a pulse.  Since the XBee&#8217;s RSSI PWM period is 200µs, we want to wait at most that long to see if there&#8217;s a pulse at all.</p>
<p>Since this function gives you a duration, it&#8217;s up to you to map that to a value relevant to your program.  Since the maximum duration of the pulse would be 200µs, you could map that to your logical maximum.</p>
<p>Keep in mind that if you were planning on using API Mode anyway, every API Mode packet has the latest RSSI within it.</p>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/itp/physical-computing/measuring-xbee-signal-strength-from-the-rssi-pin/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>The Dawn Chorus</title>
		<link>http://log.liminastudio.com/itp/the-dawn-chorus</link>
		<comments>http://log.liminastudio.com/itp/the-dawn-chorus#comments</comments>
		<pubDate>Tue, 06 Apr 2010 21:25:19 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[Installation Art]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Thesis]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Physical Computing]]></category>
		<category><![CDATA[Sculpture]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=573</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/the-dawn-chorus' addthis:title='The Dawn Chorus '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>In the 5th grade, I devised my own language; for I could think of no better or more fascinating challenge. For my Master&#8217;s thesis at the Interactive Telecommunications Program at NYU, I could think of no better or more fascinating challenge than to invent language-inventing machines. What resulted was The Dawn Chorus, a group of [...]]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/the-dawn-chorus' addthis:title='The Dawn Chorus '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p><a href="http://log.liminastudio.com/wp-content/uploads/2010/04/IMG_9678.jpg"  rel="lightbox[roadtrip]"><img class="alignleft size-medium wp-image-846" title="IMG_9678" src="http://log.liminastudio.com/wp-content/uploads/2010/04/IMG_9678-300x225.jpg" alt="" width="300" height="225" /></a>In the 5th grade, I devised my own language; for I could think of no better or more fascinating challenge.  For my Master&#8217;s thesis at the Interactive Telecommunications Program at NYU, I could think of no better or more fascinating challenge than to invent language-inventing machines. What resulted was The Dawn Chorus, a group of electronic sculptures that do just this—emergently, and autonomously.  Using a suite of custom hardware and a simple neural network for each device, the individuals learn from each other and are thus able to converge on common, conventional &#8220;words&#8221; for their experiences, such as a flash of light or sudden noise.</p>
<p>Seem them in action:<br />
<object
		width="450"
		height="340"
		data="http://vimeo.com/moogaloop.swf?clip_id=12027457&amp;server=vimeo.com"
		type="application/x-shockwave-flash">
			<param name="allowfullscreen" value="true" />
			<param name="allowscriptaccess" value="always" />
			<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12027457&amp;server=vimeo.com" />
		</object>
</p>
<p>My final thesis presentation:<br />
<object
		width="450"
		height="340"
		data="http://vimeo.com/moogaloop.swf?clip_id=11523868&amp;server=vimeo.com"
		type="application/x-shockwave-flash">
			<param name="allowfullscreen" value="true" />
			<param name="allowscriptaccess" value="always" />
			<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=11523868&amp;server=vimeo.com" />
		</object>
</p>
<p>All the technical details are in <a href="http://log.liminastudio.com/wp-content/uploads/2010/04/Ted-Hayes-The-Dawn-Chorus.pdf">the thesis paper</a>!</p>
<p>This Dawn Chorus has gradually and emergently developed its own song-language, a metastructure that was never designed into any of the Chorus’s individual members.  Each member of the Chorus has the ability to sense the light and sound of its environment and the ability to vocalize—as well as the ability to learn from the actions of its neighbors.  In this way, the Chorus is able to naturally develop its own set of linguistic, musical conventions, entirely independently.</p>
<p>These sculptures contain a compact set of electronics comprising a microcontroller, sound and light sensors, a hybrid digital-analog synthesizer of my own design, a radio module and a speaker.  Each unit uses a simple neural network learning algorithm to associate environmental events and the actions of its milieu with generative sound patterns.  In short, the entities that make up the Dawn Chorus learn to talk to each other.</p>
<p>But what about?  The Dawn Chorus is not meant as an attempt to mimic animal behavior, but rather as an experiment in emergent poetics.  I see the songs of the Chorus as more musical than communicative, as more of a series of conversational poems than a survival strategy.  In time, we humans may even learn their language—but they will continue to enjoy it on their own.</p>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/itp/the-dawn-chorus/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Dawn Chorus Development II</title>
		<link>http://log.liminastudio.com/itp/the-dawn-chorus-development-ii</link>
		<comments>http://log.liminastudio.com/itp/the-dawn-chorus-development-ii#comments</comments>
		<pubDate>Thu, 01 Apr 2010 20:17:10 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[ITP]]></category>
		<category><![CDATA[Thesis]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Neural Networks]]></category>
		<category><![CDATA[Sound]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=569</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/the-dawn-chorus-development-ii' addthis:title='The Dawn Chorus Development II '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/the-dawn-chorus-development-ii' addthis:title='The Dawn Chorus Development II '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p><a href="http://log.liminastudio.com/wp-content/uploads/2010/04/NetDiagram.jpg"  rel="lightbox[roadtrip]"><img class="size-medium wp-image-570 alignnone" title="NetDiagram" src="http://log.liminastudio.com/wp-content/uploads/2010/04/NetDiagram-300x244.jpg" alt="" width="300" height="244" /></a></p>
<p><object
		width="450"
		height="340"
		data="http://vimeo.com/moogaloop.swf?clip_id=10599242&amp;server=vimeo.com"
		type="application/x-shockwave-flash">
			<param name="allowfullscreen" value="true" />
			<param name="allowscriptaccess" value="always" />
			<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=10599242&amp;server=vimeo.com" />
		</object>
</p>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/itp/the-dawn-chorus-development-ii/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thesis Research Part I</title>
		<link>http://log.liminastudio.com/itp/thesis-research-part-i</link>
		<comments>http://log.liminastudio.com/itp/thesis-research-part-i#comments</comments>
		<pubDate>Mon, 08 Feb 2010 18:37:34 +0000</pubDate>
		<dc:creator>Tedb0t</dc:creator>
				<category><![CDATA[ITP]]></category>
		<category><![CDATA[Thesis]]></category>
		<category><![CDATA[Prototyping]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Sound]]></category>

		<guid isPermaLink="false">http://log.liminastudio.com/?p=535</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/thesis-research-part-i' addthis:title='Thesis Research Part I '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div>Sketches of possible sculptural forms (these are roughly 8-10&#8243; in height).  The first four are my favorites: Sound prototyping: A short composition of 4-7 sine wave oscillators harmonizing and disharmonizing: Two videos of synth design approaches: 8-bit R2R DAC and Schmidt trigger oscillator.]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://log.liminastudio.com/itp/thesis-research-part-i' addthis:title='Thesis Research Part I '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_counter addthis_pill_style"></a></div><p>Sketches of possible sculptural forms (these are roughly 8-10&#8243; in height).  The first four are my favorites:</p>
<p><a href="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_01.jpg"  rel="lightbox[roadtrip]"><img class="alignnone size-thumbnail wp-image-527" title="sketch_01" src="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_01-150x150.jpg" alt="" width="150" height="150" /></a><a href="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_02.jpg"  rel="lightbox[roadtrip]"><img class="alignnone size-thumbnail wp-image-528" title="sketch_02" src="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_02-150x150.jpg" alt="" width="150" height="150" /></a><a href="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_03.jpg"  rel="lightbox[roadtrip]"><img class="alignnone size-thumbnail wp-image-529" title="sketch_03" src="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_03-150x150.jpg" alt="" width="150" height="150" /></a><a href="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_04.jpg"  rel="lightbox[roadtrip]"><img class="alignnone size-thumbnail wp-image-530" title="sketch_04" src="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_04-150x150.jpg" alt="" width="150" height="150" /></a><a href="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_05.jpg"  rel="lightbox[roadtrip]"><img class="alignnone size-thumbnail wp-image-531" title="sketch_05" src="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_05-150x150.jpg" alt="" width="150" height="150" /></a><a href="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_06.jpg"  rel="lightbox[roadtrip]"><img class="alignnone size-thumbnail wp-image-532" title="sketch_06" src="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_06-150x150.jpg" alt="" width="150" height="150" /></a><a href="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_07.jpg"  rel="lightbox[roadtrip]"><img class="alignnone size-thumbnail wp-image-533" title="sketch_07" src="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_07-150x150.jpg" alt="" width="150" height="150" /></a><a href="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_08.jpg"  rel="lightbox[roadtrip]"><img class="alignnone size-thumbnail wp-image-534" title="sketch_08" src="http://log.liminastudio.com/wp-content/uploads/2010/02/sketch_08-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p>Sound prototyping: A short composition of 4-7 sine wave oscillators harmonizing and disharmonizing:</p>
<p>Two videos of synth design approaches: 8-bit R2R DAC and Schmidt trigger oscillator.</p>
<p><object
		width="450"
		height="340"
		data="http://vimeo.com/moogaloop.swf?clip_id=9264840&amp;server=vimeo.com"
		type="application/x-shockwave-flash">
			<param name="allowfullscreen" value="true" />
			<param name="allowscriptaccess" value="always" />
			<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9264840&amp;server=vimeo.com" />
		</object>
</p>
<p><object
		width="450"
		height="340"
		data="http://vimeo.com/moogaloop.swf?clip_id=9264924&amp;server=vimeo.com"
		type="application/x-shockwave-flash">
			<param name="allowfullscreen" value="true" />
			<param name="allowscriptaccess" value="always" />
			<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9264924&amp;server=vimeo.com" />
		</object>
</p>
]]></content:encoded>
			<wfw:commentRss>http://log.liminastudio.com/itp/thesis-research-part-i/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://epiphanus.net/music/DawnChorus_Feb7.mp3" length="4808236" type="audio/mpeg" />
		</item>
	</channel>
</rss>

