<?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>× ∃ ⌉ ∀ . c o m</title>
	<atom:link href="http://x37v.com/x37v/feed/" rel="self" type="application/rss+xml" />
	<link>http://x37v.com/x37v</link>
	<description></description>
	<lastBuildDate>Fri, 19 Feb 2010 01:20:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tathagata</title>
		<link>http://x37v.com/x37v/writing/tathagata/</link>
		<comments>http://x37v.com/x37v/writing/tathagata/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 01:09:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Writing]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Max]]></category>
		<category><![CDATA[music]]></category>

		<guid isPermaLink="false">http://x37v.com/x37v/?p=201</guid>
		<description><![CDATA[The base-chords and note progression that forms Tathagata is something that must have been going through Fredrik Thordendal&#8217;s head for some time.  This progression is something that has emerged at least 3 times in both Meshuggah and Fredrik&#8217;s solo work, and can be heard as the basis of Tathagata (Sol Niger Within, 1997; Sol Niger [...]]]></description>
			<content:encoded><![CDATA[<p style="margin: 0.0px 0.0px 0.0px 0.0px;">The base-chords and note progression that forms Tathagata is something that must have been going through Fredrik Thordendal&#8217;s head for some time.  This progression is something that has emerged at least 3 times in both Meshuggah and Fredrik&#8217;s solo work, and can be heard as the basis of <a href="http://www.amazon.com/Sol-Niger-Within-Version-3-33/dp/samples/B00000I40S/ref=dp_tracks_all_1#disc_1" target="_blank">Tathagata</a> <em>(Sol Niger Within, 1997; Sol Niger Within version 3.33, 1999)</em>, the close [3:50] of <a href="http://www.youtube.com/watch?v=MUnB2dUaJfM&amp;fmt=18" target="_blank">Sublevels</a> <em>(Destroy Erase Improve, 1995)</em> and the outro [9:06] of Fredrik&#8217;s <a href="http://www.youtube.com/watch?v=m2ZOL1FMt1I&amp;fmt=18" target="_blank">Secrets of the Unknown</a> demo.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px;">Tathagata is a beautiful track that seems to will the listener into innately feeling or predicting the next series of notes.  I was wondering why I felt this way about the track, until I sat down and started to score out the notes.  What emerged was a pattern, or a recursive, self-pitch-clipping algorithm.  (While it is a progression that continues to spiral upward, it has octave subtraction protection to stop it going on infinitely upward).  This is a very cool progression that, while it isn&#8217;t an auditory illusion, for some reason makes me think of a <a href="http://en.wikipedia.org/wiki/Shepard_tone" target="_blank">Shepard-Risset glissando</a>, <a href="http://swiki.hfbk-hamburg.de:8888/MusicTechnology/826" target="_blank">Risset&#8217;s rhythmic accelerando</a> auditory illusion, or Autechre&#8217;s <a href="http://bleep.com/index.php?page=release_details&amp;releaseid=21872" target="_blank">Fold4,Wrap5</a> <em>(LP5, 1998)</em>.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px;">At first, I thought the track progressed in measures of 5, with the notes being played on the 1, 2 and 3. <a href="http://www.cetenbaath.com/cb" target="_blank">Sarah</a> argues that each measure is divided into 16ths with stresses on 1, 4 and 7, which I now think is actually correct.</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px;">In lay terms, the track can be represented as such:</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;">
<p style="margin: 0px; padding-left: 30px;">The pattern progresses in a count of 16.</p>
<p style="margin: 0px; padding-left: 30px;">The &#8216;root&#8217; note starts at MIDI pitch 56, and adds 5 semitones after each loop.  If &#8216;root&#8217; exceeds 62 (or the initial &#8216;root&#8217; value + 6), then subtract 12.</p>
<p style="margin: 0px; padding-left: 30px;">
<p style="margin: 0px; padding-left: 30px;">&#8216;root&#8217; plays a chord (root, root + 7, root + 12 [they are transposed down an octave in the code below]) on the 1 that rings out over the course of the measure.</p>
<p style="margin: 0px; padding-left: 30px;">&#8216;note[1-3]&#8216; is the melodic progression of the plucked parts.  They play on positions 1, 4, and 7 respectively of the measure.</p>
<p style="margin: 0px; min-height: 14px; padding-left: 30px;">
<p style="margin: 0px; padding-left: 30px;">note[1] = root + 2</p>
<p style="margin: 0px; padding-left: 30px;">note[2] = root + 3</p>
<p style="margin: 0px; padding-left: 30px;">note[3] = root + 11</p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px;">
<p style="margin: 0.0px 0.0px 0.0px 0.0px;"><span style="text-decoration: underline;">One possible implementation of Tathagata for JS in Max<br />
</span></p>
<p style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px;">
<p><code> </code></p>
<pre>// Simple representation of pitches and key modulation in Fredrik Thordendal's Tathagata.
// Tathagata.js by Alex Mesker / alex@x37v.com / www.x37v.com
// Save as Tathagata.js and put it in your Max search path.</pre>
<pre style="margin: 0.0px 0.0px 0.0px 0.0px;">outlets = 2;</pre>
<pre style="margin: 0.0px 0.0px 0.0px 0.0px;">setoutletassist(0, "Melodic progression (MIDI pitch)");</pre>
<pre style="margin: 0.0px 0.0px 0.0px 0.0px;">setoutletassist(1, "Root chord note/s (MIDI pitch)");</pre>
<pre style="margin: 0.0px 0.0px 0.0px 0.0px;">var root = 56;</pre>
<pre style="margin: 0.0px 0.0px 0.0px 0.0px;">var cutoff = root + 6;</pre>
<pre style="margin: 0.0px 0.0px 0.0px 0.0px;">function msg_int(i) {</pre>
<pre style="padding-left: 30px; margin: 0px;">if (i==1) {</pre>
<pre style="padding-left: 60px; margin: 0px;">outlet(1, root-12);</pre>
<pre style="padding-left: 60px; margin: 0px;">outlet(1, root-5);</pre>
<pre style="padding-left: 60px; margin: 0px;">outlet(1, root);</pre>
<pre style="padding-left: 60px; margin: 0px;">outlet(0, root+14);</pre>
<pre style="padding-left: 30px; margin: 0px;">} else if (i==4) {</pre>
<pre style="padding-left: 60px; margin: 0px;">outlet(0, root+15);</pre>
<pre style="padding-left: 30px; margin: 0px;">} else if (i==7) {</pre>
<pre style="padding-left: 60px; margin: 0px;">outlet(0, root+23);</pre>
<pre style="padding-left: 60px; margin: 0px;">root += 5;</pre>
<pre style="padding-left: 60px; margin: 0px;">if (root &gt; cutoff) {</pre>
<pre style="padding-left: 90px; margin: 0px;">root -= 12;</pre>
<pre style="padding-left: 60px; margin: 0px;">}</pre>
<pre style="padding-left: 30px; margin: 0px;">}</pre>
<pre style="margin: 0.0px 0.0px 0.0px 0.0px;">}</pre>
<p>Save the above JavaScript as <a href="http://x37v.com/x37v/wp-content/uploads/2010/02/Tathagata.js" target="_blank">Tathagata.js</a> and put it in your Max search path.</p>
<p>A Max patch that uses it can be downloaded here:</p>
<pre><code>
----------begin_max5_patcher----------
1034.3oc0YtzbaBCDG+r8mBMb1MC5EO5jKc54dqSuzloCATrIEPd.4ooMS9t
WP.wOBTDBaYxgPRDfz+8m1c0hzyKWXcO+IVgE3ifuCVr34kKVHappgEM++Bq
zfmBSBJjOlUJqnHXMyZU88DrmDx1QXZaaayYErLQfHlm8ybVnnt+gT3M1q.X
mpq1MW.207RY6RiyRXB4nfZ6o.Q3l3r0G0KxWkhj8E5F5J.z639guSz1QvlV
iijhje+ie.ha04C7LQVPJSdqOkGGjzdm5dP7msr5A0x509u5kJh+q7FvRQT0
5KKWVcYkhHLjmlVxm2fvuvR3Qwg+H6a73vWIbRbFKjuKSbDX5FwXBsBKHj2v
LF1OiadeHVNgQIRTS5Ex1c.Y3vP9BRxOugmGoBGUkHXa3ADg3Odh3YDfjw9c
4f8Fdb6s.h0HCzv1R+GBQ9Kbsik8XhzvtZDoEWMAc2EmH4fhsLVTmPwdXnXK
CPpSnMRn3bsS+zCQJ9ODANX9XnsqjH3AHRGQF6W33hFZz6BWtiMx.gHSaIHL
7Z6CzKL7GML7mHL1Ojyr.hDdPz8AYqsF8pmRh.kIGbrGeJBjN4MkJ8rRkco2
yx0z3cqyFLjwi5v3oZtnwpKAC51yX65Ji..0LwQStRG33yUhbLSYD5M26O04
dx6l4djl4ImxbO7ZVBYZvuXYbAqracAXWpcm..2O.7jqPPbq+zBn63cOf5rR
wCkowkNH0+gA7PlLoP1SGUtuKPUEl5OZZXDQgd5FMActlQSsFNTunHJjpscS
ul1cAKAXO1Tmv5O9D5Q1u+QiKbfpaAUqN2kZVjDG0yJqnAc2QT4FO3ViCeuw
f.xPKfdzGdmxipMSyYidS1DQlyD0p9nZKrwMVq5iPyo5iNhAkDHNcWpr+bza
KDlPci1y+5Fka8HKGXCff8q8bDhnC55Tu8t9dCfHRGo8m.hZ+4bu0bB950IL
8hhH0AQdsWU+qq8GXqGOiEBxD4bvAGLx3RE19oBZryqyiMPnap7XA3qAhMAq
CDA27XgdS+HjrzGOMJMVqi+Ykg1+svDVf1UGfP6SfNt8f6hsmzxmQdzKmbHi
Rynp8igTAeWdX6HztWXf8VRDqPDmIO1qCdnpiz6fGZSbTDK6v5eSii1xKCua
DQOA4ppoSFtt0T0ZRFTSUkFLnlLKl7UPQtFUQJ4KY34MaEoDzbt2pHoS72tz
ZRoHNiqH3.JhXTE4n.ileJxryZTETjiYWLoJZCMfjnFURDURSZ1L2PkRc6Xd
MAUQSlK2MRk4tpCRvjbRkBAfTyqInJZxfycpjbBYVebUpp7j42KtjTIU.ZFp
IrYC6NY35gSlMrCoRp.DY9UAN1rbBqRkSXytDL1U0xBPyLM4OAMU9Our7ez3
5PsB
-----------end_max5_patcher-----------
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://x37v.com/x37v/writing/tathagata/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSynC-lite v0.3.1 for Windows</title>
		<link>http://x37v.com/x37v/writing/osync-for-windows/</link>
		<comments>http://x37v.com/x37v/writing/osync-for-windows/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 02:05:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://x37v.com/x37v/?p=187</guid>
		<description><![CDATA[An experimental version of OSynC has been built for Windows.  This release fixes a bug in 0.3
http://x37v.com/x37v/osync/
Let me know if it works or not.
alex at x37v dot com
Version 0.4 will be out shortly, which improves message order &#8211; 0.3.1 is a bugfix for Windows.
]]></description>
			<content:encoded><![CDATA[<p>An experimental version of OSynC has been built for Windows.  This release fixes a bug in 0.3</p>
<p><a href="http://x37v.com/x37v/osync/">http://x37v.com/x37v/osync/</a></p>
<p>Let me know if it works or not.</p>
<p>alex at x37v dot com</p>
<p>Version 0.4 will be out shortly, which improves message order &#8211; 0.3.1 is a bugfix for Windows.</p>
]]></content:encoded>
			<wfw:commentRss>http://x37v.com/x37v/writing/osync-for-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSynC-lite Update to v0.3</title>
		<link>http://x37v.com/x37v/writing/osync-lite-v03-update/</link>
		<comments>http://x37v.com/x37v/writing/osync-lite-v03-update/#comments</comments>
		<pubDate>Mon, 25 May 2009 13:13:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Writing]]></category>
		<category><![CDATA[Max]]></category>
		<category><![CDATA[osc]]></category>
		<category><![CDATA[OSynC]]></category>
		<category><![CDATA[synchronisation]]></category>
		<category><![CDATA[vst plugin]]></category>

		<guid isPermaLink="false">http://x37v.com/x37v/?p=172</guid>
		<description><![CDATA[OSynC-lite.vst has been updated to send some extra info from your host sequencer (ramping from 0. to 1. over the course of each bar) and also now gates output when the host is stopped (information would be sent if the playhead was moved while stopped).
Version 0.3 is available here:
http://www.x37v.com/x37v/osync/
]]></description>
			<content:encoded><![CDATA[<p><em>OSynC-lite.vst</em> has been updated to send some extra info from your host sequencer (ramping from 0. to 1. over the course of each bar) and also now gates output when the host is stopped (information would be sent if the playhead was moved while stopped).</p>
<p>Version 0.3 is available here:</p>
<p><a href="http://www.x37v.com/x37v/osync/">http://www.x37v.com/x37v/osync/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://x37v.com/x37v/writing/osync-lite-v03-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pitched Synthesis with Noise Driven Feedback Delay Lines</title>
		<link>http://x37v.com/x37v/writing/karplus-strong-synthesis/</link>
		<comments>http://x37v.com/x37v/writing/karplus-strong-synthesis/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 13:42:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Writing]]></category>
		<category><![CDATA[Max]]></category>
		<category><![CDATA[maxmsp]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[synthesis]]></category>

		<guid isPermaLink="false">http://x37v.com/x37v/?p=60</guid>
		<description><![CDATA[The other day I was listening to Autechre&#8217;s Quaristice and thinking about my first perceptions of the album.  I remember thinking &#8220;This album has a very physical-modeling feel to it&#8221;.   I had forgotten about this, and recently I was playing around with Karplus-Strong string-modelling synthesis, after reading about the methodology behind it.
The opening of [...]]]></description>
			<content:encoded><![CDATA[<p>The other day I was listening to <a href="http://www.bleep.com/?bleep=WARPCDD333" target="_blank">Autechre&#8217;s </a><em><a href="http://www.bleep.com/?bleep=WARPCDD333" target="_blank">Quaristice</a></em> and thinking about my first perceptions of the album.  I remember thinking &#8220;This album has a very physical-modeling feel to it&#8221;.   I had forgotten about this, and recently I was playing around with Karplus-Strong string-modelling synthesis, after reading about the <a href="http://en.wikipedia.org/wiki/Karplus-Strong_string_synthesis" target="_blank">methodology behind it</a>.</p>
<p>The opening of Autechre&#8217;s <span><em>90101-5l-l</em></span> has these gorgeous rich resonating tones, which I accidentally seemed to be able to replicate with a Karplus-Strong model.  It sounds like they are capturing an incoming audio stream and then thrusting a noise-grain into a Karplus-Strong algorithm.  (There&#8217;s more going on in there, but this seems to be the basis.)</p>
<p> </p>
<p>Autechre – <em>90101-5l-l</em> (Quaristsice)</p>
<p>X37V - Example of Noise-Grain Feedback using Karplus Strong Plucked String Synthesis Methods</p>
<p> </p>
<p>In simple terms, Karplus-Strong tones are generated by taking a burst of noise, and creating a feedback loop that repeatedly lowpass-filters the noise and scales the volume back slightly.</p>
<p>The combination of each of these factors plays a part in the resulting tone:</p>
<ul>
<li>The brighter the burst of noise, the brighter the attack and note.</li>
<li>The loop time determines the pitch (shorter = higher, longer = lower)</li>
<li>The amount of filtering determines the length and life of the note.</li>
</ul>
<p>Kind of like concatenative synthesis with a recursive function applied to each grain.</p>
<p>So, for fun I was trying to make a synth that would generate tones using this noise-based feedback model using Max.</p>
<p>In order to generate a specific tones, I was basing my pitches on the relationship:</p>
<p style="padding-left: 60px;"><em>F</em><sub>0</sub> = <em>F<sub>S</sub></em> / <em>Z</em><sup>-L</sup></p>
<p>That is, the fundamental frequency (<em>F</em><sub>0</sub>) is determined by the sample rate (<em>F</em><sub>S</sub>) divided by the length of the delay line in samples (<em>Z</em><sup>-L</sup>).  Put simply, the number of times the delay line is read through per second is its frequency in Hz.</p>
<p>My first versions suffered from a very strange thing where the pitch accuracy was shockingly bad.  I was getting weird results where tones were getting more out of tune the higher they went.</p>
<p>The first problem is that I was using a [delay~] delay line with integer sample-length delays.  Who would have thought that something that was &#8217;sample accurate&#8217; could be a bad thing?</p>
<p>I realised later that it was bad because the generated tones were inversely proportional to the sample rate and that the values were being truncated to integer lengths.  When the length of the delay was long, the pitch was moderately accurate.  However, as the sample length got shorter, the pitch went way out.</p>
<p>The reason why this is bad is quite interesting.  Consider that we are working at a sampling rate of 44100 Hz.</p>
<p>What tone will be generated if we use a delay line consisting of 5 samples?</p>
<blockquote><p>44100 / 5 = 8820Hz</p></blockquote>
<p>What about a delay line of 4 samples?</p>
<blockquote><p>44100 / 4 = 11025Hz</p></blockquote>
<p>This is a big problem.  As the frequency that we are trying to generate gets higher, the less range we have in discrete tones.</p>
<p>At first, this appeared to be a sample rate issue.  If we increase the sample rate we should be able to get finer tone control.  However, doubling it means that we can get only one new pitch between the two we got at 44100.</p>
<blockquote><p>88200 / 9 = 9800Hz</p></blockquote>
<p>This is still not that good.  My solution was to make an abstraction and try some ridiculous upsampling with [poly~].  With this, understandably came a hit to my CPU.  The solution was still not all that good, as only one single new pitch could be attained between the previously possible tones each time the sampling was doubled.</p>
<p> </p>
<p>This had been puzzling me for about a week until I decided to drop [delay~] for [tapin~].  Amazingly,  [tapin~] allows fractional sample length delays, as it does subsample interpolation when given a signal as its delay time.<!--  There are still minor aberrations in the preciseness of the pitch as the Group Delay of the filter has not been compensated for.--></p>
<p> </p>
<p>The following is an example of the nature of the low-pass roll-off effect.  The clip starts with a fairly moderate low-pass filter (centred around 1500Hz) that is slowly opened up until it is barely filtering the delay line.  As the filter starts dramatically, the note is quickly damped, and demonstrates a transition from: </p>
<p>Damped String &gt; Koto &gt; Plucked Bass &gt; Slap Bass &gt; Harpsichord &gt; Non-Realistic Model of a Resonating String.</p>
<p> </p>
<p>Examples of Simple Plucked String Synthesis with a Relatively Bright Pink Noise Excitation.</p>
<p>A simple version of the patch can be downloaded here: <a href="http://x37v.com/x37v/wp-content/uploads/2009/03/karplus-strong.maxpat">Karplus-Strong example</a></p>
]]></content:encoded>
			<wfw:commentRss>http://x37v.com/x37v/writing/karplus-strong-synthesis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://x37v.com/x37v/wp-content/uploads/2009/03/90101-5l-l.mp3" length="192551" type="audio/mpeg" />
<enclosure url="http://x37v.com/x37v/wp-content/uploads/2009/03/ks-autechre-freeze.mp3" length="142169" type="audio/mpeg" />
<enclosure url="http://x37v.com/x37v/wp-content/uploads/2009/03/ks-autechre-freeze2.mp3" length="196794" type="audio/mpeg" />
<enclosure url="http://x37v.com/x37v/wp-content/uploads/2009/03/ks-damping-example.mp3" length="420210" type="audio/mpeg" />
		</item>
		<item>
		<title>Nine Inch Nails at Hordern Pavilion &#8211; 24 Feb 2009</title>
		<link>http://x37v.com/x37v/other/nine-inch-nails-at-hordern-pavilion-24-feb-2009/</link>
		<comments>http://x37v.com/x37v/other/nine-inch-nails-at-hordern-pavilion-24-feb-2009/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 00:40:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://x37v.com/x37v/?p=33</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><a class="lightview" title="Nine Inch Nails at the Hordern Pavilion – 24 February 2009" rel="gallery[ninHordern]" href="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0571.jpg"><img class="alignnone size-thumbnail wp-image-37" title="img_0571" src="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0571-150x150.jpg" alt="img_0571" width="145" height="145" /></a><a class="lightview" title="Nine Inch Nails at the Hordern Pavilion – 24 February 2009" rel="gallery[ninHordern]" href="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0575.jpg"><img class="alignnone size-thumbnail wp-image-38" title="img_0575" src="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0575-150x150.jpg" alt="img_0575" width="145" height="145" /></a><a class="lightview" title="Nine Inch Nails at the Hordern Pavilion – 24 February 2009" rel="gallery[ninHordern]" href="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0576.jpg"><img class="alignnone size-thumbnail wp-image-40" title="img_0576" src="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0576-150x150.jpg" alt="img_0576" width="145" height="145" /></a><a class="lightview" title="Nine Inch Nails at the Hordern Pavilion – 24 February 2009" rel="gallery[ninHordern]" href="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0577.jpg"><img class="alignnone size-thumbnail wp-image-41" title="img_0577" src="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0577-150x150.jpg" alt="img_0577" width="145" height="145" /></a><a class="lightview" title="Nine Inch Nails at the Hordern Pavilion – 24 February 2009" rel="gallery[ninHordern]" href="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0588.jpg"><img class="alignnone size-thumbnail wp-image-42" title="img_0588" src="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0588-150x150.jpg" alt="img_0588" width="145" height="145" /></a><a class="lightview" title="Nine Inch Nails at the Hordern Pavilion – 24 February 2009" rel="gallery[ninHordern]" href="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0590.jpg"><img class="alignnone size-thumbnail wp-image-43" title="img_0590" src="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0590-150x150.jpg" alt="img_0590" width="145" height="145" /></a><a class="lightview" title="Nine Inch Nails at the Hordern Pavilion – 24 February 2009" rel="gallery[ninHordern]" href="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0591.jpg"><img class="alignnone size-thumbnail wp-image-44" title="img_0591" src="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0591-150x150.jpg" alt="img_0591" width="145" height="145" /></a><a class="lightview" title="Nine Inch Nails at the Hordern Pavilion – 24 February 2009" rel="gallery[ninHordern]" href="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0592.jpg"><img class="alignnone size-thumbnail wp-image-45" title="img_0592" src="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0592-150x150.jpg" alt="img_0592" width="145" height="145" /></a><a class="lightview" title="Nine Inch Nails at the Hordern Pavilion – 24 February 2009" rel="gallery[ninHordern]" href="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0594.jpg"><img class="alignnone size-thumbnail wp-image-46" title="img_0594" src="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0594-150x150.jpg" alt="img_0594" width="145" height="145" /></a><a class="lightview" title="Nine Inch Nails at the Hordern Pavilion – 24 February 2009" rel="gallery[ninHordern]" href="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0596.jpg"><img class="alignnone size-thumbnail wp-image-47" title="img_0596" src="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0596-150x150.jpg" alt="img_0596" width="145" height="145" /></a><a class="lightview" title="Nine Inch Nails at the Hordern Pavilion – 24 February 2009" rel="gallery[ninHordern]" href="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0597.jpg"><img class="alignnone size-thumbnail wp-image-48" title="img_0597" src="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0597-150x150.jpg" alt="img_0597" width="145" height="145" /></a><a class="lightview" title="Nine Inch Nails at the Hordern Pavilion – 24 February 2009" rel="gallery[ninHordern]" href="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0603.jpg"><img class="alignnone size-thumbnail wp-image-49" title="img_0603" src="http://x37v.com/x37v/wp-content/uploads/2009/02/img_0603-150x150.jpg" alt="img_0603" width="145" height="145" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://x37v.com/x37v/other/nine-inch-nails-at-hordern-pavilion-24-feb-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Playing &#8216;Pong&#8217; with the GameTrak</title>
		<link>http://x37v.com/x37v/writing/playing-pong-with-the-gametrak/</link>
		<comments>http://x37v.com/x37v/writing/playing-pong-with-the-gametrak/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 04:58:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Writing]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[Max]]></category>
		<category><![CDATA[maxmsp]]></category>
		<category><![CDATA[pong]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[sensors]]></category>

		<guid isPermaLink="false">http://x37v.com/x37v/?p=21</guid>
		<description><![CDATA[

]]></description>
			<content:encoded><![CDATA[<p><object width="320" height="266" data="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DqAAAAHfApvOOOB_WlESfHfM9b00hRwvfQFtQwRlpILW2sXX7qxe6hB0_5etyz75GCfz8dM7OcdSlfOS2dN2cKbPd9IMI75gfYOJctrfeVISUEBjQCWN-dcJWpb-4Ys-DKS0f5xpCwQF-qvVJynuPijrIsAXPDydszqyVDp9D9qhd-KnUNwixb2F2pRN-8VsN-cg3RzUmd7AYggje0FJYZNWuveVOfzJuudY_R3xgVNs9NEAt%26sigh%3DYAlbQGE2PRvZV8EuPgiYfRAknqw%26begin%3D0%26len%3D86400000%26docid%3D0&amp;nogvlm=1&amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3D7bd8aa912c659c14%26offsetms%3D5000%26itag%3Dw320%26sigh%3D7JYFFd2ggWZv6PVZ0QhZV7LII1Q&amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den" type="application/x-shockwave-flash"><param name="id" value="BLOG_video-7bd8aa912c659c14" /><param name="bgcolor" value="#FFFFFF" /><param name="src" value="http://www.blogger.com/img/videoplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DqAAAAHfApvOOOB_WlESfHfM9b00hRwvfQFtQwRlpILW2sXX7qxe6hB0_5etyz75GCfz8dM7OcdSlfOS2dN2cKbPd9IMI75gfYOJctrfeVISUEBjQCWN-dcJWpb-4Ys-DKS0f5xpCwQF-qvVJynuPijrIsAXPDydszqyVDp9D9qhd-KnUNwixb2F2pRN-8VsN-cg3RzUmd7AYggje0FJYZNWuveVOfzJuudY_R3xgVNs9NEAt%26sigh%3DYAlbQGE2PRvZV8EuPgiYfRAknqw%26begin%3D0%26len%3D86400000%26docid%3D0&amp;nogvlm=1&amp;thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer2%3Fapp%3Dblogger%26contentid%3D7bd8aa912c659c14%26offsetms%3D5000%26itag%3Dw320%26sigh%3D7JYFFd2ggWZv6PVZ0QhZV7LII1Q&amp;messagesUrl=video.google.com%2FFlashUiStrings.xlb%3Fframe%3Dflashstrings%26hl%3Den" /></object><br />
<!--a href="rtsp://rtsp-youtube.l.google.com/video.3gp?app=blogger&amp;fmt=13&amp;cid=7bd8aa912c659c14" type="video/3gpp"><img width="320" height="266" alt="video" src="http://video.google.com/ThumbnailServer2?app=blogger&amp;contentid=7bd8aa912c659c14&amp;offsetms=5000&amp;itag=w320&amp;sigh=7JYFFd2ggWZv6PVZ0QhZV7LII1Q" mce_src="http://video.google.com/ThumbnailServer2?app=blogger&amp;contentid=7bd8aa912c659c14&amp;offsetms=5000&amp;itag=w320&amp;sigh=7JYFFd2ggWZv6PVZ0QhZV7LII1Q" class="BLOG_mobile_video_class" id="BLOG_mobile_video-7bd8aa912c659c14"></a--></p>
]]></content:encoded>
			<wfw:commentRss>http://x37v.com/x37v/writing/playing-pong-with-the-gametrak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSynC &#8211; Synchronising applications with a VST Plugin</title>
		<link>http://x37v.com/x37v/writing/osync-synchronising-applications-with-a-vst-plugin/</link>
		<comments>http://x37v.com/x37v/writing/osync-synchronising-applications-with-a-vst-plugin/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 07:29:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Writing]]></category>
		<category><![CDATA[maxmsp]]></category>
		<category><![CDATA[osc]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[synchronisation]]></category>
		<category><![CDATA[vst plugin]]></category>

		<guid isPermaLink="false">http://x37v.com/x37v/?p=10</guid>
		<description><![CDATA[OSynC-lite is a simple VST 2.4 plugin that transmits basic host transport information (from a VST compatible sequencer application) to another application on the same machine, as OSC messages.
The OSynC-lite plugin obtains ReWire-like transport information from your &#8216;host&#8217; sequencer and creates useful messages, for use in OSC compatible applications.
This information currently includes:

/play (returns a 0 or 1 depending on whether [...]]]></description>
			<content:encoded><![CDATA[<p>OSynC-lite is a simple VST 2.4 plugin that transmits basic host transport information (from a VST compatible sequencer application) to another application on the same machine, as OSC messages.</p>
<p>The OSynC-lite plugin obtains <a href="http://www.propellerheads.se/technologies/rewire/">ReWire</a>-like transport information from your &#8216;host&#8217; sequencer and creates useful messages, for use in OSC compatible applications.</p>
<p>This information currently includes:</p>
<ul>
<li>/play (returns a 0 or 1 depending on whether the host is playing)</li>
<li>/barcount (returns total barcount)</li>
<li>/bar (returns a mod 4 bar count, useful for quickly determining position in phrases)</li>
<li>/beat (returns the current beat of the bar)</li>
<li>/fraction (returns either incrementing 16ths or 32nds depending on settings in the OSynC Plugin, ie. 0-15, or 0-31)</li>
<li>/msticks (returns a float millisecond length between fraction increments)</li>
</ul>
<p>Why is this plugin useful?   This plugin was originally intended for personal use. I had a need to send sync info from one application (Cubase) to another (Max) but not necessarily steal/route the audio from one application (Max) into the other (Cubase). </p>
<p><span id="more-10"></span><br />
The Master/Slave (or Mixer/Synth) setup with ReWire is always too complex for me, especially when using Max. I can&#8217;t remember which program to start first, and I don&#8217;t always want the audio of one application being sent to another.</p>
<p>The part about ReWire that I like most though is the transport controls. This plugin allows ReWire-like host transport information to be sent (without the need to worry about setting your Audio Driver to ad_rewire in Max for example).  Using an OSC-based sync plugin also frees one from tying up the audio I/O with the ReWire driver.</p>
<p>It is also useful if you want to send transport synchronous messages/controls from an audio application to a non-audio application.  An example of this is sending the clock from a sequencer such as <a href="http://www.steinberg.net/">Cubase</a> to <a href="http://www.processing.org/">Processing</a> for host-synchronous events. An example of sending clock/transport infomation from the host to Processing is included in the OSynC_Processingfolder contained in the zip archive.  Also included is a simple<a href="http://www.cycling74.com/">Max5</a> patch for capturing output from OSynC-lite.</p>
<p> </p>
<p>OSynC-lite can be downloaded here:</p>
<blockquote><p><!--OSynC-lite0.2a.zip--><a href="http://www.x37v.com/x37v/osync/">OSynC-lite v0.2a</a> - Initial release, alpha, November 2008 (UB VST for Mac OS X)</p>
<p>Read the Read Me file included for usage notes.</p></blockquote>
<p> </p>
<p>This plugin is built with <a href="http://www.cycling74.com/products/pluggo">Pluggo</a> for Mac OS X, so you will need to install Pluggo Runtime (free) from <a href="http://www.cycling74.com/downloads/pluggo">www.cycling74.com</a> in order for it to work.  This plugin is still alpha. I will be adding features as I need them or if any are requested.</p>
<p>I am about to start some research on live synchronous performance systems, and while this plugin is really simple, it is a nice place to start for simple control rate synchronisation between applications.  My first application with this is to drive the <a href="http://www.monome.org/">Monome</a> as a sequencer from Cubase.</p>
<p> </p>
<p>Let me know if you find the plugin useful.</p>
<blockquote><p>alex at x37v dot com</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://x37v.com/x37v/writing/osync-synchronising-applications-with-a-vst-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pong in Processing</title>
		<link>http://x37v.com/x37v/writing/pong-in-processing/</link>
		<comments>http://x37v.com/x37v/writing/pong-in-processing/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 05:41:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Writing]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[pong]]></category>
		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://x37v.com/x37v/?p=8</guid>
		<description><![CDATA[Left player uses ‘q’ and ‘a’ for up and down.  Right player uses ‘]’ and ‘&#8217;’ for up and down.

The game currently goes on indefinitely.   
 
http://x37v.com/x37v/post/2008/10/



]]></description>
			<content:encoded><![CDATA[<p>Left player uses ‘q’ and ‘a’ for up and down.  Right player uses ‘]’ and ‘&#8217;’ for up and down.</p>
<div>
<p>The game currently goes on indefinitely.   </p>
<p> </p>
<p><a href="http://x37v.com/x37v/post/2008/10/"><span style="color: #000000; text-decoration: none;">http://x37v.com/x37v/post/2008/10/</span></a></p>
<p><span style="color: #000000; text-decoration: none;"><br />
</span></div>
<p><!-- class="lightview" title="Title::Description::fullscreen:true" --></p>
]]></content:encoded>
			<wfw:commentRss>http://x37v.com/x37v/writing/pong-in-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mad Catz Gametrak Mod for Max/MSP</title>
		<link>http://x37v.com/x37v/writing/mad-catz-gametrak-mod-for-maxmsp/</link>
		<comments>http://x37v.com/x37v/writing/mad-catz-gametrak-mod-for-maxmsp/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 02:44:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Writing]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[interfaces]]></category>
		<category><![CDATA[maxmsp]]></category>
		<category><![CDATA[sensors]]></category>

		<guid isPermaLink="false">http://x37v.com/x37v/?p=1</guid>
		<description><![CDATA[So it seems that the Gametrak controller that is designed for use with the PS2 doesn&#8217;t want to work with Max. 
A number of people have tried removing the board inside the unit, replacing it with a Bitwacker or Arduino, but after looking at the board in the Gametrak, I found that there is an interesting &#8216;feature&#8217; built into [...]]]></description>
			<content:encoded><![CDATA[<p>So it seems that the Gametrak controller that is designed for use with the PS2 doesn&#8217;t want to work with <a href="http://www.cycling74.com/">Max</a>. </p>
<p>A number of people have tried removing the board inside the unit, replacing it with a <a href="http://cnmat.berkeley.edu/resource/madcatz_gametrak_position_sensing_controller_1">Bitwacker</a> or Arduino, but after looking at the board in the Gametrak, I found that there is an interesting &#8216;feature&#8217; built into the existing boards.</p>
<p>This easter egg is probably designed so that one unit can be manufactured to be used across a variety of hardware platforms, from PS2 to PC to Xbox.</p>
<p>Here&#8217;s what I did to get it working:</p>
<p style="text-align: center;"><a class="lightview" title="Open the case by removing the screws marked." rel="gallery[gametrak]" href="http://x37v.com/x37v/post/uploaded_images/gametrak-1-769676.jpg"><img class="aligncenter" style="border: 0px initial initial;" src="http://x37v.com/x37v/post/uploaded_images/gametrak-1-769676.jpg" border="0" alt="" width="400" height="300" /></a>Open the case by removing the screws marked (I pierced the &#8216;feet&#8217; with the screwdriver so that I didn&#8217;t have to re-stick them later).</p>
<p style="text-align: center;"> </p>
<p style="text-align: center;"><a class="lightview" title="Remove the board by unscrewing the screws marked." rel="gallery[gametrak]" href="http://x37v.com/x37v/post/uploaded_images/gametrak-2-769727.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img class="aligncenter" style="border: 0px initial initial;" src="http://x37v.com/x37v/post/uploaded_images/gametrak-2-769711.jpg" border="0" alt="" width="400" height="300" /></a>Remove the board by unscrewing the screws marked.</p>
<p style="text-align: center;"> </p>
<div>
<p style="text-align: center;"><a class="lightview" title="Flip it over to reveal the underside." rel="gallery[gametrak]" href="http://x37v.com/x37v/post/uploaded_images/gametrak-3-707388.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img class="aligncenter" style="border: 0px initial initial;" src="http://x37v.com/x37v/post/uploaded_images/gametrak-3-707374.jpg" border="0" alt="" width="400" height="300" /></a>Flip it over to reveal the underside.</p>
<p style="text-align: center;"> </p>
</div>
<div>
<p style="text-align: center;"><a class="lightview" title="Rotate the entire Gametrak, so that the board is oriented like this." rel="gallery[gametrak]" href="http://x37v.com/x37v/post/uploaded_images/gametrak-4-707503.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img class="aligncenter" style="border: 0px initial initial;" src="http://x37v.com/x37v/post/uploaded_images/gametrak-4-707485.jpg" border="0" alt="" width="400" height="300" /></a>Rotate the entire Gametrak, so that the board is oriented like this.</p>
<p style="text-align: center;"> </p>
</div>
<div>
<p style="text-align: center;"><a class="lightview" title="This is the cool bit.  Notice the PC label above?" rel="gallery[gametrak]" href="http://x37v.com/x37v/post/uploaded_images/gametrak-5-734520.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img class="aligncenter" style="border: 0px initial initial;" src="http://x37v.com/x37v/post/uploaded_images/gametrak-5-734488.jpg" border="0" alt="" width="400" height="300" /></a>This is the cool bit.  Notice the PC label above?<br />
(There&#8217;s also an Xbox label to the right).</p>
<p style="text-align: center;"> </p>
</div>
<p>I shorted this connection with a knife while it was plugged in to Max, and a burst of numbers came out of the &#8216;hi&#8217; object.  To make this connection permanent*, I put a bit of solder to make a bridge between the two contact points, and now it outputs 12-bit integers on six discrete axes (left hand x, y &amp; z; and right hand x, y, z).  The foot switch works too.</p>
<div>
<p style="text-align: center;"><a class="lightview" title="Simple Max interface for the Gametrak." rel="gallery[gametrak]" href="http://x37v.com/x37v/post/uploaded_images/gametrak-Max-742928.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img class=" aligncenter" style="border: 0px initial initial;" src="http://x37v.com/x37v/post/uploaded_images/gametrak-Max-742858.png" border="0" alt="" width="400" height="142" /></a>Simple Max 5 interface for the Gametrak (<a href="http://x37v.com/x37v/wp-content/uploads/2008/08/gametrak-interface.maxpat">Download</a>)</p>
</div>
<p>Note: the first gen Gametrak from In2Games doesn&#8217;t seem to have this &#8216;feature&#8217;.</p>
<p>* There&#8217;s a tiny layer of lacquer on these contact points that I scratched with a knife so the solder would take to the metal.</p>
]]></content:encoded>
			<wfw:commentRss>http://x37v.com/x37v/writing/mad-catz-gametrak-mod-for-maxmsp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

