<?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; Processing</title>
	<atom:link href="http://stefangoodchild.com/tag/processing/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>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>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>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>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>
		<item>
		<title>Processing Camera Classes</title>
		<link>http://stefangoodchild.com/journal/2008/08/processing-camera-classes/</link>
		<comments>http://stefangoodchild.com/journal/2008/08/processing-camera-classes/#comments</comments>
		<pubDate>Mon, 29 Nov 1999 23:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Interactive]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://localhost:8888/journal/2008/08/processing-camera-classes/</guid>
		<description><![CDATA[Inspired by the feedback from my latest vimeo video I&#8217;ve finally got my simple &#8216;Chase&#8217; and &#8216;Sphere&#8217; camera classes tidied up and available.  Probably not the greatest programming feat of the decade but may help some of you starting out with&#160;Processing.
You can see a simplified applet and get the source code&#160;here.
If you have any [...]]]></description>
			<content:encoded><![CDATA[<p>Inspired by the feedback from my latest vimeo video I&#8217;ve finally got my simple &#8216;Chase&#8217; and &#8216;Sphere&#8217; camera classes tidied up and available.  Probably not the greatest programming feat of the decade but may help some of you starting out with&nbsp;<a href="http://processing.org">Processing</a>.</p>
<p>You can see a simplified applet and get the source code&nbsp;<a href="http://stefangoodchild.com/processing/CameraClasses/">here</a>.</p>
<p>If you have any feedback or suggestions to how to improve them please <a href="http://stefangoodchild.com/contact/">get in&nbsp;touch</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2008/08/processing-camera-classes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>reSonate Live Show at the Masonic Hall, Frome</title>
		<link>http://stefangoodchild.com/journal/2008/07/resonate-live-show-at-the-masonic-hall-frome/</link>
		<comments>http://stefangoodchild.com/journal/2008/07/resonate-live-show-at-the-masonic-hall-frome/#comments</comments>
		<pubDate>Mon, 29 Nov 1999 23:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://localhost:8888/journal/2008/07/resonate-live-show-at-the-masonic-hall-frome/</guid>
		<description><![CDATA[Resonate is taking over the Masonic Hall in Frome on Wednesday 9th of July as part of the 2008 Frome Festival. This promises to be the biggest and best Resonate so far this&#160;year.
My second ever performance of my wonky downtempo live show with added spicy visuals&#8230;  If you are in the area it would [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Resonate is taking over the Masonic Hall in Frome on Wednesday 9th of July as part of the 2008 Frome Festival. This promises to be the biggest and best Resonate so far this&nbsp;year.</p></blockquote>
<p>My second ever performance of my wonky downtempo live show with added spicy visuals&#8230;  If you are in the area it would be great to see you&nbsp;there.</p>
<p><a href="http://www.resonantfrequency.co.uk/?q=node/42">More Info&nbsp;Here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2008/07/resonate-live-show-at-the-masonic-hall-frome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
