<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.2" -->
<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/"
	>

<channel>
	<title>Code Log</title>
	<link>http://code.compartmental.net</link>
	<description>Prototypes and Other Bits of Code</description>
	<pubDate>Sun, 20 Apr 2008 18:03:48 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
	<language>en</language>
			<item>
		<title>Musicker v1.</title>
		<link>http://code.compartmental.net/2008/04/20/musicker-v1/</link>
		<comments>http://code.compartmental.net/2008/04/20/musicker-v1/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 18:03:48 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Processing]]></category>

		<category><![CDATA[Prototypes]]></category>

		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/2008/04/20/musicker-v1/</guid>
		<description><![CDATA[I&#8217;ve been wanting to make a sound-generating game for a while, I&#8217;m always inspired when I play games like Rez, Every Extend Extra, and ElectroPlankton. However, what I don&#8217;t want to do is make a Rez clone where there are already constructed songs that you just trigger new layers in and I don&#8217;t want to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been wanting to make a sound-generating game for a while, I&#8217;m always inspired when I play games like Rez, Every Extend Extra, and ElectroPlankton. However, what I don&#8217;t want to do is make a Rez clone where there are already constructed songs that you just trigger new layers in and I don&#8217;t want to do a beat matching game because Harmonix already has that market cornered. So I&#8217;ve started working on a little sound-generating game/toy. It plays like a really simple shmup, but the mechanics are really just an interface to building up sound over time. You can fly a little ship around with some amoebas and they will just harmlessly bounce off of your ship. If you shoot an amoeba it will add a note to a music loop that plays throughout. This loop starts out with nothing in it, so the beginning of the game is silent. The color of each amoeba directly maps to the pitch and velocity of the note that they will create, but it is a narrow range so it is not immediately obvious what note you will get.</p>
<p><a href="http://code.compartmental.net/musicker/v1">Play it.</a></p>
<p>There are still a few things that I want to add, both visual and aural, but the basic idea is there. I will probably also be writing my own Sequencer implementation because the one that comes with Java hiccups sometimes and doesn&#8217;t do track muting properly. Or, rather, it probably does track muting exactly how the author of the implementation intended, but that intent is not one that I agree with. If Processing didn&#8217;t make it so easy to create visuals I think I would have totally given up on audio/midi in Java by now.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2008/04/20/musicker-v1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Springy Synth</title>
		<link>http://code.compartmental.net/2008/01/27/springy-synth/</link>
		<comments>http://code.compartmental.net/2008/01/27/springy-synth/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 04:56:57 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
		
		<category><![CDATA[Minim]]></category>

		<category><![CDATA[Processing]]></category>

		<category><![CDATA[Prototypes]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/2008/01/27/springy-synth/</guid>
		<description><![CDATA[Decided to take a little break from developing Minim and make something with it instead. I made a synth that uses the positions of particles in a simulation to change the frequency and pan position of several oscillators. It comes in two flavors: mono and poly.
]]></description>
			<content:encoded><![CDATA[<p>Decided to take a little break from developing Minim and make something with it instead. I made a synth that uses the positions of particles in a simulation to change the frequency and pan position of several oscillators. It comes in two flavors: <a href="http://code.compartmental.net/springySynth/mono">mono</a> and <a href="http://code.compartmental.net/springySynth/poly">poly</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2008/01/27/springy-synth/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Minim Manual Finished</title>
		<link>http://code.compartmental.net/2008/01/01/minim-manual-finished/</link>
		<comments>http://code.compartmental.net/2008/01/01/minim-manual-finished/#comments</comments>
		<pubDate>Wed, 02 Jan 2008 04:11:55 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
		
		<category><![CDATA[Documentation]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Minim]]></category>

		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/2008/01/01/minim-manual-finished/</guid>
		<description><![CDATA[Well, I accomplished one of my two goals and finished writing the Minim manual. Hopefully it is clear and will be a useful reference for people. I wasn&#8217;t able to push out a new release because of holiday parties, distractions from other projects, and so forth.
Some good news for Minim development, however, is that I [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I accomplished one of my <a href="http://code.compartmental.net/2007/10/22/a-promise-i-hope-to-keep/">two goals</a> and finished writing the <a href="http://code.compartmental.net/tools/minim/manual-introduction/">Minim manual</a>. Hopefully it is clear and will be a useful reference for people. I wasn&#8217;t able to push out a new release because of holiday parties, distractions from other projects, and so forth.</p>
<p>Some good news for Minim development, however, is that I finally got around to setting up my PC to dual boot Ubuntu and Windows XP, so I&#8217;ll be developing primarily in Linux and then testing things back in Windows. I have already discovered that Linux is pretty tetchy, has latency issues, and is just generally not as great for audio. I have an idea for how to solve the latency issue, but it will require pretty significant recoding. I may just release a new version of Minim within the next month to make some small API changes available and then push dealing with the latency issue into the following release.  I&#8217;m going to try to be better about semi-regular releases so that when people send me bugs I deal with them quickly and then release a new version.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2008/01/01/minim-manual-finished/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Promise I Hope To Keep</title>
		<link>http://code.compartmental.net/2007/10/22/a-promise-i-hope-to-keep/</link>
		<comments>http://code.compartmental.net/2007/10/22/a-promise-i-hope-to-keep/#comments</comments>
		<pubDate>Tue, 23 Oct 2007 01:12:58 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
		
		<category><![CDATA[Minim]]></category>

		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/2007/10/22/a-promise-i-hope-to-keep/</guid>
		<description><![CDATA[Man, been a long time. I used to be annoyed by people who release tools like Minim and then leave them undeveloped for long stretches of time with nary a peep about how things are going or when they plan to release a new version. I was even more annoyed when documentation was missing or [...]]]></description>
			<content:encoded><![CDATA[<p>Man, been a long time. I used to be annoyed by people who release tools like Minim and then leave them undeveloped for long stretches of time with nary a peep about how things are going or when they plan to release a new version. I was even more annoyed when documentation was missing or incomplete. No longer! I have become one of those people! It makes me a bit sad but at the same time a full-time job plus a social life really eats up most of the hours in a day. </p>
<p>Here is a promise I hope to keep: </p>
<p>Before the year is out I will finish the Minim Manual and release a new version of the library, incorporating a couple fixes people have sent me and also adding a little bit of new functionality.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2007/10/22/a-promise-i-hope-to-keep/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Yes, but can you play it drunk?</title>
		<link>http://code.compartmental.net/2007/08/31/yes-but-can-you-play-it-drunk/</link>
		<comments>http://code.compartmental.net/2007/08/31/yes-but-can-you-play-it-drunk/#comments</comments>
		<pubDate>Sat, 01 Sep 2007 03:42:01 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
		
		<category><![CDATA[Processing]]></category>

		<category><![CDATA[Prototypes]]></category>

		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/2007/08/31/yes-but-can-you-play-it-drunk/</guid>
		<description><![CDATA[Finished up the second gameplay prototype for Primaries. Play it here:
 http://code.compartmental.net/primaries/proto2/
I like it. It hurts my head a little to play it, but I enjoy that in a puzzle game. However, I don&#8217;t think it&#8217;d be very fun to play while drunk. I also don&#8217;t think it&#8217;d be very fun to watch someone play [...]]]></description>
			<content:encoded><![CDATA[<p>Finished up the second gameplay prototype for Primaries. Play it here:</p>
<p><a href="http://code.compartmental.net/primaries/proto2/" title="Primaries Gameplay Prototype no2"> http://code.compartmental.net/primaries/proto2/</a></p>
<p>I like it. It hurts my head a little to play it, but I enjoy that in a puzzle game. However, I don&#8217;t think it&#8217;d be very fun to play while drunk. I also don&#8217;t think it&#8217;d be very fun to <em>watch</em> someone play it, either while they were drunk and you were sober, or they were sober and you were drunk, or you were both drunk. It&#8217;s also not very conducive to a five minute gameplay session, <em>even if</em> you already know how to play. Admittedly, the keyboard controls complicate things a bit and it would be a little easier with a 360 controller, but even still.</p>
<p>The verdict?</p>
<p>KISS!</p>
<p>I think I&#8217;m going to reduce it to a single grid and do Puzzle Quest style swapping. Color mixing will still be involved, since you could swap two tiles and match two colors with that swap, and I think that will be a nice twist. But it probably also means I will have to come up with a clever way to initialize the board so that you don&#8217;t get a bajillion matches right off the bat.</p>
<p>But now, Bioshock calls!</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2007/08/31/yes-but-can-you-play-it-drunk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Fun Mistake</title>
		<link>http://code.compartmental.net/2007/08/31/a-fun-mistake/</link>
		<comments>http://code.compartmental.net/2007/08/31/a-fun-mistake/#comments</comments>
		<pubDate>Fri, 31 Aug 2007 21:18:34 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
		
		<category><![CDATA[Processing]]></category>

		<category><![CDATA[Prototypes]]></category>

		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/2007/08/31/a-fun-mistake/</guid>
		<description><![CDATA[So I started working on a way to draw the grids for Primaries. It involves using a particle system. Here&#8217;s a prototype that does not allow me to do what I need to, but is fun to play with:
 http://code.compartmental.net/primaries/particle_spring_grid/
]]></description>
			<content:encoded><![CDATA[<p>So I started working on a way to draw the grids for Primaries. It involves using a particle system. Here&#8217;s a prototype that does not allow me to do what I need to, but is fun to play with:</p>
<p><a href="http://code.compartmental.net/primaries/particle_spring_grid/"> http://code.compartmental.net/primaries/particle_spring_grid/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2007/08/31/a-fun-mistake/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Primaries: First Pass</title>
		<link>http://code.compartmental.net/2007/08/26/primaries-first-pass/</link>
		<comments>http://code.compartmental.net/2007/08/26/primaries-first-pass/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 03:39:50 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Processing]]></category>

		<category><![CDATA[Prototypes]]></category>

		<category><![CDATA[Video Games]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/2007/08/26/primaries-first-pass/</guid>
		<description><![CDATA[I&#8217;ve started working on a game for Gamma 256. It&#8217;s an idea that literally came to me at about 2am in the morning. I sent a brief design doc to Fish and Heather and incorporated some of their feedback into the design. I&#8217;ve just finished the first gameplay prototype. The basic idea is to match [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started working on a game for <a href="http://www.kokoromi.org/gamma/resolutions">Gamma 256</a>. It&#8217;s an idea that literally came to me at about 2am in the morning. I sent a brief design doc to Fish and Heather and incorporated some of their feedback into the design. I&#8217;ve just finished the first gameplay prototype. The basic idea is to match three or more colored tiles in a row. The catch is that there are three grids, each corresponding to a primary color (RGB), and the tile and grid have to be the same color for a match to work. In other words, red tiles are matched in the red grid and so forth. To move tiles around you position selection boxes in each of the three grids and the swap tiles between them either clockwise or counter-clockwise. If a swap results in a match in two grids, then a tile that is the mixture of the two, like red and blue making magenta, drops in the top of one of the two grids. Since magenta is red and blue mixed, magenta tiles can be matched in the red and blue grids. Anyway, describing this with words is silly, just go try out the prototype:</p>
<p><a href="http://code.compartmental.net/primaries/proto1">http://code.compartmental.net/primaries/proto1</a></p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2007/08/26/primaries-first-pass/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Somewhat Reconnected.</title>
		<link>http://code.compartmental.net/2007/08/05/somewhat-reconnected/</link>
		<comments>http://code.compartmental.net/2007/08/05/somewhat-reconnected/#comments</comments>
		<pubDate>Sun, 05 Aug 2007 20:09:32 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
		
		<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/2007/08/05/somewhat-reconnected/</guid>
		<description><![CDATA[So here I am, breaking the silence after two months. I apologize to those people who have posted comments asking about Minim that I have not responded to, I&#8217;m usually much better about that. My absence has been due to the fact that I relocated from Montréal to Austin, Texas to work at Red Fly [...]]]></description>
			<content:encoded><![CDATA[<p>So here I am, breaking the silence after two months. I apologize to those people who have posted comments asking about Minim that I have not responded to, I&#8217;m usually much better about that. My absence has been due to the fact that I relocated from Montréal to Austin, Texas to work at <a href="http://redflystudio.wordpress.com/">Red Fly Studio</a> on <a href="http://gamecockmedia.com/mushroommen/">Mushroom Men</a>. The job so far has been awesome. </p>
<p>I plan to return to working on Minim and on a music game with Kokoromi. Hopefully I will not be so computer averse on the weekends that I disappear for two months again.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2007/08/05/somewhat-reconnected/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Minim 1.1 Released!</title>
		<link>http://code.compartmental.net/2007/06/03/minim-11-released/</link>
		<comments>http://code.compartmental.net/2007/06/03/minim-11-released/#comments</comments>
		<pubDate>Mon, 04 Jun 2007 02:02:09 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Minim]]></category>

		<category><![CDATA[Processing]]></category>

		<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/2007/06/03/minim-11-released/</guid>
		<description><![CDATA[I&#8217;m very happy to announce the release of Minim 1.1!
If you&#8217;ve been using Minim 1.0, there are some important changes you need to be aware of:

AudioFileIn is now AudioPlayer.
AudioClip is now AudioSnippet.
To get an AudioSnippet you use Minim.loadSnippet(String).
AudioFileOut is now AudioRecorder.
To get an AudioRecorder you use Minim.createRecorder(Recordable, String, boolean)
Additionally, the methods of AudioRecorder are ever [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m very happy to announce the release of <a href="http://code.compartmental.net/tools/minim/">Minim 1.1</a>!</p>
<p>If you&#8217;ve been using Minim 1.0, there are some important changes you need to be aware of:</p>
<ul>
<li>AudioFileIn is now <a href="http://code.compartmental.net/minim/javadoc/ddf/minim/AudioPlayer.html">AudioPlayer</a>.</li>
<li>AudioClip is now <a href="http://code.compartmental.net/minim/javadoc/ddf/minim/AudioSnippet.html">AudioSnippet</a>.</li>
<li>To get an AudioSnippet you use <a href="http://code.compartmental.net/minim/javadoc/ddf/minim/Minim.html#loadSnippet(java.lang.String)">Minim.loadSnippet(String)</a>.</li>
<li>AudioFileOut is now <a href="http://code.compartmental.net/minim/javadoc/ddf/minim/AudioRecorder.html">AudioRecorder</a>.</li>
<li>To get an AudioRecorder you use <a href="http://code.compartmental.net/minim/javadoc/ddf/minim/Minim.html#createRecorder(ddf.minim.Recordable,%20java.lang.String,%20boolean)">Minim.createRecorder(Recordable, String, boolean)</a></li>
<li>Additionally, the methods of AudioRecorder are ever so slightly different than those of AudioFileIn.
</ul>
<p>Another major change from 1.0 is the inclusion of a bunch of Interfaces that define library functionality. Essentially what I&#8217;ve done is defined how everything in the library should behave and then written an implementation of that spec. This is why createRecorder takes <code>Recordable</code> as the first argument and not an <code>AudioInput</code> or other concrete class. The use of Interfaces shouldn&#8217;t break any of your existing code because I used the existing methods of Minim as the starting point for the Interfaces.</p>
<p>I fixed a host of bugs relating to mp3 playback for this release. They should behave exactly like WAV and AU files now. There are many more examples now, one for each method of each Interface that defines the functionality of Minim classes. Examples are organized by Interface, rather than by concrete class, hopefully this isn&#8217;t too confusing for people.</p>
<p>Please let me know if you have any problems or questions!</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2007/06/03/minim-11-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Minim 1.1 Coming Soon.</title>
		<link>http://code.compartmental.net/2007/05/28/minim-11-coming-soon/</link>
		<comments>http://code.compartmental.net/2007/05/28/minim-11-coming-soon/#comments</comments>
		<pubDate>Tue, 29 May 2007 00:46:08 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Minim]]></category>

		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/2007/05/28/minim-11-coming-soon/</guid>
		<description><![CDATA[I was recently motivated to revisit Minim when I got a note about it from Casey Reas, one of the initiators of Processing. Man oh man did I revisit it. The implementation details went through two waves of refactoring, but I think I&#8217;ve gotten it to a place that I&#8217;m happy with. I&#8217;m only incrementing [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently motivated to revisit Minim when I got a note about it from <a href="http://reas.com">Casey Reas</a>, one of the initiators of Processing. Man oh man did I revisit it. The implementation details went through two waves of refactoring, but I think I&#8217;ve gotten it to a place that I&#8217;m happy with. I&#8217;m only incrementing the version number by .1 because I haven&#8217;t added any new features. I just changed the names of a couple public classes, made all the implementation details package private so that they don&#8217;t clog up the Javadoc, and fixed some bugs relating to mp3 playback. </p>
<p>Additionally, the API is now defined by several <code>interfaces</code>, which opens up the possibility for people to write their own implementation of a file reader, for example. I&#8217;m not sure why anybody would actually go to the trouble of doing that, but the possibility exists, nonetheless. Defining the API in terms of <code>interfaces</code> helped me a great deal with standardizing the methods of different public classes that can do similiar things (like applying effects to an audio stream).</p>
<p>I hope to do a release this coming weekend, but it depends on how quickly I can whip the examples into shape. But do keep an eye out!</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2007/05/28/minim-11-coming-soon/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
