<?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>Create Digital Music &#187; C++</title>
	<atom:link href="http://createdigitalmusic.com/tag/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://createdigitalmusic.com</link>
	<description>Making music with technology</description>
	<lastBuildDate>Thu, 09 Feb 2012 18:27:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>PreenFM, Open Source Hardware Synth: Behind the Scenes with the Creator</title>
		<link>http://createdigitalmusic.com/2011/12/preenfm-open-source-hardware-synth-behind-the-scenes-with-the-creator/</link>
		<comments>http://createdigitalmusic.com/2011/12/preenfm-open-source-hardware-synth-behind-the-scenes-with-the-creator/#comments</comments>
		<pubDate>Thu, 08 Dec 2011 16:37:05 +0000</pubDate>
		<dc:creator>Peter Kirn</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[behind-the-scenes]]></category>
		<category><![CDATA[boutique]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[FM]]></category>
		<category><![CDATA[fm-synthesis]]></category>
		<category><![CDATA[free-software]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[leaf]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[synths]]></category>

		<guid isPermaLink="false">http://createdigitalmusic.noisepages.com/?p=21744</guid>
		<description><![CDATA[First revealed last month, PreenFM is an open source hardware synth. As the name implies, it&#8217;s an FM synth, with some very serious specs: up to six-operator FM synthesis with some nine algorithms, up to 4-voice polyphony (depending on algorithm), glide, selectable LFOs, modulation matrix, and preset banks with SysEx support. It&#8217;s all usable via &#8230; <a class="btn read-more" href="http://createdigitalmusic.com/2011/12/preenfm-open-source-hardware-synth-behind-the-scenes-with-the-creator/">Continue &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><iframe width="640" height="480" src="http://www.youtube.com/embed/0MZPafwf43E?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p>First revealed last month, PreenFM is an open source hardware synth. As the name implies, it&#8217;s an FM synth, with some very serious specs: up to six-operator FM synthesis with some nine algorithms, up to 4-voice polyphony (depending on algorithm), glide, selectable LFOs, modulation matrix, and preset banks with SysEx support. It&#8217;s all usable via a display and MIDI support.</p>
<p>It&#8217;s also fully open source hardware; whereas early efforts often had commercial restrictions attached, PreenFM is free for use under the GPLv3 and Creative Commons. And it&#8217;s got a unique platform under the hood: the open source <a href="http://leaflabs.com/">LeafLabs 32-bit development platform</a> gives this some serious horsepower. It&#8217;s very much in contrast to the ultra-inexpensive 8-bit brain of our own <a href="http://meeblip.com">MeeBlip synth</a>; think of the MeeBlip as an exercise in what you can do with a little two-stroke engine versus the V8 muscle in this. (The creator says the MeeBlip helped inspire his creation &#8211; yes, synths are multiplying!)</p>
<p>You may have glimpsed the PreenFM making the rounds online, but I got creator Xavier Hosxe to tell us more of the gory details and share some sounds. </p>
<p><a href="http://createdigitalmusic.com/files/2011/12/preenfm_top.jpg"><img src="http://createdigitalmusic.com/files/2011/12/preenfm_top-640x480.jpg" alt="" title="preenfm_top" width="640" height="480" class="alignnone size-large wp-image-21754" /></a><span id="more-21744"></span></p>
<p><a href="http://createdigitalmusic.com/files/2011/12/preenfm_underneath.jpg"><img src="http://createdigitalmusic.com/files/2011/12/preenfm_underneath-640x533.jpg" alt="" title="preenfm_underneath" width="640" height="533" class="alignnone size-large wp-image-21755" /></a></p>
<p><strong>CDM: So this is all based on the Leaf platform?</strong></p>
<p><strong>Xavier:</strong> Yes it&#8217;s built around a LeafLab board.<br />
I coded a first version on the Maple [development board]; then when they announced their &#8220;<a href="http://leaflabs.com/docs/hardware/maple-mini.html">Maple Mini</a>,&#8221; I realized it was going to be very easy to plug it into a PCB.<br />
I&#8217;m not directly connected to [LeafLabs]; I participated in the forum and learnt many things from the team.</p>
<p>They are very friendly and helpful.</p>
<p><strong>What was it like working with the Leaf?</strong></p>
<p>The LeafLabs boards uses an <a href="http://www.arm.com/products/processors/cortex-m/cortex-m3.php">ARM Cortex-M3</a> microcontroller.</p>
<p>It&#8217;s a 32-bit chip runing at 72Mhz that can do 32-bit multiplication in 1 clock cycle, has 128Kb of flash [memory] and 20Kb of RAM. That seems very few but it&#8217;s not, PreenFM software uses 92Kb for the moment.</p>
<p>LeafLabs provide a Linux/gcc toolchain that allows to develop in your IDE of choice&#8230; <a href="http://eclipse.org">Eclipse</a> in my case, which is very confortable.</p>
<p>They also provide a strong bootloader and some libraries that worked perferfeclty for my needs : Usart (Midi), I2C (EEPROM), LiquidCrystal (LCD).</p>
<p><strong>What will you get in the PreenFM kit?</strong></p>
<p>All you need to build yourself a complete synth: PCB, screws, resistors, ICs, audio/midi jack, box, 20&#215;4 LCD, encoders, knobs, buttons&#8230; even an USB cable [for power].</p>
<p>You&#8217;ll also get a Maple Mini board with PreenFM soft preloaded.  The Maple Mini is easily updatable, and you can experiment lots of different things with it.</p>
<p>PreenFM C++ source code is <a href="https://github.com/Ixox/preen">available on GitHub</a>. It&#8217;s easy to read and modifiable. If you want to see your name to welcome you on the boot screen, go ahead <img src='http://createdigitalmusic.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>To build the kit, you only need a soldering iron and some solder.</p>
<p>There will be 2 differences with the photos you can see on the site: the final PCB will be blue (I should receive them next week). <em>[Ed.: See the photo in blue at top; the orange one is included here for variety! -PK]</em></p>
<p><strong>Xavier also sends along some welcome news:</strong></p>
<p>Here is a sound I can get with my soon-to-be-released StepSequencer feature in PreenFM.</p>
<p>This is a single voice of a simple 3-oscillator voice. 1 very slow LFO + 2 * step sequencer routed to the modulation indices.</p>
<p><object height="81" width="100%"><param name="movie" value="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F30075566"></param><param name="allowscriptaccess" value="always"></param> <embed allowscriptaccess="always" height="81" src="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F30075566" type="application/x-shockwave-flash" width="100%"></embed></object>  <span><a href="http://soundcloud.com/cdm/preenfmstepseq">PreenFMStepSeq</a> by <a href="http://soundcloud.com/cdm">cdm</a></span> </p>
<p>Here&#8217;s a sound sample:<br />
<object height="81" width="100%"><param name="movie" value="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F30076029"></param><param name="allowscriptaccess" value="always"></param> <embed allowscriptaccess="always" height="81" src="https://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F30076029" type="application/x-shockwave-flash" width="100%"></embed></object>  <span><a href="http://soundcloud.com/cdm/preenfm-1">PreenFM 1</a> by <a href="http://soundcloud.com/cdm">cdm</a></span> </p>
<p><strong><a href="http://www.preenfm.net ">http://www.preenfm.net</a></strong></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2011/12/preenfm-open-source-hardware-synth-behind-the-scenes-with-the-creator/&via=cdmblogs&text=PreenFM, Open Source Hardware Synth: Behind the Scenes with the Creator&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2011/12/preenfm-open-source-hardware-synth-behind-the-scenes-with-the-creator/&via=cdmblogs&text=PreenFM, Open Source Hardware Synth: Behind the Scenes with the Creator&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class='wpfblike' style='height: 40px;'><iframe src='http://www.facebook.com/plugins/like.php?href=http://createdigitalmusic.com/2011/12/preenfm-open-source-hardware-synth-behind-the-scenes-with-the-creator/&amp;layout=default&amp;show_faces=false&amp;width=400&amp;action=like&amp;colorscheme=light&amp;send=false' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:400px;'></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://createdigitalmusic.com/2011/12/preenfm-open-source-hardware-synth-behind-the-scenes-with-the-creator/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Farewell to Dennis Ritchie, Whose Language Underlies Digital Music Software</title>
		<link>http://createdigitalmusic.com/2011/10/farewell-to-dennis-ritchie-whose-language-underlies-digital-music-software/</link>
		<comments>http://createdigitalmusic.com/2011/10/farewell-to-dennis-ritchie-whose-language-underlies-digital-music-software/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 12:54:29 +0000</pubDate>
		<dc:creator>Peter Kirn</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[bell]]></category>
		<category><![CDATA[bell-labs]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[computer-music]]></category>
		<category><![CDATA[dennis-ritchie]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[obituaries]]></category>
		<category><![CDATA[pioneers]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://createdigitalmusic.noisepages.com/?p=20945</guid>
		<description><![CDATA[Photo (CC-BY) Mark Anderson. The generation of people who defined modern computing seems to be passing this year. Following Max Mathews, another Bell Labs titan is lost to us: Dennis Ritchie is the man who created the original C programming language (again at Bell Labs) as well as co-developed the UNIX operating system. President Obama &#8230; <a class="btn read-more" href="http://createdigitalmusic.com/2011/10/farewell-to-dennis-ritchie-whose-language-underlies-digital-music-software/">Continue &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://createdigitalmusic.com/files/2011/10/letterc.jpg"><img src="http://createdigitalmusic.com/files/2011/10/letterc.jpg" alt="" title="letterc" width="576" height="640" class="alignnone size-full wp-image-20946" /></a></p>
<div class="imgcaption">Photo (<a href="http://creativecommons.org/licenses/by/2.0/">CC-BY</a>) <a href="http://www.flickr.com/people/andertoons-cartoons/">Mark Anderson</a>.</div>
<p>The generation of people who defined modern computing seems to be passing this year. Following Max Mathews, another Bell Labs titan is lost to us: Dennis Ritchie is the man who created the original C programming language (again at Bell Labs) as well as co-developed the UNIX operating system. President Obama commented that many people learned of Steve Jobs&#8217; death on a device &#8220;he invented.&#8221; For all Jobs&#8217; contributions, it is as untrue to say that as it is <em>true</em> to say the same of Ritchie: you are quite literally reading this story as served by software derived from his creations on UNIX, using tools written primarily in the language he, with others, devised.</p>
<p>For music, C endures in some form as the basis of the vast majority of tools we use for musical computation &#8211; that is, his creation is at the heart of the software with which we all make music. And just as Mathews made the computer sing for the first time, C is a <em>lingua franca</em> on which musical expression is based, the kernel of the vast array of sounds computers today make.</p>
<p>But C is important not simply because, in some form, it remains at the heart of much of the computer code written today. It also introduced in a material sense the idea of portability and cross-platform code, allowing in turn music tools like Csound and others to appear on new computers rather than pass away. It formalized coding concepts that, even in radically-different, more &#8220;modern&#8221; languages survive. That means that for people expressing musical ideas in code &#8211; and anyone using the software that results &#8211; software is not tied to specific hardware, lost as new generations of gear cause the old to pass away. The ideas behind C allow computer music to pass from one generation to another &#8211; to outlive us.</p>
<p>Ritchie would probably at this point hasten to add that he didn&#8217;t work alone, that his work was based on others, that he had colleagues like Ken Thompson who worked with him on C and UNIX. Such is the nature of invention, and unlike the titanic egos of the past (yes, Henry Ford and Thomas Edison, we&#8217;re looking at you), some of today&#8217;s creations were built by people whose impact was no smaller, but who have been far humbler and lesser-known.</p>
<p>So, get to know Dennis and the many colleagues who survive him. Marvel that the &#8220;machine&#8221; is not some alien robot at all, but that in your hands, you hold the contributions of creative human beings, the thoughts of complete strangers encapsulated in front of you, and that at the end of the day, you can make it all sing a song.</p>
<p><a href="http://techcrunch.com/2011/10/13/father-of-c-and-unix-dennis-ritchie-passes-away-at-age-70/">Via TechCrunch</a></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2011/10/farewell-to-dennis-ritchie-whose-language-underlies-digital-music-software/&via=cdmblogs&text=Farewell to Dennis Ritchie, Whose Language Underlies Digital Music Software&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2011/10/farewell-to-dennis-ritchie-whose-language-underlies-digital-music-software/&via=cdmblogs&text=Farewell to Dennis Ritchie, Whose Language Underlies Digital Music Software&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class='wpfblike' style='height: 40px;'><iframe src='http://www.facebook.com/plugins/like.php?href=http://createdigitalmusic.com/2011/10/farewell-to-dennis-ritchie-whose-language-underlies-digital-music-software/&amp;layout=default&amp;show_faces=false&amp;width=400&amp;action=like&amp;colorscheme=light&amp;send=false' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:400px;'></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://createdigitalmusic.com/2011/10/farewell-to-dennis-ritchie-whose-language-underlies-digital-music-software/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>One Line of Code, into Music: Now with Visuals</title>
		<link>http://createdigitalmusic.com/2011/10/one-line-of-code-into-music-now-with-visuals/</link>
		<comments>http://createdigitalmusic.com/2011/10/one-line-of-code-into-music-now-with-visuals/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 22:57:26 +0000</pubDate>
		<dc:creator>Peter Kirn</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[audiovisual]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[composition]]></category>
		<category><![CDATA[demoscene]]></category>
		<category><![CDATA[oddities]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://createdigitalmusic.noisepages.com/?p=20904</guid>
		<description><![CDATA[This update I believe is worth a second post, as it makes visible the otherwise-mysterious algorithms producing music in our previous post. And yes, I believe this is &#8220;music,&#8221; naysayers aside. Whether it&#8217;s good music is in the ears of the listener, but if you can describe this much sound with this little code, imagine &#8230; <a class="btn read-more" href="http://createdigitalmusic.com/2011/10/one-line-of-code-into-music-now-with-visuals/">Continue &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><iframe width="640" height="480" src="http://www.youtube.com/embed/tCRPUv8V22o?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p>This update I believe is worth a second post, as it makes visible the otherwise-mysterious algorithms producing music in our <a href="http://createdigitalmusic.com/2011/10/entire-musical-compositions-made-from-just-one-line-of-code-are-glitchy-but-musical/">previous post</a>.</p>
<p>And yes, I believe this is &#8220;music,&#8221; naysayers aside. Whether it&#8217;s good music is in the ears of the listener, but if you can describe this much sound with this little code, imagine what&#8217;s really possible in computer music. Whatever it is you want to hear, it&#8217;s within the power of your imagination to describe it, on a score or in code, either one.</p>
<p>Thanks to none other than Stephan Schmitt for the tip.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2011/10/one-line-of-code-into-music-now-with-visuals/&via=cdmblogs&text=One Line of Code, into Music: Now with Visuals&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2011/10/one-line-of-code-into-music-now-with-visuals/&via=cdmblogs&text=One Line of Code, into Music: Now with Visuals&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class='wpfblike' style='height: 40px;'><iframe src='http://www.facebook.com/plugins/like.php?href=http://createdigitalmusic.com/2011/10/one-line-of-code-into-music-now-with-visuals/&amp;layout=default&amp;show_faces=false&amp;width=400&amp;action=like&amp;colorscheme=light&amp;send=false' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:400px;'></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://createdigitalmusic.com/2011/10/one-line-of-code-into-music-now-with-visuals/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Entire Musical Compositions Made from Just One Line of Code are Glitchy but Musical</title>
		<link>http://createdigitalmusic.com/2011/10/entire-musical-compositions-made-from-just-one-line-of-code-are-glitchy-but-musical/</link>
		<comments>http://createdigitalmusic.com/2011/10/entire-musical-compositions-made-from-just-one-line-of-code-are-glitchy-but-musical/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 11:57:05 +0000</pubDate>
		<dc:creator>Peter Kirn</dc:creator>
				<category><![CDATA[Artists]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[algorithmic]]></category>
		<category><![CDATA[algorithms]]></category>
		<category><![CDATA[artists]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[composition]]></category>
		<category><![CDATA[computation]]></category>
		<category><![CDATA[demoscene]]></category>
		<category><![CDATA[generative]]></category>
		<category><![CDATA[generative-music]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[minimal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://createdigitalmusic.noisepages.com/?p=20898</guid>
		<description><![CDATA[You know you&#8217;re in for something different with an article that contains this line: &#8220;as 256 bytes is becoming the new 4K, there has been ever more need to play decent music in the 256-byte size class. &#8221; In just a single line of code, Finnish artist and coder countercomplex, working with other contributors, is &#8230; <a class="btn read-more" href="http://createdigitalmusic.com/2011/10/entire-musical-compositions-made-from-just-one-line-of-code-are-glitchy-but-musical/">Continue &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><iframe width="640" height="480" src="http://www.youtube.com/embed/GtQdIYUtAHg?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p><iframe width="640" height="480" src="http://www.youtube.com/embed/qlrs2Vorw2Y?rel=0" frameborder="0" allowfullscreen></iframe></p>
<p>You know you&#8217;re in for something different with an article that contains this line: &#8220;as 256 bytes is becoming the new 4K, there has been ever more need to play decent music in the 256-byte size class. &#8221;</p>
<p>In just a single line of code, Finnish artist and coder countercomplex, working with other contributors, is creating &#8220;bitwise creations in a pre-apocalyptic world.&#8221; What&#8217;s stunning is to listen to the results, even if you have trouble following the code &#8211; the results are complex and organic, glitchy but with compositional direction, as though the machine itself had learned to compose in its own, strange language.</p>
<p>This is, naturally, the opposite of the musical coding in the previous post: in place of human-readable languages representing abstractions atop other abstractions, this is pure algorithm transformed into music. Geeky, yes, but it also says something about musical composition and thought independent of the computer. It is as compact an expression of a human musical idea as one could imagine.</p>
<p>I recommend reading the whole blog post (and following the blog for new developments). Embedded in this whole exercise are thoughts about musical algorithms, the history of chip and 8-bit music and the demoscene, and, most interestingly, the question of whether digital music might yet yield &#8220;new&#8221; (or at least largely unknown) discoveries:</p>
<blockquote><p>Hasn&#8217;t this been done before?</p>
<p>We&#8217;ve had the technology for all this for decades. People have been building musical circuits that operate on digital logic, creating short pieces of software that output music, experimenting with chaotic audiovisual programs and trying out various algorithms for musical composition. Mathematical theory of music has a history of over two millennia. Based on this, I find it quite mind-boggling that I have never before encountered anything similar to our discoveries despite my very long interest in computing and algorithmic sound synthesis. I&#8217;ve made some Google Scholar searches for related papers but haven&#8217;t find anything. Still, I&#8217;m quite sure that at many individuals have come up with these formulas before, but, for some reason, their discoveries remained in obscurity.</p></blockquote>
<p><a href="http://countercomplex.blogspot.com/2011/10/algorithmic-symphonies-from-one-line-of.html">Algorithmic symphonies from one line of code &#8212; how and why?</a> [countercomplex]</p>
<p>But can you dance to it?</p>
<p><em>Matt Ganucheau contributed to this story from San Francisco.</em></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2011/10/entire-musical-compositions-made-from-just-one-line-of-code-are-glitchy-but-musical/&via=cdmblogs&text=Entire Musical Compositions Made from Just One Line of Code are Glitchy but Musical&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2011/10/entire-musical-compositions-made-from-just-one-line-of-code-are-glitchy-but-musical/&via=cdmblogs&text=Entire Musical Compositions Made from Just One Line of Code are Glitchy but Musical&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class='wpfblike' style='height: 40px;'><iframe src='http://www.facebook.com/plugins/like.php?href=http://createdigitalmusic.com/2011/10/entire-musical-compositions-made-from-just-one-line-of-code-are-glitchy-but-musical/&amp;layout=default&amp;show_faces=false&amp;width=400&amp;action=like&amp;colorscheme=light&amp;send=false' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:400px;'></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://createdigitalmusic.com/2011/10/entire-musical-compositions-made-from-just-one-line-of-code-are-glitchy-but-musical/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>In Videos, Face Control and Prostheses Make the Craziest Sounds</title>
		<link>http://createdigitalmusic.com/2011/08/in-videos-face-control-and-prostheses-make-the-craziest-sounds/</link>
		<comments>http://createdigitalmusic.com/2011/08/in-videos-face-control-and-prostheses-make-the-craziest-sounds/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 17:46:32 +0000</pubDate>
		<dc:creator>Peter Kirn</dc:creator>
				<category><![CDATA[Artists]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[aliens]]></category>
		<category><![CDATA[alternative-interfaces]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[computer-vision]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[face-tracking]]></category>
		<category><![CDATA[faceosc]]></category>
		<category><![CDATA[facial]]></category>
		<category><![CDATA[free-software]]></category>
		<category><![CDATA[Jitter]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[max]]></category>
		<category><![CDATA[max-msp]]></category>
		<category><![CDATA[oddities]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[openframeworks]]></category>
		<category><![CDATA[OpenSoundControl]]></category>
		<category><![CDATA[OSC]]></category>
		<category><![CDATA[patching]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sci-fi]]></category>
		<category><![CDATA[wearable]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://createdigitalmusic.noisepages.com/?p=20407</guid>
		<description><![CDATA[You may have already seen FaceOSC, free software that eases the use of facial tracking from a computer camera for use as a controller, here with music software (top). Synthtopia picked up the story in July, featuring artist and engineer Kyle McDonald. But one FreeKa Tet has done his own implementation (second from top), and &#8230; <a class="btn read-more" href="http://createdigitalmusic.com/2011/08/in-videos-face-control-and-prostheses-make-the-craziest-sounds/">Continue &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://player.vimeo.com/video/26098366?title=0&amp;byline=0&amp;portrait=0" width="640" height="400" frameborder="0"></iframe></p>
<p><iframe src="http://player.vimeo.com/video/27269734?title=0&amp;byline=0&amp;portrait=0" width="640" height="360" frameborder="0"></iframe></p>
<p>You may have already seen FaceOSC, free software that eases the use of facial tracking from a computer camera for use as a controller, here with music software (top). Synthtopia <a href="http://www.synthtopia.com/content/2011/07/11/faceosc-lets-you-use-your-face-a-music-controller-check-this-out/">picked up the story in July</a>, featuring artist and engineer Kyle McDonald. But one FreeKa Tet has done his own implementation (second from top), and while the video is a bit grainy, he sounds wonderfully terrifying, as if his face is trying to slip out of The Matrix.</p>
<p>Sometimes, I&#8217;m rendered entirely silent (no, really, it happens), and it&#8217;s best to let videos speak for themselves. So here, after the jump, are some whimsical and wild prosthetic sound light-up &#8230; hell, I don&#8217;t have any idea what&#8217;s going on, but I&#8217;m enjoying it.</p>
<p>I dare you to start some conversation about musicality. Just don&#8217;t be surprised, comment trolls, if you find yourself abducted by a glowing and oddly glitchy-sounding creature with long, monstrous fingers. I&#8217;d watch what I say, frankly. Remember the old saying &#8220;on the Internet, no one knows if you&#8217;re a dog?&#8221; I expect that extends to space aliens, too.<span id="more-20407"></span></p>
<p><iframe src="http://player.vimeo.com/video/27840568?title=0&amp;byline=0&amp;portrait=0" width="640" height="360" frameborder="0"></iframe></p>
<p><iframe src="http://player.vimeo.com/video/27269872?title=0&amp;byline=0&amp;portrait=0" width="640" height="360" frameborder="0"></iframe></p>
<p><iframe src="http://player.vimeo.com/video/27198408?title=0&amp;byline=0&amp;portrait=0" width="640" height="384" frameborder="0"></iframe></p>
<p><a href="http://vimeo.com/user1959244">Plenty more where those came from.</a></p>
<p>Oh, look, I could have done my research and seen there&#8217;s a bio for Mr. FreeKa Tet, aka Bacon ClapCLAP.<br />
:</p>
<blockquote><p>Extreme violent bursts, silence, speech, hard rock samples, strange atmospheres, Burgers , American Idol Icon, crackles, retardation, puking static, rocking a gabber party, cutting a worm in half and watching both parts moving, get a watch tatoo on his wrist, confusing videogames with music, drawing little puke characters on friends faces …</p></blockquote>
<p>Right. Okay. That cleared everything up.</p>
<p>Enjoy your weekend, folks, and stay high and dry, those of you here on the Eastern seaboard of the US.</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2011/08/in-videos-face-control-and-prostheses-make-the-craziest-sounds/&via=cdmblogs&text=In Videos, Face Control and Prostheses Make the Craziest Sounds&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2011/08/in-videos-face-control-and-prostheses-make-the-craziest-sounds/&via=cdmblogs&text=In Videos, Face Control and Prostheses Make the Craziest Sounds&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class='wpfblike' style='height: 40px;'><iframe src='http://www.facebook.com/plugins/like.php?href=http://createdigitalmusic.com/2011/08/in-videos-face-control-and-prostheses-make-the-craziest-sounds/&amp;layout=default&amp;show_faces=false&amp;width=400&amp;action=like&amp;colorscheme=light&amp;send=false' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:400px;'></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://createdigitalmusic.com/2011/08/in-videos-face-control-and-prostheses-make-the-craziest-sounds/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Nanoloop Comes to Android, with its Lovely, Minimal Music Idea-Making Interface</title>
		<link>http://createdigitalmusic.com/2011/04/nanoloop-comes-to-android-with-its-lovely-minimal-music-idea-making-interface/</link>
		<comments>http://createdigitalmusic.com/2011/04/nanoloop-comes-to-android-with-its-lovely-minimal-music-idea-making-interface/#comments</comments>
		<pubDate>Fri, 01 Apr 2011 17:51:20 +0000</pubDate>
		<dc:creator>Peter Kirn</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[chip-music]]></category>
		<category><![CDATA[composition]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Game-Boy]]></category>
		<category><![CDATA[handheld]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nanoloop]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[production]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sketchpads]]></category>
		<category><![CDATA[trackers]]></category>

		<guid isPermaLink="false">http://createdigitalmusic.noisepages.com/?p=17871</guid>
		<description><![CDATA[I think the first time I really understood handheld music making was when I first tried Nanoloop on Game Boy. While the more-popular LSDJ tracker is powerful, Nanoloop&#8217;s interface was unlike anything I&#8217;d seen before: aggressively minimal, it embodies in its interface design the feeling of a blank sheet of paper. Adding an idea feels &#8230; <a class="btn read-more" href="http://createdigitalmusic.com/2011/04/nanoloop-comes-to-android-with-its-lovely-minimal-music-idea-making-interface/">Continue &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://createdigitalmusic.com/files/2011/04/nanloopandroid.jpg"><img src="http://createdigitalmusic.com/files/2011/04/nanloopandroid-640x312.jpg" alt="" title="nanloopandroid" width="640" height="312" class="alignnone size-large wp-image-17873" /></a></p>
<p>I think the first time I really understood handheld music making was when I first tried Nanoloop on Game Boy. While the more-popular LSDJ tracker is powerful, Nanoloop&#8217;s interface was unlike anything I&#8217;d seen before: aggressively minimal, it embodies in its interface design the feeling of a blank sheet of paper. Adding an idea feels like composition, like genuinely exploring open-ended possibilities and discovering what melodies may result. Now, Nanoloop &#8211; already on iOS &#8211; is available for Android, too.</p>
<p>It remains simple stuff, the sense of what a music maker looks like when designed for your hand rather than translated to mobile from desktop, studio-style workstations. There are six fixed channels, each assignable to a synth (FM, noise, or filtered wave) or a sampler. Then, each channel takes eight patterns. There&#8217;s a step sequencer, the ability to resample, and song editor with loops. The sampling capabilities are especially nice on Android, as you can now sample from the mic or load samples right onto the SD card. (The mic you can use on iOS, but not the SD card, of course.) You can export OGG files to your library, turning your Android device into a DJ-set-ready pocket music library, or send and receive projects via email. Via iTunes, you can even exchange files with the iPhone version, in case you have an Android phone and an iPod touch or some similar arrangement.</p>
<p><a href="http://createdigitalmusic.com/files/2011/04/nanoloopscreen.jpg"><img src="http://createdigitalmusic.com/files/2011/04/nanoloopscreen.jpg" alt="" title="nanoloopscreen" width="640" height="533" class="alignnone size-full wp-image-17878" /></a><span id="more-17871"></span></p>
<p>This isn&#8217;t a port of the Game Boy nanoloop, developer Oliver Wittchow is quick to note. It&#8217;s not for chip music, or emulating game consoles. It&#8217;s for &#8230; well, Android music. But make no mistake: while the tool feels fresh and native to the new platform, it also carries the spirit of the Game Boy version. And that spirit is handheld music making, not just the aesthetics of the chip, but the feeling of using a minimal device scaled to your hands, something you can use on the go.</p>
<p>Oliver tells CDM that he has used a lot of native code (via the NDK), as he did non-object-oriented C (not Objective-C) in the iOS version. He says it&#8217;s about 1:1 C and Java: &#8220;I could use the iOS code almost unmodified and get the sound engine and touch input to work immediately. I had an almost fully working nanoloop within few days &#8211; without any graphics though.<br />
Now I &#8216;just&#8217; had to write Java code for GUI, file access, recording functions and the different menu structure.&#8221;</p>
<p>The results, he says, are a little strange if you&#8217;re looking at the code (lots of getters and setters, C mixed with Java), but it works well.</p>
<p>Android owners, I&#8217;d love to hear how this works on your device. Let us know &#8211; just be sure to fill out a bug report. As the Market page notes:</p>
<blockquote><p>
Nanoloop works on a variety of devices, including HTC Desire, Motorola Droid and also midrange phones such as HTC Legend and XPERIA X10 mini. However, this is the first release and of course it has not been tested on all Android devices yet. If you experience crashes or other problems, please report them via e-mail or the anonymous bug report form at <a href="http://www.nanoloop.com">www.nanoloop.com</a>. Thank you.</p></blockquote>
<p>Now if we can just have some luck with Bluetooth MIDI at our <a href="http://createdigitalmusic.com/2011/03/hack-by-day-afrotronic-future-funk-by-night-handmade-music-nyc-sat-42-afrotronic-listening-free-now/">hacklab tomorrow</a>, this could be another candidate.</p>
<p>Oh, and most of all, I&#8217;d love to hear the music you make.</p>
<p><a href="https://market.android.com/details?id=com.nanoloop">nanoloop on the Android Market</a> (a stunning EUR1 &#8230; that&#8217;s a no-brainer. Better than an espresso shot!)</p>
<p><a href="http://nanoloop.de">nanoloop.de</a> [iOS, Android]</p>
<p>See our <a href="http://createdigitalmusic.com/2011/03/useful-music-tools-for-your-android-phone-and-a-new-sketchpad-joins-groovebox/">previous Android music round-up</a></p>
<p>For the historical record, here&#8217;s nanoloop for Game Boy on CDM &#8211; from 2004. It&#8217;s actually come quite a ways since that release, but the spirit is the same.<br />
<a href="http://createdigitalmusic.com/2004/11/updated-nanoloop-20-game-boy-instrument/">http://createdigitalmusic.com/2004/11/updated-nanoloop-20-game-boy-instrument/</a></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2011/04/nanoloop-comes-to-android-with-its-lovely-minimal-music-idea-making-interface/&via=cdmblogs&text=Nanoloop Comes to Android, with its Lovely, Minimal Music Idea-Making Interface&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2011/04/nanoloop-comes-to-android-with-its-lovely-minimal-music-idea-making-interface/&via=cdmblogs&text=Nanoloop Comes to Android, with its Lovely, Minimal Music Idea-Making Interface&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class='wpfblike' style='height: 40px;'><iframe src='http://www.facebook.com/plugins/like.php?href=http://createdigitalmusic.com/2011/04/nanoloop-comes-to-android-with-its-lovely-minimal-music-idea-making-interface/&amp;layout=default&amp;show_faces=false&amp;width=400&amp;action=like&amp;colorscheme=light&amp;send=false' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:400px;'></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://createdigitalmusic.com/2011/04/nanoloop-comes-to-android-with-its-lovely-minimal-music-idea-making-interface/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>Kinect with MIDI, with Microsoft&#8217;s 3D Camera</title>
		<link>http://createdigitalmusic.com/2010/11/kinect-with-midi-with-microsofts-3d-camera/</link>
		<comments>http://createdigitalmusic.com/2010/11/kinect-with-midi-with-microsofts-3d-camera/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 18:25:58 +0000</pubDate>
		<dc:creator>Peter Kirn</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[computer-vision]]></category>
		<category><![CDATA[CV]]></category>
		<category><![CDATA[gestural]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[kinect]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MIDI]]></category>
		<category><![CDATA[motion]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://createdigitalmusic.noisepages.com/?p=14883</guid>
		<description><![CDATA[Ben X Tan writes to let us know he&#8217;s working with hacks for Microsoft&#8217;s Kinect 3D camera system for Xbox to perform MIDI control. Result: depth-sensing, gestural musical manipulations! It&#8217;s just a prototype, but since today I cover the larger landscape of what&#8217;s happening with Kinect, it&#8217;s well worth teasing. From the description: Coded in &#8230; <a class="btn read-more" href="http://createdigitalmusic.com/2010/11/kinect-with-midi-with-microsofts-3d-camera/">Continue &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/z1Wp0HEYxSg?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/z1Wp0HEYxSg?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p><a href="http://benxtan.com">Ben X Tan</a> writes to let us know he&#8217;s working with hacks for Microsoft&#8217;s Kinect 3D camera system for Xbox to perform MIDI control. Result: depth-sensing, gestural musical manipulations! It&#8217;s just a prototype, but since today I cover the larger landscape of what&#8217;s happening with Kinect, it&#8217;s well worth teasing. From the description:</p>
<blockquote><p>Coded in C#.net using this: <a href="http://codelaboratories.com/nui">http://codelaboratories.com/nui</a></p>
<p>Very hacky ugly, yucky, alpha prototype, source code available here:<br />
<a href="http://benxtan.com/temp/pmidickinect.zip">http://benxtan.com/temp/pmidickinect.zip</a></p>
<p>Next project is making a version of pmidic that uses Kinect. Then, you can control Ableton Live or any other MIDI software or hardware with you limbs. Isn&#8217;t that amazing!!!</p>
<p>If you are interested, you should also check out:<br />
<a href="http://pmidic.sourceforge.net/">http://pmidic.sourceforge.net/</a><br />
<a href="http://benxtan.com">http://benxtan.com</a></p></blockquote>
<p>He tells me, &#8220;It&#8217;s just proof of concept for now, but want to make something nicer in the long run <img src='http://createdigitalmusic.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  The community on IRC for this stuff is great. Very supportive. I love all the hacking going on at the moment. Especially after watching the Social Network. Very inspiring!&#8221;</p>
<p>So, what&#8217;s this whole Kinect thing about, why should you care, why might it be useful to artists and musicians and designers generally, and where do you go to find the code? I&#8217;ve rounded up various hackers working on the project to answer those questions on Create Digital Motion (in this case, Capture Digital Motion):<br />
<a href="http://createdigitalmotion.com/2010/11/kinect-hacking-and-art-round-table-why-it-matters-what-you-need-to-know/">Kinect Hacking and Art Round Table: Why it Matters, What You Need to Know</a></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2010/11/kinect-with-midi-with-microsofts-3d-camera/&via=cdmblogs&text=Kinect with MIDI, with Microsoft's 3D Camera&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2010/11/kinect-with-midi-with-microsofts-3d-camera/&via=cdmblogs&text=Kinect with MIDI, with Microsoft's 3D Camera&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class='wpfblike' style='height: 40px;'><iframe src='http://www.facebook.com/plugins/like.php?href=http://createdigitalmusic.com/2010/11/kinect-with-midi-with-microsofts-3d-camera/&amp;layout=default&amp;show_faces=false&amp;width=400&amp;action=like&amp;colorscheme=light&amp;send=false' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:400px;'></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://createdigitalmusic.com/2010/11/kinect-with-midi-with-microsofts-3d-camera/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>libpd: Put Pure Data in Your App, On an iPhone or Android, and Everywhere, Free</title>
		<link>http://createdigitalmusic.com/2010/10/libpd-put-pure-data-in-your-app-on-an-iphone-or-android-and-everywhere-free/</link>
		<comments>http://createdigitalmusic.com/2010/10/libpd-put-pure-data-in-your-app-on-an-iphone-or-android-and-everywhere-free/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 19:52:37 +0000</pubDate>
		<dc:creator>Peter Kirn</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[free-software]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod-touch]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[libpd]]></category>
		<category><![CDATA[libraries]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[patches]]></category>
		<category><![CDATA[patching]]></category>
		<category><![CDATA[Pd]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[pure-data]]></category>

		<guid isPermaLink="false">http://createdigitalmusic.com/?p=14235</guid>
		<description><![CDATA[What if you could make any device or any software a re-programmable musical instrument, effect, or soundmaker? Your phone could be a touch-controlled effect, your tablet a sketchpad for interactive drum sequencers. Patches assembled on your desk on a computer could be taken with you in your pocket. And what if you could do all &#8230; <a class="btn read-more" href="http://createdigitalmusic.com/2010/10/libpd-put-pure-data-in-your-app-on-an-iphone-or-android-and-everywhere-free/">Continue &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><object width="580" height="349"><param name="movie" value="http://www.youtube.com/v/QFdf7tSjHag?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/QFdf7tSjHag?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="349"></embed></object></p>
<p>What if you could make any device or any software a re-programmable musical instrument, effect, or soundmaker? Your phone could be a touch-controlled effect, your tablet a sketchpad for interactive drum sequencers. Patches assembled on your desk on a computer could be taken with you in your pocket. And what if you could do all of this for free, using a time-tested environment?</p>
<p>libpd, authored by Peter Brinkmann, takes on that vision. It&#8217;s a way of making Pure Data (Pd), the visual development tool for interactive music and media, more accessible across a range of applications and gadgets. It lets you embed Pd pretty much anywhere. It&#8217;s not a new version of Pd. Instead, it makes use of the standard, &#8220;vanilla&#8221; distribution of the free and open source software. What&#8217;s different is that it separates the sound processing part of Pd from the part that talks to audio hardware, allowing Pd to run on a greater variety of mobile devices and inside other applications. </p>
<p>libpd:</p>
<ul>
<li>turns Pd into an audio synthesis and processing library</li>
<li>liberates Pd from GUI and drivers</li>
<li>allows for easy communication between Pd and the code into which it is embedded (so you can send and receive messages with your Pd patch)</li>
</ul>
<p>Today, a team of developers and testers (including myself) is releasing the first version of libpd. It&#8217;s free to use on any device you wish, and free to modify. Because of its licensing, you can even build commercial applications with it. (That is, yes, it’s open source &#8211; but yes, it can also be useful if you’re a commercial developer. You don’t have to choose.)</p>
<p><a href="http://gitorious.org/pdlib">http://gitorious.org/pdlib</a> | <a href="http://noisepages.com/groups/pd-everywhere/">community discussion</a></p>
<p>We&#8217;re just pleased to have a tool that makes experimenting with sound and music quicker, easier, and more flexible and compatible. It&#8217;s more fun that way.<span id="more-14235"></span></p>
<h3>Supported Platforms, What You Can Make</h3>
<p>Right now, today, you can use libpd with:</p>
<p><strong>Android:</strong> Thanks to Google&#8217;s NDK (Native Development Kit), you can use libpd with any Android device running OS 1.6 or later. Note that devices without the Google Market are often non-standard in other respects, so your mileage may vary, but we&#8217;ve found a wide variety of devices work quite well, including the Motorola Droid and Droid X, HTC Legend, and Google NexusOne.</p>
<p><strong>iOS</strong>: iPhone and iPad models with the latest, armv7 processors work (3GS, iPad); we&#8217;re working to extend compatibility across more devices. Working with Peter Brinkmann, the RjDj development team contributed (and continues to contribute) free code that&#8217;s making iOS support compatible and high-performance. But the Objective-C classes mirror the Android and Java classes, meaning the two will stay in sync, and once you’ve learned one, the other will be a piece of cake. (Or coffee. Or cocoa. Or whatever.)</p>
<p>In each case, you just need libpd, Pd for making your patches (graphically), and a copy of the SDK for each mobile platform you want to use.</p>
<p>Additionally, you will soon be able make user interfaces for libpd using cross-platform <strong>HTML5</strong>, via Chris McCormick&#8217;s project WebKitPd. (It&#8217;s not quite ready for consumption yet, but will also be free and open source.) Android was the impetus and initial test platform for libpd, so right now it&#8217;s the most mature. But we hope to improve iOS compatibility and testing next.</p>
<p><img src="http://createdigitalmusic.com/files/2010/10/garageacidland.jpg" alt="" title="garageacidland" width="320" height="480" class="alignnone size-full wp-image-14247" /></p>
<h3>Some Sample Apps to Try for Android</h3>
<p>libpd is really aimed at developers who want to embed Pure Data into mobile devices, games, and so on, and soon also people working with Processing, Open Frameworks, and the like. </p>
<p>But if you’re eager to try this out as an end user, there are a number of packages you can try. They don’t show off everything libpd and Pd can do, but they do allow you to load up something on your device and make some noise.</p>
<p>Download the test packages from the libpd site:<br />
<a href="http://gitorious.org/pdlib/pages/Packages">http://gitorious.org/pdlib/pages/Packages</a></p>
<p>It includes a scene player for RjDj (see below).</p>
<p>Among the code included in the repository is one complete app, Peter Brinkmann&#8217;s own Circle of Fifths. He tells us:</p>
<blockquote><p><strong>Circle of Fifths:</strong> I wanted a circle of fifths tool for the subway, with exactly this kind of GUI.  It also nicely illustrates the newly possible separation of concerns &#8212; Pd only does DSP, and an elaborate GUI is built somewhere else. It&#8217;s a demo and not optimized for universal consumption. In particular, it&#8217;s a bit CPU hungry because it&#8217;s actually simulating six Karplus-Strong strings in real time.</p></blockquote>
<p>Of course, if string simulation is what you want to do, this also illustrates that you can &#8211; even on a phone.</p>
<p>Chris McCormick has created two libpd-based apps, one of which I feature in the video above. Can of Beats also makes use of WebKit as its UI rendering engine. Chris describes what he&#8217;s made:</p>
<blockquote><p><strong>Can of Beats:</strong> This is a procedural hiphop beat generator. The beats are generated using simple hand-crafted probability weightings for each type of sound at each position in the beat. In the Android app, you can also input simple melodies or basslines to go along with the beats.<br />
<a href="http://mccormick.cx/projects/CanOfBeats/">http://mccormick.cx/projects/CanOfBeats/</a></p>
<p><strong>Garage Acid Lab:</strong> This is an algorithmic, 303-style acid bassline generator. The app will make you an infinite number of different acid bass lines and garage style beats. You can also have some fun with the cutoff filter and delay unit settings with a kaos-pad style input. I want to work on this app a bit more to provide an &#8216;advanced&#8217; mode which will let you write custom basslines, beats, and have more control over the effects. <a href="http://mccormick.cx/projects/GarageAcidLab/">http://mccormick.cx/projects/GarageAcidLab/</a></p></blockquote>
<p><strong>RjDj, RjDj team</strong>. If you don&#8217;t know it by now, RjDj is a fantastic application built on Pd that makes interactive musical and sonic experiences deliverable in the same way as a digital album, not only to musicians, but anyone who wants to experience music and sound in new ways. libpd makes use of code contributed by RjDj. Future development on RjDj will use libpd. (More on those libpd-based versions, and the evolution of RjDj and RjDj Voyager, soon.)<br />
<a href="http://www.rjdj.me/">http://www.rjdj.me/</a></p>
<h3>Where to Get It, Where to Get Involved</h3>
<p><strong>1. Get the library.</strong> To get started, download libpd from its Gitorious source repository:<br />
<a href="http://gitorious.org/pdlib">http://gitorious.org/pdlib</a></p>
<p>You&#8217;ll need Pd, too, if you don&#8217;t have it; vanilla Pd builds are available from the <a href="http://puredata.info/downloads">official Pd download page</a>.</p>
<p><strong>2. Join the community.</strong> You can discuss patching for libpd, developing using Pd, and making instruments and effects and other sonic creations for gadgets everywhere on our new community group:<br />
<a href="http://noisepages.com/groups/pd-everywhere/">http://noisepages.com/groups/pd-everywhere/</a></p>
<p>That will be a location specifically dedicated to the unique challenges of working with mobile gadgets; of course, see also the <a href="http://puredata.info/community">other great community resources for Pd</a>.</p>
<p><strong>Who made this:</strong> libpd was conceived by a team including Peter Brinkmann, Hans-Christoph Steiner, and myself, with input from the RjDj team (particulary Martin Roth). It was primarily developed by Peter Brinkmann, who applied his talents and the work he has done in JJACK, a Java API for JACK, with additional contributions and testing by our team and by Chris McCormick. Major thanks to Martin Roth and the folks at RjDj, to Miller Puckette (creator of Pd), and the generous attendees of our first hackday at the NYC Patching Circle, along with others who are testing now.</p>
<h3>Tutorial Next Week; Your Feedback Wanted</h3>
<p>I&#8217;ve been preparing a tutorial for working with libpd Android (initially), to be followed eventually for developing on iOS devices once we have a better handle on making that go smoothly. We&#8217;ll have a complete tutorial for you by next week. Processing is then my next priority.</p>
<p>An FAQ will also be available by then. That means, first, ask some questions! </p>
<p>Got specific questions about what this is for? How to get started? What you&#8217;d like to see in the tutorial? Ask away.</p>
<p>And please do get the discussion going not only here in comments, but in the <a href="http://noisepages.com/groups/pd-everywhere/">Pd Everywhere group</a>. (Noisepages registration is now open; if you have any trouble, let me know and I&#8217;ll sort you out.)</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2010/10/libpd-put-pure-data-in-your-app-on-an-iphone-or-android-and-everywhere-free/&via=cdmblogs&text=libpd: Put Pure Data in Your App, On an iPhone or Android, and Everywhere, Free&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2010/10/libpd-put-pure-data-in-your-app-on-an-iphone-or-android-and-everywhere-free/&via=cdmblogs&text=libpd: Put Pure Data in Your App, On an iPhone or Android, and Everywhere, Free&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class='wpfblike' style='height: 40px;'><iframe src='http://www.facebook.com/plugins/like.php?href=http://createdigitalmusic.com/2010/10/libpd-put-pure-data-in-your-app-on-an-iphone-or-android-and-everywhere-free/&amp;layout=default&amp;show_faces=false&amp;width=400&amp;action=like&amp;colorscheme=light&amp;send=false' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:400px;'></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://createdigitalmusic.com/2010/10/libpd-put-pure-data-in-your-app-on-an-iphone-or-android-and-everywhere-free/feed/</wfw:commentRss>
		<slash:comments>60</slash:comments>
		</item>
		<item>
		<title>A Powerful Music Tracker in Your Browser, Completely Free</title>
		<link>http://createdigitalmusic.com/2010/09/a-powerful-music-tracker-in-your-browser-completely-free/</link>
		<comments>http://createdigitalmusic.com/2010/09/a-powerful-music-tracker-in-your-browser-completely-free/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 09:00:31 +0000</pubDate>
		<dc:creator>Peter Kirn</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[music-production]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[trackers]]></category>

		<guid isPermaLink="false">http://createdigitalmusic.com/?p=13847</guid>
		<description><![CDATA[Party like it&#8217;s 1991 &#8211; your browser&#8217;s invited. A full-blown music production tool has been directly ported from the desktop to the browser using Flash, modeled with a tracker-style interface for fast, precise music editing. (In fact, a tracker, thanks to speedy entry from a QWERTY keyboard, seems to me an ideal interface for browser &#8230; <a class="btn read-more" href="http://createdigitalmusic.com/2010/09/a-powerful-music-tracker-in-your-browser-completely-free/">Continue &#8594;</a>]]></description>
			<content:encoded><![CDATA[
<a href='http://createdigitalmusic.com/2010/09/a-powerful-music-tracker-in-your-browser-completely-free/skaleonline4/' title='SkaleOnline4'><img width="150" height="150" src="http://createdigitalmusic.com/files/2010/09/SkaleOnline4-150x150.jpg" class="attachment-thumbnail" alt="SkaleOnline4" title="SkaleOnline4" /></a>
<a href='http://createdigitalmusic.com/2010/09/a-powerful-music-tracker-in-your-browser-completely-free/skaleonline3/' title='SkaleOnline3'><img width="150" height="150" src="http://createdigitalmusic.com/files/2010/09/SkaleOnline3-150x150.jpg" class="attachment-thumbnail" alt="SkaleOnline3" title="SkaleOnline3" /></a>
<a href='http://createdigitalmusic.com/2010/09/a-powerful-music-tracker-in-your-browser-completely-free/skaleonline2/' title='SkaleOnline2'><img width="150" height="150" src="http://createdigitalmusic.com/files/2010/09/SkaleOnline2-150x150.jpg" class="attachment-thumbnail" alt="SkaleOnline2" title="SkaleOnline2" /></a>
<a href='http://createdigitalmusic.com/2010/09/a-powerful-music-tracker-in-your-browser-completely-free/skaleonline1/' title='SkaleOnline1'><img width="150" height="150" src="http://createdigitalmusic.com/files/2010/09/SkaleOnline1-150x150.jpg" class="attachment-thumbnail" alt="SkaleOnline1" title="SkaleOnline1" /></a>

<p>Party like it&#8217;s 1991 &#8211; your browser&#8217;s invited. A full-blown music production tool has been directly ported from the desktop to the browser using Flash, modeled with a <a href="http://en.wikipedia.org/wiki/Tracker_(music_software)">tracker-style interface</a> for fast, precise music editing. (In fact, a tracker, thanks to speedy entry from a QWERTY keyboard, seems to me an ideal interface for browser music. Trust me &#8211; it looks arcane at first, but trackers can be extremely friendly music interfaces. Just be prepared to <em>look</em> like a total geek once you&#8217;ve worked it out, because it&#8217;ll look even more arcane to everyone else)</p>
<p>The resulting tool comes with all the modules you&#8217;ll need, and it&#8217;s completely free to use. There&#8217;s even an included sample library.</p>
<p>Now, the next time you&#8217;re stuck in an Internet cafe, you can compose a song.</p>
<p>Creator Ruben Ramos says this is the first tracker on the Web, and shares his development process with us:</p>
<blockquote><p>The sourcecode of the application is the same than the desktop version, it&#8217;s C++. I used a research project from Adobe Labs to build my sources for the AVM2 (ActionScript Virtual Machine 2), which is the last virtual machine used in Flash. This way, I got a binary version as a .swf of my original desktop-based application.</p>
<p>I wrote some parts code for this version, but only a few. For example the graphic rendering: in the desktop version was using the graphic card acceleration; for this version I implemented a software renderer.</p>
<p>After it, I added some special features for this version. For example, I implemented a filesystem with remote access to allow the load of resources stored on the server. With this feature songs and samples can be loaded from the webserver, which is good to have a base sample library available on the server.</p></blockquote>
<p>Try it out for yourself:<br />
<a href="http://www.skale.org/">http://www.skale.org/</a></p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2010/09/a-powerful-music-tracker-in-your-browser-completely-free/&via=cdmblogs&text=A Powerful Music Tracker in Your Browser, Completely Free&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2010/09/a-powerful-music-tracker-in-your-browser-completely-free/&via=cdmblogs&text=A Powerful Music Tracker in Your Browser, Completely Free&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class='wpfblike' style='height: 40px;'><iframe src='http://www.facebook.com/plugins/like.php?href=http://createdigitalmusic.com/2010/09/a-powerful-music-tracker-in-your-browser-completely-free/&amp;layout=default&amp;show_faces=false&amp;width=400&amp;action=like&amp;colorscheme=light&amp;send=false' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:400px;'></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://createdigitalmusic.com/2010/09/a-powerful-music-tracker-in-your-browser-completely-free/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Don&#8217;t Over-Interpret Apple: Cross-Platform Development Isn&#8217;t a Sin</title>
		<link>http://createdigitalmusic.com/2010/04/dont-over-interpret-apple-cross-platform-development-isnt-a-sin/</link>
		<comments>http://createdigitalmusic.com/2010/04/dont-over-interpret-apple-cross-platform-development-isnt-a-sin/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 16:11:30 +0000</pubDate>
		<dc:creator>Peter Kirn</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[editorial]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod-touch]]></category>
		<category><![CDATA[libraries]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[openframeworks]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[trends]]></category>

		<guid isPermaLink="false">http://createdigitalmusic.com/?p=10467</guid>
		<description><![CDATA[Pictured: Looks native, but this app is built with a cross-platform library. And really, for music making &#8211; or great, immersive development, in general &#8211; does it matter? The iPad has inflamed plenty of passions online. On this site, I&#8217;ve gotten a little flak from iPad lovers and haters alike. It goes something like this: &#8230; <a class="btn read-more" href="http://createdigitalmusic.com/2010/04/dont-over-interpret-apple-cross-platform-development-isnt-a-sin/">Continue &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://createdigitalmusic.com/files/2010/04/beatmaker.jpg" alt="" title="beatmaker" width="503" height="346" class="alignright size-full wp-image-10486" /></p>
<p><strong>Pictured:</strong> Looks native, but <a href="http://www.intua.net/products.html">this app</a> is built with <a href="http://www.libnui.net/">a cross-platform library</a>. And really, for music making &#8211; or great, immersive development, in general &#8211; does it matter?</p>
<p>The iPad has inflamed plenty of passions online. On this site, I&#8217;ve gotten a little flak from iPad lovers and haters alike. It goes something like this: &#8220;wait a minute, you&#8217;ve got all these criticisms of the iPad&#8217;s restrictiveness, but then you&#8217;ve got all these amazing music apps.&#8221; Or, on the other side: &#8220;why do you keep covering all these iPad music apps?&#8221;</p>
<p>In a word, yes. They&#8217;re not the same issue. I&#8217;ve talked to plenty of developers. The business draw on iPad is a big deal for independent, creative developers, so to the extent that Apple strategy makes the store a good place to sell apps, there&#8217;s some overlap. But the iPad has also been attracting plenty of music developers because of the quality of the APIs &#8211; developers who often aren&#8217;t pleased with the restrictions. Does the person who writes the audio drivers and APIs have anything to do with the lawyer who writes the developer agreement? Of course not.</p>
<p>The problem is, just as iPad/iPhone critics sometimes conflate issues in their rush to criticize the platform, some of the defense from the Mac community is getting a bit carried away, too. We&#8217;ve seen this with design issues, not just ideological or business issues: you go from &#8220;touch can be an expressive way to interact with a computer&#8221; to &#8220;throw out your QWERTY keyboards! They&#8217;re dead!&#8221; or &#8220;you&#8217;ll never read a magazine again&#8221; or &#8220;multitasking was a terrible idea in the first place.&#8221;</p>
<p>In this case, Apple made a fairly specific change to a developer document. That resulted in some criticism that was over the top (namely, people claimed it&#8217;d stop specific developer tools <em>before</em> they had verified whether that was actually the case). But it also resulted in some Apple apologism that was downright surreal:</p>
<p>All cross-platform development is bad? Wait &#8211; what?</p>
<p>And for that matter, is the mark of great software design now exclusively using Apple&#8217;s developer toolkits? Wouldn&#8217;t we sort of hope that, beyond those slick Apple UI widgets, someone somewhere might be developing the UI of the future? For that matter, do people not realize that a lot of what makes Apple&#8217;s quality exceptional is stuff you <em>can&#8217;t</em> see &#8211; things like multitouch firmware, high-quality audio drivers, and other fit-and-finish on the plumbing?</p>
<p>So, I invite you, dear reader, travel with me. I think we may actually have something on which iPad critics and fans alike can agree. It&#8217;s relevant to music, because music apps (along with games, incidentally) are the ones that are most intimate with this issue. And I suspect a lot of you use cross-platform tools to develop code for your day job.<span id="more-10467"></span></p>
<h3>The Catalyst: Apple&#8217;s Legal Change</h3>
<p>Apple <a href="http://bits.blogs.nytimes.com/2010/04/08/a-change-at-apple-causes-trouble-for-adobe/">surprised many in the tech world last week</a> by making a change &#8211; mandatory to all developers &#8211; that requires that applications for iPhone &#8220;must be originally written in Objective-C, C, C++ or JavaScript [running in the WebKit browser engine].&#8221; More specifically-worded, &#8220;Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited.&#8221; Because of the timing, and because of the further clarification, conventional wisdom suggests this is aimed at Adobe CS5&#8242;s tool for making native iPhone apps from Flash code. I don&#8217;t think it should be any surprise that that would get developers upset, not only those who use Flash, but even some loyal developers who don&#8217;t like being told what to do by Apple. (And I know at least some fairly big fans of the iPad weren&#8217;t fans of this change.)</p>
<p>Had it not coincided with Adobe working on CS5, I don&#8217;t know that this would have been big news; Apple already restricts the languages used to develop on their device. But I think what set people off may have been that very problem: people don&#8217;t know what it means, and that (rightfully) makes them nervous. While online debates have devolved into idealogical extremes &#8220;All control is good! / Apple just killed Adobe!&#8221;, what the press has missed is a sense among developers that they can&#8217;t predict or entirely interpret Apple&#8217;s developer agreements. I suspect Apple did aim this at Adobe, but that means even non-Flash-using, native-developing software makers now have to face some serious ambiguity in a legal document they have to sign. </p>
<p>That said, if Apple would further clarify the statement, that could be resolved.</p>
<p>I didn&#8217;t personally get worked up over this, because it&#8217;s consistent with what I and many, many others have been saying about the platform all along. Apple&#8217;s control over distribution and desire to control the development process means this is the sort of thing they can do. There are reasons to endure it: they make a really well-engineered platform, and there&#8217;s a terrific market and installed base that has a voracious appetite for creative software. There are also clear reasons to look elsewhere if you&#8217;re not comfortable with the restrictions. This is the very definition of trade-offs and choices.</p>
<p>I&#8217;m going to avoid the debate not because I don&#8217;t think it&#8217;s important &#8211; I think it is &#8211; but because I think enough words have been written in service to one side or the other. What seems to be missing, however, is a shared understanding of what cross-platform development actually is.</p>
<h3>The Trend: &#8220;All Cross-Platform Development is Bad&#8221;</h3>
<p> Whatever Apple&#8217;s thinking, it&#8217;s caused some people apologizing for Apple to say really weird things. John Gruber at Daring Fireball, for instance, begins by making an entirely reasonable argument for Apple&#8217;s strategy and where they live in the market. I don&#8217;t agree with all of it, but it is a well-reasoned, well-argued point. Then, almost as a footnote, John makes this claim:</p>
<blockquote><p><strong>Cross-platform software toolkits have never — ever — produced top-notch native apps for Apple platforms. Not for the classic Mac OS, not for Mac OS X, and not for iPhone OS.</strong> Such apps generally have been downright crummy.</p></blockquote>
<p> [emphasis mine]</p>
<p><a href="http://daringfireball.net/2010/04/why_apple_changed_section_331">Why Apple Changed Section 3.3.1<br />
</a> [Daring Fireball]</p>
<p>That argument has gotten picked up all over the Web by other Mac fans. And that, to me, is dangerous &#8211; because, as worded, this statement appears to be to be entirely indefensible.</p>
<p>John doesn&#8217;t say &#8220;cross-platform compatibility layers&#8221; or &#8220;meta-platforms&#8221; like Flash and AIR. He says &#8220;cross-platform software toolkits,&#8221; and I think he means it. (Now, John, if I&#8217;m wrong, please correct me &#8211; but please stop making statements like this, because &#8220;cross-platform&#8221; is what many of your readers are coming away with.)</p>
<p>This would likely come as news to those who use music software. Cross-platform software frameworks are at the heart of <em>most</em> of the tools we use. One small but lovely example, specific to the iPhone/iPad and absolutely kosher under Apple&#8217;s new developer rules, is <a href="http://www.libnui.net/">LibNUI</a>, a C++ framework for building UIs. (In fact, after playing with this a bit, I may pick it up for a project on a completely different platform.) Popular iPhone apps like <a href="http://www.bleepboxapp.com/">bleep!BOX</a> and <a href="http://www.intua.net/products.html">BeatMaker</a> use it, but it also keeps tools like MOTU&#8217;s MachFive plug-in compatible with multiple platforms, without sacrificing native features like drag-and-drop.</p>
<p>If you use Ableton Live, Max/MSP, Cubase, or countless other apps, you&#8217;re using software created in cross-platform frameworks &#8211; some in-house, but using the same basic technology. Indeed, few of these applications would work the way you expected if they used exclusively &#8220;native&#8221; features and design patterns, like UI widgets that don&#8217;t fit musical applications or don&#8217;t work in live music performance.</p>
<p>In fact, John&#8217;s statement is so broad and over the top, I think it might even apply to tools like CodeWarrior, the developer tool and, yes, cross-platform framework that was the dominant toolset for developers in the pre-X &#8220;Classic&#8221; Mac OS era.</p>
<p>This matters to users, too. Sure, you may never write a line of code, but you rely on the community of people who do. Part of what gives you the freedom and flexibility to run great software on a variety of platforms, rather than being locked into just one platform, is the fact that these tools make the differences between those platforms fall into the background. Any developer who thinks this happens automatically without effort or testing is likely to give you a terrible app, but odds are, they&#8217;ll give you a terrible app regardless of what tools they&#8217;re using.</p>
<h3>Develop Once, Run Anywhere?</h3>
<p>Macworld editor Jason Snell also picks up the old argument about cross-platform development being inferior. (The title, I think, may be the most insightful part of this piece, but I&#8217;m not an Apple employee or investor, so I&#8217;ll let them worry about that.)</p>
<p><a href="http://www.macworld.com/article/150539/2010/04/apple_world.html">Apple against the world</a> [Macworld]</p>
<blockquote><p>&#8230;the <strong>develop-once-run-anywhere philosophy is something that makes more sense to bean counters and development-environment vendors than it does to platform owners and discriminating users.</strong> In the ’90s we were told that Java apps would be the future of software, because you could write them once and deploy them anywhere. As someone who used to use a Java-based Mac app on an almost daily basis, let me tell you: it was a disaster. Java apps didn’t behave like Mac apps. They were ugly and awful and weird, but hey, at least they ran on the Mac.</p></blockquote>
<p>Ah, yes &#8211; this argument again. (It&#8217;s one of those things from the 90s that just never gets old, like Ace of Base or plaid t-shirts and pleated khakis.)</p>
<p>Okay, I kid, but Jason &#8211; I feel you. Actually, I feel you even as a fan of Java; the language and platform have some real power, but because of some questionable tooling atop them and questionable development practices with them, it produced some really horrible products. Such is development. (Actually, arguably, the folks in the 90s <em>were</em> right &#8211; it just turns out to be the browser itself, not Java applets, which have nothing to do with modern Java development anyway.)</p>
<p>I think Jason is mostly hung up on things like UI widgets; he refers specifically to the lack of a menu bar, odd preferences dialogs, and other usability issues in the AIR application TweetDeck. (Part of the reason we don&#8217;t nitpick these things in music, of course, is that we&#8217;re using extraordinarily complex interfaces for doing other things.)</p>
<p>Jason misses some critical points, however &#8211; in this case by omission; he doesn&#8217;t make the same, sweeping statement Gruber does. (Jason told me via Twitter that he wasn&#8217;t set to write another 2000 words, so Jason, I&#8217;ll try to do that for you.)</p>
<p>In regards to Java, the reason Java apps don&#8217;t feel like native Mac apps is at least in part because of Apple. It is actually possible to do all the things Jason is describing; Apple themselves touted the feature. You can read the documentation, and the fact that it was deprecated way back in 2005, on <a href="http://developer.apple.com/legacy/mac/library/documentation/Cocoa/Conceptual/LanguageIntegration/LanguageIntegration.html">Apple&#8217;s legacy Mac developer documentation site</a>. I can only speculate about the decision there, but my guess would be that it was practical more than strategic. There&#8217;s a new open source project to replace this functionality, Apple themselves <a href="http://lists.apple.com/archives/java-dev/2009/Oct/msg00497.html">recently made interfacing with native code easier for Java developers</a>, and whatever language preferences Apple has on the iPhone, they continue to support projects like Ruby on the desktop Mac.</p>
<p>Generally, I think you&#8217;ll see more native feel in apps for Mac, Windows, and Linux from Java, Ruby, Python, and other languages. It&#8217;s an area of active development, and it&#8217;s improving. It may also benefit from these communities breaking off from big corporate parents, because the developers themselves seem to understand the perspective of the users better than, erm, companies like Sun and Oracle. Bottom line: don&#8217;t be surprised if some day soon you again run a Java app (or another language, not necessarily Java) and don&#8217;t notice. Those &#8220;discriminating users&#8221; on the Mac do notice when it&#8217;s wrong, and very often want to get it right.</p>
<h3>Art, Tools, and Cross-Platform Frameworks That Don&#8217;t Suck (Or Break Apple Rules, Maybe)</h3>
<p>But it&#8217;s not just about the standard Mac widgets. Jason, definitely check out <a href="http://processing.org">Processing</a> and the <a href="http://processing.org/exhibition/">fantastic art made with it</a>? It&#8217;s Java, though that doesn&#8217;t matter and isn&#8217;t immediately apparent, which is good.</p>
<p>If you design became only about widgets and preference bars, even nice Mac ones, we&#8217;d have a generic, bland, look-alike future for software. I know that escaping bland, cookie-cutter software is what drove a lot of people to the Mac in the first place, so it&#8217;s worth reiterating.</p>
<p>Tools like Java aside, though, somehow lost in this debate is the fact that cross-platform development is wildly popular and largely transparent &#8211; just in the language C/C++. From games to serious software, a whole lot of software is written in cross-platform C++, with the bulk of the code compiling on different operating systems and even hardware architectures. Developers typically make use of various frameworks to ease this compatibility.</p>
<p>Furthermore, while I still think there are reasons to be wary of Apple&#8217;s policies and this decision in particular, it would likely be inaccurate to claim that the recent change blocks these tools. In fact, several specific examples all use native code to link against the official Apple APIs, meaning they should be safe. These applications are exceptions that prove the rule: they&#8217;re great cross-platform tools that can produce great apps, they&#8217;re allowed on the iPhone/iPad OS as near as I can tell, and in some cases they&#8217;ll also be cranking out great apps for non-Apple platforms. Adobe&#8217;s big sin may have been allowing development from Windows, meaning you don&#8217;t get all those designers buying new MacBooks. Here are some examples of tools likely to be safe:</p>
<p><a href="http://www.mobileorchard.com/announcing-iphone-wax-native-uikit-iphone-apps-written-in-lua/">iPhone Wax uses Lua</a>, but it still uses Xcode templates.</p>
<p><a href="http://blog.anscamobile.com/2010/04/do-apples-new-rules-affect-you/">Corona, an awesome development tool</a> for OpenGL-accelerated apps, has a specific response. Oh, and it&#8217;s coming to Android, too.</p>
<p><a href="http://unity3d.com/unity/features/iphone-publishing.html">Unity is producing fantastic games</a> and should likewise be safe under the new rules.</p>
<p><a href="http://www.openframeworks.cc/">OpenFrameworks</a>, a brilliant framework for artists that allows them to produce creative, interactive applications with music, visuals, and media for Windows, Mac, Linux, and platforms like iPhone/iPad is written entirely in C++ and appears to be okay. (Again, you use Xcode and Objective-C to link against official Apple APIs.)</p>
<p>Not incidentally, <strong>each of these tools</strong> (and LibNUI, above) could make some amazing music apps, some likely developed by readers of this site.</p>
<p>Let&#8217;s be clear: <strong>critics of Apple&#8217;s change likely overestimated how many frameworks would be impacted</strong>. That meant people were making an argument that may have been divorced from the facts. That said:</p>
<p><strong>Just because they got the argument wrong doesn&#8217;t mean criticism (or defense) isn&#8217;t warranted.</strong> Apple did make a major change to the developer agreement, and they made it &#8211; apparently &#8211; as a reactionary response to a particular technology, in a way that could threaten other, unrelated technologies. The debate may have gotten overheated and inaccurate, but it&#8217;s understandable that the underlying cause is cause for concern. In fact, I think there&#8217;s no reason that Mac-centric media outlets couldn&#8217;t point that out. And developers really <em>should</em> consider leaving a platform if they don&#8217;t like it. (If it&#8217;s Apple&#8217;s right to make the rules, it&#8217;s certainly likewise the developer&#8217;s right to vote with his or her feet.) I think there&#8217;s an argument to be made in defense of Apple &#8211; I could certainly make that argument if someone dropped me on a debate team and put me on Apple&#8217;s side, even if I happen to disagree.</p>
<p><strong>The jury is still out on just what apps are impacted &#8211; which should be further cause for concern.</strong> In fact, I&#8217;m still not entirely sure what the status of the apps above may be. <a href="http://www.devwhy.com/blog/2010/4/12/its-all-about-the-framework.html">On the blog /dev/why??</a>:</p>
<blockquote><p>In my opinion this is not purely aimed at Flash, but it is certainly precipitated by Flash CS5. I can&#8217;t imagine Apple is happy about environments like MonoTouch, Unity3D, PhoneGap, Appcelerator, or Corona, but I am doubtful they would have changed the license in this way just to stop developers using those environments &#8230;</p></blockquote>
<p>He apparently thinks, however (though even the developers of Corona do not), that these frameworks could become verboten. Furthermore, he notes the case of &#8220;interpreted code&#8221; and why it&#8217;s important (it happens to be useful in music apps, too), though my understanding was that that was already a violation of the agreement. (Perhaps it&#8217;s clarified here.)</p>
<blockquote><p>The more interesting thing from my standpoint is that this makes it a license violation to include a language interpreter inside a game. If you aren&#8217;t a game developer you might not be familiar with how large games are structured, but most games consist of a game engine, which is high performance code for doing things like rendering graphics, and an interpreter which runs the game logic (determining how sprites move, determining when to pop up in game text boxes, etc). This is how practically every commercial RPG works, as well as many (most?) other types of games. This affects major app store publishers, like EA, Gameloft, Tapulous, and ngmoco:). Looking at the top ten lists on the app store right now I see several titles that I know have embedded Lua interpreters. In this case I think these apps are genuine collateral damage, though I honestly doubt Apple would attempt to enforce the clause against them. In fact, using an interpreted language for game logic is already technically in violation of section 3.3.2 in the current agreement, though many developers may not realize it because under the original agreement it was okay, and the change that made it verboten was very subtle (changing an &#8220;and&#8221; to an &#8220;or&#8221;). I am actually not sure exactly when that changed, and only noticed it myself while I was researching this blog post.
</p></blockquote>
<p>See comments &#8211; ultimately, the language question is the big one. It could have a negative impact on developer flexibility, and specifically could impact DSP code. As Richard notes in comments, it&#8217;s all a matter of what Apple chooses to enforce. It&#8217;s possible that the letter of the law makes all of these things illegal, but in practice, Apple just wants to block Adobe&#8217;s tools. </p>
<p>But let&#8217;s also be clear:</p>
<p><strong>Major voices in the Mac community are advocating against cross-platform software, even without a complete understanding of what that means</strong>. And you can actually defend Apple&#8217;s rule change Others (like Jason Snell at Macworld) I think just don&#8217;t get the opportunity to be clear. But let&#8217;s be clear. Let&#8217;s makes sure that idealogical discussions on both sides of this debate don&#8217;t obscure the facts.</p>
<p>Digging into Apple&#8217;s own, platform-proprietary tools can be a great thing. My friend <a href="http://vade.info/">vade</a>, a sometimes-contributor on Create Digital Motion, has done great work with Quartz Composer, for instance, as an artist, and knows Core Image backwards and forwards because it allows him to express himself.</p>
<p>But that&#8217;s just one avenue. I know other developers who have found that working across multiple platforms ultimately makes their software better. Jason Snell unfairly, I think, characterizes this as &#8220;lowest-common denominator&#8221; development. If that&#8217;s what you&#8217;re doing, well, yeah, that would kind of suck. But I&#8217;d call this &#8220;highest-common denominator&#8221; development: the more you need to make code work on multiple platforms, the more, very often, you have to optimize all of the platforms, the more you discover opportunities to improve your code and make it a more general solution to a problem. </p>
<p>The truth is, you can use the cross-platform tools above to make fantastic iPhone/iPad apps, apps that feel entirely &#8220;native,&#8221; but apps that will also &#8211; by Jason&#8217;s description:</p>
<blockquote><p>&#8230;[create] a world where App X for iPhone and App X for Android are indistinguishable from one another.</p></blockquote>
<p>When it comes to games, to music apps, to creative applications with alternative interfaces, to immersive applications, to rich media interfaces &#8211; developers are <em> creating that world</em>, period. Apple can&#8217;t stop developers from doing that. Given that they tout availability of apps for their platform that were built with that model, I&#8217;m not even convinced Apple always has a problem with that development model. </p>
<p>The cross-platform world is here already, and it&#8217;s growing. And, honestly, I think it&#8217;ll be a good thing.</p>
<p><strong>For further reading&#8230;</strong></p>
<p>This post is really rhetorical, but it hilariously takes the legal clause to its logical (if not practical or likely) conclusion:<br />
<a href="http://3dpancakes.typepad.com/ernie/2010/04/apple-bans-modular-programming.html">Apple bans modular programming</a></p>
<p>It&#8217;s amusing reading, but as author Jeff Erickson (&#8220;Ernie Pan&#8221;) responds to comments, the real bottom line comes out: &#8220;But it doesn&#8217;t matter what Apple means. The license is a legal document; the only thing that matters is what it actually says.&#8221; Of course, that leads to still more unpleasant revelations: it doesn&#8217;t matter what the document says or Apple means, but what Apple actually does. And Apple can change what it does at any time.</p>
<p><a href="http://www.taoeffect.com/blog/2010/04/steve-jobs-response-a-brief-followup/">Tao Effect notes</a>, as I do, that cross-platform toolkits can be made to look like native apps, or even that it may not matter what they look like (because as a game, or in my example of a music app, they all look different by necessity). It also responds to what I think we could now call the Jobs Doctrine:</p>
<blockquote><p>&#8220;We’ve been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.&#8221;</p></blockquote>
<p>My issue: I&#8221;m not sure what Jobs means by the terms &#8220;intermediate&#8221; or &#8220;layers.&#8221; In fact, I&#8217;m not entirely certain what he means by &#8220;sub-standard.&#8221;</p>
<p>The blog notes that &#8211; while I suggest that maybe some of them are safe &#8211; things like MonoTouch, popular apps that feature Lua scripting in their development, and the widely-used Unity 3D game framework may well <em>not</em> be allowed in the store, which could mean more unpredictable rejections. </p>
<p>Ah, to be using a game console, where almost everything is rejected and you only have to worry about the few apps that make the cut&#8230;</p>
<p>Whatever the implications for the iPhone platform, though, these stories underly the point I&#8217;m really trying to make here &#8211; whatever Jobs may seem to be saying or Apple advocates are arguing, the notion that cross-platform development creates bad apps is one that is seriously open to debate.</p>
<p>In the meantime, we have several groups who don&#8217;t speak the same language or technical understanding:<br />
1. Apple lawyers.<br />
2. Apple end users / customers / advocates.<br />
3. Developers.</p>
<p>And then we have Steve Jobs making sweeping, provocative generalizations that are themselves enigmatic, because he&#8217;s, well &#8230; Steve Jobs. (So make that category #4.)</p>
<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2010/04/dont-over-interpret-apple-cross-platform-development-isnt-a-sin/&via=cdmblogs&text=Don't Over-Interpret Apple: Cross-Platform Development Isn't a Sin&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://createdigitalmusic.com/2010/04/dont-over-interpret-apple-cross-platform-development-isnt-a-sin/&via=cdmblogs&text=Don't Over-Interpret Apple: Cross-Platform Development Isn't a Sin&related=:&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class='wpfblike' style='height: 40px;'><iframe src='http://www.facebook.com/plugins/like.php?href=http://createdigitalmusic.com/2010/04/dont-over-interpret-apple-cross-platform-development-isnt-a-sin/&amp;layout=default&amp;show_faces=false&amp;width=400&amp;action=like&amp;colorscheme=light&amp;send=false' scrolling='no' frameborder='0' allowTransparency='true' style='border:none; overflow:hidden; width:400px;'></iframe></div>]]></content:encoded>
			<wfw:commentRss>http://createdigitalmusic.com/2010/04/dont-over-interpret-apple-cross-platform-development-isnt-a-sin/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
	</channel>
</rss>

