<?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>Computational Artwork &#187; Design</title>
	<atom:link href="http://matthewbrown.net.au/article/design/feed/" rel="self" type="application/rss+xml" />
	<link>http://matthewbrown.net.au</link>
	<description>by Matthew Brown</description>
	<lastBuildDate>Sun, 20 Jun 2010 02:37:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>8 Data Visualisation Links</title>
		<link>http://matthewbrown.net.au/design/8-data-visualisation-links/</link>
		<comments>http://matthewbrown.net.au/design/8-data-visualisation-links/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 02:28:50 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Anthony Mattox]]></category>
		<category><![CDATA[Assignment]]></category>
		<category><![CDATA[Blogosphere]]></category>
		<category><![CDATA[Daniel Shiffman]]></category>
		<category><![CDATA[data visualization]]></category>
		<category><![CDATA[Feltron]]></category>
		<category><![CDATA[information design]]></category>
		<category><![CDATA[Nicholas Felton]]></category>
		<category><![CDATA[Plasma]]></category>
		<category><![CDATA[Robert Hodgin]]></category>
		<category><![CDATA[shiffman]]></category>
		<category><![CDATA[Twittearth]]></category>
		<category><![CDATA[visualisation]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/?p=104</guid>
		<description><![CDATA[For an assignment recently I had to do some research into computational arts practices and information design practices in the context of data visualisation. As such I did some hunting around for different practitioners, examples and related websites and I&#8217;ve put together this small list of websites. I did have a number of others but [...]]]></description>
			<content:encoded><![CDATA[<p>For an assignment recently I had to do some research into computational arts practices and information design practices in the context of data visualisation. As such I did some hunting around for different practitioners, examples and related websites and I&#8217;ve put together this small list of websites. I did have a number of others but I&#8217;m not quite sure where they went &#8211; must have closed the tabs by accident:</p>
<ul>
<li>Anthony Mattox New Media Art Design &#8211; <a href="http://www.anthonymattox.com/">http://www.anthonymattox.com/</a></li>
<li>Daniel Shiffman &#8211; <a href="http://www.shiffman.net/">http://www.shiffman.net/</a></li>
<li>Flight 404 by Robert Hodgin &#8211; <a href="http://www.flight404.com">http://www.flight404.com</a></li>
<li>Feltron, by Nicholas Felton &#8211; <a href="http://feltron.com">http://feltron.com/</a></li>
<li>50 Great Examples of Data Visualisation &#8211; <a href="http://www.webdesignerdepot.com/2009/06/50-great-examples-of-data-visualization/">http://www.webdesignerdepot.com/2009/06/50-great-examples-of-data-visualization/</a></li>
<li>Live Plasma &#8211; <a href="http://www.liveplasma.com/">http://www.liveplasma.com/</a></li>
<li>Twittearth &#8211; <a href="http://www.twittearth.com/">http://www.twittearth.com/</a></li>
<li>Mapping the Blogosphere &#8211; <a href="http://datamining.typepad.com/gallery/blog-map-gallery.html">http://datamining.typepad.com/gallery/blog-map-gallery.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/design/8-data-visualisation-links/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Max Tap Tempo Calculator Extended</title>
		<link>http://matthewbrown.net.au/programming/max-tap-tempo-calculator-extended/</link>
		<comments>http://matthewbrown.net.au/programming/max-tap-tempo-calculator-extended/#comments</comments>
		<pubDate>Sat, 04 Apr 2009 06:59:33 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[beat]]></category>
		<category><![CDATA[calculator]]></category>
		<category><![CDATA[Jitter]]></category>
		<category><![CDATA[LED]]></category>
		<category><![CDATA[Max]]></category>
		<category><![CDATA[metronome]]></category>
		<category><![CDATA[MSP]]></category>
		<category><![CDATA[tempo]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/?p=101</guid>
		<description><![CDATA[After a little bit more work in Max, I&#8217;ve extended the tap tempo calculator to diferentiate between semibreves, minims, crotchets, quavers and semi-quavers rather than just displaying the crotchet timing. I have left the big LED in so that it can be compared. Basically the difference is that now the crotchets are split down into [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-100" title="Max Tap Tempo Calculator Extended" src="http://matthewbrown.net.au/wp-content/uploads/2009/04/tap-tempo-calculator-screen-2.png" alt="Max Tap Tempo Calculator Extended" width="817" height="924" />After a little bit more work in Max, I&#8217;ve extended the tap tempo calculator to diferentiate between semibreves, minims, crotchets, quavers and semi-quavers rather than just displaying the crotchet timing. I have left the big LED in so that it can be compared.</p>
<p>Basically the difference is that now the crotchets are split down into semi-quavers, and from there the metro goes into a counter and to the LED&#8217;s which are lit up as the counter counts through them on each beat of the metronome.</p>
<p>Aside from that it remains very simple in what it does &#8211; just does it in a slightly more interesting way. I&#8217;ll put up some more interesting things done in Max/MSP/Jitter soon, promise.</p>
<p><a title="Max Tap Tempo Calculator Extended" href="../uploads/2009/max/tap-tempo-calculator-extended.maxpat">You can download the Max patch here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/programming/max-tap-tempo-calculator-extended/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Iris</title>
		<link>http://matthewbrown.net.au/design/iris/</link>
		<comments>http://matthewbrown.net.au/design/iris/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 10:03:06 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[computational arts]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[microphone]]></category>
		<category><![CDATA[Quartz Composer]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/?p=91</guid>
		<description><![CDATA[I&#8217;ve been having a bit of a play with Quartz Composer since I haven&#8217;t had a chance to do much in the way of computational arts since uni finished last semester. In doing so, I came up with this, which as you can see became the background of the current website design! I decided to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been having a bit of a play with Quartz Composer since I haven&#8217;t had a chance to do much in the way of computational arts since uni finished last semester. In doing so, I came up with this, which as you can see became the background of the current website design!</p>
<p>I decided to start off with a halo generator to create a similar effect to a lens flare which I then built on with audio input from the MacBook Pro&#8217;s built-in microphone to make it a more interesting effect. Adding in a replicate in space which chances direction over 8 replications gives it the appearance of movement amongst itself, again making it a bit more interesting, but what I really like about this is that it turns it into a colourful iris, which I really quite like.</p>
<p>When the audio is fairly quiet, the iris is small and fades in and out. As the audio volume increases, the iris grows and changes colour.</p>
<p>It can be <a href="http://matthewbrown.net.au/uploads/quartz/audio_responsive/Iris.qtz">downloaded here</a>, you are welcome to have a look and play around with it as you like! Just remember, like everything else on this website, it is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/au/">Creative Commons Attribution-Noncommercial-Share Alike 2.5 Australia License</a>. So anything you do with it must attribute me as the original artist, me, be shared under a share alike license and cannot be used commercially.</p>
<p>This has been done in Quartz Composer for OS X 10.5 Leopard, so it may not work correctly on Tiger. I don&#8217;t think I&#8217;ve used anything that was new in Leopard, but I&#8217;m not sure. So if you are using Tiger, good luck!</p>
<p>I&#8217;ve rendered a video which is now up on <a href="http://www.youtube.com/watch?v=3S6cwYefNC4">YouTube</a> to give you an idea of how it looks.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/3S6cwYefNC4&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/3S6cwYefNC4&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>The screen recording here has taken the mic input and used it for the animation. The song used in this recording is “Deflated &amp; Alone (GE Abondoned mix)” by <span> <a href="http://ccmixter.org/people/George_Ellinas">George_Ellinas</a></span> from <a title="http://ccmixter.org/files/George_Ellinas/19174" dir="ltr" rel="nofollow" href="http://ccmixter.org/files/George_Ellinas/19174" target="_blank">http://ccmixter.org/files/George_Ellinas/19174</a> under a Creative Commons <a title="Creative Commons Attribution License" href="http://creativecommons.org/licenses/by/3.0/">Attribution</a> 3.0 License.</p>
<p>At the moment, it is great for a little while, but unless the music is constantly changing, the interest is lost as it begins to show similar patterns repeating themselves. If you have a look at the Quartz Composition, it&#8217;s a pretty simple one really, so I&#8217;m sure there is plenty more I can do with it yet to make it that bit more interesting for a bit longer!</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/design/iris/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fractalesque</title>
		<link>http://matthewbrown.net.au/design/fractalesque/</link>
		<comments>http://matthewbrown.net.au/design/fractalesque/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 10:16:25 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[audio spectrum]]></category>
		<category><![CDATA[computational arts]]></category>
		<category><![CDATA[Fractal]]></category>
		<category><![CDATA[LFO]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Quartz Composer]]></category>
		<category><![CDATA[Scott Draves]]></category>
		<category><![CDATA[visualisation]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/design/fractalesque/</guid>
		<description><![CDATA[Done with Quartz Composer with the intention of replicating the appearance of a Fractal Flame rendered through Scott Draves&#8217; Flam3, except live rendered based on audio input. This isn&#8217;t a fractal, but I think it does re-create the appearance quite well. The video quality isn&#8217;t even close to the live render quality, but it gives [...]]]></description>
			<content:encoded><![CDATA[<p>Done with Quartz Composer with the intention of replicating the appearance of a Fractal Flame rendered through Scott Draves&#8217; Flam3, except live rendered based on audio input.</p>
<p>This isn&#8217;t a fractal, but I think it does re-create the appearance quite well.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/0I6zAmiyCTc&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/0I6zAmiyCTc&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>The video quality isn&#8217;t even close to the live render quality, but it gives you a good idea of it.</p>
<p>The screen recording here has taken the mic input and used it for the animation. The song used in this recording is &#8220;August (Reggae Rework)&#8221; by el-B from <a href="http://ccmixter.org/files/elB/16075" target="_blank" title="http://ccmixter.org/files/elB/16075" rel="nofollow" dir="ltr">http://ccmixter.org/files/elB/16075</a> under a Creative Commons Attribution Noncommercial 3.0 License.</p>
<p>You can <a href="http://matthewbrown.net.au/uploads/quartz/fractalesque/fractalesque.qtz" title="Fractalesque" >download the Quartz file here</a>, note though that while this will open in Tiger, it will not render correctly, OS X 10.5 Leopard is required for it to run correctly.</p>
<p>It should also be noted that the video above was rendered on a Macbook Pro with an Intel Core 2 Duo 2.4ghz with 2gb of RAM and an 8600m GT and it averages 5 frames per second, so to really experience the full potential of this, it needs to run on a Mac with a fairly powerful video card like a Mac Pro, the iMac&#8217;s and new Macbook Pro&#8217;s should also render it quite nicely.</p>
<p>The reason it is so intensive is because there are a number of iterator and replicate in space patches along with LFO&#8217;s and interpolator&#8217;s that are affected by both the audio volume peak and the audio spectrum, so depending on the volume and the type of music, the visualisation develops more variation.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/design/fractalesque/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plasma Box &#8211; Quartz Composer</title>
		<link>http://matthewbrown.net.au/design/plasma-box-quartz-composer/</link>
		<comments>http://matthewbrown.net.au/design/plasma-box-quartz-composer/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 01:34:22 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[LFO]]></category>
		<category><![CDATA[microphone]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Plasma]]></category>
		<category><![CDATA[Quartz Composer]]></category>
		<category><![CDATA[visualisation]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/design/plasma-box-quartz-composer/</guid>
		<description><![CDATA[This is a fairly simple Quartz Composer visualisation that I developed to be a screensaver or to run in the background of an environment to help develop an atmosphere. The idea originally came from when I was walking past the Chalk Hotel in Woolloongabba in winter and noticed that they had big LCD&#8217;s on a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://matthewbrown.net.au/wp-content/uploads/2008/11/plasma-box.png" title="Plasma Box - Quartz Composer"><img src="http://matthewbrown.net.au/wp-content/uploads/2008/11/plasma-box.thumbnail.png" class="alignright" alt="Plasma Box - Quartz Composer" /></a>This is a fairly simple Quartz Composer visualisation that I developed to be a screensaver or to run in the background of an environment to help develop an atmosphere. The idea originally came from when I was walking past the Chalk Hotel in Woolloongabba in winter and noticed that they had big LCD&#8217;s on a couple of walls playing a video loop of a fire to help create the sense of warmth and a warm atmosphere, even though there was almost no heat actually being produced by the LCD&#8217;s.</p>
<p>What I have created here is floating plasma that slowly floats from the bottom to the top of the screen and accumulates at the top. Audio input is taken from the microphone and combined with an LFO so that it is constantly varying between the base colours that the LFO covers and then other colours dependent on audio spikes. The audio input is also used to make the plasma &#8220;shy&#8221;, that is, as the input volume increases, the plasma starts to get smaller and disappear until the volume starts to subside again, then it comes back.</p>
<p>The basis of this is created with a Quartz Flame Image patch, ideally, I would have liked to redo this with a more controllable particle system, but that is for another time.</p>
<p><a href="/uploads/quartz/floating_plasma/plasma7.qtz" title="Plasma Box">Download the Quartz Composer file here</a>. Note that this requires OS X 10.5 Leopard. It will not work in Tiger as I have used patches that were not available in Tiger.</p>
<p>Check out the video below which shows the visualisation running with the song &#8220;<a href="http://ccmixter.org/files/duckett/17456" title="Wired but Disconnected by duckett">Wired but Disconnected</a>&#8221; by <a href="http://ccmixter.org/people/duckett" title="duckett">duckett</a>.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/BX5heolZ80U&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/BX5heolZ80U&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/design/plasma-box-quartz-composer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frequency Mandelbrot</title>
		<link>http://matthewbrown.net.au/programming/frequency-mandelbrot/</link>
		<comments>http://matthewbrown.net.au/programming/frequency-mandelbrot/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 08:52:35 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[beat detection]]></category>
		<category><![CDATA[Fractal]]></category>
		<category><![CDATA[frequency energy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Lines]]></category>
		<category><![CDATA[Minim]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/programming/frequency-mandelbrot/</guid>
		<description><![CDATA[Where I had been experimenting with just the outsides of the mandelbrot before, I&#8217;ve started having a look at modifying the inside of the fractal as well. I&#8217;ve continued to use the frequency spectrum for the effects simply because it goes with the frequency spectrum used in the background. import ddf.minim.*; import ddf.minim.analysis.*; FFT fft; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://matthewbrown.net.au/uploads/processing/radio_mandelbrot" title="Frequency Mandelbrot"><img src="http://matthewbrown.net.au/wp-content/uploads/2008/09/radio_mandelbrot_1.thumbnail.png" class="alignright" alt="Frequency Mandelbrot 1" /></a>Where I had been experimenting with just the outsides of the mandelbrot <a href="http://matthewbrown.net.au/programming/using-the-output-of-minim-in-processing/" title="Manipulating Minim Output">before</a>, I&#8217;ve started having a look at modifying the inside of the fractal as well. I&#8217;ve continued to use the frequency spectrum for the effects simply because it goes with the frequency spectrum used in the background.</p>
<pre class="brush: java;">
import ddf.minim.*;
import ddf.minim.analysis.*;

FFT fft;

AudioPlayer song;
BeatDetect beat;

float fSize;

void setup()
{
size(300, 300);

// always start Minim first!
Minim.start(this);

// specify 512 for the length of the sample buffers
// the default buffer size is 1024
song = Minim.loadFile(&quot;freedom.mp3&quot;, 512);
song.play();
beat = new BeatDetect();

float fSize = 20;
// an FFT needs to know how
// long the audio buffers it will be analyzing are
// and also needs to know
// the sample rate of the audio it is analyzing is
fft = new FFT(song.bufferSize(), song.sampleRate());
}

void draw()
{
background(0);
// first perform a forward fft on one of song's buffers
// I'm using the mix buffer
//  but you can use any one you like
fft.forward(song.mix);
fill(255);

loadPixels();

// Maximum number of iterations for each point on the complex plane
float maxiterations = 200;
float xmin = -2.5;
float ymin = -2;
float wh = 2;

beat.detect(song.mix);
if ( beat.isOnset() ) fSize += 0.1;

fSize = constrain(fSize, -10, 10);

ymin = -1;
xmin = -1.5;

maxiterations = maxiterations + fSize;

// x goes from xmin to xmax
float xmax = xmin + wh;
// y goes from ymin to ymax
float ymax = ymin + wh;

// Calculate amount we increment x,y for each pixel
float dx = (xmax - xmin) / (width);
float dy = (ymax - ymin) / (height);

// Start y
float y = ymin;
for(int j = 0; j &lt; height; j++) {
// Start x
float x = xmin;
for(int i = 0;  i &lt; width; i++) {

// Now we test, as we iterate z = z^2 + cm does z tend towards infinity?
float a = x;
float b = y;
int n = 0;
while (n &lt; maxiterations) {
float aa = a * a;
float bb = b * b;
float twoab = 2.0 * a * b;
a = aa - bb + x;
b = twoab + y;
// Infinty in our finite world is simple, let's just consider it 16
if(aa + bb &gt; 16.0f) {
break;         }
n++;
}

// We color each pixel based on how long it takes to get to infinity
// If we never got there, let's pick the color black
if (n == maxiterations) pixels[i+j*width] = 0;
else pixels[i+j*width] = color(n*(song.right.get(i)*50) % 255, n*(song.left.get(i)*50) % 200, n*(song.right.get(i)*30));
x += dx;
}
y += dy;
}
updatePixels();
}

void stop()
{
song.close();
super.stop();
}
</pre>
<p><a href="http://matthewbrown.net.au/uploads/processing/radio_mandelbrot" title="Frequency Mandelbrot"><img src="http://matthewbrown.net.au/wp-content/uploads/2008/09/radio_mandelbrot_2.thumbnail.png" class="alignright" alt="Frequency Mandelbrot 2" /></a>In this version I have used the BeatDetect class and another variable, fSize with a constraint on it and then added to the maximum iterations. This allows the frequency spectrum to spread through the mandelbrot fractal, or appear to anyway. It is actually just using the frequency spectrum to colour the fractal, and this makes it appear like spectrum is forming the fractal.</p>
<p>You can have a look at it <a href="http://matthewbrown.net.au/uploads/processing/radio_mandelbrot" title="Frequency Mandelbrot">in action here</a>. The song used in this piece is <a href="http://ccmixter.org/files/vo1k1/16253">“Freedom (Waking Mix)”</a> by <a href="http://ccmixter.org/people/vo1k1">vo1k1</a> 2008 &#8211; Licensed under Creative Commons <a href="http://creativecommons.org/licenses/by-nc/3.0/">Attribution Noncommercial (3.0)</a>.</p>
<p>This is fairly CPU intensive, so many computers will have trouble running this, it is also about 13mb to load so you probably don&#8217;t want to try it on a low speed connection.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/programming/frequency-mandelbrot/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Walking Lines 3 &#8211; Processing</title>
		<link>http://matthewbrown.net.au/programming/walking-lines-3-processing/</link>
		<comments>http://matthewbrown.net.au/programming/walking-lines-3-processing/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 00:51:03 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Lines]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[walking lines]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/programming/walking-lines-3-processing/</guid>
		<description><![CDATA[I received some feedback on my earlier versions of the walking lines in the form of a trackback from Alex. The feedback was part of a practice peer review, but he went into some detail on how i could fix up my current code so that the lines follow on from each other and how [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://matthewbrown.net.au/wp-content/uploads/2008/08/semi_random_line3.png' title='Walking Lines 3, joining lines.'><img src='http://matthewbrown.net.au/wp-content/uploads/2008/08/semi_random_line3.thumbnail.png' alt='Walking Lines 3, joining lines.' class="alignright" /></a>I received some feedback on my earlier versions of the walking lines in the form of <a href="http://alexkkb210.wordpress.com/2008/08/17/peer-review-1/" title="Walking Lines Feedback">a trackback from Alex</a>.</p>
<p>The feedback was part of a practice peer review, but he went into some detail on how i could fix up my current code so that the lines follow on from each other and how to reduce the load on the CPU per cycle with the same effect. The advice is greatly appreciated.</p>
<p><a href="http://matthewbrown.net.au/uploads/processing/semi_random_lines_3/index.html" title="Walking Lines 3">View the new version online here.</a></p>
<p>The changes and source code are after the jump.</p>
<p><span id="more-53"></span></p>
<p>Originally I had:</p>
<pre class="brush: java;">
float x = random(width);
float y = random(height);
float x2 = random(width);
float y2 = random(height);void setup()
{
size(400, 400);
strokeWeight(10);
smooth();
background(100);
frameRate(12);
}

void draw()
{
x += int(random(width*2)-width);
y += int(random(height*2)-height);
x2 += int(random(width*2)-width);
y2 += int(random(height*2)-height);
stroke(random(255));
line(x, y, x2, y2);
}
</pre>
<p>Now I have:</p>
<pre class="brush: java;">

float x = random(width);
float y = random(height);
float x2 = 0;
float y2 = 0;
float tempx = 0;
float tempy = 0;

void setup()
{
size(400, 400);
strokeWeight(10);
smooth();
background(100);
frameRate(12);
}

void draw()
{

x2 = random(-width, width);
y2 = random(-height, height);
stroke(random(255));
line(x, y, x2, y2);
x = x2;
y = y2;
}
</pre>
<p>The main changes are assigning the results of the random set of coordinates to the original coordinates with:</p>
<pre class="brush: java;">
x = x2;
y = y2;
</pre>
<p>These variables (x, y) were assigned 0 values initially and this is then replaced by the new coordinates at the end of every draw() cycle.</p>
<p>The other main change is the reduced load on the CPU with:</p>
<pre class="brush: java;">
x2 = random(-width, width);
y2 = random(-height, height);
</pre>
<p>This is in place of:</p>
<pre class="brush: java;">
x2 += int(random(width*2)-width);
y2 += int(random(height*2)-height);
</pre>
<p>Thats about it, ideally I should fix the colour changes as well so that they aren&#8217;t sharp changes with each line, but a gradual fade from one to another. I&#8217;ll see how I go experimenting with that and throw it up here as well when I get a chance.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/programming/walking-lines-3-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Walking Lines 1</title>
		<link>http://matthewbrown.net.au/programming/walking-lines-1/</link>
		<comments>http://matthewbrown.net.au/programming/walking-lines-1/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 01:26:56 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[computational arts]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[kkb211]]></category>
		<category><![CDATA[Lines]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[walking lines]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/programming/walking-lines-1/</guid>
		<description><![CDATA[In the week 2 tutorial for KKB211 &#8211; Computational Arts 2, we are looking at doing walking lines in our chosen development tool. Walking lines are effectively randomly generated paths that the lines follow to create a random image. I have been using Processing for this particular focus. Thus far I have random lines, however [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://matthewbrown.net.au/wp-content/uploads/2008/07/semi-random-sketch.png" title="Semi-random lines sketch"><img src="http://matthewbrown.net.au/wp-content/uploads/2008/07/semi-random-sketch.thumbnail.png" class="alignright" alt="Semi-random lines sketch" /></a>In the week 2 tutorial for KKB211 &#8211; Computational Arts 2, we are looking at doing walking lines in our chosen development tool.</p>
<p>Walking lines are effectively randomly generated paths that the lines follow to create a random image.</p>
<p>I have been using Processing for this particular focus. Thus far I have random lines, however they don&#8217;t follow any particular path as of yet. This is effectively still walking lines as the position of the lines is added to and built on. Unfortunately this actually draws a new line every frame that is not necessarily joined to the line from the previous frame.</p>
<p><a href="http://matthewbrown.net.au/uploads/processing/semi_random_sketch/index.html" title="Walking Lines 1">Have a look at it online here.</a></p>
<p>The code used to do this is extremely simple and just involves a few random variables based on the width and height of the canvas. I don&#8217;t believe this is entirely stochastic because the randoms are tightly controlled, but it is random within its boundaries (unless you want to get into the nitty gritty of it, which I don&#8217;t).</p>
<p>The source code is available after the jump.</p>
<p><span id="more-48"></span></p>
<pre class="brush: java;">
void setup()
{
size(400, 400);
strokeWeight(10);
smooth();
background(0);
}

void draw()
{
float r = random(0, height);
float x = random(0, width);
stroke(r, 100);
line(random(r), random(width), random(x*2), random(height));
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/programming/walking-lines-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dancing Balls</title>
		<link>http://matthewbrown.net.au/programming/dancing-balls/</link>
		<comments>http://matthewbrown.net.au/programming/dancing-balls/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 08:39:06 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[balls]]></category>
		<category><![CDATA[Quartz Composer]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/programming/dancing-balls/</guid>
		<description><![CDATA[Just playing with Quartz Composer. Four dancing balls that bounce horizontally and vertically. The file, dancing_balls.qtz is online here.]]></description>
			<content:encoded><![CDATA[<p>Just playing with Quartz Composer. Four dancing balls that bounce horizontally and vertically.</p>
<p>The file, <a href="http://matthewbrown.net.au/uploads/quartz/animations/dancing_balls.qtz" title="Quartz Composer Dancing Balls">dancing_balls.qtz is online here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/programming/dancing-balls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Audio Responsive Lines 2</title>
		<link>http://matthewbrown.net.au/programming/audio-responsive-lines-2/</link>
		<comments>http://matthewbrown.net.au/programming/audio-responsive-lines-2/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 04:13:37 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[illusion]]></category>
		<category><![CDATA[Lines]]></category>
		<category><![CDATA[Quartz Composer]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/programming/audio-responsive-lines-2/</guid>
		<description><![CDATA[There were a few problems with the first responsive lines that I did. Mainly related to visibility. For the lines I decided to make their visibility based on the audio spectrum as well as the volume, so sometimes they vanish altogether when they shouldn&#8217;t. I have mostly fixed this now, it does still occasionally happen [...]]]></description>
			<content:encoded><![CDATA[<p>There were a few problems with <a href="http://matthewbrown.net.au/programming/audio-responsive-lines/" title="Audio Responsive Lines">the first responsive lines</a> that I did. Mainly related to visibility. For the lines I decided to make their visibility based on the audio spectrum as well as the volume, so sometimes they vanish altogether when they shouldn&#8217;t.</p>
<p>I have mostly fixed this now, it does still occasionally happen but not too often and in general it responds to all audio better than it did before. It is more sensitive overall.</p>
<p>There are some changes to the rotations as well so now there is more variation in how the lines appear, including the illusion of a horizon, so there is a lot more randomness to it.</p>
<p>I have also gone through and added in notes to make it easier to figure out what does what later on, also so anyone looking at it can figure it out relatively easily.</p>
<p>The Quartz Composer file, <a href="http://matthewbrown.net.au/uploads/quartz/audio_responsive/responsive_lines_2.qtz" title="Audio Responsive Lines">responsive_lines_2.qtz is available here</a>.</p>
<p>It requires input via the built in mic in Macbook&#8217;s or iMac&#8217;s. It can of course be changed to accept audio input from the microphone-in, or line-in on Mac Pro&#8217;s or Mac Mini&#8217;s. With the right plug-in, it can also accept input from iTunes.</p>
<p>The most ideal is via line-in or microphone in as this gives the most control over what exactly the graphics are being synchronised with. However, using the built-in microphone means that no extra accessories are required.</p>
<p>Note that this was done using  Quartz Composer in Leopard.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/programming/audio-responsive-lines-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

