<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Harder Better Faster Sitar</title>
	<atom:link href="http://automusic.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://automusic.wordpress.com</link>
	<description>Sending a machine to do a man's job.</description>
	<lastBuildDate>Sun, 21 Mar 2010 01:49:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='automusic.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Harder Better Faster Sitar</title>
		<link>http://automusic.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://automusic.wordpress.com/osd.xml" title="Harder Better Faster Sitar" />
	<atom:link rel='hub' href='http://automusic.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Violin</title>
		<link>http://automusic.wordpress.com/2010/03/21/violin/</link>
		<comments>http://automusic.wordpress.com/2010/03/21/violin/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 01:49:11 +0000</pubDate>
		<dc:creator>automusic</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://automusic.wordpress.com/?p=52</guid>
		<description><![CDATA[Here is a sad attempt at violin emulation as requested by reddit&#8217;s vaibhavsagar.  This is how it works: Take the fourier transform of your signal. Ramp the value of each bin up to the next one over a few samples.  This removes the attack and also makes your guitar sound like it is playing backwards.  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=52&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here is a sad attempt at violin emulation as requested by reddit&#8217;s <a href="http://www.reddit.com/r/Guitar/comments/beu99/what_kinds_of_guitar_effects_would_you_like_to/c0mfbf0">vaibhavsagar</a>.  This is how it works:</p>
<ol>
<li>Take the fourier transform of your signal.</li>
<li>Ramp the value of each bin up to the next one over a few samples.  This removes the attack and also makes your guitar sound like it is playing backwards.  If you are using Max/MSP, the vectral~ help will tell you how to do this.</li>
<li>Add some overdrive.  I just used the built-in overdrive~ object, but you can get fancy with it.   This little touch helps it sound pretty violin-like.</li>
</ol>
<p><a href="http://people.brandeis.edu/~swirepe/violin.pat">Patch</a><br />
<a href="http://people.brandeis.edu/~swirepe/violin.wav.mp3">Sample1</a><br />
<a href="http://people.brandeis.edu/~swirepe/violinfardistort.wav.mp3">Sample2</a></p>
<p>Strange things can happen if you insist that the patch takes a long time to ramp up or down, or turn the overdrive up really high.  Sample2 was just me playing around with those numbers.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automusic.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automusic.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automusic.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automusic.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/automusic.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/automusic.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/automusic.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/automusic.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automusic.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automusic.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automusic.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automusic.wordpress.com/52/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automusic.wordpress.com/52/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automusic.wordpress.com/52/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=52&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://automusic.wordpress.com/2010/03/21/violin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://people.brandeis.edu/~swirepe/violin.wav.mp3" length="80665" type="audio/mpeg" />
<enclosure url="http://people.brandeis.edu/~swirepe/violinfardistort.wav.mp3" length="800599" type="audio/mpeg" />
	
		<media:content url="http://0.gravatar.com/avatar/2394aedaf71d3b2b7626e934d99454fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">automusic</media:title>
		</media:content>
	</item>
		<item>
		<title>Ohno</title>
		<link>http://automusic.wordpress.com/2010/03/21/ohno/</link>
		<comments>http://automusic.wordpress.com/2010/03/21/ohno/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 01:30:24 +0000</pubDate>
		<dc:creator>automusic</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://automusic.wordpress.com/?p=49</guid>
		<description><![CDATA[Here is an implementation of Zvex&#8217;s Ooh-Wah, as requested by reddit&#8217;s rseymour.  It is a step sequencer that passes the guitar signal through different bandpass filters. Patch Sample<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=49&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here is an implementation of Zvex&#8217;s Ooh-Wah, as requested by reddit&#8217;s <a href="http://www.reddit.com/r/Guitar/comments/beu99/what_kinds_of_guitar_effects_would_you_like_to/c0mgmt5">rseymour</a>.  It is a step sequencer that passes the guitar signal through different bandpass filters.</p>
<p><a href="http://people.brandeis.edu/~swirepe/ohno.pat">Patch</a><br />
<a href="http://people.brandeis.edu/~swirepe/ohno.wav.mp3">Sample</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automusic.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automusic.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automusic.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automusic.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/automusic.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/automusic.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/automusic.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/automusic.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automusic.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automusic.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automusic.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automusic.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automusic.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automusic.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=49&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://automusic.wordpress.com/2010/03/21/ohno/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://people.brandeis.edu/~swirepe/ohno.wav.mp3" length="80665" type="audio/mpeg" />
	
		<media:content url="http://0.gravatar.com/avatar/2394aedaf71d3b2b7626e934d99454fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">automusic</media:title>
		</media:content>
	</item>
		<item>
		<title>Modflange</title>
		<link>http://automusic.wordpress.com/2010/03/19/modflange/</link>
		<comments>http://automusic.wordpress.com/2010/03/19/modflange/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 21:46:07 +0000</pubDate>
		<dc:creator>automusic</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://automusic.wordpress.com/?p=44</guid>
		<description><![CDATA[I put a post on reddit asking for guitar effect requests, and I am going to post what I implement here.  Most are in Max/MSP, but one day I may go back and make VSTs/more user friendly versions of them all. Here is a flanger that modulates the wet by the dry, as requested by [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=44&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I put a post on reddit asking for guitar effect requests, and I am going to post what I implement here.  Most are in Max/MSP, but one day I may go back and make VSTs/more user friendly versions of them all.</p>
<p>Here is a flanger that modulates the wet by the dry, as requested by reddit&#8217;s <a href="http://www.reddit.com/r/Guitar/comments/beu99/what_kinds_of_guitar_effects_would_you_like_to/c0mg1ji">gordonjay2</a>.  The first bit is a flanger turned down like a chorus, made from a varying delay line.  The second bit is a ring modulation between the wet and dry channels.  The third is a convolution between the two.</p>
<p><a href="http://people.brandeis.edu/~swirepe/flange.pat">Patch</a><br />
<a href="http://people.brandeis.edu/~swirepe/modflange.wav.mp3">Sample</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automusic.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automusic.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automusic.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automusic.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/automusic.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/automusic.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/automusic.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/automusic.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automusic.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automusic.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automusic.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automusic.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automusic.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automusic.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=44&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://automusic.wordpress.com/2010/03/19/modflange/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://people.brandeis.edu/~swirepe/modflange.wav.mp3" length="480652" type="audio/mpeg" />
	
		<media:content url="http://0.gravatar.com/avatar/2394aedaf71d3b2b7626e934d99454fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">automusic</media:title>
		</media:content>
	</item>
		<item>
		<title>Improv Ensemble</title>
		<link>http://automusic.wordpress.com/2009/10/07/improv-ensemble/</link>
		<comments>http://automusic.wordpress.com/2009/10/07/improv-ensemble/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 16:58:57 +0000</pubDate>
		<dc:creator>automusic</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://automusic.wordpress.com/?p=41</guid>
		<description><![CDATA[I am currently taking a class on improvisation.  I am allowed to bring my guitar, on the condition I do not play it: I have to play &#8220;electronic music.&#8221;  This is good for me!  I only bought a guitar so that I could plug it in to stuff, and now I am on the hook [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=41&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am currently taking a class on improvisation.  I am allowed to bring my guitar, on the condition I do not play it: I have to play &#8220;electronic music.&#8221;  This is good for me!  I only bought a guitar so that I could plug it in to stuff, and now I am on the hook to make interesting things to plug it in to every week.  Here are some things I have made so far:</p>
<ul>
<li>A program consisting of a collection of cells (called &#8220;rumors&#8221;), each with an associated probability.  With each tick of a metronome, each cell will try to activate at it&#8217;s probability.  If it does, it records for a random duration up to 4 seconds, then plays back what it heard one octave or two octaves lower.</li>
<p>It is great at taking up a lot of space, and perfect for making beautiful pads.  It doesn&#8217;t take a lot to make a lot.  Unfortunately, it is not super-useful for improv.  One, other people need to use that space.  Two, it is hard to control what you play: when your instrument is willing to go on without you, you can&#8217;t make phrases.</p>
<p>Three, my ear training for guitar is pretty bad.  I need to noodle around a bit before I can find something that sounds good.  This program is not quick to forget your mistakes!  That, and I forgot to put in a bypass.</p>
<li> A vocal processor to make myself sound like a guitar.</li>
<p>I figured that I was pretty good at improvising vocal melodies, so I might as well leverage that.  Jack Black did something similar during a talk show while School of Rock was in theatres.  Ventrili-solo isn&#8217;t a bad idea, is it?</p>
<p>This one didn&#8217;t actually work out.  I couldn&#8217;t get it to not sound like I was speaking in to a distortion pedal before class, so I trashed it and threw together something quick in the meantime.  I still think this could work.  My basic idea is:</p>
<p>in -&gt; (lowpass?) filter -&gt; compression -&gt; overdrive -&gt; reverb</p>
<p>That should be enough to make it sound like a guitar, right?  I still need to do some work.</p>
<li>A ton of filters.</li>
<p>I had half an hour before class started, and I needed a program.  I ended up pulling the pitch-detector out of HBFS and playing my guitar through it.  If you recall, it was basically a bunch of bandpass filters, with center frequencies at each note.  I&#8217;d never put a signal through it to listen to what comes out.  It sounds sort of like an organ.  Or maybe I will call it a &#8220;step phasor:&#8221;  it sounds like a flanger or something, but with definite slots for pitches.  If you bend or slide across several notes, you can hear the pitches jump steps, or get louder as they lock in.  I like this effect, but I couldn&#8217;t figure out how to use it effectively.  I will practice!</ul>
<p>We&#8217;ve only had 2 classes so far, and this is what I made.  I am planning on updating weekly with my results.</p>
<p>If you are interested in any of these, send me a message.  Everything right now is written in an old version of Max/MSP, but I am eager to try out a few other languages.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automusic.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automusic.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automusic.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automusic.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/automusic.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/automusic.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/automusic.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/automusic.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automusic.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automusic.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automusic.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automusic.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automusic.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automusic.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=41&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://automusic.wordpress.com/2009/10/07/improv-ensemble/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2394aedaf71d3b2b7626e934d99454fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">automusic</media:title>
		</media:content>
	</item>
		<item>
		<title>Coming Attractions</title>
		<link>http://automusic.wordpress.com/2009/07/04/coming-attractions/</link>
		<comments>http://automusic.wordpress.com/2009/07/04/coming-attractions/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 21:28:28 +0000</pubDate>
		<dc:creator>automusic</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://automusic.wordpress.com/?p=38</guid>
		<description><![CDATA[Up next on HBFS:  A* search, automated synthesis, Boltzmann machines, and more!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=38&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Up next on HBFS:  A* search, automated synthesis, Boltzmann machines, and more!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automusic.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automusic.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automusic.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automusic.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/automusic.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/automusic.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/automusic.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/automusic.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automusic.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automusic.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automusic.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automusic.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automusic.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automusic.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=38&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://automusic.wordpress.com/2009/07/04/coming-attractions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2394aedaf71d3b2b7626e934d99454fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">automusic</media:title>
		</media:content>
	</item>
		<item>
		<title>HBFS Wrap-up</title>
		<link>http://automusic.wordpress.com/2009/07/04/hbfs-wrap-up/</link>
		<comments>http://automusic.wordpress.com/2009/07/04/hbfs-wrap-up/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 21:26:04 +0000</pubDate>
		<dc:creator>automusic</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://automusic.wordpress.com/?p=36</guid>
		<description><![CDATA[It has been a long time, so give me a second to catch up.  This is how Harder Better Faster Sitar ended. HBFS was written in Max/MSP, and Java, with some precomputation in Perl.  I really wanted to use a dynamic language like Ruby or Python inside of Max, but never actually ended up doing [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=36&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It has been a long time, so give me a second to catch up.  This is how Harder Better Faster Sitar ended.</p>
<p>HBFS was written in Max/MSP, and Java, with some precomputation in Perl.  I really wanted to use a dynamic language like Ruby or Python <em>inside </em>of Max, but never actually ended up doing that.  Maybe next time!</p>
<p><strong>Chords</strong></p>
<p>There are far too many different chords out there, in far too many styles, to have Harder Better Faster Sitar learn how to build them on the fly.  I was afraid that any grammar I wrote to generate them would be too inflexible to use outside of  a handful of songs.</p>
<p>I decided to have the user supply a midi file (or files) in the style they wish to play in.  I&#8217;d then transpose the midis to all different keys, then scan through them and find each instance of more than one note being on, and store them in a table.  The keys were the pitch classes (A, C#, E), and the values were the actual midi numbers of the notes present (45, 57, 62, 67, &#8230;).</p>
<p><strong>Pitch Detection</strong></p>
<p>Nothing fancy here, just filters set up at every value of &#8216;A&#8217; and summed together.  Notes above a configurable threshold were on, the others were not.  This lets me hear more than one pitch at a time (good!) but fails if the user is out of tune (bad!).</p>
<p>Although, that was a strong incentive for me to start tuning more regularly.</p>
<p><strong>Chord Selection</strong></p>
<p>The Levenshtein Distance (<a href="http://en.wikipedia.org/wiki/Levenshtein_distance">wp</a>) is the minimum number of changes you have to make to go from one string to another.  The changes allowed are insertion, deletion, and substitution of a single character.  It also happens to be one of my favorite metrics, for no particular reason.</p>
<p>To pick a chord to play, take the notes that are on and plug them in to the table.</p>
<p>Nothing there?  Randomly try the chords of Levenshtein distance 1.</p>
<p>Nothing there either?  Try all chords of Levenshtein distance 2.</p>
<p>Nothing there?  Just play back the pitches you heard, as close to middle C as you can get.  It will be a pretty uninteresting voicing, but it will be harmonically right.</p>
<p>In first case, you will get back a pretty interesting chord, with the proper voicing for your style.  In the second, you played a passing tone or something, and it didn&#8217;t occur in the corpus you supplied.  That&#8217;s ok!  Non-harmonic tones are wonderful things, and we should be able to find a harmony around them.  The next case is a little more desperate, and the final one is just so there are no awkward silences coming from your accompaniment.</p>
<p><strong>Rhythm</strong></p>
<p>Beat tracking is hard!  Even with third-party libraries and a bunch of papers on the topic, I couldn&#8217;t get it working right.  Plus, I had to do this all in a semester.  After banging my head against the wall (in 3/4 time), I decided to just hook the whole project up to a step sequencer (<a href="http://en.wikipedia.org/wiki/Music_sequencer#Step_sequencers">wp</a>).  You can define all your rhythms and tempos ahead of time, and switch between them with a key press.</p>
<p>The tempo of the step sequencer can be set by tap-tempo, which was fun to implement.</p>
<p>If I find the time (or a single person asks me) I will clean up my code and release it.  Stick around for that!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automusic.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automusic.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automusic.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automusic.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/automusic.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/automusic.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/automusic.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/automusic.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automusic.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automusic.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automusic.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automusic.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automusic.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automusic.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=36&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://automusic.wordpress.com/2009/07/04/hbfs-wrap-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2394aedaf71d3b2b7626e934d99454fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">automusic</media:title>
		</media:content>
	</item>
		<item>
		<title>General Overview</title>
		<link>http://automusic.wordpress.com/2008/09/17/general-overview/</link>
		<comments>http://automusic.wordpress.com/2008/09/17/general-overview/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 06:12:42 +0000</pubDate>
		<dc:creator>automusic</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://automusic.wordpress.com/?p=7</guid>
		<description><![CDATA[The purpose of the project is to make an application that can play along with a live musician. Think of those old country-western albums: this is the digital equivalent of the guy who sits in the back with an electric guitar and interjects notes whenever the spirit moves him. The scope of this project may [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=7&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The purpose of the project is to make an application that can play along with a live musician.  Think of those old country-western albums: this is the digital equivalent of the guy who sits in the back with an electric guitar and interjects notes whenever the spirit moves him.  The scope of this project may change, but this is what I am starting with.</p>
<p>I have broken this project into parts:</p>
<h2>Gathering Information From The User</h2>
<h3>Pitch Detection</h3>
<p>The machine has to be able to hear what the user is playing.  For this, I chose to use the Max/MSP  language for all interactions with the sound card.  Max/MSP supports both midi data and &#8220;signals&#8221; as primitives, and makes filtering those signals easy.  For pitch detection, I wrote a bank of bandpass filters.  This will be the topic of the next post!</p>
<h3>Key Detection</h3>
<p>Once the machine has a collection of pitches, it must make sense of them.  I will most likely use a Hidden Markov Model or decision trees to determine the key of a musical piece, depending on which gets the job done with the least amount of overhead.</p>
<p>Max/MSP comes with a Java API, and there is more than one way to use Prolog from within Java.  This gives me a lot of options!  Honestly, I am aching for an excuse to use Prolog in something bigger than a toy problem, and this seems like the perfect opportunity.  I will probably go with <a href="http://www.declarativa.com/interprolog/">InterProlog</a> from Java.  This most likely means I will be going with decision trees for key detection</p>
<h3>Beat Detection</h3>
<p>Davies, Brosier, and Plumbly wrote an amazing paper on non-symbolic beat tracking.  There are a few papers on this topic, but this is the one I will be basing my beat tracking system on.  The details on this will, of course, be in a different post.</p>
<h2>Using That Information</h2>
<p>After the machine has information about the rhythmic and tonal structure of the piece, it can use this all to make some notes of its own.  My aim right now is to have it generate short phrases to push the music along, but really there are any number of directions this could go in.</p>
<h3>Markov Chains</h3>
<p>I recently discovered that Max/MSP has first-order markov chains built right into the language.  They just stuck them right in there.  This may be a solution, but it is not my favorite.</p>
<h3>Genetic Algorithms</h3>
<p>After toying around with genetic algorithms this summer, I made an observation: they yield one &#8220;optimal&#8221; solution, but hundreds of other solutions that are almost as good.  I can use this to my advantage here because</p>
<ol>
<li>&#8220;Tonal harmony&#8221; is a huge space to search, and</li>
<li>&#8220;optimal&#8221; is subjective in music.</li>
</ol>
<p>When I say that &#8220;tonal harmony&#8221; is huge, I mean that there are twelve notes in about four registers with about fourteen different meter values they can have.  Can you see why, even for one measure, it is not realistic to search through all possible combinations?</p>
<p>When I say optimal is subjective, I mean this:  In general, a major third is going to sound better than a minor second.  A major third is consonant, a minor second is dissonant.  However, a minor second can introduce tension and motion in ways that a major third cannot.  At any point in a song, is it better to play a major third or a minor second?  It depends on the context.  What about a major third over a minor third?  It depends on the mood.  A perfect fifth over a diminished fifth?  It depends on whether you are playing east Asian folk music or river delta blues.</p>
<p>I guess it would be possible to determine mood statistically (or by some other means), but I am not going to try right off.  I am going to leave that part out to begin with and see how things turn out.</p>
<p>What this means is, these &#8220;suboptimal&#8221; solutions returned from the genetic algorithm can still be used.  The plan was to use short phrases, just long enough to drive the music, but not so long as to dominate the melody.  If it so happens that some phrases reflect different moods than the piece had originally, all the better!  The machine has helped drive the song in a different direction.  That&#8217;s not so bad.</p>
<h2>Spitting Out Notes</h2>
<p>Now that the machine knows what notes to play and when to play them, it has to actually make it happen.</p>
<h3>Midi</h3>
<p>This project will most likely output its notes in midi form.  The focus is not on realistic timbres of instruments, but rather on the realistic use (timing and phrasing) of them.  It&#8217;s more important to get the notes in the right place!  The textures can come later.  Also, I can save some processing time by leaving the synthesis for something external.</p>
<h3>The Guru</h3>
<p>The user should have a say in what the machine plays!  Sometimes it is just not appropriate to have it play notes in the background, or use only major scales, or. . .</p>
<p>The design for this application (right now) includes controls for halting output, tweaking the rules in the genetic algorithm, forcing the machine to use a certain key, and other things.  I am trying to keep user interaction a priority, so this part is important.  This machine should be treated as just another instrument.  It just happens to be a smart one.</p>
</p>
</p>
<p><strong>Next time on HBFS: Pitch Detection</strong></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/automusic.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/automusic.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automusic.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automusic.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automusic.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automusic.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/automusic.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/automusic.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/automusic.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/automusic.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automusic.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automusic.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automusic.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automusic.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automusic.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automusic.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=7&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://automusic.wordpress.com/2008/09/17/general-overview/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2394aedaf71d3b2b7626e934d99454fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">automusic</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello World!</title>
		<link>http://automusic.wordpress.com/2008/09/17/hello-world/</link>
		<comments>http://automusic.wordpress.com/2008/09/17/hello-world/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 02:16:03 +0000</pubDate>
		<dc:creator>automusic</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[This is the official blog of Peter Swire&#8217;s independent study. By the end of the year, he will have an application that can play along with a live musician. Next time on HBFS: General Overview<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=1&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is the official blog of Peter Swire&#8217;s independent study.  By the end of the year, he will have an application that can play along with a live musician.</p>
<p><strong>Next time on HBFS: General Overview</strong></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/automusic.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/automusic.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/automusic.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/automusic.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/automusic.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/automusic.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/automusic.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/automusic.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/automusic.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/automusic.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/automusic.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/automusic.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/automusic.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/automusic.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/automusic.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/automusic.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=automusic.wordpress.com&amp;blog=4879409&amp;post=1&amp;subd=automusic&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://automusic.wordpress.com/2008/09/17/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2394aedaf71d3b2b7626e934d99454fe?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">automusic</media:title>
		</media:content>
	</item>
	</channel>
</rss>
