<?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; computational arts</title>
	<atom:link href="http://matthewbrown.net.au/tag/computational-arts/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>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>Fractals and Influences</title>
		<link>http://matthewbrown.net.au/misc/fractals-and-influences/</link>
		<comments>http://matthewbrown.net.au/misc/fractals-and-influences/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 12:31:03 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[computational arts]]></category>
		<category><![CDATA[Fractals]]></category>
		<category><![CDATA[Influences]]></category>
		<category><![CDATA[kkb210]]></category>
		<category><![CDATA[Lines]]></category>
		<category><![CDATA[QUT]]></category>
		<category><![CDATA[Scott Draves]]></category>
		<category><![CDATA[Visuals]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/misc/fractals-and-influences/</guid>
		<description><![CDATA[Fractals have always particularly appealed to me. They seem chaotic and yet orderly. I actually focussed on this concept in year 12 for my major art work which was selected to be featured in 5 galleries across NSW. If you look at my Deviant Art account at all, you&#8217;ll notice that it is absolutely full [...]]]></description>
			<content:encoded><![CDATA[<p>Fractals have always particularly appealed to me. They seem chaotic and yet orderly. I actually focussed on this concept in year 12 for my major art work which was selected to be featured in 5 galleries across NSW.</p>
<p><a href="http://blog.stillaslife.com/wp-content/gallery/00-single/trisymmetryglow1280.jpg" title="One of my fractals"><img src="http://blog.stillaslife.com/wp-content/gallery/00-single/normal_trisymmetryglow1280.jpg" alt="One of my fractals" style="border: 0pt none ; margin-left: 10px" /></a></p>
<p>If you look at <a href="http://raolain.deviantart.com/" title="Matt's Deviant Art Account">my Deviant Art account</a> at all, you&#8217;ll notice that it is absolutely full of fractal stills. I also had some big A1 and A2 fractal prints on exhibition, as well as an animation, at a recent inter-university festival between QUT and UQ. So I can easily say that fractals are definitely where my love in art is at. Since I first began experimenting with fractals, there has been one particularly big influence in my work, and that has been the work of Scott Draves aka <a href="http://draves.org" title="Scott Draves aka Spot">Spot</a>.</p>
<p>Spot&#8217;s work has been of interest to me basically since I began working with fractals and it continues to do so.</p>
<p>He has done a lot of work in fractals and started the <a href="http://flam3.com/" title="Flam3">Flam3</a>, <a href="http://electricsheep.org/" title="Electric Sheep">Electric Sheep</a> and <a href="http://hifidreams.com/" title="Dreams in High Fidelity">Dreams in High Fidelity</a> projects, all of which are quite influential on my work, both in fractals and in other computational arts.</p>
<p>Not all of his work has been focused on fractals, but many of his idea&#8217;s share similarities with them. One example of this are his <a href="http://draves.org/dub/" title="Dub Visuals">Dub Visuals</a> which take chaotic still images and morph them, to form other still images in a flow similar to that of the evolution of his fractal animations.</p>
<p>I have previously done fractal animations where they are synced with music, both music performed by another artist and music that I have composed myself. However, this hasn&#8217;t been done in real time and has been a long process to setup each portion of the animation and sync it up with the music. Ultimately, I would love to develop a way of rendering fractals, even low quality or low resolution fractals in real-time based on audio input. Basically this would be combining the work I have done previously with the basic concepts of what I did for KKB210 where I did a series of <a href="http://matthewbrown.net.au/programming/audio-responsive-lines-2/" title="Audio Responsive Lines">lines</a> and <a href="http://matthewbrown.net.au/programming/audio-responsive-particles-3/" title="Audio Responsive Particles">boxes</a> that responded to audio input. The lines one was probably getting close, though ultimately no where near as detailed as I would like it to be, and definitely nowhere near as chaotic and fractal-like as I want.</p>
<p>That is my aim though and hopefully I will get to it sooner or later.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/misc/fractals-and-influences/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>KKB211 &#8211; Computational Arts 2</title>
		<link>http://matthewbrown.net.au/misc/kkb211-computational-arts-2/</link>
		<comments>http://matthewbrown.net.au/misc/kkb211-computational-arts-2/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 01:08:30 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[computational arts]]></category>
		<category><![CDATA[Kelvin Grove]]></category>
		<category><![CDATA[kkb210]]></category>
		<category><![CDATA[kkb211]]></category>
		<category><![CDATA[portfolio]]></category>
		<category><![CDATA[QUT]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/misc/kkb211-computational-arts-2/</guid>
		<description><![CDATA[Last semester this blog was focused on my ongoing computational arts development for my uni work as part of the KKB210 &#8211; Computational Arts 1 subject. This semester, I am moving on to KKB211 &#8211; Computational Arts 2, so again, this blog will be used as an online portfolio of my development in the area [...]]]></description>
			<content:encoded><![CDATA[<p>Last semester this blog was focused on my ongoing computational arts development for my uni work as part of the KKB210 &#8211; Computational Arts 1 subject.</p>
<p>This semester, I am moving on to KKB211 &#8211; Computational Arts 2, so again, this blog will be used as an online portfolio of my development in the area of computational arts. The aim is to develop a series of works by the end of the semester that can be used as exhibition pieces as part of a computational arts exhibition at QUT Kelvin Grove.</p>
<p>It will also act as a process diary to help my keep track of my development and help me filter out the not so good works so I can focus more on the ones that are worth pursuing.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/misc/kkb211-computational-arts-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Portfolio Index For KKB210 Assignment 3</title>
		<link>http://matthewbrown.net.au/programming/portfolio-index-for-kkb210-assignment-3/</link>
		<comments>http://matthewbrown.net.au/programming/portfolio-index-for-kkb210-assignment-3/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 11:52:18 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[computational arts]]></category>
		<category><![CDATA[kkb210]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Quartz Composer]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/programming/portfolio-index-for-kkb210-assignment-3/</guid>
		<description><![CDATA[Portfolio Item 1 - Audio Responsive Particles. Portfolio Item 2 - Audio Responsive Lines. Portfolio Item 3 - Kaleidoscope.]]></description>
			<content:encoded><![CDATA[<h3>Portfolio Item 1 -</h3>
<ul>
<li><a href="http://matthewbrown.net.au/programming/audio-responsive-particles-3/" title="Audio Responsive Particles">Audio Responsive Particles.</a></li>
</ul>
<h3>Portfolio Item 2 -</h3>
<ul>
<li><a href="http://matthewbrown.net.au/programming/audio-responsive-lines-2/" title="Audio Responsive Lines">Audio Responsive Lines.<br />
</a></li>
</ul>
<h3>Portfolio Item 3 -</h3>
<ul>
<li><a href="http://matthewbrown.net.au/programming/mouse-controlled-kaleidoscope/" title="Kaleidoscope">Kaleidoscope.</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/programming/portfolio-index-for-kkb210-assignment-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Processing &#8211; Draggable Box</title>
		<link>http://matthewbrown.net.au/programming/processing-draggable-box/</link>
		<comments>http://matthewbrown.net.au/programming/processing-draggable-box/#comments</comments>
		<pubDate>Tue, 27 May 2008 11:46:47 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[computational arts]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[kkb210]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/programming/processing-draggable-box/</guid>
		<description><![CDATA[Finally had time to start experimenting with things for my KKB210: Computational Arts 1 Assignment 3. For this assignment, we have to write 3 computational artworks. My first experiment is using Java and the Processing development environment. It is based on one of the week 4 exercises we did to create moving boxes that leave [...]]]></description>
			<content:encoded><![CDATA[<p>Finally had time to start experimenting with things for my KKB210: Computational Arts 1 Assignment 3. For this assignment, we have to write 3 computational artworks.</p>
<p>My first experiment is using Java and the Processing development environment. It is based on one of the week 4 exercises we did to create moving boxes that leave a motion trail.</p>
<p>Using this, I have added the mouseX and mouseY inputs to position and resize the box depending on whether the left or right mouse button is clicked.</p>
<p><span id="more-28"></span><br />
At this stage I haven&#8217;t gotten it to save the position and size of the box.</p>
<p>If neither mouse button is clicked, the box will be small and move around the canvas. As soon as either of the mouse buttons are released, the box will fade back to being small and moving around the canvas.</p>
<p>It is available <a href="http://www.matthewbrown.net.au/uploads/processing/draggable_box/" title="A draggable box in Processing">online here</a>.</p>
<pre class="brush: java;">
int x1, x2, y1, y2;

int boxWidth=250;
int boxHeight=250;
int boxX=100;
int boxY=100;

int r=150;
int g=140;
int b=180;

void setup(){
size(500,500);
}

void draw() {
// Setup the background.
fill(0,0,250,10);
rect(0,0,width,height);

// Setup the motion.
x1 = int(random(6)-3);
x2 = int(random(6)-3);
y1 = int(random(6)-3);
y2 = int(random(6)-3);

// Check if the left mouse button is pressed and do the following.
if (mousePressed &amp;&amp; (mouseButton == LEFT)) {
boxX = mouseX;
boxY = mouseY;
boxWidth += x2;
boxHeight += y2;
}
// Check if the right mouse button is pressed and do the following.
else if (mousePressed &amp;&amp; (mouseButton == RIGHT)) {
boxX += x1;
boxY += y1;
boxWidth = mouseX;
boxHeight = mouseY;
}
// If nothing is pressed do the following.
else {
boxX += x1;
boxY += y1;
boxWidth = x2;
boxHeight = y2;
}

// Changing colour assignment.
r += int(random(4)-2);
g += int(random(4)-2);
b += int(random(4)-2);

// Draw the box.
fill(r,g,b);
rect(boxX,boxY,boxWidth,boxHeight);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/programming/processing-draggable-box/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introduction to Pure Data (Pd)</title>
		<link>http://matthewbrown.net.au/programming/introduction-to-pure-data-pd/</link>
		<comments>http://matthewbrown.net.au/programming/introduction-to-pure-data-pd/#comments</comments>
		<pubDate>Thu, 01 May 2008 00:03:42 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[computational arts]]></category>
		<category><![CDATA[kkb210]]></category>
		<category><![CDATA[Pure Data]]></category>
		<category><![CDATA[Quartz Composer]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/programming/introduction-to-pure-data-pd/</guid>
		<description><![CDATA[Pure Data (Pd) is a real-time graphical programming environment based on Max/MSP. It uses patches to write audio, video and graphical programs and can be used for computational arts. The aim of the week 6 KKB210: Computational Arts 1 tutorial is to take the provided example, audio-scrubbing.pd to change the playback speed randomly every 100 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://puredata.info/" title="Pure Data">Pure Data (Pd)</a> is a real-time graphical programming environment based on Max/MSP. It uses patches to write audio, video and graphical programs and can be used for computational arts.</p>
<p><span id="more-27"></span></p>
<p>The aim of the week 6 KKB210: Computational Arts 1 tutorial is to take the provided example, audio-scrubbing.pd to change the playback speed randomly every 100 milliseconds. I had a lot of trouble with this, not because it is difficult to do, but because I could not get it to run stably on my own computer.</p>
<p>Pd crashes on my computer at varying intervals and there does not seem to be any relation between any of the crashes. Since I won&#8217;t be able to work on this on my own computer, and only on the lab computers, I have decided I definitely won&#8217;t be using this for my three main works for assignment 3.</p>
<p>Whilst working on this exercise in the lab, I found that Pd was quite simple to use, though, after working in <a href="http://matthewbrown.net.au/software/introduction-to-quartz-composer/" title="Introduction to Quartz Composer">Quartz Composer</a> in the following tutorial, Quartz is definitely a nicer patching program to use, though I am not sure how they compare as far as limitations go.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/programming/introduction-to-pure-data-pd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to Flex</title>
		<link>http://matthewbrown.net.au/programming/introduction-to-flex/</link>
		<comments>http://matthewbrown.net.au/programming/introduction-to-flex/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 22:55:22 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[computational arts]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[kkb210]]></category>
		<category><![CDATA[MXML]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/programming/introduction-to-flex/</guid>
		<description><![CDATA[Adobe Flex is similar to Flash in that both of them use the same graphics engine and they both allow you to use Actionscript. However, Flex is free, open source, and is written using MXML. It consists of Actionscrupt libraries that give access to the Flash drawing engine and a compiler, however, rather than compiling [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.adobe.com/products/flex/" title="Adobe Flex">Adobe Flex</a> is similar to Flash in that both of them use the same graphics engine and they both allow you to use Actionscript.</p>
<p>However, Flex is free, open source, and is written using MXML. It consists of Actionscrupt libraries that give access to the Flash drawing engine and a compiler, however, rather than compiling through the development environment such as in flash, it is done via the command line. Flash is also based more around the time line than Flex.</p>
<p>Flex has similarities to HTML and to my understanding is based on XML, so most of it seems fairly easy to read to me. The Actionscript files are virtually the same as the appearance of the Actionscript files you would use in Flash.</p>
<p><span id="more-25"></span></p>
<p>The exercise in the KKB210: Computational Arts 1 week 5 tutorial is based around a &#8220;Moon Buggy&#8221; and making it jump. We were provided with the basis of it with an Actionscript file, an mxml file and a swf file of what the final solution should look like.</p>
<p>Initially, the buggy moves across the screen, what we have to do though is to make it jump whenever the user clicks with the mouse.</p>
<p>The <a href="http://livedocs.adobe.com/flex/3/langref/index.html" title="Flex Documentation">documentation on the Adobe site</a> is quite useful and explanatory, though it does take a bit of sifting to find what we need.</p>
<p>We didn&#8217;t need to make any changes to the mxml file, but the Actionscript was another story.</p>
<p>We end up with a Actionscript file that looks like this:</p>
<pre class="brush: java;">

package
{
import mx.core.UIComponent;
import flash.events.MouseEvent;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;

public class MoonPatrolGame extends UIComponent
{
private var backgroundLoader:Loader;
private var middlegroundLoader:Loader;
private var foregroundLoader:Loader;
private var buggyLoader:Loader;
private var verticalSpeed:int;
private var groundLevel:int;

public function MoonPatrolGame() {

// Call the constructor for the superclass UIComponent
super();

// Load the images for the buggy, the foreground, midddleground and background
backgroundLoader = new Loader();
middlegroundLoader = new Loader();
foregroundLoader = new Loader();
buggyLoader = new Loader();
backgroundLoader.load(new URLRequest(&quot;.uploads/flex/MoonPatrolSimple/img/background.png&quot;));
middlegroundLoader.load(new URLRequest(&quot;.uploads/flex/MoonPatrolSimple/img/middleground.png&quot;));
foregroundLoader.load(new URLRequest(&quot;.uploads/flex/MoonPatrolSimple/img/foreground.png&quot;));
buggyLoader.load(new URLRequest(&quot;.uploads/flex/MoonPatrolSimple/img/buggy.png&quot;));

}

public function initialiseGame():void {

// buggy is at groundLevel
buggyLoader.y = 375;

// The buggy stays in the centre
buggyLoader.x = (width / 2) - (buggyLoader.content.width / 2);

// We want to update every frame so we add a listener for ENTER_FRAME events
addEventListener(Event.ENTER_FRAME, drawGame);

// Check for a mouse click
addEventListener(MouseEvent.CLICK, clickCallback);

// Add the background, middleground, foreground and buggy objects to the display list
addChild(backgroundLoader);
addChild(middlegroundLoader);
addChild(foregroundLoader);
addChild(buggyLoader);

// These variables are for making the buggy jump up in the air
verticalSpeed = 0;         // this is the rate at which the buggy is moving upwards (in pixels per frame)
groundLevel = 375;        // this is the y-value of the ground level
}

public function drawGame(event:Event):void {

// Move the background, middleground and foreground at different rates
backgroundLoader.x = backgroundLoader.x - 1;
middlegroundLoader.x = middlegroundLoader.x - 2;
foregroundLoader.x = foregroundLoader.x - 4;

// This makes the the buggy move up and down according to it's vertical speed
if (buggyLoader.y &gt; groundLevel) {
buggyLoader.y = groundLevel;
verticalSpeed = 0;
}
buggyLoader.y = buggyLoader.y - verticalSpeed;
verticalSpeed = verticalSpeed - 1;
}

// This gets called when the mouse is clicked
public function clickCallback(event:MouseEvent):void {
buggyLoader.y = groundLevel - 1;
verticalSpeed = 20;
}

}
}
</pre>
<p>To see it in action, have a look at <a href="http://matthewbrown.net.au/uploads/flex/MoonPatrolSimple/MoonPatrol.swf" title="Flex MoonPatrol SWF">the .SWF here</a>. The <a href="http://matthewbrown.net.au/uploads/flex/MoonPatrolSimple/MoonPatrol.mxml" title="Flex MoonPatrol MXML">.mxml is available here</a>, and the <a href="http://matthewbrown.net.au/uploads/flex/MoonPatrolSimple/MoonPatrolGame.as" title="Flex MoonPatrol Actionscript">.as is available here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/programming/introduction-to-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Complicated Patching in Quartz Composer</title>
		<link>http://matthewbrown.net.au/software/more-complicated-patching-in-quartz-composer/</link>
		<comments>http://matthewbrown.net.au/software/more-complicated-patching-in-quartz-composer/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 21:10:35 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[computational arts]]></category>
		<category><![CDATA[kkb210]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Marilyn]]></category>
		<category><![CDATA[Quartz Composer]]></category>

		<guid isPermaLink="false">http://matthewbrown.net.au/software/more-complicated-patching-in-quartz-composer/</guid>
		<description><![CDATA[The second exercise of the week 7 KKB210: Computational Arts 1 tutorial was to have a look at a couple of files, cube-marilyn.qtz and 5-marilyn.qtz and effectively combine the two. The first file, cube-marilyn.qtz has a rotating cube, with a single Marilyn image on each side similar to what we had to make in the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://matthewbrown.net.au/wp-content/uploads/2008/05/marilyn-cube.png" title="The root macro patch for the rotating Marilyn Cube in Quartz Composer."><img src="http://matthewbrown.net.au/wp-content/uploads/2008/05/marilyn-cube.thumbnail.png" alt="The root macro patch for the rotating Marilyn Cube in Quartz Composer." class="alignright" /></a>The second exercise of the week 7 KKB210: Computational Arts 1 tutorial was to have a look at a couple of files, <a href="http://www.matthewbrown.net.au/uploads/quartz/marilyn/cube-marilyn.qtz" title="Rotating cube in Quartz Composer">cube-marilyn.qtz</a> and <a href="http://www.matthewbrown.net.au/uploads/quartz/marilyn/5-marilyn.qtz" title="Filtered Marilyn image in Quartz Composer">5-marilyn.qtz</a> and effectively combine the two. The first file, cube-marilyn.qtz has a rotating cube, with a single Marilyn image on each side similar to what we had to make in <a href="http://matthewbrown.net.au/design/introduction-to-quartz-composer/" title="Introduction to Quartz Composer.">the first exercise</a>, except that it has two extra interpolations, so it now has one for each axis that it can rotate on. It also has a different duration on each axis, so it creates the appearance of changing speed. The second file, 5-marilyn.qtz contains a grid of four Marilyn images. They are all the same original image, but each of the four runs variations of exposure adjustments, gamma adjustments, alpha masks, colour inverts and other effects.</p>
<p><span id="more-22"></span></p>
<p><a href="http://matthewbrown.net.au/wp-content/uploads/2008/05/marilyn-cube-patch.png" title="Render in Image macro patch in Quartz Composer for the rotating Marilyn cube."><img src="http://matthewbrown.net.au/wp-content/uploads/2008/05/marilyn-cube-patch.thumbnail.png" alt="Render in Image macro patch in Quartz Composer for the rotating Marilyn cube." class="alignright" /></a>Now, the actual exercise is to  take the image variations from the grid of the second file and apply them to each side of the rotating cube in the first. So each side of it will have the same four images with all of the effects and so on applied to them.</p>
<p>For me, rather than playing around with it, the best way to do this was to look at how each of the images had been done on the second file and then apply the same things to the images on the cube. It could easily enough be done using different effects on each side as well as each image, by duplicating the &#8220;Render in Image&#8221; patch a few times and applying each one to a different side (rather than the same one to each side), and then editing the image effects for each one individually.</p>
<p>The full size screenshots of the macro patches are available by clicking the above thumbnails. The <a href="http://www.matthewbrown.net.au/uploads/quartz/marilyn/cube-marilyn-done.qtz" title="Rotating Marilyn Cube in Quartz Composer.">.qtz file is available here</a>, and the <a href="http://www.matthewbrown.net.au/uploads/quartz/marilyn/cube-marilyn-done.mov" title="Rotating Marilyn Cube Quicktime Movie.">Quicktime movie is available here</a>. There is one thing not shown in the above screenshots. When you double click the Render in Image patch, it takes you to four Macro Patches. These patches are the ones that contain the information in the second screenshot above. Each one of them applies to a different image in the grid.</p>
]]></content:encoded>
			<wfw:commentRss>http://matthewbrown.net.au/software/more-complicated-patching-in-quartz-composer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.matthewbrown.net.au/uploads/quartz/marilyn/cube-marilyn-done.mov" length="241913" type="video/quicktime" />
		</item>
	</channel>
</rss>
