<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A0QNSH09eSp7ImA9WhVUEUU.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951</id><updated>2012-05-16T18:29:59.361+01:00</updated><category term="max" /><category term="timbre" /><category term="markov chains" /><category term="rhythm" /><category term="beginners" /><category term="tone rows" /><category term="openmusic" /><category term="maxmsp" /><category term="software" /><category term="omchaos" /><category term="probabilities" /><category term="algorithmic composition" /><category term="intro" /><category term="tutorial" /><category term="puredata" /><category term="csound" /><category term="open music" /><category term="chaos" /><category term="rhythm trees" /><category term="interpolation" /><category term="pd" /><category term="omalea" /><title>Algorithmic Composer</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.algorithmiccomposer.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.algorithmiccomposer.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Algorithmic</name><uri>http://www.blogger.com/profile/12220099999281271127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/aBGCT" /><feedburner:info uri="blogspot/abgct" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CkEASXgyeCp7ImA9WhdWE04.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-8805284702473342888</id><published>2011-09-03T18:21:00.003+01:00</published><updated>2011-09-06T18:37:28.690+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T18:37:28.690+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="puredata" /><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="maxmsp" /><category scheme="http://www.blogger.com/atom/ns#" term="tone rows" /><category scheme="http://www.blogger.com/atom/ns#" term="pd" /><category scheme="http://www.blogger.com/atom/ns#" term="max" /><title>Tone Rows - PureData and Max</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2011/09/tone-rows-puredata-and-max.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/8805284702473342888?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/8805284702473342888?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/f8E3b6e53Gk/tone-rows-puredata-and-max.html" title="Tone Rows - PureData and Max" /><author><name>Algorithmic</name><uri>http://www.blogger.com/profile/12220099999281271127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-FjhMGqs5-0g/TmJCg4pNLOI/AAAAAAAAABo/BlwUbIgA5QU/s72-c/pd+tone+rows1.png" height="72" width="72" /><thr:total>4</thr:total><content type="html">Today's algorithmic composition tutorial looks at manipulating a tone row in Max and PureData to generate musical material. We'll also have a look at one technique that's useful in generating more fully formed compositions in Pd and Max than some of the musical sketches we've generated so far.

Jump to the end of the post to hear some sample algorithmic music output from this patch.

As with 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QyJBwYnXB9TFbkA5-tvf1FJsms8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QyJBwYnXB9TFbkA5-tvf1FJsms8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QyJBwYnXB9TFbkA5-tvf1FJsms8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QyJBwYnXB9TFbkA5-tvf1FJsms8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/f8E3b6e53Gk" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2011/09/tone-rows-puredata-and-max.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAEQ3s9cSp7ImA9WhdWE04.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-2970545904449084782</id><published>2011-09-02T18:11:00.002+01:00</published><updated>2011-09-06T18:38:22.569+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T18:38:22.569+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="open music" /><category scheme="http://www.blogger.com/atom/ns#" term="rhythm trees" /><category scheme="http://www.blogger.com/atom/ns#" term="tone rows" /><category scheme="http://www.blogger.com/atom/ns#" term="openmusic" /><category scheme="http://www.blogger.com/atom/ns#" term="omalea" /><title>Open Music - Tone Rows and the Maquette</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2011/09/open-music-tone-rows-and-maquette.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/2970545904449084782?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/2970545904449084782?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/XjEumCqkNmI/open-music-tone-rows-and-maquette.html" title="Open Music - Tone Rows and the Maquette" /><author><name>Algorithmic</name><uri>http://www.blogger.com/profile/12220099999281271127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-HFZxC8uyWbU/TmD-TmY0FXI/AAAAAAAAABA/irAWCWfeCCE/s72-c/openmusic+tonerows1.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">Today's algorithmic composition tutorial looks at using OpenMusic to manipulate and generate musical material from tone rows.

If you haven't already got OpenMusic 6.5 installed you can download OpenMusic free for Mac and PC here. IRCAM supply a number of tutorials but you can also look through the OpenMusic tutorials available here.

Jump to the end of the post to hear some sample algorithmic 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/91gkefAy_3Ey24gDIRGsEXhQFcs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/91gkefAy_3Ey24gDIRGsEXhQFcs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/91gkefAy_3Ey24gDIRGsEXhQFcs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/91gkefAy_3Ey24gDIRGsEXhQFcs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/XjEumCqkNmI" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2011/09/open-music-tone-rows-and-maquette.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4FQ385fyp7ImA9WhdUEk4.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-8468322129259913709</id><published>2011-08-18T16:18:00.005+01:00</published><updated>2011-09-28T19:01:52.127+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-28T19:01:52.127+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="puredata" /><category scheme="http://www.blogger.com/atom/ns#" term="maxmsp" /><category scheme="http://www.blogger.com/atom/ns#" term="pd" /><category scheme="http://www.blogger.com/atom/ns#" term="chaos" /><category scheme="http://www.blogger.com/atom/ns#" term="max" /><title>Chaos in Max and PureData</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2011/08/chaos-in-max-and-puredata.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/8468322129259913709?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/8468322129259913709?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/-Z6NsEbnKpA/chaos-in-max-and-puredata.html" title="Chaos in Max and PureData" /><author><name>Algorithmic</name><uri>http://www.blogger.com/profile/12220099999281271127</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Tz-f6YV1kX4/S9RWVWn-6oI/AAAAAAAAATk/yy6rfo34nJU/s72-c/Chaos-theory-Lorenz.jpg" height="72" width="72" /><thr:total>2</thr:total><content type="html">We've looked at a few algorithmic composition ideas using Chaos in OpenMusic here, today's post applies some of these ideas algorithmic composition ideas in Max and PureData.

