<?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; Art</title>
	<atom:link href="http://stefangoodchild.com/tag/art/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>Limited Run Pierre Schaeffer T-Shirt</title>
		<link>http://stefangoodchild.com/portfolio/2009/04/pierre-schaeffer/</link>
		<comments>http://stefangoodchild.com/portfolio/2009/04/pierre-schaeffer/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 18:28:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Eclectronicia]]></category>
		<category><![CDATA[T-Shirt]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=310</guid>
		<description><![CDATA[New t-shirt design for Analog Industries following the Delia Derbyshire T-shirt in our Eclectronica series.  This time the subject is Pierre Schaeffer.  Widely regarded as the creator of Music Concrète you can read all about him on his Wikipedia&#160;entry.
It&#8217;s available to buy online from Analog&#160;Industries 
]]></description>
			<content:encoded><![CDATA[<p>New t-shirt design for <a href="http://www.analogindustries.com/">Analog Industries</a> following the Delia Derbyshire T-shirt in our Eclectronica series.  This time the subject is Pierre Schaeffer.  Widely regarded as the creator of <a href="http://en.wikipedia.org/wiki/Musique_concrète">Music Concrète</a> you can read all about him on his <a href="http://en.wikipedia.org/wiki/Pierre_Schaeffer">Wikipedia&nbsp;entry</a>.</p>
<p>It&#8217;s available to buy online from <a href="http://www.analogindustries.com/shop.jsp">Analog&nbsp;Industries</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/portfolio/2009/04/pierre-schaeffer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Limited Run Delia Derbyshire T-Shirt</title>
		<link>http://stefangoodchild.com/portfolio/2009/03/limited-run-delia-derbyshire-tee/</link>
		<comments>http://stefangoodchild.com/portfolio/2009/03/limited-run-delia-derbyshire-tee/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 23:24:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Eclectronicia]]></category>

		<guid isPermaLink="false">http://stefangoodchild.com/?p=269</guid>
		<description><![CDATA[I was approached by Chris Randall of Analog Industries and Audio Damage fame yesterday about my Delia Derbyshire design to go on a Tee and via the magic of the internet you can register you interest in the very limited run over at his&#160;blog.
]]></description>
			<content:encoded><![CDATA[<p>I was approached by Chris Randall of <a href="http://www.analogindustries.com/blog/entry.jsp?msgid=1236553326129">Analog Industries</a> and <a href="http://www.audiodamage.com/">Audio Damage</a> fame yesterday about my <a href="http://en.wikipedia.org/wiki/Delia_Derbyshire">Delia Derbyshire</a> design to go on a Tee and via the magic of the internet you can register you interest in the very limited run <a href="http://www.analogindustries.com/blog/entry.jsp?msgid=1236553326129">over at his&nbsp;blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/portfolio/2009/03/limited-run-delia-derbyshire-tee/feed/</wfw:commentRss>
		<slash:comments>5</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>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>Marble Madness</title>
		<link>http://stefangoodchild.com/journal/2007/05/marble-madness/</link>
		<comments>http://stefangoodchild.com/journal/2007/05/marble-madness/#comments</comments>
		<pubDate>Mon, 29 Nov 1999 23:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Journal]]></category>
		<category><![CDATA[Art]]></category>

		<guid isPermaLink="false">http://localhost:8888/journal/2007/05/marble-madness/</guid>
		<description><![CDATA[My mate Jon&#8217;s finally put up the video of his recent art installation &#8220;The Sonic Marble&#160;Run&#8221;.
http://www.youtube.com/v/6ZQK3pBkAl4
I&#8217;ll let him&#160;explain&#8230;
The piece consists of two elements. Firstly, the marble creates sounds by  rolling along textured runways and striking various things such strings, springs metal objects etc. These sound sources are then amplified and reproduced through an installation [...]]]></description>
			<content:encoded><![CDATA[<p>My mate Jon&#8217;s finally put up the video of his recent art installation &#8220;The Sonic Marble&nbsp;Run&#8221;.</p>
<div class="flashvideo" title="425x350"><span class="hiddenspan">http://www.youtube.com/v/6ZQK3pBkAl4</span></div>
<p>I&#8217;ll let him&nbsp;explain&#8230;</p>
<blockquote><p>The piece consists of two elements. Firstly, the marble creates sounds by  rolling along textured runways and striking various things such strings, springs metal objects etc. These sound sources are then amplified and reproduced through an installation of various prepared speakers. The speakers are prepared in that they have been physically altered in some way to affect their sound. As the audience roll the marbles down the run the space is filled with an electro mechanical soundscape. It is a physical and electromechanical sonic experience: no digital here! The piece has so far been exhibited at the Grant Bradley gallery in&nbsp;Bristol.</p></blockquote>
<p>You can find out more at his&nbsp;<a href="http://sonicmarbles.co.uk">website</a></p>
]]></content:encoded>
			<wfw:commentRss>http://stefangoodchild.com/journal/2007/05/marble-madness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
