<?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>codehop &#187; slipmat</title>
	<atom:link href="http://codehop.com/tag/slipmat/feed/" rel="self" type="application/rss+xml" />
	<link>http://codehop.com</link>
	<description>#code #art #music</description>
	<lastBuildDate>Mon, 23 Apr 2012 18:37:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>What if Python DNA was Injected into Csound</title>
		<link>http://codehop.com/what-if-python-dna-was-injected-into-csound-2/</link>
		<comments>http://codehop.com/what-if-python-dna-was-injected-into-csound-2/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 22:42:08 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[slipmat]]></category>

		<guid isPermaLink="false">http://csound.noisepages.com/?p=369</guid>
		<description><![CDATA[I started a new computer music blog called Slipmat, which will cover broad topics related to musical language design, injected with my own personal theories and philosophies, rather than focusing on any particular language. On occasion, and only if appropriate, &#8230; <a href="http://codehop.com/what-if-python-dna-was-injected-into-csound-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I started a new computer music blog called <a href="http://slipmat.noisepages.com/">Slipmat</a>, which will cover broad topics related to musical language design, injected with my own personal theories and philosophies, rather than focusing on any particular language. On occasion, and only if appropriate, I&#8217;ll cross post between The Csound Blog and Slipmat. For example, this:</p>
<p><a href="http://slipmat.noisepages.com/">What if Python DNA was Injected into Csound</a></p>
<blockquote><p>The following mockup code is what you would get if your combined the awesome powers of Csound with the beauty of Python. I’m taking some liberties. The example is ignorant of i, k and a-rate. Instead of an orchestra/score pair, everything is combined as one file. And I’m introducing a concept for scheduling events, @, which tells when to do something.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/what-if-python-dna-was-injected-into-csound-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slipmat + Processing Proof-of-Concept</title>
		<link>http://codehop.com/slipmat-processing-proof-of-concept/</link>
		<comments>http://codehop.com/slipmat-processing-proof-of-concept/#comments</comments>
		<pubDate>Sun, 15 Jun 2008 19:05:17 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[the cosmos]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[bliptv]]></category>
		<category><![CDATA[csound]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[slipmat]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.thumbuki.com/?p=189</guid>
		<description><![CDATA[Since friday, I&#8217;ve been spending all my free time learning as mush about Processing as I possible can. I made this video to prove to myself it was possible to integrate Slipmat with Processing. I guess this means I&#8217;m fully &#8230; <a href="http://codehop.com/slipmat-processing-proof-of-concept/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><embed src="http://blip.tv/play/Ab2RAgA" type="application/x-shockwave-flash" width="500" height="280" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<p>Since friday, I&#8217;ve been spending all my free time learning as mush about <a href="http://processing.org/">Processing</a> as I possible can. I made this video to prove to myself it was possible to integrate <a href="https://sourceforge.net/projects/slipmat/">Slipmat</a> with Processing. I guess this means I&#8217;m fully committed to learning the black arts of generative audio/visuals.</p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/slipmat-processing-proof-of-concept/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Slipmat Pre-Alpha 0.01.0 Released</title>
		<link>http://codehop.com/slipmat-pre-alpha-0010-released/</link>
		<comments>http://codehop.com/slipmat-pre-alpha-0010-released/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 19:17:13 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[the cosmos]]></category>
		<category><![CDATA[csd]]></category>
		<category><![CDATA[csound]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[modular]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[slipmat]]></category>
		<category><![CDATA[sourceforge]]></category>
		<category><![CDATA[synthesizer]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.thumbuki.com/?p=188</guid>
		<description><![CDATA[I just released a new Slipmat package at sourceforge. This latest version comes with three new examples, including one that uses a basic Java GUI. Four out of the five examples are now pre-rendered as CSDs for convenience. There are &#8230; <a href="http://codehop.com/slipmat-pre-alpha-0010-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="postimage" class="right" style="width: 322px"><a href="https://sourceforge.net/projects/slipmat/"><img src="http://www.thumbuki.com/images/slipmat0.01.0.jpg" width=320px height=171px alt="Slipmat 0.01.0" title="Slipmat 0.01.0" /></a></div>
<p>I just released a new <a href="https://sourceforge.net/projects/slipmat/">Slipmat</a> package at sourceforge. This latest version comes with three new examples, including one that uses a basic Java GUI. Four out of the five examples are now pre-rendered as CSDs for convenience. There are also a handful of new synth Modules to play with. </p>
<p>The documentation has been improved, including better Javadoc support. The Javadocs are not pre-rendered as to keep the size of the release to a minimum, so you&#8217;ll have to generate them yourself. Many IDEs, including <a href="http://www.netbeans.org/">NetBeans</a> and <a href="http://www.eclipse.org/">Eclipse</a>, will generate them for you. </p>
<p>There is also the <a href="http://slipmat.svn.sourceforge.net/viewvc/slipmat/src/com/thumbuki/slipmat/examples/PseudoTutorial.java?revision=18&#038;view=markup">PseudoTutorial</a> example that gives a broad overview of the design of Slipmat and how to use it.</p>
<p>And in case you&#8217;re wondering, Slipmat is &#8220;A Java-based modular computer music library built on top of the Csound API.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/slipmat-pre-alpha-0010-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing Slipmat for Java and Csound</title>
		<link>http://codehop.com/introducing-slipmat-for-java-and-csound/</link>
		<comments>http://codehop.com/introducing-slipmat-for-java-and-csound/#comments</comments>
		<pubDate>Fri, 30 May 2008 18:08:49 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[the cosmos]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[csound]]></category>
		<category><![CDATA[frankenstein]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[slipmat]]></category>
		<category><![CDATA[synthesizer]]></category>

		<guid isPermaLink="false">http://www.thumbuki.com/?p=185</guid>
		<description><![CDATA[Yesterday, I released the first public version of Slipmat, a Java-based modular computer music library built on top of the Csound API. You can download it at Sourceforge. Let me back up a bit&#8230; Ever since I started Csounding about &#8230; <a href="http://codehop.com/introducing-slipmat-for-java-and-csound/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Yesterday, I released the first public version of Slipmat, a Java-based modular computer music library built on top of the Csound API. You can download it at <a href="http://sourceforge.net/projects/slipmat/">Sourceforge</a>.</p>
<p>Let me back up a bit&#8230;</p>
<p>Ever since I started Csounding about a decade ago, I&#8217;ve heard people refer to the syntax of the Csound language as being very similar to that of Assembly on numerous occasions. I certainly see their point. Let&#8217;s face it, Csound is a Frankenstein of language, stitched together with duct tape and bubble gum. And like Frankenstein, it is both powerful, yet scary to those who judge it solely on its facade. Those who turn a blind eye to Csound&#8217;s frightening nature and learn to understand it for what it is are rewarded with an amazingly expressive computer music environment.  Unfortunately, most people equate their first experience with ladling hot soup onto their laps.  Did I mention Csound is afraid of fire?</p>
<p>Continuing with the Frankenstein metaphor a little longer, Slipmat is a Java abstraction layer that attempts to tame the monster.  To teach it some manners and civility.  If all goes well, Csound will be putting on the ritz in no time.</p>
<p>Let&#8217;s take a look at a simple Slipmat java program (included with the download.)  The following plays every note in a 12 note octave between 440 and 880:</p>
<p><code>import com.thumbuki.slipmat.*;<br />
import com.thumbuki.slipmat.module.*;</p>
<p>public class SimpleExample {<br />
&nbsp;&nbsp;&nbsp;&nbsp;public static void main(String[] args) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SynthRack synthRack = new SynthRack(false);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SinePerc sinePerc = new SinePerc();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output output = new Output();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;synthRack.addModule(sinePerc);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;synthRack.addModule(output);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output.setInput(sinePerc.getOutput());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int i = 0; i <= 12; i++)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sinePerc.playNote(i * 0.25, 0.9, 440 * Math.pow(2, i / 12.0));

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;synthRack.startCsound();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(4000);  /* Keep java running for four seconds */
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(Exception ex) { }
&nbsp;&nbsp;&nbsp;&nbsp;}
}</code></p>
<p>If we think of Slipmat as a high-level abstraction of Csound, which it is, then what happens behind the scenes is that Slipmat "compiles" Csound code, and then this code is fed to the Csound engine. This is sorta how Java produces bytecode that is executed by a Java Virtual Machine.  The following is the code that is produced by the previous example:</p>
<p><code>&lt;CsoundSynthesizer&gt;<br />
&lt;CsOptions&gt;<br />
csound -d -A -odevaudio null.csd<br />
&lt;/CsOptions&gt;<br />
&lt;CsInstruments&gt;<br />
sr = 44100<br />
kr = 4410<br />
ksmps = 10<br />
nchnls = 2</p>
<p>0dbfs = 1.0</p>
<p>gitable1 ftgen 1, 0, 8192, 10, 1.0</p>
<p>chn_a "chna0", 3</p>
<p>instr 1<br />
aclear = 0.0<br />
chnset aclear, "chna0"<br />
endin</p>
<p>instr 2<br />
a1 oscil p4, p5, gitable1<br />
aenv linseg 0, p3 * 0.05, 1, p3 * 0.95, 0<br />
a1 = a1 * aenv<br />
chnmix a1, "chna0"<br />
endin</p>
<p>instr 3<br />
a1 chnget "chna0"<br />
outs a1, a1<br />
endin</p>
<p>&lt;/CsInstruments&gt;<br />
&lt;CsScore&gt;<br />
i 2 0.0 0.125 0.9 440.0<br />
i 2 0.25 0.125 0.9 466.1637615180899<br />
i 2 0.5 0.125 0.9 493.8833012561241<br />
i 2 0.75 0.125 0.9 523.2511306011972<br />
i 2 1.0 0.125 0.9 554.3652619537442<br />
i 2 1.25 0.125 0.9 587.3295358348151<br />
i 2 1.5 0.125 0.9 622.2539674441618<br />
i 2 1.75 0.125 0.9 659.2551138257398<br />
i 2 2.0 0.125 0.9 698.4564628660078<br />
i 2 2.25 0.125 0.9 739.9888454232689<br />
i 2 2.5 0.125 0.9 783.9908719634986<br />
i 2 2.75 0.125 0.9 830.6093951598903<br />
i 2 3.0 0.125 0.9 880.0<br />
i 1 0 -1.0<br />
i 3 0.0 -1.0 </p>
<p>&lt;/CsScore&gt;<br />
&lt;/CsoundSynthesizer&gt;</code></p>
<p>I know what you're thinking...  What the hell am I looking at?  Truth is, this code is not meant for human consumption. A person who regularly writes Csound code can write code that is more clear than this.  Even then, compared to Java-Slipmat code, it can look like chicken scratch. Or my handwriting.</p>
<p>Since Slipmat is more or less a Java library built on top of the Java-Csound API, this means all of Java's and whistles are now available to use in conjunction with Csound. Want a reliable cross-platform GUI? Give swing a try. Want to integrate <a href="http://processing.org/">Processing</a> with you Csound? You can. Want a tool that automagically hides all the grunt work from you, such as assigning instr numbers,  tables, chn software busses, etc? More than anything else in life (personally speaking.)</p>
<p>I should warn you...  Slipmat is currently pre-alpha.  Which means everything is in a state of flux, and there isn't anything that resembles a specification at this point.  Methods and classes are guaranteed to change drastically over the next few months.  Tutorials on the way...</p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/introducing-slipmat-for-java-and-csound/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