Chaos theory is a field of mathematics where dynamic systems are very  sensitive to initial conditions. The famous 'butterfly effect' states  that small differences in initial conditions can lead to large variations later: 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Y5tfQP_obD3XPOtXt3qZfQ5b54A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y5tfQP_obD3XPOtXt3qZfQ5b54A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Y5tfQP_obD3XPOtXt3qZfQ5b54A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y5tfQP_obD3XPOtXt3qZfQ5b54A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/-Z6NsEbnKpA" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2011/08/chaos-in-max-and-puredata.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUDRH05eyp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-3959103591518103261</id><published>2011-08-16T16:41:00.004+01:00</published><updated>2011-09-06T12:24:35.323+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:24:35.323+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="puredata" /><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="maxmsp" /><category scheme="http://www.blogger.com/atom/ns#" term="pd" /><category scheme="http://www.blogger.com/atom/ns#" term="max" /><title>Tom Johnson's Algorithmic Compositions Part 2</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2011/08/tom-johnsons-algorithmic-compositions.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/3959103591518103261?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/3959103591518103261?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/KYN-5hTssEA/tom-johnsons-algorithmic-compositions.html" title="Tom Johnson's Algorithmic Compositions Part 2" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-j4KSJIvbNFo/TkqFt2uHhQI/AAAAAAAABB4/A6DRZjumRcw/s72-c/tom+johnson+algorithmic+composition1.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">A previous post looked at some of the algorithmic composition ideas used by American Composer Tom Johnson. Today's algorithmic composition tutorial looks at a few more of Johnson's concepts specifically his use of finite automata.

A finite automaton is a sequence using a finite number of symbols generated according to specific rules. In the case of Johnson's Automatic Music, six percussionists 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lYPQqEZg_0UX_gQBtbTqhyEzHSs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lYPQqEZg_0UX_gQBtbTqhyEzHSs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lYPQqEZg_0UX_gQBtbTqhyEzHSs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lYPQqEZg_0UX_gQBtbTqhyEzHSs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/KYN-5hTssEA" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2011/08/tom-johnsons-algorithmic-compositions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQEQH87fSp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-5206222986714374657</id><published>2011-07-18T18:45:00.002+01:00</published><updated>2011-09-06T12:25:01.105+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:25:01.105+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="open music" /><category scheme="http://www.blogger.com/atom/ns#" term="openmusic" /><title>OpenMusic 6.5</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2011/07/openmusic-65.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/5206222986714374657?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/5206222986714374657?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/pzVr2jyX54E/openmusic-65.html" title="OpenMusic 6.5" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><content type="html">A new version of OpenMusic has been released today. This algorithmic composition software is developed by IRCAM and the latest version 6.5 has been released for free before it's been released to paying IRCAM forum members. You can download OpenMusic for Mac and PC here. 

OpenMusic 6.5 includes the following new features and bug fixes:

