<?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>Stefan Goodchild &#187; Journal</title>
	<atom:link href="http://stefangoodchild.com/category/journal/feed/" rel="self" type="application/rss+xml" />
	<link>http://stefangoodchild.com</link>
	<description>Old Enough To Know Better</description>
	<lastBuildDate>Fri, 25 Jun 2010 09:01:06 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Physical Output Device for Spectrum Analyzer</title>
		<link>http://stefangoodchild.com/journal/2010/06/physical-output-device-for-spectrum-analyzer/</link>
		<comments>http://stefangoodchild.com/journal/2010/06/physical-output-device-for-spectrum-analyzer/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 09:00:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=531</guid>
		<description><![CDATA[I recently did a small talk at Bathcamp on Cymatics and computer visualizations of audio and @Z303 - who was in the audience - sent me a link to this physical spectrum analyzer.  I&#8217;d shown a Processing sketch that did something very similar but in the virtual world so seeing it working in the [...]]]></description>
			<content:encoded><![CDATA[<p>I recently did a small talk at Bathcamp on Cymatics and computer visualizations of audio and <a href="http://twitter.com/Z303">@Z303</a> - who was in the audience - sent me a link to this physical spectrum analyzer.  I&#8217;d shown a Processing sketch that did something very similar but in the virtual world so seeing it working in the real world was great&nbsp;fun.</p>
<p><object width="468" height="263"><param name="movie" value="http://www.youtube.com/v/b4HtUwAkVDg&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/b4HtUwAkVDg&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="468" height="263"></embed></object></p>
<p>And my processing&nbsp;version&#8230;</p>
<p><object
		width="468"
		height="263"
		data="http://vimeo.com/moogaloop.swf?clip_id=12079378&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=12079378&amp;server=vimeo.com" />
		</object>
</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2010/06/physical-output-device-for-spectrum-analyzer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pleasure&#8217;s Unknown</title>
		<link>http://stefangoodchild.com/journal/2010/05/pleasures-unknown/</link>
		<comments>http://stefangoodchild.com/journal/2010/05/pleasures-unknown/#comments</comments>
		<pubDate>Fri, 28 May 2010 10:11:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=512</guid>
		<description><![CDATA[
During the recent stint I did making audio reactive visuals for the recent Peter Gabriel tour we had to create a track for Apres Moi. For part of the track Marc Bessant suggested creating a 3d Battlezone style landscape from the audio loosely based on the Unknown Pleasures album artwork created by Peter Saville for [...]]]></description>
			<content:encoded><![CDATA[<p><object width="468" height="468"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12103113&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=9E005A&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=12103113&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=9E005A&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="468" height="468"></embed></object></p>
<p>During the recent stint I did making audio reactive visuals for the recent Peter Gabriel tour we had to create a track for Apres Moi. For part of the track <a href="http://www.marcbessant.com/">Marc Bessant</a> suggested creating a 3d Battlezone style landscape from the audio loosely based on the Unknown Pleasures album artwork created by Peter Saville for Joy Division. This is something we&#8217;d seen <a href="http://www.flight404.com/blog/?p=143">flight404 doing</a> before and it seemed to fit with the pace and tone of the&nbsp;track.</p>
<p>I figured it would only be a short step away to use a variation of the code to recreate the cover itself as an audio reactive piece. Turns out I&#8217;m not the first to have thought this but hey, originality is&nbsp;overrated.</p>
<p>The song used is the first track from the album,&nbsp;Disorder.</p>
<p>For reference here is a fan shot video of the version created for Apres&nbsp;Moi&#8230;</p>
<p><object width="468" height="263"><param name="movie" value="http://www.youtube.com/v/TnM9qcvY9dc&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/TnM9qcvY9dc&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="468" height="263"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2010/05/pleasures-unknown/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LA Times Review!</title>
		<link>http://stefangoodchild.com/journal/2010/05/la-times-review/</link>
		<comments>http://stefangoodchild.com/journal/2010/05/la-times-review/#comments</comments>
		<pubDate>Sun, 09 May 2010 20:00:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=474</guid>
		<description><![CDATA[Noticed this via Peter Gabriel&#8217;s twitter feed (@itspetergabriel) An LA Times review of the Peter Gabriel Hollywood Bowl concert with some really great comments about the visuals I made. Very chuffed&#160;indeed!!! 
An expansive video screen that spanned about two-thirds of the Bowl’s stage, enough to obscure the orchestra behind it, displayed a sequence of horizontal [...]]]></description>
			<content:encoded><![CDATA[<p>Noticed this via Peter Gabriel&#8217;s twitter feed (<a href="http://twitter.com/itspetergabriel">@itspetergabriel</a>) An <a href="http://latimesblogs.latimes.com/music_blog/2010/05/live-review-peter-gabriel-at-the-hollywood-bowl.html">LA Times review</a> of the Peter Gabriel Hollywood Bowl concert with some really great comments about the visuals I made. Very chuffed&nbsp;indeed!!! </p>
<blockquote><p>An expansive video screen that spanned about two-thirds of the Bowl’s stage, enough to obscure the orchestra behind it, displayed a sequence of horizontal lines moving up as the screen itself raised. Soon a batch of vertical white lines joined, moving gracefully in tempo with the music, only Gabriel’s voice indicating his presence on stage until the screen was high enough to reveal the humans — all wearing black &#8212; behind&nbsp;it.</p>
<p>Reed&#8217;s “The Power of the Heart” nodded to “Ol’ Man River” as he sang “You and me we sweat and strain” in that wonderfully gritty, soulful voice of his. The accompanying imagery on an additional triptych video screen on the wall behind the orchestra was at its core supremely simple: two columns of swirling white dots resembling active molecules, each with a red dot, presumably the nuclei, at the center. As the song progressed, the nuclei moved from their respective outer screens toward one another in the center screen, an extraordinarily moving image in conjunction with Gabriel’s song about the difficulty of two hearts finding, and staying, together. It’s going to make for one killer concert&nbsp;DVD.</p></blockquote>
<p><a href="http://latimesblogs.latimes.com/music_blog/2010/05/live-review-peter-gabriel-at-the-hollywood-bowl.html">Read it in full&nbsp;here.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2010/05/la-times-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Content Aware Witchcraft in Photoshop CS5</title>
		<link>http://stefangoodchild.com/journal/2010/03/content-aware-witchcraft-in-photoshop-cs5/</link>
		<comments>http://stefangoodchild.com/journal/2010/03/content-aware-witchcraft-in-photoshop-cs5/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 15:31:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=459</guid>
		<description><![CDATA[Seriously clever Photoshop goodness coming in&#160;CS5.

]]></description>
			<content:encoded><![CDATA[<p>Seriously clever Photoshop goodness coming in&nbsp;CS5.</p>
<p><object width="468" height="351"><param name="movie" value="http://www.youtube.com/v/NH0aEp1oDOI&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/NH0aEp1oDOI&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="468" height="351"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2010/03/content-aware-witchcraft-in-photoshop-cs5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Peter Gabriel &#8211; New Blood Tour Visuals</title>
		<link>http://stefangoodchild.com/journal/2010/03/peter-gabriel-new-blood-tour-visuals/</link>
		<comments>http://stefangoodchild.com/journal/2010/03/peter-gabriel-new-blood-tour-visuals/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 11:09:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Moonlance]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=435</guid>
		<description><![CDATA[Recently spent a fantastic 6 days on a soundstage at Shepperton Studios preparing sound reactive tour visuals (with Processing) for the Peter Gabriel New Blood Tour with a great team of talented people. I had a great time and produced some work I&#8217;m very proud of.  Some videos of the concerts have started to [...]]]></description>
			<content:encoded><![CDATA[<p>Recently spent a fantastic 6 days on a soundstage at Shepperton Studios preparing sound reactive tour visuals (with <a href="http://processing.org">Processing</a>) for the Peter Gabriel New Blood Tour <a href="http://www.marcbessant.com/">with a</a> <a href="http://sheepfilms.co.uk/">great</a> <a href="http://beggarsvelvet.com/">team</a> <a href="http://vimeo.com/ditchweed">of</a> <a href="http://robsinclair.com/">talented</a> <a href="http://vimeo.com/robinreeder">people</a>. I had a great time and produced some work I&#8217;m very proud of.  Some videos of the concerts have started to appear on YouTube including the work I did for the rear vertical screens on &#8220;My Body Is A&nbsp;Cage&#8221;.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="468" height="351" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/VXvXkvTqWzw&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="468" height="351" src="http://www.youtube.com/v/VXvXkvTqWzw&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>And the visor screen from&nbsp;&#8220;Mirrorball&#8221;</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="468" height="263" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/uho6aLtxJi8&amp;hl=en_US&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="468" height="263" src="http://www.youtube.com/v/uho6aLtxJi8&amp;hl=en_US&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2010/03/peter-gabriel-new-blood-tour-visuals/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Moving from a maker to a manager</title>
		<link>http://stefangoodchild.com/journal/2010/03/maker-to-manager/</link>
		<comments>http://stefangoodchild.com/journal/2010/03/maker-to-manager/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 15:27:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=429</guid>
		<description><![CDATA[Paul Graham published this article about maker and manager timescales which defined the main differences in perception and schedule between those that make and those that manage and the problems that can&#160;cause.
At about the same time that article was published I started a transition from a maker to a manager that is still ongoing and [...]]]></description>
			<content:encoded><![CDATA[<p>Paul Graham published <a href="http://www.paulgraham.com/makersschedule.html">this article</a> about maker and manager timescales which defined the main differences in perception and schedule between those that make and those that manage and the problems that can&nbsp;cause.</p>
<p>At about the same time that article was published I started a transition from a maker to a manager that is still ongoing and surprisingly hard to navigate. The usual expected problems of being promoted from within a team were minimized by virtue of the fact I was primarily the designer and front end guy working with a team of pure developers and so was always slightly apart from the crowd anyway. That and the <a href="http://jivatechnology.com">startup I work for</a> is small and has a pretty flat&nbsp;hierarchy.</p>
<p>Surprisingly my main problem has been the redefinition what I expect of myself. My expectation used to be that at the end of the day there would be a small pile of code or images that are production ready and in the git repo. And suddenly my output is my thoughts, opinion or influence sometimes in wireframe form and sometimes verbal so how can I as an employee measure my own performance when I have nothing to show for it? We are a tiny company so of course I still cut code and I still photoshop production images from time to time but that only appears to confuse my poor addled maker brain and skew the teams <a href="http://en.wikipedia.org/wiki/Agile_software_development">agile</a>&nbsp;<a href="http://en.wikipedia.org/wiki/Agile_software_development#Measuring_agility">velocity</a>.</p>
<p>Part of navigating this transition will affect this journal as well.  Not sure how as yet, it may increase the frequency of code and imagery as I&#8217;m no longer getting my &#8216;maker&#8217; fix at work but the more text based output may well increase as I practice the art of expressing an opinion with words rather than through a medium such as music or&nbsp;design.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2010/03/maker-to-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novation Launchpad Life (in Processing)</title>
		<link>http://stefangoodchild.com/journal/2009/11/novation-launchpad-life-in-processing/</link>
		<comments>http://stefangoodchild.com/journal/2009/11/novation-launchpad-life-in-processing/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 16:41:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=363</guid>
		<description><![CDATA[Using RWMidi library I quickly converted the Game of Life example that comes with Processing to work with the Novation&#160;Launchpad.

import rwmidi.*;

MidiInput input;
MidiOutput output;

int sx, sy;
float density = 0.5;
int[][][] world;
int note;

void setup()
{
  size(8, 8, P2D);
  frameRate(5);
  sx = width;
  sy = height;
  world = new int[sx][sy][2]; 

  input = RWMidi.getInputDevices()[2].createInput(this);
 [...]]]></description>
			<content:encoded><![CDATA[<p>Using <a href="http://ruinwesen.com/support-files/rwmidi/documentation/RWMidi.html">RWMidi library</a> I quickly converted the Game of Life example that comes with <a href="http://processing.org/">Processing</a> to work with the <a href="http://www.novationmusic.com/products/midi_controller/launchpad">Novation&nbsp;Launchpad</a>.</p>
<pre class="brush: java">
import rwmidi.*;

MidiInput input;
MidiOutput output;

int sx, sy;
float density = 0.5;
int[][][] world;
int note;

void setup()
{
  size(8, 8, P2D);
  frameRate(5);
  sx = width;
  sy = height;
  world = new int[sx][sy][2]; 

  input = RWMidi.getInputDevices()[2].createInput(this);
  output = RWMidi.getOutputDevices()[2].createOutput();

  // Set random cells to &#039;on&#039;
  for (int i = 0; i &lt; sx * sy * density; i++) {
    world[(int)random(sx)][(int)random(sy)][1] = 1;
  }
} 

void draw()
{
  background(0); 

  // Drawing and update cycle
  for (int x = 0; x &lt; sx; x=x+1) {
    for (int y = 0; y &lt; sy; y=y+1) {
      note = y * 16 + x;
      //if (world[x][y][1] == 1)
      if ((world[x][y][1] == 1) || (world[x][y][1] == 0 &amp;amp;&amp;amp; world[x][y][0] == 1))
      {
        world[x][y][0] = 1;
        set(x, y, #FFFFFF);
        output.sendNoteOn(0, note, 127);
      } else {
        output.sendNoteOn(0, note, 0);
      }
      if (world[x][y][1] == -1)
      {
        world[x][y][0] = 0;
      }
      world[x][y][1] = 0;
    }
  }
  // Birth and death cycle
  for (int x = 0; x &lt; sx; x=x+1) {
    for (int y = 0; y &lt; sy; y=y+1) {
      int count = neighbors(x, y);
      if (count == 3 &amp;amp;&amp;amp; world[x][y][0] == 0)
      {
        world[x][y][1] = 1;
      }
      if ((count &lt; 2 || count &gt; 3) &amp;amp;&amp;amp; world[x][y][0] == 1)
     {
        world[x][y][1] = -1;
      }
    }
  }
} 

void noteOnReceived(Note note) {
  println(&quot;note on &quot; + note.getPitch() + &quot;:&quot;  + note.getVelocity());
  if (note.getVelocity() &gt; 0) {
    int nx = note.getPitch() % 16;
    int ny = (note.getPitch() - nx) / 16;
    output.sendNoteOn(0, note.getPitch(), 100);
    println(nx);
    println(ny);
    world[nx][ny][1] = 1;
  }
}

// Count the number of adjacent cells &#039;on&#039;
int neighbors(int x, int y)
{
  return world[(x + 1) % sx][y][0] +
         world[x][(y + 1) % sy][0] +
         world[(x + sx - 1) % sx][y][0] +
         world[x][(y + sy - 1) % sy][0] +
         world[(x + 1) % sx][(y + 1) % sy][0] +
         world[(x + sx - 1) % sx][(y + 1) % sy][0] +
         world[(x + sx - 1) % sx][(y + sy - 1) % sy][0] +
         world[(x + 1) % sx][(y + sy - 1) % sy][0];
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/11/novation-launchpad-life-in-processing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Novation Launchpad &#8211; Note number to XY Coordinates and back again.</title>
		<link>http://stefangoodchild.com/journal/2009/11/novation-launchpad-note-number-to-xy-coordinates-and-back-again/</link>
		<comments>http://stefangoodchild.com/journal/2009/11/novation-launchpad-note-number-to-xy-coordinates-and-back-again/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 17:17:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[Launchpad]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=354</guid>
		<description><![CDATA[First thing I did with my new Launchpad?  Nope, I didn&#8217;t hook it up to Live and jam.  I hooked it up, fired up Processing and worked out how to light up the pads and recieve the notes so I could hack it to do anything I wanted&#160;to.
One thing I noticed straight off [...]]]></description>
			<content:encoded><![CDATA[<p>First thing I did with my new <a href="http://www.novationmusic.com/products/midi_controller/launchpad">Launchpad</a>?  Nope, I didn&#8217;t hook it up to Live and jam.  I hooked it up, fired up <a href="http://processing.org/">Processing</a> and worked out how to light up the pads and recieve the notes so I could hack it to do anything I wanted&nbsp;to.</p>
<p>One thing I noticed straight off the bat is the note numbers are not incremental.  Each row starts 16 higher than the last - I assume to allow for the same firmware to work in a 16 x 16 layout model - and there is a very simple way that reminds me of the technique of <a href="http://en.wikipedia.org/wiki/Bitwise_operation">bitshifting</a> I used back in the bad old days of DVD authoring to convert from one to the&nbsp;other.</p>
<pre class="brush: java">
// To go from XY to the note number
noteNumber = y * 16 + x;

// To go from the note number to the XY
x = noteNumber % 16;
y = (noteNumber - x) / 16;
</pre>
<p>Hopefully that will save someone ten minutes of head&nbsp;scratching.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/11/novation-launchpad-note-number-to-xy-coordinates-and-back-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rails on MediaTemple DV</title>
		<link>http://stefangoodchild.com/journal/2009/08/rails-on-mediatemple-dv/</link>
		<comments>http://stefangoodchild.com/journal/2009/08/rails-on-mediatemple-dv/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 19:07:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/journal/2009/08/rails-on-mediatemple-dv/</guid>
		<description><![CDATA[Followed the great step-by-step from&#160;here.
But there&#8217;s one bit missing to get it working if you&#8217;re getting the 403&#160;errors.
You need to run the following command to tell Plesk to use your spanking new&#160;vhost.conf
/usr/local/psa/admin/sbin/websrvmng -u --vhost-name=&#60;domain&#62;
]]></description>
			<content:encoded><![CDATA[<p>Followed the great step-by-step from&nbsp;<a href="http://mdsmediagroup.com/posts/24">here</a>.</p>
<p>But there&#8217;s one bit missing to get it working if you&#8217;re getting the 403&nbsp;errors.</p>
<p>You need to run the following command to tell Plesk to use your spanking new&nbsp;vhost.conf</p>
<pre class="brush: php">/usr/local/psa/admin/sbin/websrvmng -u --vhost-name=&lt;domain&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/08/rails-on-mediatemple-dv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>241543903</title>
		<link>http://stefangoodchild.com/journal/2009/07/241543903/</link>
		<comments>http://stefangoodchild.com/journal/2009/07/241543903/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 23:51:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=335</guid>
		<description><![CDATA[
From&#160;davidhorvitz.tumblr.com/
]]></description>
			<content:encoded><![CDATA[<p><img src="http://stefangoodchild.com/wp-content/uploads/2009/07/RzAKvr6qIlzqe2lvMtnYefubo1_400.png" alt="RzAKvr6qIlzqe2lvMtnYefubo1_400" title="RzAKvr6qIlzqe2lvMtnYefubo1_400" width="400" height="463" class="alignnone size-full wp-image-334" /></p>
<p>From&nbsp;<a href="http://davidhorvitz.tumblr.com/">davidhorvitz.tumblr.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/07/241543903/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Processing SASS from more than one location</title>
		<link>http://stefangoodchild.com/journal/2009/06/processing-sass-from-more-than-one-location/</link>
		<comments>http://stefangoodchild.com/journal/2009/06/processing-sass-from-more-than-one-location/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 15:10:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=329</guid>
		<description><![CDATA[I&#8217;m currently working on the front end of a RoR site using the wondrous HAML &#038; SASS and had a requirement to process SASS files from more than one directory and deposit them into public/stylesheets.  Thanks to Jamie here at Jiva we have found that buried in the code is support for that very&#160;thing.
Simply [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently working on the front end of a <a href="http://rubyonrails.org/">RoR</a> site using the wondrous <a href="http://haml.hamptoncatlin.com/">HAML &#038; SASS</a> and had a requirement to process SASS files from more than one directory and deposit them into public/stylesheets.  Thanks to Jamie here at Jiva we have found that buried in the code is support for that very&nbsp;thing.</p>
<p>Simply put the following code at the bottom of your environment.rb and SASS will munch away&nbsp;happily.</p>
<pre class="brush: ruby">
Sass::Plugin.options[:template_location] = {
   RAILS_ROOT + &#039;/your/base/directory&#039; =&gt; RAILS_ROOT + &#039;/public/stylesheets&#039;,
   RAILS_ROOT + &#039;/you/theme/directory&#039; =&gt; RAILS_ROOT + &#039;/public/stylesheets&#039;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/06/processing-sass-from-more-than-one-location/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby On Rails &#8211; Missing Link?</title>
		<link>http://stefangoodchild.com/journal/2009/05/ruby-on-rails-missing-link-tutorial/</link>
		<comments>http://stefangoodchild.com/journal/2009/05/ruby-on-rails-missing-link-tutorial/#comments</comments>
		<pubDate>Sat, 09 May 2009 12:15:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=326</guid>
		<description><![CDATA[I&#8217;ve finally been kicked up the arse and started to learn Ruby On Rails in anger and finding it really refreshing but frustrating in equal measure.  Refreshing because there is so much just taken care of for you in terms of programming, but frustrating because it&#8217;s a total mind shift in terms of fitting [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally been kicked up the arse and started to learn <a href="http://rubyonrails.org/">Ruby On Rails</a> in anger and finding it really refreshing but frustrating in equal measure.  Refreshing because there is so much just taken care of for you in terms of programming, but frustrating because it&#8217;s a total mind shift in terms of fitting in with the framework and researching existing solutions instead of solving the problems&nbsp;myself.</p>
<p>Looking around there are an amazing amount of &#8220;Getting Started&#8221; tutorials but not much more really.  There is a huge chasm between these (usually very simple) tutorials and the documentation for Gems such as <a href="http://giantrobots.thoughtbot.com/2009/2/9/clearance-rails-authentication-for-developers-who-write-tests">Clearance</a>.  There are a few excellent screencasts that have helped from <a href="https://peepcode.com/">Peepcode</a> but somehow I always feel like they are aimed too low or too high for someone who learns like I&nbsp;do.</p>
<p>So how does one bridge that gap?  I&#8217;ve looked at books - and there are loads of great RoR tomes - but my brain just doesn&#8217;t absorb information in that way, I have to actually be doing something - for real - for it to sink in for some reason.  Personally I&#8217;ve taken to wandering around <a href="http://github.com">GitHub</a> and downloading <a href="http://m.onkey.org/2008/12/4/rails-templates">templates</a> and other <a href="http://github.com/thoughtbot/suspenders/tree/master">project templates</a> and piecing together how it all fits together myself but given how many coding styles exist even in the tightly controlled world of RoR it can create more confusion&nbsp;sometimes.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/05/ruby-on-rails-missing-link-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Find URLs RegEx</title>
		<link>http://stefangoodchild.com/journal/2009/04/find-urls-regex/</link>
		<comments>http://stefangoodchild.com/journal/2009/04/find-urls-regex/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 11:04:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=323</guid>
		<description><![CDATA[Had a need to find various types of links in plain text using javascript and @theozaurus came up with the RegExp goodness after we found the normal online resources lacking a bit.  It&#8217;s not 100% foolproof but it&#8217;ll cover 95% of usual formats we could think&#160;of.
(((https?&#124;ftp):\/\/[^\.]&#124;www\.)[^\s]*[^\s\.,])
]]></description>
			<content:encoded><![CDATA[<p>Had a need to find various types of links in plain text using javascript and <a href="http://twitter.com/theozaurus">@theozaurus</a> came up with the RegExp goodness after we found the normal online resources lacking a bit.  It&#8217;s not 100% foolproof but it&#8217;ll cover 95% of usual formats we could think&nbsp;of.</p>
<p><code>(((https?|ftp):\/\/[^\.]|www\.)[^\s]*[^\s\.,])</code></p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/04/find-urls-regex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>In Defense Of Eye Candy</title>
		<link>http://stefangoodchild.com/journal/2009/04/in-defense-of-eye-candy/</link>
		<comments>http://stefangoodchild.com/journal/2009/04/in-defense-of-eye-candy/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 10:36:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=319</guid>
		<description><![CDATA[Researchers in Japan setup two ATMs, ?identical in function, the number of buttons, and how they worked.? The only difference was that one machine?s buttons and screens were arranged more attractively than the other. In both Japan and Israel (where this study was repeated) researchers observed that subjects encountered fewer difficulties with the more attractive [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Researchers in Japan setup two ATMs, ?identical in function, the number of buttons, and how they worked.? The only difference was that one machine?s buttons and screens were arranged more attractively than the other. In both Japan and Israel (where this study was repeated) researchers observed that subjects encountered fewer difficulties with the more attractive machine. The attractive machine actually worked&nbsp;better.</p>
<p>So now we?re left with this question: why did the more attractive but otherwise identical ATM perform&nbsp;better?</p></blockquote>
<p><a href="http://www.alistapart.com/articles/indefenseofeyecandy">A List&nbsp;Apart</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/04/in-defense-of-eye-candy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tone Matrix</title>
		<link>http://stefangoodchild.com/journal/2009/04/tone-matrix/</link>
		<comments>http://stefangoodchild.com/journal/2009/04/tone-matrix/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 09:49:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=291</guid>
		<description><![CDATA[
My obsession with the Monome and the Tenori-On continues unabated but I can get my virtual fix now thanks to Andre Michelle and his Tone&#160;Matrix
]]></description>
			<content:encoded><![CDATA[<p><img src="http://stefangoodchild.com/wp-content/uploads/2009/04/tonematrix.jpg" alt="tonematrix" title="tonematrix" width="468" height="468" class="alignnone size-full wp-image-292" /></p>
<p>My obsession with the <a href="http://monome.org/">Monome</a> and the <a href="http://www.global.yamaha.com/design/tenori-on/">Tenori-On</a> continues unabated but I can get my virtual fix now thanks to <a href="http://lab.andre-michelle.com/">Andre Michelle</a> and his <a href="http://lab.andre-michelle.com/tonematrix">Tone&nbsp;Matrix</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/04/tone-matrix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Audio Reactive Snakes</title>
		<link>http://stefangoodchild.com/journal/2009/04/audio-reactive-snakes/</link>
		<comments>http://stefangoodchild.com/journal/2009/04/audio-reactive-snakes/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 09:32:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=287</guid>
		<description><![CDATA[
			
			
			
		

New set of experiments from Flight 404 are surfacing on Vimeo.  As always they are stunning.  Reminds me that I really need to look into GLSL shaders in&#160;Processing
]]></description>
			<content:encoded><![CDATA[<p><object
		width="468"
		height="263"
		data="http://vimeo.com/moogaloop.swf?clip_id=4041277&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=4041277&amp;server=vimeo.com" />
		</object>
</p>
<p>New set of experiments from <a href="http://www.flight404.com/blog/">Flight 404</a> are surfacing on <a href="http://vimeo.com/flight404">Vimeo</a>.  As always they are stunning.  Reminds me that I really need to look into <a href="http://en.wikipedia.org/wiki/GLSL">GLSL shaders</a> in&nbsp;Processing</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/04/audio-reactive-snakes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7 Things</title>
		<link>http://stefangoodchild.com/journal/2009/03/7-things/</link>
		<comments>http://stefangoodchild.com/journal/2009/03/7-things/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 18:09:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=275</guid>
		<description><![CDATA[Like all memes the 7 things is a bit of pointless fun and this one seems like it may shed a little light on my murky past.  It&#8217;s harder than you think as this is stuff I&#8217;ve probably mentioned to most people I know already so feel odd saying it again but hey&#8230;


Despite all [...]]]></description>
			<content:encoded><![CDATA[<p>Like all memes the 7 things is a bit of pointless fun and this one seems like it may shed a little light on my murky past.  It&#8217;s harder than you think as this is stuff I&#8217;ve probably mentioned to most people I know already so feel odd saying it again but hey&#8230;<br />
<span id="more-275"></span></p>
<ol>
<li>Despite all the music on here being electronic wonkiness I used to play guitar in an awful instrumental band inspired in equal parts by Ozric Tentacles and Pantera called &#8216;Little Silver Goodchild&#8217;.  Thankfully there are no surviving recordings of us &#8216;performing&#8217; that I know of.We arrived at that clumsy name because the band we were in before was called Mortimer&#8217;s Cross (equally awful) and as Mortimer was the drummer&#8217;s surname the rest of us thought we should have a go the second time round. We used to do a stonking cover of the Starsy &amp; Hutch theme tune&nbsp;however.</li>
<li>I am rarely able to burp audibly.  Which made making friends difficult at scout&nbsp;camp.
</li>
<li>When I was 15 I fell ten feet from a platform above a stage and landed on my head.  When I came round about two minutes later all my &#8216;friends&#8217; were still up on the platform I fell off laughing.I then proceeded to spend three days in hospital having my blood pressure taken every fifteen minutes.  The concussion and lack of sleep combined contributed to one of the strangest three days I&#8217;ve ever&nbsp;spent.</li>
<li>When all around me had Spectrum 48ks and the like my parents decided to take a different route and bought me an Oric Atmos.  I have never met anyone else who had one, or in fact even heard of it.  It was&nbsp;shit.</li>
<li>I used to be a DJ as part of the fledgling Breakbeat scene.  When I released my (only) album my publishers somehow managed to swing it to be the first DJ on the Dance Tent at Glastonbury on the Friday morning.  I was expecting to play to a few hundred folk who for some reason decided to chill out in the tent but due to a freak rain shower I ended up playing to about 5000 people.  It was fucking amazing and petrifying in equal&nbsp;measure.</li>
<li>A few years back I was deep into work and on my own in the office.  I let out a sneeze and was nearly scared out of my skin by someone saying &#8220;Guzuntite&#8221; just behind me.  I leapt out my chair with my usual highly offensive exclamation of fear and span round to see who it was. I was then even more startled to discover the wisher of good health was none other than Led Zepplin front man Robert Plant.  I have a feeling that one encounter knocked about 3 years off my lifespan.  I would say it left me Dazed and Confused but that would be too&nbsp;easy.</li>
<li>Despite my average stature (5&#8217;9&#8221; and a bit) I became part of the High Jump event at my final years school sports day.  I hadn&#8217;t trained, it was simply the only event that was under subscribed and the teacher made me do it under threat of physical violence.  I&#8217;m not sure which of us was more surprised when I equaled the school record that&nbsp;day.</li>
</ol>
<p>As part of the meme I have to tag some friends with blogs to get them to do the same&#8230;  Soo.. I&#8217;m going to&nbsp;tag&#8230;</p>
<ul>
<li><a href="http://goodhen.blogspot.com/">Helen</a></li>
<li><a href="http://madliam.blogspot.com/">Liam</a></li>
<li><a href="http://reebaford.blogspot.com">Reebs</a></li>
<li><a href="http://dizzyjam.blogspot.com/">Neil&nbsp;C</a></li>
<li><a href="http://claireloder.blogspot.com/">Claire&nbsp;L</a></li>
<li><a href="http://chrisgarrettmedia.com/blog/">Chrissy&nbsp;G</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/03/7-things/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Helvetica, Of Course</title>
		<link>http://stefangoodchild.com/journal/2009/02/helvetica-of-course/</link>
		<comments>http://stefangoodchild.com/journal/2009/02/helvetica-of-course/#comments</comments>
		<pubDate>Sat, 28 Feb 2009 17:55:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Download]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=265</guid>
		<description><![CDATA[
Was pointed at this UK advert for Helvetica by a post on Daring Fireball and wanted it for my wall.  Spent an evening kerning to match the original poster and pushed the images a bit to counter the lowish res scan then added in some red to honour the swiss origins of the infamous&#160;typeface.
You [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://stefangoodchild.com/wp-content/uploads/2009/02/helveticaadextract.jpg" alt="helveticaadextract" title="helveticaadextract" width="468" height="325" class="alignnone size-full wp-image-266" /></p>
<p>Was pointed <a href="http://www.flickr.com/photos/ekusupo/114732870/">at this UK advert for Helvetica</a> by a post on <a href="http://daringfireball.net/">Daring Fireball</a> and wanted it for my wall.  Spent an evening kerning to match the original poster and pushed the images a bit to counter the lowish res scan then added in some red to honour the swiss origins of the infamous&nbsp;typeface.</p>
<p>You can <a href="http://www.stefangoodchild.com/wp-content/uploads/content/misc/helvetica_of_course.zip">download a zip file containing an A4 and a Letter sized PDF from&nbsp;here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/02/helvetica-of-course/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Design</title>
		<link>http://stefangoodchild.com/journal/2009/02/design/</link>
		<comments>http://stefangoodchild.com/journal/2009/02/design/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 11:35:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=261</guid>
		<description><![CDATA[Things which are different in order simply to be different are seldom better, but that which is made to be better is almost always&#160;different.
Dieter Rams,&#160;1993
My goal is to omit everything superfluous so that the essential is shown to best possible&#160;advantage.
Dieter Rams,&#160;1980
via&#160;Monoscope
]]></description>
			<content:encoded><![CDATA[<blockquote><p>Things which are different in order simply to be different are seldom better, but that which is made to be better is almost always&nbsp;different.</p></blockquote>
<p><cite>Dieter Rams,&nbsp;1993</cite></p>
<blockquote><p>My goal is to omit everything superfluous so that the essential is shown to best possible&nbsp;advantage.</p></blockquote>
<p><cite>Dieter Rams,&nbsp;1980</cite></p>
<p>via&nbsp;<a href="http://www.monoscope.com/2009/02/the_ten_commandments_of_dieter.html">Monoscope</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/02/design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gegenlicht (back-light)</title>
		<link>http://stefangoodchild.com/journal/2009/02/gegenlicht-back-light/</link>
		<comments>http://stefangoodchild.com/journal/2009/02/gegenlicht-back-light/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 23:59:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=255</guid>
		<description><![CDATA[
			
			
			
		

Amazing realtime volumetric video done in openframeworks by Moka.  I love lighting effects more than anything and this just strips it down to the pure volumetric lighting goodness using GLSL&#160;shaders.
]]></description>
			<content:encoded><![CDATA[<p><object
		width="468"
		height="263"
		data="http://vimeo.com/moogaloop.swf?clip_id=3324904&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=3324904&amp;server=vimeo.com" />
		</object>
</p>
<p>Amazing realtime volumetric video done in <a href="http://www.openframeworks.cc/">openframeworks</a> by <a href="http://vimeo.com/user320217">Moka</a>.  I love lighting effects more than anything and this just strips it down to the pure volumetric lighting goodness using GLSL&nbsp;shaders.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/02/gegenlicht-back-light/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Thousand Words</title>
		<link>http://stefangoodchild.com/journal/2009/01/a-thousand-words/</link>
		<comments>http://stefangoodchild.com/journal/2009/01/a-thousand-words/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 17:47:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=246</guid>
		<description><![CDATA[
			
			
			
		

Utterly&#160;gorgeous.
]]></description>
			<content:encoded><![CDATA[<p><object
		width="468"
		height="263"
		data="http://vimeo.com/moogaloop.swf?clip_id=2884813&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=2884813&amp;server=vimeo.com" />
		</object>
</p>
<p>Utterly&nbsp;gorgeous.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/01/a-thousand-words/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Akai APC40</title>
		<link>http://stefangoodchild.com/journal/2009/01/akai-apc40/</link>
		<comments>http://stefangoodchild.com/journal/2009/01/akai-apc40/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 11:39:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=238</guid>
		<description><![CDATA[
One&#160;word.
Want.
]]></description>
			<content:encoded><![CDATA[<p><img src="http://stefangoodchild.com/wp-content/uploads/2009/01/apc40.jpg" alt="apc40" title="apc40" width="468" height="378" class="alignnone size-full wp-image-239" /></p>
<p>One&nbsp;word.</p>
<p><a href="http://www.akaipro.com/apc40">Want</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/01/akai-apc40/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I Feel A T-Shirt Coming On</title>
		<link>http://stefangoodchild.com/journal/2009/01/i-feel-a-t-shirt-coming-on/</link>
		<comments>http://stefangoodchild.com/journal/2009/01/i-feel-a-t-shirt-coming-on/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 18:32:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=234</guid>
		<description><![CDATA[
Spent some of the weekend fine tuning this trace of a famous image of Delia Derbyshire.  Now I need to find some way of getting it onto a&#160;T-Shirt.
]]></description>
			<content:encoded><![CDATA[<p><img src="http://stefangoodchild.com/wp-content/uploads/2009/01/deliaderbyshire.jpg" alt="Delia Derbyshire" title="Delia Derbyshire" width="468" height="234" class="alignnone size-full wp-image-235" /></p>
<p>Spent some of the weekend fine tuning this trace of a famous image of <a href="http://www.delia-derbyshire.org/">Delia Derbyshire</a>.  Now I need to find some way of getting it onto a&nbsp;T-Shirt.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/01/i-feel-a-t-shirt-coming-on/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Disco Maths</title>
		<link>http://stefangoodchild.com/journal/2009/01/disco-maths/</link>
		<comments>http://stefangoodchild.com/journal/2009/01/disco-maths/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 09:50:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=207</guid>
		<description><![CDATA[
			
			
			
		

I started messing around with sin/cosin based grid manipulation a few days ago and posted the results on Flickr along with an abstract of the code and equation I used to generate the&#160;images. 
This prompted Andy Best to amend the code to create two animations.  Inspired by his efforts I decided to do my [...]]]></description>
			<content:encoded><![CDATA[<p><object
		width="468"
		height="263"
		data="http://vimeo.com/moogaloop.swf?clip_id=2712195&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=2712195&amp;server=vimeo.com" />
		</object>
</p>
<p>I started messing around with sin/cosin based grid manipulation a few days ago and <a href="http://www.tinyurl.com/discomaths">posted the results on Flickr</a> along with an abstract of the code and equation I used to generate the&nbsp;images. </p>
<p>This prompted <a href="http://www.andybest.net">Andy Best</a> to amend the code to create <a href="http://www.andybest.net/2009/01/disco-lines/">two</a> <a href="http://www.andybest.net/2009/01/disco-mesh/">animations</a>.  Inspired by his efforts I decided to do <a href="http://vimeo.com/2712195">my own animation</a> in&nbsp;response.</p>
<p>The music is a quick edit I did of a <a href="http://www.discogs.com/artist/Sir+Drew">Sir Drew</a> bootleg 12&#8221; I&#8217;ve had for years and always&nbsp;loved.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2009/01/disco-maths/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Particle Text</title>
		<link>http://stefangoodchild.com/journal/2008/12/particle-text/</link>
		<comments>http://stefangoodchild.com/journal/2008/12/particle-text/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 09:46:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=220</guid>
		<description><![CDATA[
			
			
			
		

Was experimenting with creating text with particles and a friend who runs the Sound of Habib record label said that he wishes he had time to mess around with stars so this is a little christmas gift for&#160;him.
]]></description>
			<content:encoded><![CDATA[<p><object
		width="468"
		height="263"
		data="http://vimeo.com/moogaloop.swf?clip_id=2531596&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=2531596&amp;server=vimeo.com" />
		</object>
</p>
<p>Was experimenting with creating text with particles and a friend who runs the <a href="http://soundofhabib.com/">Sound of Habib</a> record label said that he wishes he had time to mess around with stars so this is a little christmas gift for&nbsp;him.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2008/12/particle-text/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TouchOSC and Processing Accelerometer Example Code</title>
		<link>http://stefangoodchild.com/journal/2008/12/touchosc-and-processing-accelerometer-example-code/</link>
		<comments>http://stefangoodchild.com/journal/2008/12/touchosc-and-processing-accelerometer-example-code/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 00:23:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[TouchOSC]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=194</guid>
		<description><![CDATA[Playing with my iPhone and Processing v1 on the train last night I started messing with TouchOSC and thought that this super simple (and fairly rough) example code using the oscP5 library may help someone on their way to interactive wobbly&#160;nirvana.
Code after the&#160;jump.


import processing.opengl.*;
import oscP5.*;

OscP5 oscP5;

float xrot = 0;
float zrot = 0;

float xrot_targ = 0;
float [...]]]></description>
			<content:encoded><![CDATA[<p>Playing with my iPhone and <a href="http://processing.org/">Processing v1</a> on the train last night I started messing with <a href="http://hexler.net/touchosc">TouchOSC</a> and thought that this super simple (and fairly rough) example code using the <a href="http://www.sojamo.de/libraries/oscP5/">oscP5</a> library may help someone on their way to interactive wobbly&nbsp;nirvana.</p>
<p>Code after the&nbsp;jump.</p>
<p><span id="more-194"></span></p>
<pre class="brush: java">
import processing.opengl.*;
import oscP5.*;

OscP5 oscP5;

float xrot = 0;
float zrot = 0;

float xrot_targ = 0;
float zrot_targ = 0;
float orientation = 0;

float dampSpeed = 5;

void setup() {
  size(400,400, OPENGL);
  oscP5 = new OscP5(this,8000);
  smooth();
}

void draw() {
  camera(  0, 0, 300,
         0, 0, 0,
         0.0, 1.0, 0.0
     );
  background(0); 

  // Basic value smoothing

  if (xrot_targ &gt; xrot) {
    xrot = xrot + ((xrot_targ - xrot) / dampSpeed);
  } else {
    xrot = xrot - ((xrot - xrot_targ) / dampSpeed);
  }

  if (zrot_targ &gt; zrot) {
    zrot = zrot + ((zrot_targ - zrot) / dampSpeed);
  } else {
    zrot = zrot - ((zrot - zrot_targ) / dampSpeed);
  }

 // Detection for if the iPhone is upsidedown or not

  if (orientation &lt; 0) {
    fill(255,0,0);
    rotateX(radians(xrot));
    rotateZ(radians(zrot));
  } else {
    fill(255,255,0);
    rotateX(radians(xrot*-1));
    rotateZ(radians(zrot*-1));
  }
  box(130,10,60);

}

void oscEvent(OscMessage theOscMessage) {
  if(theOscMessage.checkAddrPattern(&quot;/accxyz&quot;)==true) {
      xrot_targ = (theOscMessage.get(0).floatValue()*90);
      zrot_targ = (theOscMessage.get(1).floatValue()*90)*-1;
      orientation = theOscMessage.get(2).floatValue();
  }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2008/12/touchosc-and-processing-accelerometer-example-code/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Frederik Vanhoutte Generative Art on Flickr</title>
		<link>http://stefangoodchild.com/journal/2008/11/frederik-vanhoutte-generative-art-on-flickr/</link>
		<comments>http://stefangoodchild.com/journal/2008/11/frederik-vanhoutte-generative-art-on-flickr/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 20:23:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=167</guid>
		<description><![CDATA[
Absolutely loving the latest work from Frederik that popped up on my Flickr Processing Group feed.  The neon colour scheme is almost 80&#8217;s in feel but it really works for&#160;me.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/wblut/3011629359/"><img src="http://stefangoodchild.com/wp-content/uploads/2008/11/wblut.jpg" alt="" title="Strange Symmetry 2 by wblut" width="468" height="297" class="alignnone size-full wp-image-168" /></a></p>
<p>Absolutely loving the latest work from Frederik that popped up on my Flickr Processing Group feed.  The neon colour scheme is almost 80&#8217;s in feel but it really works for&nbsp;me.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2008/11/frederik-vanhoutte-generative-art-on-flickr/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>By Way Of An Apology&#8230;</title>
		<link>http://stefangoodchild.com/journal/2008/11/by-way-of-an-apology/</link>
		<comments>http://stefangoodchild.com/journal/2008/11/by-way-of-an-apology/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 16:38:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=153</guid>
		<description><![CDATA[
&#8230;to my mate Marc for letting him down royally and not doing his website for him when I said I probably could I thought I&#8217;d at least let you know that his site is up and full of yummy graphic design that he&#8217;s&#160;done.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://marcbessant.com"><img src="http://stefangoodchild.com/wp-content/uploads/2008/11/marcbessent.jpg" alt="" title="Some Of Marc&#039;s Work" width="468" height="162" class="alignnone size-full wp-image-163" /></a></p>
<p>&#8230;to my mate Marc for letting him down royally and not doing his website for him when I said I probably could I thought I&#8217;d at least let you know that his <a href="http://marcbessant.com">site is up</a> and full of yummy graphic design that he&#8217;s&nbsp;done.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2008/11/by-way-of-an-apology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Audio DNA Source Code</title>
		<link>http://stefangoodchild.com/journal/2008/11/audio-dna-source-code/</link>
		<comments>http://stefangoodchild.com/journal/2008/11/audio-dna-source-code/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 22:01:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=136</guid>
		<description><![CDATA[After some prompting I though I would publish some of my Processing source code to see what people made of it.  Probably not the tidiest code out there, but these are essentially sketches so figured it didn&#8217;t matter too&#160;much.
To make this work you&#8217;ll need a few bits from around the internets.  First up [...]]]></description>
			<content:encoded><![CDATA[<p>After some prompting I though I would publish some of my <a href="http://processing.org">Processing</a> source code to see what people made of it.  Probably not the tidiest code out there, but these are essentially sketches so figured it didn&#8217;t matter too&nbsp;much.</p>
<p>To make this work you&#8217;ll need a few bits from around the internets.  First up is the <a href="http://www.davebollinger.com/works/p5/fftoctana/">FFTOctaveAnalyser</a> class from Dave Bollinger which you need to put in the root of your sketch directory, then you&#8217;ll need to download the <a href="http://www.tree-axis.com/Ess/">Ess&nbsp;library</a>.</p>
<p>Finally you&#8217;ll need something like <a href="http://audacity.sourceforge.net/">Audacity</a> to split an audio file into it&#8217;s left and right channels.  Save them as two mono wav files (for some reason AIFF seems to upset it) called &lt;audiofile&gt;.L and &lt;audiofile&gt;.R and pop them in the sketch data&nbsp;directory.</p>
<p>Assuming all this has gone to plan all you need to do is edit the source code on line 4 so the audioFilename variable is the same as the &lt;audiofile&gt; referenced above and click the play button.  Give it a second or two (depending on the length of the audio file) and you should see the Audio DNA displayed and find a TIFF version sitting in a folder called &#8216;out&#8217; in your sketch&nbsp;folder.</p>
<p>Onto the source.  The key to this is it&#8217;s not real time.  It scans the audio file chunk by chunk so in this instance it&#8217;s faster than real-time.  With some tweaks a similar technique can be used to render out audio reactive Processing sketches that run slower than real-time if that&#8217;s your&nbsp;bag.</p>
<p><span id="more-136"></span></p>
<pre class="brush: java">
import krister.Ess.*;

String audioFilename = &quot;md&quot;;
String audioFilenameL = audioFilename+&quot;.L&quot;;
String audioFilenameR = audioFilename+&quot;.R&quot;;

int imgSize = 500;

// SinCos Lookup tables from Toxi (i think via flight404...) He&#039;s a clever chap, look him up.
public static final float sinLUT[];
public static final float cosLUT[];
public static final float SINCOS_PRECISION=1f;
public static final int SINCOS_LENGTH= (int) (360f/SINCOS_PRECISION);
static {
  sinLUT=new float[SINCOS_LENGTH];
  cosLUT=new float[SINCOS_LENGTH];
  for (int i=0; i&lt;SINCOS_LENGTH; i++) {
    sinLUT[i]= (float)Math.sin(i*DEG_TO_RAD*SINCOS_PRECISION);
    cosLUT[i]= (float)Math.cos(i*DEG_TO_RAD*SINCOS_PRECISION);
  }
}

AudioChannel chnL;
AudioChannel chnR;
FFT fftL;
FFT fftR;
FFTOctaveAnalyzer octL;
FFTOctaveAnalyzer octR;
int bufferSize = 1024;
int samplingRate = 44100;

int frameL = 0;
int frameR = 360; 

int samplesPerDegree;
int section;

float[] limits = new float[9];
float[] radii = new float[9];
float[] linethick = new float[9];

float radStep;

void setup() {
  size(imgSize, imgSize, P3D);
  noStroke();
  Ess.start(this);
  chnL = new AudioChannel(dataPath(audioFilenameL));
  chnR = new AudioChannel(dataPath(audioFilenameR));
  samplesPerDegree = chnL.size/181;
  fftL = new FFT(bufferSize*2);
  fftR = new FFT(bufferSize*2);
  fftL.limits();
  fftR.limits();
  fftL.damp(.5);
  fftR.damp(.5);
  octL = new FFTOctaveAnalyzer(fftL, samplingRate, 1);
  octR = new FFTOctaveAnalyzer(fftR, samplingRate, 1);
  octL.peakHoldTime = 10; // hold longer
  octL.peakDecayRate = 3; // decay slower
  octL.linearEQIntercept = 0.7; // reduced gain at lowest frequency
  octL.linearEQSlope = 0.02; // increasing gain at higher frequencies
  octR.peakHoldTime = 10; // hold longer
  octR.peakDecayRate = 3; // decay slower
  octR.linearEQIntercept = 0.7; // reduced gain at lowest frequency
  octR.linearEQSlope = 0.02; // increasing gain at higher frequencies
  background(255);
  fill(0);
  noLoop();
}

void draw() {
    limits[0] = 0.3;
    limits[1] = 0.6;
    limits[2] = 0.5;
    limits[3] = 0.4;
    limits[4] = 0.4;
    limits[5] = 0.4;
    limits[6] = 0.3;
    limits[7] = 0.3;
    limits[8] = 0.3;

    float radStart = imgSize/10;
    float radEnd = imgSize*0.9;
    radStep = (radEnd-radStart)/9;
    float radCurrent = radStart;

    for (int r = 0; r &lt; 9; r++) {
      radii[r] = radCurrent/2;
      radCurrent = radCurrent+radStep;
    }

  for (int frm = 0; frm &lt; 181; frm++) {
    analyze();
    render();
    advance();
  }
  saveFrame(&quot;out/&quot;+audioFilename+&quot;.tif&quot;);
} 

void analyze() {
  section = (int)(frameL * samplesPerDegree);
  fftL.getSpectrum(chnL.samples, section);
  fftR.getSpectrum(chnR.samples, section);
  octL.calculate();
  octR.calculate();
} 

void render() {
  for (int i = 0; i &lt; 9; i++) {
    if (octL.averages[i]&gt;limits[i]) myArc(width/2,height/2,frameL,frameL+2,radii[i],radStep/2.5,.5);
    if (octR.averages[i]&gt;limits[i]) myArc(width/2,height/2,frameR,frameR+2,radii[i],radStep/2.5,.5);
  }
}

void advance() {
    frameL ++;
    frameR --;
} 

public void stop() {
  Ess.stop();
  super.stop();
}

void arc(float x,float y,float degS,float degE,float rad,float w) {
  int start=(int)min (degS/SINCOS_PRECISION,SINCOS_LENGTH-1);
  int end=(int)min (degE/SINCOS_PRECISION,SINCOS_LENGTH-1);
  beginShape(QUAD_STRIP);
  for(int i=start; i&lt;end; i++) {
    vertex(cosLUT[i]*(rad)+x,sinLUT[i]*(rad)+y);
    vertex(cosLUT[i]*(rad+w)+x,sinLUT[i]*(rad+w)+y);
  }
  endShape();
}

void myArc(float x,float y,float degS,float degE,float rad,float w, float step) {
  beginShape(QUAD_STRIP);
  noStroke();
  for (float i = degS; i &lt; degE; i=i+step) {
    vertex(rad*cos(radians(i))+x,rad*sin(radians(i))+y);
    vertex((rad+w)*cos(radians(i))+x,(rad+w)*sin(radians(i))+y);
  }
  endShape();
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2008/11/audio-dna-source-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Audio Fingerprints</title>
		<link>http://stefangoodchild.com/journal/2008/10/audio-fingerprints/</link>
		<comments>http://stefangoodchild.com/journal/2008/10/audio-fingerprints/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 12:11:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=105</guid>
		<description><![CDATA[
I&#8217;ve been tinkering with audio visualisations in Processing for a few years now.  The three animated ones I was happy enough with to show I have been adding to Vimeo but the still versions had never seen the light of day apart from glimpses as part of the audio player on this&#160;site.
I finally signed [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-129" title="phfingerprints" src="http://stefangoodchild.com/wp-content/uploads/2008/10/phfingerprints.jpg" alt="Portishead Visualisations" width="468" height="226" /></p>
<p>I&#8217;ve been tinkering with audio visualisations in <a href="http://processing.org/">Processing</a> for a few years now.  The three animated ones I was happy enough with to show I have been adding to <a href="http://vimeo.com/stefangoodchild">Vimeo</a> but the still versions had never seen the light of day apart from glimpses as part of the audio player on this&nbsp;site.</p>
<p>I finally signed up to <a href="http://www.flickr.com/photos/31276926@N05/">Flickr</a> and added a few higher res artifacts of the experiments over there as <a href="http://lifeonmarc.blogspot.com/">Marc Bessant</a> had posted about them on his <a href="http://lifeonmarc.blogspot.com/2008/10/audio-fingerprints.html">blog</a> recently so thought I should out the rest myself. There are two kinds that I&#8217;ve done.  The &#8216;Fingerprint&#8217; and the &#8216;DNA&#8217; styles are very closely linked in terms of back end code but produce very different&nbsp;results.</p>
<p>&#8216;Fingerprint&#8217; was the first one chronologically  I wanted to get something organic feeling and at higher resolutions and with the right colour palette they can look almost watercolour like.  &#8216;DNA&#8217; was the offshoot. The result of a conversation with the aforementioned Marc Bessent about creating something to etch onto the empty side of a 12&#8221; single release.  The release happened, but the band in question didn&#8217;t go for the designs.  Not sure what was used in it&#8217;s&nbsp;place.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2008/10/audio-fingerprints/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
