<?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>Alex McLean &#187; music</title>
	<atom:link href="http://yaxu.org/category/music/feed/" rel="self" type="application/rss+xml" />
	<link>http://yaxu.org</link>
	<description>Making music with text</description>
	<lastBuildDate>Thu, 19 Aug 2010 21:23:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Pure dyne</title>
		<link>http://yaxu.org/puredyn/</link>
		<comments>http://yaxu.org/puredyn/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 09:39:02 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[livecoding]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[supercollider]]></category>

		<guid isPermaLink="false">http://yaxu.org/?p=395</guid>
		<description><![CDATA[I&#8217;ve been through a few linux distros over the years, neatly getting progressively easier to install and configure as I get less willing to spend time recompiling kernels, culminating in ubuntu, enjoying the attention to detail and simplicity of use.  Recently though, I&#8217;ve had to give ubuntu up and go back upstream to the rather [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://yaxu.org/wp-content/uploads/2010/01/header.png"><img class="alignnone size-full wp-image-396" title="puredyne" src="http://yaxu.org/wp-content/uploads/2010/01/header.png" alt="" width="393" height="141" /></a></p>
<p>I&#8217;ve been through a few linux distros over the years, neatly getting progressively easier to install and configure as I get less willing to spend time recompiling kernels, culminating in ubuntu, enjoying the attention to detail and simplicity of use.  Recently though, I&#8217;ve had to give ubuntu up and go back upstream to the rather higher maintenance Debian again.  Linux suffers from creeping featurism in its layers of audio APIs, it started with OSS, a straightforward API based on files, then came ALSA, a wildly complex API with broken documentation in a wiki you can&#8217;t edit, and an architecture that somehow means only one OSS application can write sound at a time.  It seems to me that it&#8217;s a failing of ALSA that further layers of abstraction are piled on top of it, creating a <a href="http://0pointer.de/blog/projects/guide-to-sound-apis.html">rather complex landscape</a> for sound hackers to navigate.</p>
<p>Ubuntu has joined in the fun by shipping with <a href="https://wiki.ubuntu.com/PulseAudio">PulseAudio</a>, which is probably great for general users but a pain for those needing to work with audio on a low level without using loads of CPU.  Pulse is not straightforward to remove, and when I removed it had problems with volume controls not working, and the likelihood that future system upgrades wouldn&#8217;t work so well.  That&#8217;s why I switched to <a href="http://www.sidux.com/">debian sidux</a>, but then I couldn&#8217;t get laptop hibernation, or my firewire sound card working, and had the stress of maintaining an unstable distribution.</p>
<p>However this week <a href="http://puredyne.goto10.org/download.html">Puredyne carrot and coriander</a> came out, and it&#8217;s really great.  The kernel is optimised for realtime sound, and jack audio runs solidly without any drop outs, something I haven&#8217;t seen before.  My firewire sound works reliably, better than I managed under ubuntu.  It has a really nice logo and clean look, with no plump penguins in sight.  It comes with all the best a/v software beautifully packaged, including all the live coding languages.  The people behind it are super friendly and helpful.  It&#8217;s downstream from ubuntu, so all the software is available.  It&#8217;s a dream!</p>
<p>They make a big deal out of it being good for booting off a USB key, and I think have worked out some nice practicalities of working that way.  This makes it great for doing workshops and running linux in a non-linux lab etc.  It installs and works just as nicely on a permanent hard drive though, and that&#8217;s what I&#8217;ve done.</p>
<p>Anyway, heartily recommended, a dream come true, congratulations to all those involved.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/puredyn/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Acid sketching</title>
		<link>http://yaxu.org/acid-sketching/</link>
		<comments>http://yaxu.org/acid-sketching/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 00:00:42 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[music]]></category>
		<category><![CDATA[openframeworks]]></category>
		<category><![CDATA[visualisation]]></category>

		<guid isPermaLink="false">http://yaxu.org/?p=347</guid>
		<description><![CDATA[I&#8217;ve been thinking about visual languages and the morphology of symbols (as opposed to words) for a while. I had the opportunity to start putting some of these ideas into code at a really excellent openframeworks workshop this week, run by Joel Gethin Lewis and Arturo Castro. Here&#8217;s what it does: Makes the point nicely [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking about visual languages and the morphology of symbols (as opposed to words) for a while.  I had the opportunity to start putting some of these ideas into code at a really excellent <a href="http://wiki.openframeworks.cc/index.php?title=OF%C2%A0Goldsmiths">openframeworks workshop</a> this week, run by <a href="http://www.joelgethinlewis.com/">Joel Gethin Lewis</a> and <a href="http://arturocastro.net/">Arturo Castro</a>.</p>
<p>Here&#8217;s what it does:</p>
<p><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7492566&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7492566&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object></p>
<p>Makes the point nicely that symbols and spaces can intertwine.</p>
<p>Using opencv blob detection, the regularity, direction and area of the shapes map to envelope modulation, resonance and pitch.  The drawing is then sequenced into a melody using the minimum spanning tree (from the boost library) of the shape centroids, where distance maps to inter-onset interval.</p>
<p>It also has a mode for projecting the red circles and highlights back on the drawing surface which worked well.</p>
<p>This is only the second thing I&#8217;ve made with openframeworks, and while I don&#8217;t really get on with the codeblocks editor recommended for linux, I&#8217;m impressed with how accessible it makes opencv and all that.</p>
<p>Update: <a href="http://doc.gold.ac.uk/~ma503am/software/cycle.zip">sourcecode</a></p>
]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/acid-sketching/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Saturday night stream</title>
		<link>http://yaxu.org/saturday-night-stream/</link>
		<comments>http://yaxu.org/saturday-night-stream/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 21:52:38 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[events]]></category>
		<category><![CDATA[haskell]]></category>
		<category><![CDATA[livecoding]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://yaxu.org/?p=133</guid>
		<description><![CDATA[I&#8217;m going to do a live a/v stream from my sofa 10pm GMT this Saturday 13th December &#8217;08, livecoding with Perl and hopefully also a little language parsed with Haskell.  You can find info about how to watch, listen to the stream and join the chat over on the toplap site. I did something similar [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going to do a live a/v stream from my sofa 10pm GMT this Saturday 13th December &#8217;08, livecoding with Perl and hopefully also a little language parsed with Haskell.  You can find info about how to watch, listen to the stream and join the chat <a href="http://toplap.org/index.php/ToplapStreams">over on the toplap site</a>.</p>
<p>I did something similar last weekend, a remote performance to the <a href="http://www.piksel.no/">Piksel festival</a> in Norway, and I enjoyed it so much I had to repeat it.  Hopefully it&#8217;ll become a regular thing, <a href="http://www.yeeking.net/">yeeking</a> has already offered to do the next one.</p>
<p>I&#8217;m doing the streaming with gstreamer, I don&#8217;t know if it&#8217;s possible to do live screencasts in this way with anything else and it offers a huge amount of control.  I reached the limits of gst-launch so have written a little gstreamer app to use for this weekend.  I&#8217;ll be releasing that soon&#8230;</p>
<p>Another thing &#8211; it&#8217;s the xmas <a href="http://dorkbotlondon.org/event/dorkmas-2008/">dorkboteastlondon</a> tomorrow (thurs) and one of our best line-ups ever.  Unmissable if you&#8217;re in around&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/saturday-night-stream/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dorkcamp and new demo</title>
		<link>http://yaxu.org/dorkcamp-and-new-demo/</link>
		<comments>http://yaxu.org/dorkcamp-and-new-demo/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 09:29:34 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[events]]></category>
		<category><![CDATA[livecoding]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[vocable]]></category>

		<guid isPermaLink="false">http://doc.gold.ac.uk/~ma503am/alex/?p=85</guid>
		<description><![CDATA[Two posts rolled in to one, to annoy the aggregators a bit less (sorry haskellers, more haskell stuff soon). First, dorkcamp is a lovely event in its third year.  The idea is for around 60 of us to go to a campsite an hour out of London, well equipped with showers, toilets, a big kitchen [...]]]></description>
			<content:encoded><![CDATA[<p>Two posts rolled in to one, to annoy the aggregators a bit less (sorry haskellers, more haskell stuff soon).</p>
<p>First, <a href="http://dorkbotlondon.org/camp08/">dorkcamp</a> is a lovely event in its third year.  The idea is for around 60 of us to go to a campsite an hour out of London, well equipped with showers, toilets, a big kitchen and hall, and do fun dorky stuff like soldering and knitting.  It happens at the end of August, tickets are running low so grab yours now.  More info on <a href="http://dorkbotlondon.org/camp08/">the website</a> and <a href="http://dorkbotlondon.org/wiki/index.php/DorkCamp08">wiki</a>.</p>
<p>Second here&#8217;s a new demo, this time with two drum simulations, one high and one low:</p>
<p><embed src="http://blip.tv/play/AcezNI6_Zg" type="application/x-shockwave-flash" width="700" height="275" allowscriptaccess="always" allowfullscreen="true"></embed> </p>
]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/dorkcamp-and-new-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The physical modelling of drums using digital waveguides</title>
		<link>http://yaxu.org/the-physical-modelling-of-drums-using-digital-waveguides/</link>
		<comments>http://yaxu.org/the-physical-modelling-of-drums-using-digital-waveguides/#comments</comments>
		<pubDate>Wed, 07 May 2008 14:26:55 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[music]]></category>
		<category><![CDATA[supercollider]]></category>

		<guid isPermaLink="false">http://doc.gold.ac.uk/~ma503am/alex/the-physical-modelling-of-drums-using-digital-waveguides/</guid>
		<description><![CDATA[Joel Laird completed a fine PhD thesis on physical modelling drums in 2001, which included C++ sourcecode for an accurate model of a drum and a felt mallet for hitting it with.  I&#8217;ve been in contact with Joel and am very happy to have prompted him to license the source under the GPL. A .tar.gz [...]]]></description>
			<content:encoded><![CDATA[<p>Joel Laird completed a fine PhD thesis on physical modelling drums in 2001, which included C++ sourcecode for an accurate model of a drum and a felt mallet for hitting it with.  I&#8217;ve been in contact with Joel and am very happy to have prompted him to license the source under the GPL.</p>
<p>A .tar.gz file including some windows demo programs and the (Borland) C++ source is <a href="http://doc.gold.ac.uk/~ma503am/references/laird2001.tar.gz">here</a>.  I hope to make some time to translate some of it into realtime supercollider unit generators soon&#8230;</p>
<p>Thanks, Joel!</p>
<p><span style="font-weight: bold">*update*</span></p>
<p>I ported it to GNU C++, a version with my edits is available <a href="http://yaxu.org/darcs/laird/laird.tar.gz">here</a>.  There&#8217;s also a <a href="http://yaxu.org/darcs/laird/">darcs repository</a> &#8212; patches very welcome!</p>
]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/the-physical-modelling-of-drums-using-digital-waveguides/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Rhythm space</title>
		<link>http://yaxu.org/rhythm-space/</link>
		<comments>http://yaxu.org/rhythm-space/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 10:17:26 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[music]]></category>
		<category><![CDATA[visualisation]]></category>

		<guid isPermaLink="false">http://doc.gold.ac.uk/~ma503am/alex/rhythm-space/</guid>
		<description><![CDATA[I&#8217;m working with Jamie Forth on ideas around spaces of rhythm. Here&#8217;s a demo (which might not work in feed readers): [kml_flashembed movie="http://doc.gold.ac.uk/~ma503am/software/space/audio.swf" height="300" width="400" bgcolor="#000000" /] The space has two quality dimensions, &#8220;intensity&#8221; (X) and &#8220;disorder&#8221; (Y). Drum patterns are arranged along these dimensions, so more intense ones are towards the left and more [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working with Jamie Forth on ideas around spaces of rhythm.  Here&#8217;s a demo (which might not work in feed readers):</p>
<p>[kml_flashembed movie="http://doc.gold.ac.uk/~ma503am/software/space/audio.swf" height="300" width="400" bgcolor="#000000" /]</p>
<p>The space has two quality dimensions, &#8220;intensity&#8221; (X) and &#8220;disorder&#8221; (Y).  Drum patterns are arranged along these dimensions, so more intense ones are towards the left and more ordered ones towards the top.</p>
<p>Draw a line from a high hat to a kick drum.  If you draw a short line the rhythms will be more homogenous.   Certain angles have certain feels to them.  Maybe.  It seems a nice way of playing with polymetric rhythms as vectors anyway.</p>
<p>The demo by the way is coded in <a href="http://haxe.org/">haxe</a> and compiled to flash.  The source code is <a href="http://doc.gold.ac.uk/~ma503am/software/space/Audio.hx">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/rhythm-space/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Following your imagination</title>
		<link>http://yaxu.org/following-your-imagination/</link>
		<comments>http://yaxu.org/following-your-imagination/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 15:09:30 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[livecoding]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://doc.gold.ac.uk/~ma503am/alex/following-your-imagination/</guid>
		<description><![CDATA[This entertaining article supporting test-first development has been playing on my mind. The article is beautifully written so it is easy to see the assumed context of working to deadline on well specified problems, most probably in a commercial environment. It saddens me though that we accept this implicit context across all discussion of software [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lispcast.com/2008/01/6-reasons-to-develop-your-tests-first/">This entertaining article</a> supporting test-first development has been playing on my mind.  The article is beautifully written so it is easy to see the assumed context of working to deadline on well specified problems, most probably in a commercial environment.  It saddens me though that we accept this implicit context across all discussion of software development practice all too easily.</p>
<p>Here&#8217;s a nice illustration from the article, which appears under the heading &#8220;Prevent imagination overrun&#8221;.</p>
<p><a href="http://www.lispcast.com/2008/01/6-reasons-to-develop-your-tests-first/" title="unit-test-graph.png"><img src="http://doc.gold.ac.uk/%7Ema503am/alex/wp-content/uploads/2008/01/unit-test-graph.png" alt="unit-test-graph.png" border="0" /></a><br />
<small><em>Diagram © lispcast, some rights reserved</em></small></p>
<p>So there is a fairly clear reason <em>not</em> to write any tests for your code &#8212; you will take in more of the problem domain without such directive constraints. What you are left with will be the result of many varied transformations, and be richer as a result. You might argue that this is undesirable if you are coding a stock control  system to a tight deadline. If you instead take the example of writing some code to generate a piece of music, then you should see my point.  The implicit commercial context does not apply when you are representing artistic rather than business processes as code.</p>
<p>In fact this notional straight line is impossible in many creative tasks &#8212; there is no definable end goal to head towards.  A musician is often compelled to begin composing by the spark of a musical idea, but after many iterations that idea may be absent from the end result.  If they are scoring their piece using a programming language, then there would be no use in formalising this inspirational spark in the form of a test, even if it were even possible to do so.</p>
<p>What this boils down to is the difference between programming to a design, and design while programming.  Code is a creative medium for me, and the code is where I want my hands to be while I am making the hundreds of creative decisions that go into making something new.  That is, I want to <a href="http://toplap.org/">define the problem while I am working on it</a>.</p>
<p>While <a href="http://citeseer.ist.psu.edu/blackwell05programming.html" title="The Programming Language as a Musical Instrument">&#8220;end user programming&#8221; in artistic domains</a> such as video and music becomes more commonplace and widely understood, then perhaps we will see more discussion about non-goal driven development.  After all artist-programmers are to some extent forced to reflect upon their creative processes, in order to externalise them as computer programs.  Perhaps this gives a rare opportunity for the magic of creative processes to be gazed upon and shared, rather than jealously guarded for fear that it may escape.</p>
<p><em><a href="http://creativecommons.org/licenses/by-sa/3.0/">This post is distributed under the attribution share-alike cc license</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/following-your-imagination/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Textual patching</title>
		<link>http://yaxu.org/textual-patching/</link>
		<comments>http://yaxu.org/textual-patching/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 15:30:15 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[music]]></category>
		<category><![CDATA[visualisation]]></category>

		<guid isPermaLink="false">http://doc.gold.ac.uk/~ma503am/alex/textual-patching/</guid>
		<description><![CDATA[I wrote a perl script that allows you to compose puredata patches in a text editor. You define the patch using ASCII art like this: &#160;&#160;&#160;&#160;*------------------------* &#160;&#160;&#160;&#160;&#124;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.--------.&#160;&#160;&#160;&#160;\ &#160;&#160;.-x--------.&#160;&#160;&#124;&#160;osc~&#160;5&#160;&#124;&#160;&#160;&#160;&#160;&#160;* &#160;&#160;&#124;&#160;osc~&#160;500&#160;&#124;&#160;&#160;`-x------'&#160;&#160;&#160;&#160;&#160;&#124; &#160;&#160;`-x--------'&#160;&#160;&#160;&#160;&#124;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#124; &#160;&#160;&#160;&#160;&#124;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.-x------.&#160;&#160;&#160;&#160;&#160;&#124; &#160;&#160;&#160;&#160;&#124;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#124;&#160;*~&#160;300&#160;&#124;&#160;&#160;&#160;&#160;&#160;&#124; &#160;&#160;&#160;&#160;&#124;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;`-x------'&#160;&#160;&#160;&#160;&#160;&#124; &#160;&#160;&#160;&#160;*---*&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#124;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#124; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#124;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*------------* &#160;&#160;&#160;&#160;&#160;&#160;.-x------. &#160;&#160;&#160;&#160;&#160;&#160;&#124;&#160;*~&#160;0.2&#160;&#124; &#160;&#160;&#160;&#160;&#160;&#160;`-x------' &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#124; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;* &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#124;\ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#124;&#160;* &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#124;&#160;&#124; &#160;&#160;&#160;&#160;&#160;&#160;.-x-x--. &#160;&#160;&#160;&#160;&#160;&#160;&#124;&#160;dac~&#160;&#124; &#160;&#160;&#160;&#160;&#160;&#160;`------' Then run the Perl script over it to produce [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote a perl script that allows you to compose <a href="http://puredata.info/">puredata</a> patches in a text editor.  You define the patch using ASCII art like this:</p>
<p><code><br />
&nbsp;&nbsp;&nbsp;&nbsp;*------------------------*<br />
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.--------.&nbsp;&nbsp;&nbsp;&nbsp;\<br />
&nbsp;&nbsp;.-x--------.&nbsp;&nbsp;|&nbsp;osc~&nbsp;5&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
&nbsp;&nbsp;|&nbsp;osc~&nbsp;500&nbsp;|&nbsp;&nbsp;`-x------'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />
&nbsp;&nbsp;`-x--------'&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.-x------.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;*~&nbsp;300&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`-x------'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;*---*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*------------*<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.-x------.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;*~&nbsp;0.2&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`-x------'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|\<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;*<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.-x-x--.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;dac~&nbsp;|<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;`------'<br />
</code></p>
<p>Then run the Perl script over it to produce a .pd file, that you can then load into puredata to get this:</p>
<p><img src="http://doc.gold.ac.uk/%7Ema503am/alex/wp-content/uploads/2008/01/patch.png" alt="patch.png" /></p>
<p>The ASCII syntax basically allows you to define pd objects and connect them together. Layout is preserved.  Much like in ghostbusters, you can&#8217;t cross the lines, and there isn&#8217;t syntax for different box types (messages and numbers).  Fixing this would be short work, but I ran out of train journey :)</p>
<p>There is a particular syntax for drawing the lines.  You use <strong>-</strong> for going left and right, <strong>|</strong> for going up and down and <strong>\</strong> and <strong>/</strong> for going diagonally.  To change direction or fork a wire you have to place a <strong>*</strong> .  Mark inlets and outlets with<strong> x</strong> .</p>
<p>I think this shows nicely how there is no real difference between patching and coding.  Shades of pixels are an alphabet, anything can be a program if you define a suitable interpreter to go with it.</p>
<p>Sadly you can&#8217;t do live patching with this, but perhaps this could be a starting point for thinking about more interesting ways of programming with text.</p>
<p>If you are curious you can <a href="/~ma503am/software/textual-pd.tar.gz">download the script (and patch) here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/textual-patching/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MSc Thesis: Improvising with Synthesised Vocables, with Analysis Towards Computational Creativity</title>
		<link>http://yaxu.org/msc-thesis/</link>
		<comments>http://yaxu.org/msc-thesis/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 13:54:25 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[livecoding]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[papers]]></category>
		<category><![CDATA[vocable]]></category>

		<guid isPermaLink="false">http://doc.gold.ac.uk/~ma503am/alex/msc-thesis-improvising-with-synthesised-vocables-with-analysis-towards-computational-creativity/</guid>
		<description><![CDATA[My MSc thesis is here. The reader may find many loose ends, which may well get tied up through my PhD research. Abstract: In the context of the live coding of music and computational creativity, literature examining perceptual relationships between text, speech and instrumental sounds are surveyed, including the use of vocable words in music. [...]]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://doc.gold.ac.uk/~ma503am/writing/alex-mclean-msc.pdf" title="Improvising with Synthesised Vocables, with analysis towards Computational Creativity">MSc thesis is here</a>.  The reader may find many loose ends, which may well get tied up through my PhD research.</p>
<p>Abstract:<br />
<em>In the context of the live coding of music and computational creativity, literature examining perceptual relationships between text, speech and instrumental sounds are surveyed, including the use of vocable words in music. A system for improvising polymetric rhythms with vocable words is introduced, together with a working prototype for producing rhythmic continuations within the system. This is shown to be a promising direction for both text based music improvisation and research into creative agents.<br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/msc-thesis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More vocable synthesis</title>
		<link>http://yaxu.org/more-vocable-synthesis/</link>
		<comments>http://yaxu.org/more-vocable-synthesis/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 23:57:36 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[haskell]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[supercollider]]></category>
		<category><![CDATA[vocable]]></category>

		<guid isPermaLink="false">http://doc.gold.ac.uk/~ma503am/alex/more-vocable-synthesis/</guid>
		<description><![CDATA[Another screencast, a short one this time, which I&#8217;ve been using as a demo in talks.]]></description>
			<content:encoded><![CDATA[<p>Another screencast, a short one this time, which I&#8217;ve been using as a demo in talks.</p>
<p><embed src="http://video.google.com/googleplayer.swf?docId=-3320601834046742179&amp;hl=en" style="width: 400px; height: 326px" id="VideoPlayback" type="application/x-shockwave-flash"></embed></p>
]]></content:encoded>
			<wfw:commentRss>http://yaxu.org/more-vocable-synthesis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