OMSheet (beta):The sheet  is a new score container allowing 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RhcE5DduZKSrR_g_zXBzNcSHdyA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RhcE5DduZKSrR_g_zXBzNcSHdyA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RhcE5DduZKSrR_g_zXBzNcSHdyA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RhcE5DduZKSrR_g_zXBzNcSHdyA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/pzVr2jyX54E" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2011/07/openmusic-65.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQGR38yfSp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-7511675886414629853</id><published>2011-06-27T18:32:00.005+01:00</published><updated>2011-09-06T12:25:26.195+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:25:26.195+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="puredata" /><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="maxmsp" /><category scheme="http://www.blogger.com/atom/ns#" term="pd" /><category scheme="http://www.blogger.com/atom/ns#" term="max" /><title>Tom Johnson's Self Similar Melodies</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2011/06/tom-johnsons-self-similar-melodies.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/7511675886414629853?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/7511675886414629853?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/T0NIC5bkSPo/tom-johnsons-self-similar-melodies.html" title="Tom Johnson's Self Similar Melodies" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/--YiInN_K2dM/TgihlL559FI/AAAAAAAABA8/1I3d7Jk2G6Y/s72-c/algorithmic+composition+tom+johnson1.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">
@font-face {
  font-family: "Times New Roman";
}@font-face {
  font-family: "Arial";
}@font-face {
  font-family: "Cambria";
}p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: Arial; }p { margin-right: 0cm; margin-left: 0cm; margin-bottom: 0.0001pt; font-size: 10pt; font-family: Times; }table.MsoNormalTable { font-size: 10pt; font-family: "Times 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/agnNHw5sCp3RJwt1nmLXRxyqvzs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/agnNHw5sCp3RJwt1nmLXRxyqvzs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/agnNHw5sCp3RJwt1nmLXRxyqvzs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/agnNHw5sCp3RJwt1nmLXRxyqvzs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/T0NIC5bkSPo" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2011/06/tom-johnsons-self-similar-melodies.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkICSHY-eCp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-832750829652892248</id><published>2011-06-27T14:06:00.004+01:00</published><updated>2011-09-06T12:29:29.850+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:29:29.850+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="markov chains" /><category scheme="http://www.blogger.com/atom/ns#" term="puredata" /><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="pd" /><title>Second Order Markov Chains in PureData</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2011/06/second-order-markov-chains-in-puredata.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/832750829652892248?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/832750829652892248?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/m4c9spPw89U/second-order-markov-chains-in-puredata.html" title="Second Order Markov Chains in PureData" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-j60EGziPxUE/S-WA4hhmASI/AAAAAAAAAoU/ksmIjNzVBn4/s72-c/table.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">It's been too long since the last algorithmic composition post, but a series of new posts are on the way!

To kick things off we'll revisit one of our previous Markov chain algorithmic compositions. Previously we looked at first order Markov chains in PureData. We also extended this into a second order Markov chain in Max.

Let's have a quick recap first.

First Order Markov Chains
In a previous 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QkHV-FzaaobCfHwjCOZcvYRWmf8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QkHV-FzaaobCfHwjCOZcvYRWmf8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QkHV-FzaaobCfHwjCOZcvYRWmf8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QkHV-FzaaobCfHwjCOZcvYRWmf8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/m4c9spPw89U" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2011/06/second-order-markov-chains-in-puredata.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEMQ3ozeip7ImA9WhdWE04.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-2860664909390999953</id><published>2010-05-23T17:05:00.007+01:00</published><updated>2011-09-06T18:38:02.482+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T18:38:02.482+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="puredata" /><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="timbre" /><category scheme="http://www.blogger.com/atom/ns#" term="maxmsp" /><category scheme="http://www.blogger.com/atom/ns#" term="pd" /><category scheme="http://www.blogger.com/atom/ns#" term="max" /><title>Algorithmic Composition with timbres: Klangfarbenmelodie</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/05/algorithmic-composition-with-timbres.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/2860664909390999953?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/2860664909390999953?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/4STHNfO5qtw/algorithmic-composition-with-timbres.html" title="Algorithmic Composition with timbres: Klangfarbenmelodie" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Tz-f6YV1kX4/S_guMI2K8sI/AAAAAAAAA04/efkpfRoCH1w/s72-c/algorithmic+composition+Max+1.png" height="72" width="72" /><thr:total>3</thr:total><content type="html">Algorithmic composition often tends to focus on pitch and rhythm. Today's algorithmic composition tutorial concentrates on timbre, creating algorithmic music by outputting MIDI from MaxMSP [Max] and PureData [PD]. 

Klangfarbenmelodie (German for tone color melody) and the synonymous French term mélodie de timbres distributes a melody  over several instruments rather than assigning it to just one
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WLc8xbZhALnlIj_74XIyw2g4MAU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WLc8xbZhALnlIj_74XIyw2g4MAU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WLc8xbZhALnlIj_74XIyw2g4MAU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WLc8xbZhALnlIj_74XIyw2g4MAU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/4STHNfO5qtw" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/05/algorithmic-composition-with-timbres.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cERnY4fSp7ImA9WhdWFEQ.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-5844122289876705883</id><published>2010-05-20T17:06:00.012+01:00</published><updated>2011-09-08T16:16:47.835+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-08T16:16:47.835+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="markov chains" /><category scheme="http://www.blogger.com/atom/ns#" term="rhythm" /><category scheme="http://www.blogger.com/atom/ns#" term="open music" /><category scheme="http://www.blogger.com/atom/ns#" term="openmusic" /><category scheme="http://www.blogger.com/atom/ns#" term="omalea" /><title>Algorithmic Composition with OpenMusic | Markov Chains and Rhythm</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/05/algorithmic-composition-openmusic.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/5844122289876705883?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/5844122289876705883?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/RnSPrNy7CFg/algorithmic-composition-openmusic.html" title="Algorithmic Composition with OpenMusic | Markov Chains and Rhythm" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Tz-f6YV1kX4/S_erqG1fmrI/AAAAAAAAAzs/CWxVJB-ewkQ/s72-c/Markov+rhythms.png" height="72" width="72" /><thr:total>1</thr:total><content type="html">Previous Algorithmic Composition tutorials have looked at using Markov Chains in OpenMusic, using some of the functions available in the OMalea library to analyse the pitches of a MIDI file and create new algorithmic compositions based on these.

Today we're looking using Markov Chains in OpenMusic to generate rhythmic patterns for algorithmic compositions.

Our previous OpenMusic tutorial used 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JAE4MaO6TK5q5qPlSAHPRgmRR38/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JAE4MaO6TK5q5qPlSAHPRgmRR38/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JAE4MaO6TK5q5qPlSAHPRgmRR38/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JAE4MaO6TK5q5qPlSAHPRgmRR38/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/RnSPrNy7CFg" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/05/algorithmic-composition-openmusic.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYGRXY_cCp7ImA9WhdWE04.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-1496840949885228632</id><published>2010-05-16T14:40:00.014+01:00</published><updated>2011-09-06T18:28:44.848+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T18:28:44.848+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="probabilities" /><category scheme="http://www.blogger.com/atom/ns#" term="markov chains" /><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="maxmsp" /><category scheme="http://www.blogger.com/atom/ns#" term="max" /><title>Algorithmic Composition: Markov Chains in Max MSP</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/05/algorithmic-composition-markov-chains.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/1496840949885228632?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/1496840949885228632?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/SqiCLbShZHs/algorithmic-composition-markov-chains.html" title="Algorithmic Composition: Markov Chains in Max MSP" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_Tz-f6YV1kX4/S_esLg8noaI/AAAAAAAAAz0/gkX9Fo7mbSE/s72-c/markov+chains+maxmsp.png" height="72" width="72" /><thr:total>2</thr:total><content type="html">We've looked at using Markov Chains for Algorithmic Composition in PureData, Markov  Chains in Keykit and Markov  Chains in OpenMusic in previous posts.

In today's Algorithmic Composition tutorial we'll look at using Markov Chains in Max MSP to analysis existing music and generate new algorithmic music.

We'll start off by recreating the Markov  Chains in PureData example and then extend it with
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ZLkxQgRG74CKQxi3vX7x2FCoVk8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZLkxQgRG74CKQxi3vX7x2FCoVk8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ZLkxQgRG74CKQxi3vX7x2FCoVk8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ZLkxQgRG74CKQxi3vX7x2FCoVk8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/SqiCLbShZHs" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/05/algorithmic-composition-markov-chains.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4MQ3w7cCp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-7395088837790085335</id><published>2010-05-08T16:38:00.011+01:00</published><updated>2011-09-06T12:36:22.208+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:36:22.208+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="probabilities" /><category scheme="http://www.blogger.com/atom/ns#" term="markov chains" /><category scheme="http://www.blogger.com/atom/ns#" term="puredata" /><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="pd" /><title>Algorithmic Composition: Markov Chains in PureData</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/05/algorithmic-composition-tutorial-markov.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/7395088837790085335?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/7395088837790085335?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/fj6U83JopjI/algorithmic-composition-tutorial-markov.html" title="Algorithmic Composition: Markov Chains in PureData" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Tz-f6YV1kX4/S_etWjW8liI/AAAAAAAAAz8/YTHkdhzlBlM/s72-c/markov+chains+puredata.png" height="72" width="72" /><thr:total>5</thr:total><content type="html">We've looked at Markov Chains in a few previous Algorithmic Composer tutorials including Markov Chains in Keykit and Markov Chains in OpenMusic. Today we'll be creating some algorithmic music by composing with Markov Chains in PureData.


Markov Chains choose the next state based on the current state and a set of probabilities. Mapped to pitch this would involve choosing our next note based on 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/N4fSCm_7OSzfwf62RT7EopXSnxM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N4fSCm_7OSzfwf62RT7EopXSnxM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/N4fSCm_7OSzfwf62RT7EopXSnxM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N4fSCm_7OSzfwf62RT7EopXSnxM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/fj6U83JopjI" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/05/algorithmic-composition-tutorial-markov.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cCQXk4fyp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-1679228099585491610</id><published>2010-05-06T12:25:00.006+01:00</published><updated>2011-09-06T12:37:40.737+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:37:40.737+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="open music" /><category scheme="http://www.blogger.com/atom/ns#" term="rhythm trees" /><category scheme="http://www.blogger.com/atom/ns#" term="openmusic" /><title>Algorithmic Composition | OpenMusic Rhythm Trees Tutorial Part 2</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/05/openmusic-rhythm-trees-tutorial-part-2.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/1679228099585491610?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/1679228099585491610?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/f1JMBV4s3hk/openmusic-rhythm-trees-tutorial-part-2.html" title="Algorithmic Composition | OpenMusic Rhythm Trees Tutorial Part 2" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_Tz-f6YV1kX4/S-KU6p853rI/AAAAAAAAAks/aF1JzBuV7Z8/s72-c/rhythm%20trees%201.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">In our last algorithmic composition tutorial we introduced using Rhythm Trees in OpenMusic. Rhythm trees are powerful ways of representing complex musical rhythms, the downside is that they can be a little cumbersome to enter by hand.

Fortunately we can use some of the built in objects in OpenMusic and simple algorithmic composition techniques to generate rhythm trees and musically interesting 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/M3kI0vMRQD0AlUwTrDqmrQKSIp4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M3kI0vMRQD0AlUwTrDqmrQKSIp4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/M3kI0vMRQD0AlUwTrDqmrQKSIp4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M3kI0vMRQD0AlUwTrDqmrQKSIp4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/f1JMBV4s3hk" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/05/openmusic-rhythm-trees-tutorial-part-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YERn4zfSp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-3365533634864395560</id><published>2010-05-02T13:07:00.007+01:00</published><updated>2011-09-06T12:38:27.085+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:38:27.085+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="open music" /><category scheme="http://www.blogger.com/atom/ns#" term="rhythm trees" /><category scheme="http://www.blogger.com/atom/ns#" term="openmusic" /><title>Algorithmic Composition | OpenMusic Rhythm Trees Tutorial Part 1</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/05/openmusic-rhythm-trees-tutorial.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/3365533634864395560?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/3365533634864395560?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/UWpew3gnSac/openmusic-rhythm-trees-tutorial.html" title="Algorithmic Composition | OpenMusic Rhythm Trees Tutorial Part 1" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Tz-f6YV1kX4/S91d5pks03I/AAAAAAAAAZk/axss92z8tSw/s72-c/rhythm+trees+1.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">In previous algorithmic composition tutorials we've looked at using OpenMusic for algorithmic composition, today's algorithmic composition tutorial introduces Rhythm Trees.

Rhythm trees are a way of representing rhythm with nested lists. The notation can get quite unwieldy and a little complicated, however these disadvantages are outweighed by the advantages. using rhythm trees it's possible to 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/wBsgiJR7AQe_iqKixsCsX1ISYsY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wBsgiJR7AQe_iqKixsCsX1ISYsY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/wBsgiJR7AQe_iqKixsCsX1ISYsY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/wBsgiJR7AQe_iqKixsCsX1ISYsY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/UWpew3gnSac" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/05/openmusic-rhythm-trees-tutorial.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YCQXc-fyp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-3531630735392812334</id><published>2010-05-01T13:01:00.005+01:00</published><updated>2011-09-06T12:39:20.957+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:39:20.957+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="puredata" /><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="maxmsp" /><category scheme="http://www.blogger.com/atom/ns#" term="pd" /><category scheme="http://www.blogger.com/atom/ns#" term="max" /><title>Random Walks in Max and PureData Part Two</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/05/algorithmic-composition-random-walk-max.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/3531630735392812334?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/3531630735392812334?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/GqNRb5VyzRU/algorithmic-composition-random-walk-max.html" title="Random Walks in Max and PureData Part Two" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_Tz-f6YV1kX4/S9wLl0TJr7I/AAAAAAAAAYM/QAvAOxNLXKc/s72-c/scale-pd.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">Our last algorithmic composition tutorial introduced random walks in Max and PureData. Today's algorithmic composition tutorial follows on from this with a small extension: we'll apply random walk to dynamics and walk through a scale rather than chromatic pitches.

I'll assume that you've read through some of the previous Algorithmic Composition Tutorials for Max and PureData here.

Random Walk 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LsrcLffAX0qhenjt31NbfCt3TAk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LsrcLffAX0qhenjt31NbfCt3TAk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LsrcLffAX0qhenjt31NbfCt3TAk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LsrcLffAX0qhenjt31NbfCt3TAk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/GqNRb5VyzRU" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/05/algorithmic-composition-random-walk-max.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUARno5fSp7ImA9WxFXFU8.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-775201252031821154</id><published>2010-04-30T22:57:00.003+01:00</published><updated>2010-05-22T11:14:07.425+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-22T11:14:07.425+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="puredata" /><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="maxmsp" /><category scheme="http://www.blogger.com/atom/ns#" term="pd" /><category scheme="http://www.blogger.com/atom/ns#" term="max" /><title>Random Walks in Max and PureData</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/04/algorithmic-composition-puredata-max.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/775201252031821154?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/775201252031821154?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/JAKkYmWABEo/algorithmic-composition-puredata-max.html" title="Random Walks in Max and PureData" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Tz-f6YV1kX4/S9wCOwcjrPI/AAAAAAAAAX0/uRYwc4Pw4LY/s72-c/algorithmiccomposition-drunk-pd.png" height="72" width="72" /><thr:total>1</thr:total><content type="html">It's been a while since we've looked at PureData and Max as algorithmic composition tools, today's algorithmic composition tutorial looks at Random Walks.

We've looked before in this Random Walks OpenMusic tutorial but this is the first time we've used in random walks in Max and PureData.

Random Walks
We'll start with a simple example:

1. Given a starting pitch of middle C
2. We will make a 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WAXQjEOxNv7xMYV4kSPne5ZSL3E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WAXQjEOxNv7xMYV4kSPne5ZSL3E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WAXQjEOxNv7xMYV4kSPne5ZSL3E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WAXQjEOxNv7xMYV4kSPne5ZSL3E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/JAKkYmWABEo" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/04/algorithmic-composition-puredata-max.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UBSHc-fSp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-5168442055037385055</id><published>2010-04-25T20:10:00.005+01:00</published><updated>2011-09-06T12:40:59.955+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:40:59.955+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="open music" /><category scheme="http://www.blogger.com/atom/ns#" term="omchaos" /><category scheme="http://www.blogger.com/atom/ns#" term="chaos" /><category scheme="http://www.blogger.com/atom/ns#" term="openmusic" /><title>OpenMusic and Chaos - OMChaos library</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/04/algorithmic-composition-openmusic-and_25.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/5168442055037385055?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/5168442055037385055?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/5rsNYmdPspY/algorithmic-composition-openmusic-and_25.html" title="OpenMusic and Chaos - OMChaos library" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Tz-f6YV1kX4/S9RWVWn-6oI/AAAAAAAAATk/yy6rfo34nJU/s72-c/Chaos-theory-Lorenz.jpg" height="72" width="72" /><thr:total>0</thr:total><content type="html">Our last few Algorithmic Composition posts have featured OpenMusic tutorials. We're continuing our look at OpenMusic today by looking at chaos, using the OMChaos library.

Chaos theory is a field of mathematics where dynamic systems are very sensitive to initial conditions. The famous 'butterfly effect' states that small differences can lead to large variations later: the small flap of a 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/o_mW4fZbuWzGntwE-AuT6LzDMUo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/o_mW4fZbuWzGntwE-AuT6LzDMUo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/o_mW4fZbuWzGntwE-AuT6LzDMUo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/o_mW4fZbuWzGntwE-AuT6LzDMUo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/5rsNYmdPspY" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/04/algorithmic-composition-openmusic-and_25.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMMSX05eSp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-4447179840522458442</id><published>2010-04-23T07:10:00.003+01:00</published><updated>2011-09-06T12:11:28.321+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:11:28.321+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="probabilities" /><category scheme="http://www.blogger.com/atom/ns#" term="markov chains" /><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="open music" /><category scheme="http://www.blogger.com/atom/ns#" term="openmusic" /><category scheme="http://www.blogger.com/atom/ns#" term="omalea" /><title>OpenMusic Markov Chains and omlea</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/04/openmusic-markov-chains-and-omlea.html#comment-form" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/4447179840522458442?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/4447179840522458442?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/1LnQqlwKTc0/openmusic-markov-chains-and-omlea.html" title="OpenMusic Markov Chains and omlea" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_Tz-f6YV1kX4/S9E6ov-pRwI/AAAAAAAAATc/Y200cEQXVv8/s72-c/alg-comp-markov.jpg" height="72" width="72" /><thr:total>8</thr:total><content type="html">We've looked at using OpenMusic for algorithmic composition in a number of posts before, we've also looked at using the OpenMusic OMalea library and random walks in OpenMusic. Today we're going to use OpenMusic and OMalea to work with Markov Chains.

Markov Chains are a very useful tool for the algorithmic composer, we've looked at Markov Chains in keykit here. If you're not familiar with how 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tzSikyeNY77lXIYHxH6v8RQdXc0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tzSikyeNY77lXIYHxH6v8RQdXc0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tzSikyeNY77lXIYHxH6v8RQdXc0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tzSikyeNY77lXIYHxH6v8RQdXc0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/1LnQqlwKTc0" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/04/openmusic-markov-chains-and-omlea.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQCRXwyeyp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-6014804858731828591</id><published>2010-04-21T16:41:00.009+01:00</published><updated>2011-09-06T12:09:24.293+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:09:24.293+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="csound" /><category scheme="http://www.blogger.com/atom/ns#" term="open music" /><category scheme="http://www.blogger.com/atom/ns#" term="openmusic" /><title>OpenMusic and CSound - om2csound library</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/04/algorithmic-composition-openmusic-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/6014804858731828591?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/6014804858731828591?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/Di1Wb300kFc/algorithmic-composition-openmusic-and.html" title="OpenMusic and CSound - om2csound library" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Tz-f6YV1kX4/S87Oyn-G4mI/AAAAAAAAAQM/iRlTBo4mYyQ/s72-c/om2csound.jpg" height="72" width="72" /><thr:total>0</thr:total><content type="html">We've looked at algorithmic composition with OpenMusic in a few posts before. This post looks as using OpenMusic and CSound.

CSound is a very powerful synthesis program that is cross platform, free to download under the GNU Lesser General Public  License and available here. It has hundreds of built in synthesis algorithms ranging from simple to advanced, cutting edge synthesis and sound 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kJvSeHJYHCJfmgaebGhjAOZV64w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kJvSeHJYHCJfmgaebGhjAOZV64w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kJvSeHJYHCJfmgaebGhjAOZV64w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kJvSeHJYHCJfmgaebGhjAOZV64w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/Di1Wb300kFc" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/04/algorithmic-composition-openmusic-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYNQ3w6eyp7ImA9WxFXFk4.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-2413769182763367811</id><published>2010-04-17T14:25:00.003+01:00</published><updated>2010-05-23T17:46:32.213+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-23T17:46:32.213+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="probabilities" /><category scheme="http://www.blogger.com/atom/ns#" term="open music" /><category scheme="http://www.blogger.com/atom/ns#" term="openmusic" /><category scheme="http://www.blogger.com/atom/ns#" term="omalea" /><title>The OpenMusic OMalea library - Random Walk</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/04/openmusic-omalea-library-random-walk.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/2413769182763367811?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/2413769182763367811?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/pquAaKh51Ug/openmusic-omalea-library-random-walk.html" title="The OpenMusic OMalea library - Random Walk" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Tz-f6YV1kX4/S8mvMh6WOwI/AAAAAAAAANc/gZ-WJXaQkro/s72-c/omalea-randomwalks.jpg" height="72" width="72" /><thr:total>0</thr:total><content type="html">In our last post we had a look at some of the functions in the omalea  OpenMusic library.

In the last post we looked at mapping some different probability  distributions to pitch. Using other omalea functions, we can  explore a number of random walk functions to generate pitch  sequences:

Random walks 
Imagine a drunk walking home. When he reaches a junction he can turn  left, right or carry 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HsFlwc48QHL8DaqknSx_Y_JFHu0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HsFlwc48QHL8DaqknSx_Y_JFHu0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HsFlwc48QHL8DaqknSx_Y_JFHu0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HsFlwc48QHL8DaqknSx_Y_JFHu0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/pquAaKh51Ug" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/04/openmusic-omalea-library-random-walk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUMQHw8cCp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-4241896990877272736</id><published>2010-04-16T12:08:00.002+01:00</published><updated>2011-09-06T12:08:01.278+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:08:01.278+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="probabilities" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="open music" /><category scheme="http://www.blogger.com/atom/ns#" term="openmusic" /><title>Probabilities in OpenMusic using OMalea</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/04/probabilities-in-openmusic-using-omalea.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/4241896990877272736?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/4241896990877272736?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/tiuODruGJ4E/probabilities-in-openmusic-using-omalea.html" title="Probabilities in OpenMusic using OMalea" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Tz-f6YV1kX4/S8cX_LTfnhI/AAAAAAAAALU/ekisPyC-ff8/s72-c/preferences.jpg" height="72" width="72" /><thr:total>0</thr:total><content type="html">We've introduced OpenMusic the computer-aided composition environment in a couple of previous algorithmic composition posts.

Today we'll have a look at using the OpenMusic library omalea to discuss the concept of probabilities and music. OpenMusic has a number of libraries that give additional functionality. Omalea (OM stands for OpenMusic and alea is Latin for dice. Aleatoric music uses chance 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AUj3Nt7CC-VBTFCfsYSheqzip1c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AUj3Nt7CC-VBTFCfsYSheqzip1c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AUj3Nt7CC-VBTFCfsYSheqzip1c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AUj3Nt7CC-VBTFCfsYSheqzip1c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/tiuODruGJ4E" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/04/probabilities-in-openmusic-using-omalea.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYNSHszcSp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-9093244076794311016</id><published>2010-04-15T10:42:00.002+01:00</published><updated>2011-09-06T12:06:39.589+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:06:39.589+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="maxmsp" /><category scheme="http://www.blogger.com/atom/ns#" term="max" /><title>Piano Phase - Max</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/04/piano-phase-max.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/9093244076794311016?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/9093244076794311016?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/0lXZxg1VqEw/piano-phase-max.html" title="Piano Phase - Max" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Tz-f6YV1kX4/S8bdlmmFIrI/AAAAAAAAAK8/iGsef_XVJ4A/s72-c/piano+phase-max.jpg" height="72" width="72" /><thr:total>0</thr:total><content type="html">In a previous post we implemented Steve Reich's Piano Phase in an algorithmic composition patch in PureData. Today we have a similar implementation in Max.

Piano Phase (1967) an  identical twelve note phrase played by two pianists who are playing at slightly different tempos. As the piece progresses the two phrases drift further and further out of phase with each other.

The 12 note phrase is:

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ii_H1bHNAmiGMC_pdl0u0Fv-5PA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ii_H1bHNAmiGMC_pdl0u0Fv-5PA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ii_H1bHNAmiGMC_pdl0u0Fv-5PA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ii_H1bHNAmiGMC_pdl0u0Fv-5PA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/0lXZxg1VqEw" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/04/piano-phase-max.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYGRnY5fCp7ImA9WhdWE00.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-5349712485618020263</id><published>2010-04-10T02:31:00.002+01:00</published><updated>2011-09-06T12:05:27.824+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T12:05:27.824+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="software" /><category scheme="http://www.blogger.com/atom/ns#" term="open music" /><category scheme="http://www.blogger.com/atom/ns#" term="openmusic" /><title>OpenMusic 6.2</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/04/openmusic-62.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/5349712485618020263?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/5349712485618020263?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/s50rprzm8KI/openmusic-62.html" title="OpenMusic 6.2" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Tz-f6YV1kX4/S7_U5zZLAXI/AAAAAAAAAKM/OD0YGRO6ZSY/s72-c/openmusic.jpg" height="72" width="72" /><thr:total>0</thr:total><content type="html">We gave a brief introduction to OpenMusic a few posts ago. A new version of this algorithmic composition software has just been announced by IRCAM. 

The new version, OpenMusic 6.2 is available for Windows XP, Vista and Mac OSX Univeral Binary and comes with updates, bug fixes and some new features.


New features:
- Compatible with LispWorks 5 and 6 (for LispWorks users)
- New "LispFunction" 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9ueI8W1F_hhb15Rx0zOJL0434kA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9ueI8W1F_hhb15Rx0zOJL0434kA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9ueI8W1F_hhb15Rx0zOJL0434kA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9ueI8W1F_hhb15Rx0zOJL0434kA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/s50rprzm8KI" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/04/openmusic-62.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUARnc-fCp7ImA9WxFXFk4.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-1908262343720374953</id><published>2010-04-04T13:59:00.002+01:00</published><updated>2010-05-23T17:47:27.954+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-23T17:47:27.954+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="markov chains" /><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="software" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><title>Keykit | Algorithmic Composition Software</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/04/keykit.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/1908262343720374953?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/1908262343720374953?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/mqOh_rlcoGs/keykit.html" title="Keykit | Algorithmic Composition Software" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Tz-f6YV1kX4/S7dLkpxlUiI/AAAAAAAAAIM/9L_EjRU4Mr4/s72-c/alg-comp-keykit1.jpg" height="72" width="72" /><thr:total>0</thr:total><content type="html">Keykit is a piece of algorithmic composition software that the developer describes as 'a programming language and graphical interface for manipulating and generating music'. It runs on Windows and Linux and is a free download available here: http://www.nosuch.com/keykit

Keykit read and write MIDI files so it can also be easily integrated with other programes and has a number of useful 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nxaR7ZXfkT4KK_Fk6iLir0XYgt8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nxaR7ZXfkT4KK_Fk6iLir0XYgt8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nxaR7ZXfkT4KK_Fk6iLir0XYgt8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nxaR7ZXfkT4KK_Fk6iLir0XYgt8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/mqOh_rlcoGs" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/04/keykit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4AQXo8cSp7ImA9WhdWE04.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-1816024653912565351</id><published>2010-03-28T16:42:00.002+01:00</published><updated>2011-09-06T19:32:20.479+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T19:32:20.479+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="maxmsp" /><category scheme="http://www.blogger.com/atom/ns#" term="max" /><title>Tutorial Max 2: Random Major Scale Pitches In Max</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/03/tutorial-max-2-random-major-scale.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/1816024653912565351?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/1816024653912565351?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/C1vHr_8d2Z4/tutorial-max-2-random-major-scale.html" title="Tutorial Max 2: Random Major Scale Pitches In Max" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Tz-f6YV1kX4/S64peOBf2_I/AAAAAAAAAGc/9AHvmtCvsW4/s72-c/Random+pitches+-+max.jpg" height="72" width="72" /><thr:total>0</thr:total><content type="html">Our second PureData example looked at playing random major scale pitches. This post looks at creating the same patch in Max. Our last algorithmic composition example in Max played random chromatic pitches if you haven't already follow the tutorial to create or download this last Max patch,
it looked like this:
Open our last patch from tutorial one. 
We'll be storing the pitches of our major scale
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/E57yZuR-e6K0vN3PvQScVr085zg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E57yZuR-e6K0vN3PvQScVr085zg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/E57yZuR-e6K0vN3PvQScVr085zg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E57yZuR-e6K0vN3PvQScVr085zg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/C1vHr_8d2Z4" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/03/tutorial-max-2-random-major-scale.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4MQ3cyfCp7ImA9WhdWE04.&quot;"><id>tag:blogger.com,1999:blog-2571409501340111951.post-7595145126525753914</id><published>2010-03-27T15:40:00.002Z</published><updated>2011-09-06T19:33:02.994+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-06T19:33:02.994+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="maxmsp" /><category scheme="http://www.blogger.com/atom/ns#" term="beginners" /><category scheme="http://www.blogger.com/atom/ns#" term="max" /><title>Tutorial Max 1: Random Pitches In Max5</title><link rel="replies" type="text/html" href="http://www.algorithmiccomposer.com/2010/03/tutorial-max-1-random-pitches-in-max5.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/7595145126525753914?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2571409501340111951/posts/default/7595145126525753914?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/aBGCT/~3/sdscKaqtL_k/tutorial-max-1-random-pitches-in-max5.html" title="Tutorial Max 1: Random Pitches In Max5" /><author><name>Acuma</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Tz-f6YV1kX4/S64lKmTB6yI/AAAAAAAAAGU/wgDjLeoUFrg/s72-c/Random+pitches+-+max.jpg" height="72" width="72" /><thr:total>0</thr:total><content type="html">A few days ago we posted an introductory algorithmic composition example that generated random pitches in PureData. Today we're creating the same example in Max 5.

Max is a commercial application available from Cycling 74. Max is very similar to the opensource programme PureData, in today's example the patches are very similar, as we start to implement more advanced algorithmic compositions 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aRUQWinR9e8lP8NZv-l1qucFUQM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aRUQWinR9e8lP8NZv-l1qucFUQM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aRUQWinR9e8lP8NZv-l1qucFUQM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aRUQWinR9e8lP8NZv-l1qucFUQM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/aBGCT/~4/sdscKaqtL_k" height="1" width="1"/&gt;</content><feedburner:origLink>http://www.algorithmiccomposer.com/2010/03/tutorial-max-1-random-pitches-in-max5.html</feedburner:origLink></entry></feed>

