<?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>Ghost Fact</title>
	<atom:link href="http://www.ghostfact.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ghostfact.com</link>
	<description>Ghosts are the real ghosts</description>
	<lastBuildDate>Wed, 07 Sep 2011 01:51:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>binpack</title>
		<link>http://www.ghostfact.com/binpack/</link>
		<comments>http://www.ghostfact.com/binpack/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 01:51:35 +0000</pubDate>
		<dc:creator>russell</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[node]]></category>

		<guid isPermaLink="false">http://www.ghostfact.com/?p=253</guid>
		<description><![CDATA[binpack is a minimalist numeric binary packing utilities for node.js. I&#8217;m working some utilities for OSC support in node, and I noticed that there was no really simple way to convert from native javascript types to and from the binary &#8230; <a href="http://www.ghostfact.com/binpack/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>binpack is a minimalist numeric binary packing utilities for node.js.</p>
<p>I&#8217;m working some utilities for <a href="http://opensoundcontrol.org/">OSC</a> support in node, and I noticed that there was no really simple way to convert from native javascript types to and from the binary buffers required for OSC messages.</p>
<p>It turned out to be a nice project to get my feet wet with making native node extentions.</p>
<p>The code is free on <a href="https://github.com/ghostfact/node-binpack">github</a>, and it&#8217;s uploaded to npm.  To grab it, first make sure you have <a href="http://npmjs.org/">npm</a> installed, then run</p>
<pre><code>npm install binpack
</code></pre>
<p>The source code should provide a good example of a simple node extension.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghostfact.com/binpack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emulation of the Remco SoundFX Machine</title>
		<link>http://www.ghostfact.com/soundfx-machine/</link>
		<comments>http://www.ghostfact.com/soundfx-machine/#comments</comments>
		<pubDate>Sun, 01 May 2011 00:48:23 +0000</pubDate>
		<dc:creator>russell</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[puredata]]></category>
		<category><![CDATA[synth]]></category>

		<guid isPermaLink="false">http://www.ghostfact.com/?p=232</guid>
		<description><![CDATA[I&#8217;ve made a quick emulation of the Remco Sound FX Machine as an audio unit and standalone application for Macintosh. The original was quite an interesting toy based on a Texas Instruments noise chip used in Space Invaders. I&#8217;ve never &#8230; <a href="http://www.ghostfact.com/soundfx-machine/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve made a quick emulation of the Remco Sound FX Machine as an audio unit and standalone application for Macintosh.  The original was quite an interesting toy based on a Texas Instruments noise chip used in Space Invaders.  I&#8217;ve never owned this toy or seen this chip, so the emulation is really just guesswork based on reading the datasheet.  The UI was designed by the estimable ghostfacter (ghostfactor?) Eric, and the icon for the .app was drawn by Kate Lindsay.  All artwork is public domain, and the source code is open (new code is under a permissive license, JUCE is GPL, pdlib is BSD).</p>
<p>Here&#8217;s a video demo:<br />
<iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/E04RdmNX0m4" frameborder="0"><br />
</iframe></p>
<p>Here&#8217;s the <a href="http://www.ghostfact.com/files/soundfx/soundfxmachine.zip">compiled, ready-to-use standalone and audio unit</a></p>
<p>And, all the source code is on <a href="https://github.com/ghostfact/SoundFXMachine">GitHub</a>:</p>
<p><span id="more-232"></span></p>
<p>Recently, I&#8217;ve been looking a for quick ways to make audio effects and add them to my workflow.  I&#8217;m a big fan of <a href="http://puredata.info/">puredata</a> for prototyping and quick editing, but it&#8217;s not too easy to use if you want to process audio coming from an AU or a track on an audio workstation.  What I usually do is start up <a href="http://jackaudio.org/">JACK</a>, attach PD&#8217;s ins and outs to that, and then run the JACK AU in my sequencer.  While this is okay, the problem is you have to perform the somewhat complicated set-up procedure each time you want to start working.  It&#8217;s also very hard to run multiple pd-based effect or synths at once, as each needs its own output routing.</p>
<p>The answer to all these problems seems to be to try to fit PD more naturally into the audio workstation, probably in the form of a plug-in.  There&#8217;s been some work on this, namely pd-vst, but that doesn&#8217;t seem to be maintained very well these days.  A much more active project is Peter Brinkmann&#8217;s <a href="http://gitorious.org/pdlib">pdlib</a>.  Pdlib allows embedding pd into your own app, and seems to be focused on smartphone platforms like Android and iOS.  However, its smart, fast and minimal API seems pretty useful for regular old PC, Mac, and Linux apps, too.</p>
<p>So, recently I&#8217;ve been using a combination of JUCE and pdlib as a quick development platform for plug-ins.  If you have a puredata patch that you want to make into a plug-in, it should be pretty simple to edit the source code (all you should have to change is PD_characteristics.h, in addition to using the jucer UI editor to edit PluginEditor.h/cpp &#8211; no knowledge of c++ required).  Right now I don&#8217;t support any MIDI, but it should be fine for midi-less effects and synths &#8211; I plan to get midi working in the future (if you want to try your hand, the source code is right there!)</p>
<p>The one problem with this system is that puredata uses a lot of global state, so you can&#8217;t have more than one copy of puredata in any process.  While this is fine for standalone apps, it means that if you directly use pdlib in plug-ins, you can only have one instance loaded at any one time.  This kinda sucks, as that was the main problem with my JACK-based set-up.  So, I&#8217;ve made the plug-in launch a UI-less process to run PD in.  There are problems with this approach, too &#8211; right now I&#8217;m using JUCE&#8217;s interprocess communication layer, which doesn&#8217;t really seem to be fast enough for this.  Things like switching programs and expose will sometimes block execution and cause audio drop-outs.  If anyone wants to help out by speeding up the interprocess communication stuff, that would be really cool!  The relevant code is in PluginProcessor.cpp and PDSubprocess.cpp .  Also, I&#8217;ve heard mutterings that there is some plan to remove the global state from PD &#8211; if anyone has any info on this, drop me a line!</p>
<p>The only reason the system is mac-only right now is because I don&#8217;t have regular access to any sort of linux or windows-based system.  It should be as simple as building a project and hitting the compile button!  If anyone has some time and a windows or linux machine please e-mail me and we can try to get a version working for your platform.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghostfact.com/soundfx-machine/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Frontier Days of Software Synthesis: Exploring the JP-8000 Supersaw</title>
		<link>http://www.ghostfact.com/jp-8000-supersaw/</link>
		<comments>http://www.ghostfact.com/jp-8000-supersaw/#comments</comments>
		<pubDate>Sat, 02 Apr 2011 16:19:31 +0000</pubDate>
		<dc:creator>russell</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[puredata]]></category>
		<category><![CDATA[synth]]></category>

		<guid isPermaLink="false">http://www.ghostfact.com/?p=139</guid>
		<description><![CDATA[One of my favorite things about electronic dance music is how tirelessly and mindlessly popular synth sounds are exploited. It&#8217;s awesome! One of the big sounds of the turn of the millennium was the so-called supersaw, an extremely bright, cold, &#8230; <a href="http://www.ghostfact.com/jp-8000-supersaw/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_161" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.ghostfact.com/wp-content/uploads/2011/04/4526195689_bc5383eb25_o.jpg"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/4526195689_bc5383eb25_o-300x240.jpg" alt="" title="JP-8000" width="300" height="240" class="size-medium wp-image-161" /></a><p class="wp-caption-text">Photo by J. Robert Lennon</p></div>
<p>One of my favorite things about electronic dance music is how tirelessly and mindlessly popular synth sounds are exploited.  It&#8217;s awesome!  One of the big sounds of the turn of the millennium was the so-called supersaw, an extremely bright, cold, digital, huge lead sound.  You rarely hear it now in non-ironic music, but anyone who was listening to anything dancey and stupid around 2003 will surely recognize it.  </p>
<p><span id="more-139"></span></p>
<p>Here&#8217;s a fairly typical example:</p>
<p><iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/PprQOCoGHjU#t=2m12s" frameborder="0"><br />
</iframe></p>
<p>Other big choons that have similar leads are <a href="http://www.youtube.com/watch?v=vd2zhRrG0u4#t=0m15s">&#8220;Ramp&#8221; by Scooter</a>, and <a href="http://www.youtube.com/watch?v=kYUuqbSyTHY#t=0m25s">&#8220;Heaven&#8221; by DJ Sammy</a>.</p>
<p>The canonical synth for producing this kind of sound is the <a href="http://en.wikipedia.org/wiki/Roland_JP-8000">Roland JP-8000</a> (or the rack-mount JP-8080), released in the mid 90s.  As the sound became trendy in dance music, the ability to produce these obnoxious, blindingly bright monstrosities quickly became a bullet-point feature for competing synths &#8211; Novation&#8217;s Supernova 2, and the later Virus TI had similar features.</p>
<p>So, what is the supersaw?  According to roland&#8217;s marketing material, it &#8220;sounds like seven saw waves sounding simultaneously&#8221;.</p>
<p>Okay, fine.  But what is it really?  It&#8217;s important to remember this was the mid-90s, processing power was tight, and running 7 saws for each note sounds pretty expensive.  There must have been some trickery at play.</p>
<p>I always think it&#8217;s awesome when products of economical engineering remain relevant long after their shortcuts are no longer needed.  This seems to happen a lot with music equipment, and Roland had a pretty good run of devices in this category &#8211; the TB-303, D-50 and the Juno series all remained popular long after the constraints they were designed for no longer applied.  Once you get into the digital era, these stories of engineering ingenuity get harder to tell.  With discrete circuitry, you can just look at the circuit to see what choices the designers made, and how those choices create the sound you hear.  With software, all you really have to go on is the output of the device &#8211; which can sometimes be a bit inscrutable.</p>
<p>I had sort of resigned myself to never knowing how wonders like the supersaw were produced, until I stumbled upon this awesome thread on <a href="http://www.kvraudio.com/forum/viewtopic.php?t=258924">KVR</a>.  It turns out there are some tell-tale signs that give pretty strong indications of how the supersaws were produced &#8211; and the engineering is just as goofy, simplistic, and beautiful as I had hoped, and I&#8217;ll spend the rest of this post reviewing the results from that discussion, and re-creating a JP-style oscillator in <a href="http://puredata.info/">pure data</a>.</p>
<p>The fundamental problem of digital oscillator design, at least for simulating analog waveforms, is <a href="http://en.wikipedia.org/wiki/Aliasing">aliasing</a>.  Directly synthesizing a saw wave produces harsh noise all over the spectrum.  There are lots of ways of getting around this &#8211; wavetables and oversampling are probably the most popular commercially, but academia has given us other options too.  A lot of hobby programmers use something called <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.65.1036&amp;rep=rep1&amp;type=pdf">BLEP</a>.  Korg recently patented a <a href="http://www.google.com/patents/about?id=H7LIAAAAEBAJ&amp;dq=7589272">variant</a> of BLEP, too.</p>
<p>Of course, another path is to do nothing to the aliasing and embrace its roughness for what it is.  There&#8217;s good reason to believe that&#8217;s exactly what Roland did in the supersaw.</p>
<p>First, for reference, here&#8217;s a nice, modern, anti-aliased (bandlimited) saw wave at 130hz, generated by the free <a href="http://kunz.corrupt.ch/?Home">TAL Noisemaker</a>.</p>
<p><audio src="http://www.ghostfact.com/wp-content/uploads/2011/04/Fig1a.wav" controls="controls"><br />
<a href="http://www.ghostfact.com/wp-content/uploads/2011/04/Fig1a.wav">Relatively Alias-free saw</a><br />
</audio><br />
<a href="http://www.ghostfact.com/wp-content/uploads/2011/04/Fig1a1.png"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/Fig1a1-1024x209.png" alt="" title="Fig1a" width="640" height="130" class="aligncenter size-large wp-image-147" /></a></p>
<p>As you can see in the spectrogram above, there&#8217;s defined peaks at each harmonic and not much noise in between.</p>
<p>Let&#8217;s see what a totally aliased, digital-as-hell saw sounds like.  We easily use puredata&#8217;s phasor~ to make a aliased saw:<br />
<a href="http://www.ghostfact.com/wp-content/uploads/2011/04/fig1b-1.png"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/fig1b-1.png" alt="" title="fig1b-1" width="240" height="264" class="aligncenter size-full wp-image-156" /></a></p>
<p><audio src='http://www.ghostfact.com/wp-content/uploads/2011/04/fig1b.wav' controls="controls"><br />
<a href='http://www.ghostfact.com/wp-content/uploads/2011/04/fig1b.wav'>Aliased Saw Wave</a><br />
</audio><br />
<a href="http://www.ghostfact.com/wp-content/uploads/2011/04/fig1b-2.png"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/fig1b-2-1024x200.png" alt="" title="fig1b-2" width="640" height="125" class="aligncenter size-large wp-image-158" /></a></p>
<p> You can hear it&#8217;s a bit more nasally and unpleasant.  It doesn&#8217;t sound too different because the frequency of the note is relatively low &#8211; the aliased harmonics aren&#8217;t very loud.  In the spectrum above, you&#8217;ll see more differences: the harmonics are still there, there&#8217;s lots of aliasing noise between them.</p>
<p>If you turn down the &#8220;mix&#8221; slider for the supersaw, it becomes a simple saw wave &#8211; but with some interesting properties.  Here&#8217;s the JP-8000&#8242;s attempt at a non-super saw at 130 hz.  </p>
<p><audio src='http://www.ghostfact.com/wp-content/uploads/2011/04/Fig1c.wav' controls="controls"><br />
<a href='http://www.ghostfact.com/wp-content/uploads/2011/04/Fig1c.wav'>JP-8000 Saw wave 130hz</a><br />
</audio><br />
<a href="http://www.ghostfact.com/wp-content/uploads/2011/04/Fig1c.png"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/Fig1c-1024x199.png" alt="" title="Fig1c" width="640" height="124" class="aligncenter size-large wp-image-174" /></a></p>
<p>As you can see and hear, it&#8217;s closer to the aliased saw wave from than the saw from band-limited synthesis.  There is a notable difference, though, pointed out by the folks at KVR &#8211; the noise *below* the first harmonic is significantly less.  To make this more clear, here&#8217;s the PD aliased saw at 520 Hz:</p>
<p><audio src='http://www.ghostfact.com/wp-content/uploads/2011/04/fig2a.wav' controls="controls"><br />
<a href='http://www.ghostfact.com/wp-content/uploads/2011/04/fig2a.wav'>Aliased saw at 520Hz</a><br />
</audio><br />
<a href="http://www.ghostfact.com/wp-content/uploads/2011/04/fig2a.png"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/fig2a-1024x201.png" alt="" title="fig2a" width="640" height="125" class="aligncenter size-large wp-image-180" /></a></p>
<p>And the JP at a similar frequency:</p>
<p><audio src='http://www.ghostfact.com/wp-content/uploads/2011/04/fig2b.wav' controls="controls"><br />
<a href='http://www.ghostfact.com/wp-content/uploads/2011/04/fig2b.wav'>JP-8000 saw at high frequency</a><br />
</audio><br />
<a href="http://www.ghostfact.com/wp-content/uploads/2011/04/fig2b.png"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/fig2b-1024x204.png" alt="" title="fig2b" width="640" height="127" class="aligncenter size-large wp-image-185" /></a></p>
<p>Now the low-frequency noise is quite different between the two.  It seems that the JP generates an aliased saw and then runs it through a high-pass filter set to only pass frequencies at or above the fundamental of the note.  This leaves in all the aliasing noise above the fundamental, so it&#8217;s still pretty nasty/noisey sounding, but there&#8217;s no energy below the frequency of the note to distract you from the pitch.</p>
<p>Let&#8217;s try to approximate that with PD:  </p>
<p><a href="http://www.ghostfact.com/wp-content/uploads/2011/04/fig3-1.png"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/fig3-1.png" alt="" title="fig3-1" width="252" height="339" class="aligncenter size-full wp-image-188" /></a></p>
<p><audio src='http://www.ghostfact.com/wp-content/uploads/2011/04/fig3.wav' controls="controls"><br />
<a href='http://www.ghostfact.com/wp-content/uploads/2011/04/fig3.wav'>Hi-passed Alias Saw Wave</a><br />
</audio><br />
<a href="http://www.ghostfact.com/wp-content/uploads/2011/04/fig3-2.png"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/fig3-2-1024x201.png" alt="" title="fig3-2" width="640" height="125" class="aligncenter size-large wp-image-190" /></a></p>
<p>Clearly not exactly the same as the filtering scheme is different (the JP seems more like a biquad hi-shelf), but it&#8217;s still not a bad likeness.</p>
<p>Now let&#8217;s try to reverse-engineer the spread of the saws &#8211; originally in the KVR thread people were suggesting complicated schemes based on a chorus effect, but it seems clear from the spectrum of a fully detuned supersaw wave that no, the JP really is generating 7 saw waves:</p>
<p><audio src='http://www.ghostfact.com/wp-content/uploads/2011/04/fig4.wav' controls="controls"><br />
<a href='http://www.ghostfact.com/wp-content/uploads/2011/04/fig4.wav'>Fully detuned supersaw</a><br />
</audio><br />
<a href="http://www.ghostfact.com/wp-content/uploads/2011/04/fig4.png"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/fig4-1024x206.png" alt="" title="fig4" width="640" height="128" class="aligncenter size-large wp-image-194" /></a></p>
<p>This makes sense when you think about it &#8211; efficiency was king, and it&#8217;s hard to beat the efficiency of two extra adds per sample &#8211; things are a lot easier when you embrace aliasing rather than reject it, huh?</p>
<p>Int the spectrogram above, we can see that there are indeed 7 peaks at each harmonic &#8211; indicating that there are 7 saw waves.  Each peak is pretty well defined, indicating that there&#8217;s not a lot of low-frequency vibrato going on.<br />
The third harmonic seems like the easiest to pick out the peaks, we&#8217;ve got:<br />
(rounded to whole numbers):<br />
350, 368, 384, 392, 400, 417, 435.</p>
<p>So, the detuning ratios are then<br />
(.893, .939, .980, 1.0, 1.020, 1.064, 1.110), or slightly assymetrical.</p>
<p>Again, let&#8217;s try this in PD.</p>
<p><a href="http://www.ghostfact.com/wp-content/uploads/2011/04/fig5-1.png"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/fig5-1.png" alt="" title="fig5-1" width="573" height="426" class="aligncenter size-full wp-image-201" /></a></p>
<p><audio src='http://www.ghostfact.com/wp-content/uploads/2011/04/fig5.wav' controls="controls"><br />
<a href='http://www.ghostfact.com/wp-content/uploads/2011/04/fig5.wav'>Detuned alias saw</a><br />
</audio><br />
<a href="http://www.ghostfact.com/wp-content/uploads/2011/04/fig5-2.png"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/fig5-2-1024x208.png" alt="" title="fig5-2" width="640" height="130" class="aligncenter size-large wp-image-203" /></a></p>
<p>Not entirely dissimilar, huh?  To be fair, a lot of detuned waveforms have a spectrum that kinda looks like that.  But if I use my ears I can definitely hear some similarities.</p>
<p>Now that we have no-detune and max detune in the bag, lets look at what happens at other detune settings.  At 0% detune on the slider, there&#8217;s still a little bit of audible detune, but not quite enough to see it on the spectrum.  We can&#8217;t see anything on the spectrum until about 3/4 of the way on the slider, which has a spread of around 15hz at the harmonic at 520 hz:</p>
<p><audio src='http://www.ghostfact.com/wp-content/uploads/2011/04/fig6b.wav' controls="controls"><br />
<a href='http://www.ghostfact.com/wp-content/uploads/2011/04/fig6b.wav'>JP-8000 .75 detuned</a><br />
</audio><br />
<a href="http://www.ghostfact.com/wp-content/uploads/2011/04/fig6b.png"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/fig6b-1024x214.png" alt="" title="fig6b" width="640" height="133" class="aligncenter size-large wp-image-207" /></a></p>
<p>That means the total spread is around 0.987 &#8211; 1.013 rather than the full value of 0.893 &#8211; 1.110.  This dramatic increase in detune at the end of the sweep of the slider implies there&#8217;s some sort of exponential scaling occuring.</p>
<p>To simulate this in PD, I&#8217;m just making a guess about the endpoints of the detuning and the fact that it uses log2 scaling.</p>
<p><a href="http://www.ghostfact.com/wp-content/uploads/2011/04/fig7.png"><img src="http://www.ghostfact.com/wp-content/uploads/2011/04/fig7.png" alt="" title="fig7" width="573" height="496" class="aligncenter size-full wp-image-208" /></a></p>
<p>Sounds pretty good!  This PD patch definitely captures the major character points of the JP supersaw oscillator. Here&#8217;s some sweeps of the detune knob:</p>
<p><audio src='http://www.ghostfact.com/wp-content/uploads/2011/04/fig7.wav' controls="controls"><br />
<a href='http://www.ghostfact.com/wp-content/uploads/2011/04/fig7.wav'>Sweeping detune know in PD JP-simulation</a><br />
</audio></p>
<p>Hands Up!<br />
<iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/zf2wbRWb9xI#t=1m05s" frameborder="0"><br />
</iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghostfact.com/jp-8000-supersaw/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
<enclosure url="http://www.ghostfact.com/wp-content/uploads/2011/04/Fig1a.wav" length="313244" type="audio/wav" />
<enclosure url="http://www.ghostfact.com/wp-content/uploads/2011/04/fig1b.wav" length="354824" type="audio/wav" />
<enclosure url="http://www.ghostfact.com/wp-content/uploads/2011/04/Fig1c.wav" length="104298" type="audio/wav" />
<enclosure url="http://www.ghostfact.com/wp-content/uploads/2011/04/fig2a.wav" length="359324" type="audio/wav" />
<enclosure url="http://www.ghostfact.com/wp-content/uploads/2011/04/fig2b.wav" length="153200" type="audio/wav" />
<enclosure url="http://www.ghostfact.com/wp-content/uploads/2011/04/fig3.wav" length="359144" type="audio/wav" />
<enclosure url="http://www.ghostfact.com/wp-content/uploads/2011/04/fig4.wav" length="93928" type="audio/wav" />
<enclosure url="http://www.ghostfact.com/wp-content/uploads/2011/04/fig5.wav" length="343844" type="audio/wav" />
<enclosure url="http://www.ghostfact.com/wp-content/uploads/2011/04/fig6b.wav" length="105260" type="audio/wav" />
<enclosure url="http://www.ghostfact.com/wp-content/uploads/2011/04/fig7.wav" length="7327788" type="audio/wav" />
		</item>
		<item>
		<title>Heather Beer</title>
		<link>http://www.ghostfact.com/h1n/</link>
		<comments>http://www.ghostfact.com/h1n/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 04:29:07 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Beer]]></category>

		<guid isPermaLink="false">http://www.ghostfact.com/?p=125</guid>
		<description><![CDATA[For this beer we tried using heather as the bittering agent. Heather was a herb traditionally used in Scotland for beer production before the arrival of hops. This was also our first attempt at a smaller batch size, and an &#8230; <a href="http://www.ghostfact.com/h1n/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For this beer we tried using heather as the bittering agent. Heather was a herb traditionally used in Scotland for beer production before the arrival of hops.<br />
This was also our first attempt at a smaller batch size, and an all grain (no extracts used) brew!</p>
<p>The beer came out with a clean sour flavor that allows you to detect the heather underneath. Final alcohol content was 4.4%.</p>
<p><div id="attachment_126" class="wp-caption alignnone" style="width: 276px"><a href="http://www.ghostfact.com/h1n/heatherbeer/" rel="attachment wp-att-126"><img src="http://www.ghostfact.com/wp-content/uploads/2011/02/heatherbeer-266x300.jpg" alt="" title="Heather Beer" width="266" height="300" class="size-medium wp-image-126" /></a><p class="wp-caption-text">Our heather beer</p></div><br />
<span id="more-125"></span></p>
<p>The 1 gallon recipe was:</p>
<p>2 lbs. USA Two-Row grains<br />
1/4 lbs. 120 Crystal Malt grains<br />
90 minute mash<br />
1.5 oz. Heather (beginning of boil)<br />
.5 oz. Heather (filtration)<br />
.5 oz. Heather (dry; 1 week into fermentation) </p>
<p>Suggestions for improvement would be to decrease the amount of crystal malt used to decrease the sweetness.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghostfact.com/h1n/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sloth? SLOTH!</title>
		<link>http://www.ghostfact.com/sloth-sloth/</link>
		<comments>http://www.ghostfact.com/sloth-sloth/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 05:59:17 +0000</pubDate>
		<dc:creator>amit</dc:creator>
				<category><![CDATA[Photos]]></category>

		<guid isPermaLink="false">http://www.ghostfact.com/?p=105</guid>
		<description><![CDATA[Met this little guy out in Manaus, Brazil during a trip in January.]]></description>
			<content:encoded><![CDATA[<p>Met this little guy out in Manaus, Brazil during a trip in January.</p>
<div id="attachment_106" class="wp-caption alignleft" style="width: 310px"><a rel="attachment wp-att-106" href="http://www.ghostfact.com/sloth-sloth/dsc_1199/"><img class="size-medium wp-image-106 " title="sloth" src="http://www.ghostfact.com/wp-content/uploads/2011/02/DSC_1199-300x200.jpg" alt="" width="300" height="200" /></a><p class="wp-caption-text">Slow, but deadly.</p></div>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://www.ghostfact.com/sloth-sloth/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Spooky Electronic Fireplace</title>
		<link>http://www.ghostfact.com/spooky-electronic-fireplace/</link>
		<comments>http://www.ghostfact.com/spooky-electronic-fireplace/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 06:07:03 +0000</pubDate>
		<dc:creator>russell</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Party]]></category>

		<guid isPermaLink="false">http://www.ghostfact.com/?p=94</guid>
		<description><![CDATA[For our Halloween party last year, we made this electronic fireplace to fit in with our cold color palette for the evening. The form was made with some acrylic laser cut by the always talented Ronan, and I whipped some &#8230; <a href="http://www.ghostfact.com/spooky-electronic-fireplace/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For our Halloween party last year, we made this electronic fireplace to fit in with our cold color palette for the evening.</p>
<p><iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/HM_xemW-O7M" frameborder="0"><br />
</iframe></p>
<p><span id="more-94"></span></p>
<p>The form was made with some acrylic laser cut by the always talented Ronan, and I whipped some arduino code to blink the LEDs.  The arduino has a few modes, each of which perform some simple algorithms on the current states of the lights to generate the next state.   One mode runs some binary 1D cellular automata, to which it randomizes the generation rules.  Feel free to modify this code for your own projects.<br />
<a href="http://www.ghostfact.com/files/fireplace/fireplace.pde">fireplace.pde</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghostfact.com/spooky-electronic-fireplace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Berenstain Beers</title>
		<link>http://www.ghostfact.com/the-berenstain-beers/</link>
		<comments>http://www.ghostfact.com/the-berenstain-beers/#comments</comments>
		<pubDate>Sun, 30 Jan 2011 04:42:08 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Beer]]></category>
		<category><![CDATA[Bear]]></category>
		<category><![CDATA[Berenstain]]></category>

		<guid isPermaLink="false">http://www.ghostfact.com/?p=59</guid>
		<description><![CDATA[Our latest beer, dubbed the &#8220;Berenstain Beer&#8221; was made specially with everything bears love. The beer came out to a final 9.5% alcohol, with an (expected) cidery taste, but surprisingly dry for the alcohol content, and with lots of fresh apple &#8230; <a href="http://www.ghostfact.com/the-berenstain-beers/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Our latest beer, dubbed the &#8220;Berenstain Beer&#8221; was made specially with everything bears love.</p>
<p>The beer came out to a final 9.5% alcohol, with an (expected) cidery taste, but surprisingly dry for the alcohol content, and with lots of fresh apple flavor.</p>
<p>
<a href='http://www.ghostfact.com/the-berenstain-beers/bb1/' title='bb1'><img width="150" height="150" src="http://www.ghostfact.com/wp-content/uploads/2011/01/bb1-150x150.jpg" class="attachment-thumbnail" alt="Berenstain Beer" title="bb1" /></a>
<a href='http://www.ghostfact.com/the-berenstain-beers/bb2/' title='bb2'><img width="150" height="150" src="http://www.ghostfact.com/wp-content/uploads/2011/01/bb2-150x150.jpg" class="attachment-thumbnail" alt="Finished beers with decorative caps" title="bb2" /></a>
<a href='http://www.ghostfact.com/the-berenstain-beers/bb3/' title='bb3'><img width="150" height="150" src="http://www.ghostfact.com/wp-content/uploads/2011/01/bb3-150x150.jpg" class="attachment-thumbnail" alt="Fermenter after brewing the Berenstain Beer. Looks gross, tasted great" title="bb3" /></a>
<br />
<span id="more-59"></span><br />
The 5 gallon recipe was:</p>
<p>32 oz. Honey<br />
2 lbs. Dry Wheat<br />
4 lbs. Dry Extra Light Extract<br />
0.5 oz. Cluster Hops boiled for 40 min<br />
0.5 oz. Cluster Hops boiled for 5 min<br />
2 tbsp. Orange Peel (dried) boiled for 15 min<br />
1/4 Gallon Fresh Apple Cider (half at the end of the boil, half in fermenter)<br />
5 Lbs Fresh Apples (peeled, in fermenter)<br />
White Labs WLP051 California Ale Yeast</p>
<p>Possible improvements would be to increase the honey to cider ratio to add a little more sweetness, and to not leave the apples in the fermenter for the full 3 week fermentation to avoid the grossness seen above&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghostfact.com/the-berenstain-beers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Simple Guitar Tuning Explorer</title>
		<link>http://www.ghostfact.com/guitar-tuning-explorer/</link>
		<comments>http://www.ghostfact.com/guitar-tuning-explorer/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 20:14:01 +0000</pubDate>
		<dc:creator>russell</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Guitar]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://www.ghostfact.com/?p=27</guid>
		<description><![CDATA[Processing is a Java-based programming environment that has done a great job of branding itself as accessible and empowering to newcomers, technophobes, and artists.  While I strongly oppose some of the programming practices it encourages (global side-effects, etc.), it&#8217;s hard &#8230; <a href="http://www.ghostfact.com/guitar-tuning-explorer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.processing.org">Processing</a> is a Java-based programming environment that has done a great job of branding itself as accessible and empowering to newcomers, technophobes, and artists.  While I strongly oppose some of the programming practices it encourages (global side-effects, etc.), it&#8217;s hard not to value a tool that makes it so fast and convenient to distribute simple ideas.</p>
<p>This morning, as my first encounter with processing, I came up with this simple sketch to map out chords and scales in alternate guitar tunings.  </p>
<p><a href="http://www.ghostfact.com/guitar-tuning-explorer/"><img src="http://www.ghostfact.com/wp-content/uploads/2011/01/Screen-shot-2011-01-30-at-12.39.51-AM-288x300.png" alt="" title="Guitar Tuning Screenshot" width="288" height="300" class="alignnone size-medium wp-image-76" /></a></p>
<p><span id="more-27"></span></p>
<p>You&#8217;re free to do as you like with the source code:<br />
Processing Code:<a href="http://www.ghostfact.com/files/Guitar_Tuning/Guitar_Tuning.pde">Guitar_Tuning.pde</a><br />
Pre-processed Java Code:<a href="http://www.ghostfact.com/files/Guitar_Tuning/applet/Guitar_Tuning.java">Guitar_Tuning.java</a><br />
Mac Application:<a href="http://www.ghostfact.com/files/Guitar_Tuning/guitar_tuning.macosx.zip">guitar_tuning.macosx.zip</a><br />
Windows Application:<a href="http://www.ghostfact.com/files/Guitar_Tuning/guitar_tuning.windows.zip">guitar_tuning.windows.zip</a><br />
Linux Application:<a href="http://www.ghostfact.com/files/Guitar_Tuning/guitar_tuning.linux.zip">guitar_tuning.linux.zip</a></p>
<p>Things should be fairly self-explanatory, but here are some notes:</p>
<ul>
<li>Click on any text to change it, right click to cycle backwards.</li>
<li>Click on the labels for the strings to cycle through tunings</li>
<li>I&#8217;m not really sure about the proper semantics for modes in the pentatonic scale, so I just made something up that is probably pretty useless.</li>
<li>If you want a dominant seventh chord, switch to lydian or myxolydian mode.</li>
<li>Switching modes in the harmonic minor is a little exotic and I&#8217;m not sure why you would want to do it.</li>
</ul>
<p>If you download the code, you&#8217;ll see that this is easily adaptable to instruments with more or fewer strings (simply change the &#8220;numGridX&#8221; variable at the top of the file), or even grid based controllers (although the sketch does assume that the strings are chromatic along the y axis).</p>
<p><EMBED type="application/x-java-applet" width="500" height="500" align="baseline" archive="http://www.ghostfact.com/files/Guitar_Tuning/applet/Guitar_Tuning.jar" standby="Loading Processing software..." codebase="http://java.sun.com/update/1.5.0/jinstall-1_5_0_15-windows-i586.cab" code="Guitar_Tuning" mayscript="true" scriptable="true" image="http://www.ghostfact.com/files/Guitar_Tuning/applet/loading.gif" boxmessage="Loading Processing software..." boxcolor="#FFFFFF"><br />
<NOEMBED><br />
  No Java 2 SDK, Standard Edition v 1.4.1 support for APPLET!!<br />
</NOEMBED><br />
</EMBED></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghostfact.com/guitar-tuning-explorer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mission Statement</title>
		<link>http://www.ghostfact.com/mission-statement/</link>
		<comments>http://www.ghostfact.com/mission-statement/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 06:10:17 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[A Ghost Fact]]></category>
		<category><![CDATA[Fact]]></category>
		<category><![CDATA[Ghost]]></category>

		<guid isPermaLink="false">http://www.ghostfact.com/?p=19</guid>
		<description><![CDATA[A ghost&#8217;s scaryness is proportional to the length of its arms.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ghostfact.com/wp-content/uploads/2011/01/ghost.png"><img class="alignnone size-full wp-image-56" title="ghost" src="http://www.ghostfact.com/wp-content/uploads/2011/01/ghost.png" alt="" width="292" height="252" /></a></p>
<p><a href="http://www.ghostfact.com/wp-content/uploads/2011/01/ghost.png"></a>A ghost&#8217;s scaryness is proportional to the length of its arms.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghostfact.com/mission-statement/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
