<?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>code.compartmental &#187; Minim</title>
	<atom:link href="http://code.compartmental.net/category/minim/feed/" rel="self" type="application/rss+xml" />
	<link>http://code.compartmental.net</link>
	<description></description>
	<lastBuildDate>Sat, 28 Jan 2012 17:54:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WaveShaper for iPad Released!</title>
		<link>http://code.compartmental.net/2011/12/15/waveshaper-for-ipad-released/</link>
		<comments>http://code.compartmental.net/2011/12/15/waveshaper-for-ipad-released/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 00:47:08 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Minim]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[WaveShaper]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[sound design]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/?p=568</guid>
		<description><![CDATA[Today I released my first sound making app for iPad! WaveShaper is an app for iPad that allows you to load up any audio file and make crazy cool sounds with it. It&#8217;s a lot like record scratching, but totally &#8230; <a href="http://code.compartmental.net/2011/12/15/waveshaper-for-ipad-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Today I released my first sound making app for iPad! </p>
<p>WaveShaper is an app for iPad that allows you to load up any audio file and make crazy cool sounds with it. It&#8217;s a lot like record scratching, but totally maxed out. This video will do a much better job of explaining it than words ever will:</p>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/dmG7a8zetAg?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p>Visit <a href="http://waveshaperapp.com">waveshaperapp.com</a> for more info, sound samples, and screenshots. Or just <a href="http://itunes.com/app/waveshaper" title="iTunes link to WaveShaper" target="_blank">go buy it right now</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2011/12/15/waveshaper-for-ipad-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtual Violin with WiiRemotes, OSC, and Minim</title>
		<link>http://code.compartmental.net/2011/11/15/virtual-violin-with-wiiremotes-osc-and-minim/</link>
		<comments>http://code.compartmental.net/2011/11/15/virtual-violin-with-wiiremotes-osc-and-minim/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 20:44:43 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
				<category><![CDATA[Minim]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/?p=535</guid>
		<description><![CDATA[Here&#8217;s an awesome incoming link from today: http://adaptiveart.eecs.umich.edu/2011/?p=1700 From what I can gather, it&#8217;s a project from a class being taught at the University of Michigan that uses two WiiRemotes to generate OSC messages, which are then turned into control &#8230; <a href="http://code.compartmental.net/2011/11/15/virtual-violin-with-wiiremotes-osc-and-minim/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s an awesome incoming link from today: <a href="http://adaptiveart.eecs.umich.edu/2011/?p=1700">http://adaptiveart.eecs.umich.edu/2011/?p=1700</a></p>
<p>From what I can gather, it&#8217;s a project from a class being taught at the University of Michigan that uses two WiiRemotes to generate OSC messages, which are then turned into control commands for some oscillators in Minim. I love seeing this kind of stuff!</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2011/11/15/virtual-violin-with-wiiremotes-osc-and-minim/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Minim without Processing</title>
		<link>http://code.compartmental.net/2011/11/15/minim-without-processing/</link>
		<comments>http://code.compartmental.net/2011/11/15/minim-without-processing/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 16:30:59 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Minim]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/?p=523</guid>
		<description><![CDATA[I&#8217;ve been asked many times to remove the PApplet dependency from Minim and tonight I have done it. If you&#8217;d like to try out Minim in your not-Processing Java app, you can grab the latest from the repo to do &#8230; <a href="http://code.compartmental.net/2011/11/15/minim-without-processing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been asked many times to remove the PApplet dependency from Minim and tonight I have done it. If you&#8217;d like to try out Minim in your not-Processing Java app, you can <a href="https://github.com/ddf/Minim">grab the latest from the repo</a> to do so. I&#8217;ve put the details in the Javadoc, but I&#8217;ll lay out the basics here, as well.</p>
<p>Processing provides two key methods that the JavaSound implementation of Minim uses when dealing with sound files. The <a href="http://processing.googlecode.com/svn/trunk/processing/build/javadoc/core/processing/core/PApplet.html#sketchPath(java.lang.String)">sketchPath</a> method is used by createRecorder to generate an absolute path from the file name provided to that method. The <a href="http://www.processing.org/reference/createInput_.html">createInput</a> method is used to get InputStreams for reading audio files. In order to remove the dependency on PApplet, the Minim constructor that required a PApplet as an argument has been replaced with one that takes an Object. This Object is then passed to the JavaSound implementation, which uses reflection to try to locate sketchPath and createInput methods on that Object. </p>
<p>What it boils down to is that if you are building a not-Processing Java app, you must simply write sketchPath and createInput methods for one of your application classes and then pass an instance of that class to the Minim constructor. The exact method signatures are:<br />
<code><br />
String sketchPath(String fileName);<br />
InputStream createInput(String fileName);<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2011/11/15/minim-without-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entre 2 Mondes at Elektra</title>
		<link>http://code.compartmental.net/2011/05/06/entre-2-mondes-at-elektra/</link>
		<comments>http://code.compartmental.net/2011/05/06/entre-2-mondes-at-elektra/#comments</comments>
		<pubDate>Fri, 06 May 2011 17:59:33 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
				<category><![CDATA[Installations]]></category>
		<category><![CDATA[Minim]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/?p=489</guid>
		<description><![CDATA[For the last month, I&#8217;ve been working on the audio portion of an installation for the Elektra Festival in Montréal along with Mickaël Lafontaine. The installation, designed by Mickaël, is an interactive touchscreen experience that is a meta-installation about Cycloïd-E, &#8230; <a href="http://code.compartmental.net/2011/05/06/entre-2-mondes-at-elektra/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.compartmental.net/wp-content/uploads/2011/05/entre2mondes_screen.png"><img src="http://code.compartmental.net/wp-content/uploads/2011/05/entre2mondes_screen.png" alt="" title="entre2mondes_screen" width="500" class="aligncenter size-full wp-image-491" /></a></p>
<p>For the last month, I&#8217;ve been working on the audio portion of an installation for the <a href="http://www.elektramontreal.ca/2011/">Elektra Festival in Montréal</a> along with Mickaël Lafontaine. The installation, designed by Mickaël, is an interactive touchscreen experience that is a meta-installation about <a href="http://www.codact.ch/gb/cyclogb.html">Cycloïd-E</a>, which is a &#8220;kinetic polyphonic installation&#8221; also being shown at Elektra. Mickaël had elementary and high school students watch video and listen to recordings of Cycloïd-E and then write short poems about it. These poems have been split into four &#8220;thematic spaces&#8221; where people can reconstruct the poems by dragging words into place. Each &#8220;thematic space&#8221; has a theme and a unique soundscape that evokes different aspects of Cycloïd-E. The soundscapes are constructed out of bits of recordings of Cycloïd-E, recordings of the kids reading their poems, and procedurally generated audio. I used the new UGen Framework in Minim to create all of the effects and do real-time mixing and parameter control, some of which is tied directly to touchscreen input.</p>
<p>If you are in Montréal, you can see the installation at the Elektra Festival for free. It&#8217;s currently installed in the lobby of Usine C and can be viewed starting from 5pm, through May 7. More details are available at the Elektra site: <a href="http://www.elektramontreal.ca/2011/#/program/ENTRE_2_MONDES/">http://www.elektramontreal.ca/2011/#/program/ENTRE_2_MONDES/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2011/05/06/entre-2-mondes-at-elektra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sound Byte: Granulizer Patch</title>
		<link>http://code.compartmental.net/2011/05/04/sound-byte-granulizer-patch/</link>
		<comments>http://code.compartmental.net/2011/05/04/sound-byte-granulizer-patch/#comments</comments>
		<pubDate>Thu, 05 May 2011 02:05:28 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Minim]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Sound Bytes]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/?p=482</guid>
		<description><![CDATA[This Sound Byte gives you control over a reasonably complex UGen chain. The meat of it is a UGen I&#8217;ve called Granulizer, which takes sample data and, based on some parameters, randomly chooses short sections of the data to loop &#8230; <a href="http://code.compartmental.net/2011/05/04/sound-byte-granulizer-patch/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.compartmental.net/soundBytes/granulizerPatch"><img src="http://code.compartmental.net/wp-content/uploads/2011/05/granulizer_screen.png" alt="" title="granulizer_screen" width="500" class="aligncenter size-full wp-image-484" /></a></p>
<p>This Sound Byte gives you control over a reasonably complex UGen chain. The meat of it is a UGen I&#8217;ve called Granulizer, which takes sample data and, based on some parameters, randomly chooses short sections of the data to loop before jumping to a different short section. This sketch gives you mouse control over the size of the sections that are looped, as well as how many times they are looped. There are also keyboard commands for controlling some effects that the Granulizer is being patched through, such as a double delay, a resonant filter, a sample repeater, a bit crusher, and a playback rate controller. The controls are outlined on the applet page, so <a href="http://code.compartmental.net/soundBytes/granulizerPatch">check it out</a>!</p>
<p>I never really got into using max/msp or pd, but now that I&#8217;ve got these UGens to play around with in Minim, I&#8217;m finally discovering the joy of patching!</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2011/05/04/sound-byte-granulizer-patch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sound Byte: Ball Synth</title>
		<link>http://code.compartmental.net/2011/04/07/sound-byte-ball-synth/</link>
		<comments>http://code.compartmental.net/2011/04/07/sound-byte-ball-synth/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 01:07:24 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Minim]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Sound Bytes]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/?p=474</guid>
		<description><![CDATA[This very simple sketch is a little musical physics simulation. Click in it to spawn a ball that will bounce off the walls, producing notes each time it does. Listen with headphones for the best stereo effect. Try it!]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.compartmental.net/soundBytes/ballSynth"><img src="http://code.compartmental.net/wp-content/uploads/2011/04/ballSynth_screenshot.png" alt="" title="ballSynth_screenshot" width="500" class="aligncenter size-full wp-image-476" /></a></p>
<p>This very simple sketch is a little musical physics simulation. Click in it to spawn a ball that will bounce off the walls, producing notes each time it does. Listen with headphones for the best stereo effect. <a href="http://code.compartmental.net/soundBytes/ballSynth">Try it</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2011/04/07/sound-byte-ball-synth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sound Byte: Melodizer</title>
		<link>http://code.compartmental.net/2011/03/18/sound-byte-melodizer/</link>
		<comments>http://code.compartmental.net/2011/03/18/sound-byte-melodizer/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 18:34:49 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Minim]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Sound Bytes]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/?p=465</guid>
		<description><![CDATA[The Melodizer is a variation on the Beat Generator. It will constantly generate a tune with a &#8220;melody&#8221; and a &#8220;bass line&#8221; by looking at the settings every measure and generating a measure with those settings. Each big slider represents &#8230; <a href="http://code.compartmental.net/2011/03/18/sound-byte-melodizer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.compartmental.net/soundBytes/melodizer/"><img src="http://code.compartmental.net/wp-content/uploads/2011/03/melodizer_screenshot.png" alt="These settings sound a bit like bad bluesy music from a 90s video game." title="melodizer_screenshot" width="500" class="aligncenter size-full wp-image-461" /></a></p>
<p>The Melodizer is a variation on the <a href="http://code.compartmental.net/2010/09/13/sound-byte-beat-generator/">Beat Generator</a>. It will constantly generate a tune with a &#8220;melody&#8221; and a &#8220;bass line&#8221; by looking at the settings every measure and generating a measure with those settings. Each big slider represents a 16th note in a one bar loop. The value of each slider is the probability that the program will choose to generate a note on that 16th note when it generates a measure. The actual pitch it chooses for the note is determined by the current key and scale, as well as what the previously generated pitch was. If you look in the Scales.pde file you&#8217;ll see that for each pitch in a scale, I&#8217;ve encoded which steps in the scale are legal next notes. It&#8217;s a pretty crude melody building algorithm, but it does give the output a little bit more musicality. The drum beat is always the same, but there are three toggles that let you turn off the parts of the drum loop you don&#8217;t want to hear.</p>
<p>Some other things you can adjust are: tempo, shuffle (how much it &#8220;swings&#8221;), the waveforms used for the melody and bass lines, the volume of the melody and bass lines, and of course there is a button for randomizing the note probabilities.</p>
<p><a href="http://code.compartmental.net/soundBytes/melodizer/">Try it out</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2011/03/18/sound-byte-melodizer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sound Byte: Noise Shaper</title>
		<link>http://code.compartmental.net/2011/01/10/sound-byte-noise-shaper/</link>
		<comments>http://code.compartmental.net/2011/01/10/sound-byte-noise-shaper/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 06:41:13 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Minim]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Sound Bytes]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/?p=455</guid>
		<description><![CDATA[What started out as simply curiosity about what it would sound like to run a Noise UGen through a TickRate UGen and slow it way down, turned into this interesting sound generating sketch. I&#8217;m using modulated Noise to drive a &#8230; <a href="http://code.compartmental.net/2011/01/10/sound-byte-noise-shaper/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.compartmental.net/soundBytes/noiseShaper"><img src="http://code.compartmental.net/wp-content/uploads/2011/01/noiseShaperScreenshot2.png" alt="" title="Noise Shaper Screenshot" width="450" class="aligncenter size-full wp-image-454" /></a></p>
<p>What started out as simply curiosity about what it would sound like to run a Noise UGen through a TickRate UGen and slow it way down, turned into this interesting sound generating sketch. I&#8217;m using modulated Noise to drive a WaveShaper. The waveform being used in the WaveShaper is a sustained chord from a Rhodes, but you&#8217;ll never quite be able to hear that. Essentially what this Sound Byte lets you do is scrub through small sections of the recording in random ways (since there is noise involved). Experiment with lots of different slider settings, there is surprising amount of variety that can be obtained. Have a look at the code to see exactly what you are controlling. Try out the settings in the screenshot above for a reasonably mellow sweeping formant sound with a really mesmerizing waveform.</p>
<p><a href="http://code.compartmental.net/soundBytes/noiseShaper">Play with it</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2011/01/10/sound-byte-noise-shaper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The TickRate UGen</title>
		<link>http://code.compartmental.net/2011/01/09/the-tickrate-ugen/</link>
		<comments>http://code.compartmental.net/2011/01/09/the-tickrate-ugen/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 23:25:50 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
				<category><![CDATA[DSP]]></category>
		<category><![CDATA[Minim]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/?p=445</guid>
		<description><![CDATA[I&#8217;ve received several questions about the TickRate UGen that I&#8217;ve used in some recent Sound Bytes. Quite simply, this is a UGen that allows you specify an audio generation rate. Setting a rate of 1 means that the UGen patched &#8230; <a href="http://code.compartmental.net/2011/01/09/the-tickrate-ugen/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve received several questions about the TickRate UGen that I&#8217;ve used in some recent Sound Bytes. Quite simply, this is a UGen that allows you specify an audio generation rate. Setting a rate of 1 means that the UGen patched to TickRate will be ticked every time that TickRate is. Setting a rate of 0.5 means that the UGen patched to TickRate will be ticked at half the rate of TickRate (every other sample). Setting a rate of 2 means that the UGen patched to TickRate will be ticked twice every time that TickRate is ticked. The sample frame that TickRate generates can either be the same as the most recently generated sample frame from the UGen patched to it, or you can have it interpolate between that sample frame and the <em>next</em> sample frame from the UGen patched to it. At low tick rates, non-interpolated audio will sound like it is being bit-crushed. Essentially, this UGen allows you to control the sample rate of any UGen patched to it, with the limitation that you won&#8217;t be able to patch the output of that UGen anywhere else. That limitation is not enforced, but if you do so, your audio will not sound correct.</p>
<p>As for where to get the TickRate UGen, you can either <a href="https://github.com/ddf/Minim/blob/master/src/ddf/minim/ugens/TickRate.java">copy the file from the Minim GitHub repo</a>, or you can pull the repo and build the library locally.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2011/01/09/the-tickrate-ugen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sound Byte: String of Pearls</title>
		<link>http://code.compartmental.net/2010/11/20/sound-byte-string-of-pearls/</link>
		<comments>http://code.compartmental.net/2010/11/20/sound-byte-string-of-pearls/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 03:04:47 +0000</pubDate>
		<dc:creator>ddf</dc:creator>
				<category><![CDATA[Minim]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[Sound Bytes]]></category>

		<guid isPermaLink="false">http://code.compartmental.net/?p=436</guid>
		<description><![CDATA[I had a cool idea about controlling a filter bank of bandpass filters, so I coded up this simple sketch. Each white pearl in this string of pearls represents a band pass filter. The horizontal position of each pearl controls &#8230; <a href="http://code.compartmental.net/2010/11/20/sound-byte-string-of-pearls/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.compartmental.net/soundBytes/bandFilters"><img src="http://code.compartmental.net/wp-content/uploads/2010/11/bandFilters_screenshot.png" alt="" title="String of Pearls Screenshot" width="450" class="aligncenter size-full wp-image-437" /></a>I had a cool idea about controlling a filter bank of bandpass filters, so I coded up this simple sketch. Each white pearl in this string of pearls represents a band pass filter. The horizontal position of each pearl controls the center frequency and the vertical position controls the bandwidth. You can click and drag around any of the pearls, including the red ones, which are simply anchor points for the string. The song is Lonely Rolling Star from the Katamari Damacy soundtrack.</p>
<p><a href="http://code.compartmental.net/soundBytes/bandFilters">Try it out</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://code.compartmental.net/2010/11/20/sound-byte-string-of-pearls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

