<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Rhythm Generation With an Euclidian Algorithm</title>
	<atom:link href="http://blog.noizeramp.com/2008/10/26/rhythm-generation-with-an-euclidian-algorithm/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.noizeramp.com/2008/10/26/rhythm-generation-with-an-euclidian-algorithm/</link>
	<description>Am I a finished product -- or a work in progress?</description>
	<lastBuildDate>Sat, 06 Feb 2010 08:02:18 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Aleksey Gureiev</title>
		<link>http://blog.noizeramp.com/2008/10/26/rhythm-generation-with-an-euclidian-algorithm/comment-page-1/#comment-50999</link>
		<dc:creator>Aleksey Gureiev</dc:creator>
		<pubDate>Sun, 10 May 2009 06:20:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.noizeramp.com/?p=401#comment-50999</guid>
		<description>Yeah. I&#039;m not into generative music myself, but it&#039;s great to give the machine a chance to do something artistic every now and then. :)</description>
		<content:encoded><![CDATA[<p>Yeah. I&#8217;m not into generative music myself, but it&#8217;s great to give the machine a chance to do something artistic every now and then. <img src='http://blog.noizeramp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yury</title>
		<link>http://blog.noizeramp.com/2008/10/26/rhythm-generation-with-an-euclidian-algorithm/comment-page-1/#comment-50998</link>
		<dc:creator>Yury</dc:creator>
		<pubDate>Sat, 09 May 2009 20:05:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.noizeramp.com/?p=401#comment-50998</guid>
		<description>Have you seen Giles Bowkett&#039;s MIDI generator? http://wiki.github.com/gilesbowkett/archaeopteryx</description>
		<content:encoded><![CDATA[<p>Have you seen Giles Bowkett&#8217;s MIDI generator? <a href="http://wiki.github.com/gilesbowkett/archaeopteryx" rel="nofollow">http://wiki.github.com/gilesbowkett/archaeopteryx</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: catfingers</title>
		<link>http://blog.noizeramp.com/2008/10/26/rhythm-generation-with-an-euclidian-algorithm/comment-page-1/#comment-50995</link>
		<dc:creator>catfingers</dc:creator>
		<pubDate>Wed, 06 May 2009 00:11:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.noizeramp.com/?p=401#comment-50995</guid>
		<description>Whoops, sorry, my 2cents was worth considerably less than even that small sum. Yeah Robin&#039;s contribution works. Mine doesn&#039;t!!! Better testing in future.</description>
		<content:encoded><![CDATA[<p>Whoops, sorry, my 2cents was worth considerably less than even that small sum. Yeah Robin&#8217;s contribution works. Mine doesn&#8217;t!!! Better testing in future.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: catfingers</title>
		<link>http://blog.noizeramp.com/2008/10/26/rhythm-generation-with-an-euclidian-algorithm/comment-page-1/#comment-50994</link>
		<dc:creator>catfingers</dc:creator>
		<pubDate>Tue, 05 May 2009 05:28:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.noizeramp.com/?p=401#comment-50994</guid>
		<description>my 2cents. Yeah I thought about it more as a problem ofdistributing numbers rather than working on lists (I first saw this on Wesen&#039;s site) - although you are given a list at the end... Here&#039;s a literal copy of Alexey&#039;s code in javascript:

var steps = 16;
var attacks = 3;
var rests = steps - attacks;
var per_attack =parseInt(rests/attacks);
var rem = rests % attacks;

//check args - attacks must steps) {
	attacks = steps;
}

var rhythm = new Array();
var i = 0;
var j = 0;

while(i&lt;attacks) {
	document.writeln(&quot;attk &quot;+i);
	rhythm[j] = 1;
	j++;
	for(var k=0;k&lt;per_attack;k++) {
		rhythm[j]=0;	
		j++;
	}
	if(i&lt;rem) {	
		rhythm[j]=0;	
		j++;	
	}
	i++;
}

I checked it a bit I think it&#039;s ok. I&#039;m using something like this in a Max js object so I can enter values from rotary controllers.

Ash</description>
		<content:encoded><![CDATA[<p>my 2cents. Yeah I thought about it more as a problem ofdistributing numbers rather than working on lists (I first saw this on Wesen&#8217;s site) &#8211; although you are given a list at the end&#8230; Here&#8217;s a literal copy of Alexey&#8217;s code in javascript:</p>
<p>var steps = 16;<br />
var attacks = 3;<br />
var rests = steps &#8211; attacks;<br />
var per_attack =parseInt(rests/attacks);<br />
var rem = rests % attacks;</p>
<p>//check args &#8211; attacks must steps) {<br />
	attacks = steps;<br />
}</p>
<p>var rhythm = new Array();<br />
var i = 0;<br />
var j = 0;</p>
<p>while(i&lt;attacks) {<br />
	document.writeln(&#8221;attk &#8220;+i);<br />
	rhythm[j] = 1;<br />
	j++;<br />
	for(var k=0;k&lt;per_attack;k++) {<br />
		rhythm[j]=0;<br />
		j++;<br />
	}<br />
	if(i&lt;rem) {<br />
		rhythm[j]=0;<br />
		j++;<br />
	}<br />
	i++;<br />
}</p>
<p>I checked it a bit I think it&#8217;s ok. I&#8217;m using something like this in a Max js object so I can enter values from rotary controllers.</p>
<p>Ash</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: registeringdomainnamesismorefunthandoingrealwork.com &#187; Euclidean algorithmic beat generator</title>
		<link>http://blog.noizeramp.com/2008/10/26/rhythm-generation-with-an-euclidian-algorithm/comment-page-1/#comment-50990</link>
		<dc:creator>registeringdomainnamesismorefunthandoingrealwork.com &#187; Euclidean algorithmic beat generator</dc:creator>
		<pubDate>Sat, 04 Apr 2009 00:54:27 +0000</pubDate>
		<guid isPermaLink="false">http://blog.noizeramp.com/?p=401#comment-50990</guid>
		<description>[...] on the subject and checking out some other similar creations across the internets, including a vst, ruby and lisp implementation I decided this sounded interesting enough to devote some time to and [...]</description>
		<content:encoded><![CDATA[<p>[...] on the subject and checking out some other similar creations across the internets, including a vst, ruby and lisp implementation I decided this sounded interesting enough to devote some time to and [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robin Price</title>
		<link>http://blog.noizeramp.com/2008/10/26/rhythm-generation-with-an-euclidian-algorithm/comment-page-1/#comment-50987</link>
		<dc:creator>Robin Price</dc:creator>
		<pubDate>Thu, 26 Mar 2009 11:38:10 +0000</pubDate>
		<guid isPermaLink="false">http://blog.noizeramp.com/?p=401#comment-50987</guid>
		<description>Nice work. I found the error, your implementation of the algorithm didn&#039;t work where there where more pulses than pauses, I did a js version that fixes this.

function euclid(steps, pulses) {
    var r = new Array();
    if (pulses &gt; steps) { //test for input for sanity
        post(&quot;Error: too many pulses for steps, truncating to step number\n&quot;);
        for (i = 0; i = pulses) { //first case more pauses than pulses
            per_pulse = Math.floor(pauses / pulses);
            remainder = pauses % pulses;
            for (i = 0; i &lt; pulses; i++) {
                r.push(1);
                for (j = 0; j &lt; per_pulse; j++) {
                    r.push(0);
                }
                if (i &lt; remainder) {
                    r.push(0);
                }
            }
        } else { //second case more pulses than pauses
            per_pause = Math.floor( (pulses - pauses) / pauses);
            remainder = (pulses - pauses) % pauses;
            for (i = 0; i &lt; pauses; i++) {
                r.push(1);
                r.push(0);
                for (j = 0; j &lt; per_pause; j++) {
                    r.push(1);
                }
                if (i &lt; remainder) {
                    r.push(1);
                }
            }
        }
    }
    return r;
}</description>
		<content:encoded><![CDATA[<p>Nice work. I found the error, your implementation of the algorithm didn&#8217;t work where there where more pulses than pauses, I did a js version that fixes this.</p>
<p>function euclid(steps, pulses) {<br />
    var r = new Array();<br />
    if (pulses &gt; steps) { //test for input for sanity<br />
        post(&#8221;Error: too many pulses for steps, truncating to step number\n&#8221;);<br />
        for (i = 0; i = pulses) { //first case more pauses than pulses<br />
            per_pulse = Math.floor(pauses / pulses);<br />
            remainder = pauses % pulses;<br />
            for (i = 0; i &lt; pulses; i++) {<br />
                r.push(1);<br />
                for (j = 0; j &lt; per_pulse; j++) {<br />
                    r.push(0);<br />
                }<br />
                if (i &lt; remainder) {<br />
                    r.push(0);<br />
                }<br />
            }<br />
        } else { //second case more pulses than pauses<br />
            per_pause = Math.floor( (pulses &#8211; pauses) / pauses);<br />
            remainder = (pulses &#8211; pauses) % pauses;<br />
            for (i = 0; i &lt; pauses; i++) {<br />
                r.push(1);<br />
                r.push(0);<br />
                for (j = 0; j &lt; per_pause; j++) {<br />
                    r.push(1);<br />
                }<br />
                if (i &lt; remainder) {<br />
                    r.push(1);<br />
                }<br />
            }<br />
        }<br />
    }<br />
    return r;<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aleksey Gureiev</title>
		<link>http://blog.noizeramp.com/2008/10/26/rhythm-generation-with-an-euclidian-algorithm/comment-page-1/#comment-50980</link>
		<dc:creator>Aleksey Gureiev</dc:creator>
		<pubDate>Wed, 25 Feb 2009 06:42:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.noizeramp.com/?p=401#comment-50980</guid>
		<description>Benny, it&#039;s the wrong place to post your question. It&#039;s not my PDF and not my C-implementation. You&#039;d better ask wesen.</description>
		<content:encoded><![CDATA[<p>Benny, it&#8217;s the wrong place to post your question. It&#8217;s not my PDF and not my C-implementation. You&#8217;d better ask wesen.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Benny</title>
		<link>http://blog.noizeramp.com/2008/10/26/rhythm-generation-with-an-euclidian-algorithm/comment-page-1/#comment-50977</link>
		<dc:creator>Benny</dc:creator>
		<pubDate>Tue, 24 Feb 2009 22:36:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.noizeramp.com/?p=401#comment-50977</guid>
		<description>I have read the pdf about Bjorklund’s algorithm. I understand the basics of this algotith, but I do not fully understand your implementation in C (I&#039;m not a programmer, but I have some Java knowledge). I think that &lt;&lt; is a bitshift operator, but what does the  do ? Can you explain the C implementation (I want to make a java version of it because I am experimating with the java MIDI API and those eucledean rhytms sounds cewl).</description>
		<content:encoded><![CDATA[<p>I have read the pdf about Bjorklund’s algorithm. I understand the basics of this algotith, but I do not fully understand your implementation in C (I&#8217;m not a programmer, but I have some Java knowledge). I think that &lt;&lt; is a bitshift operator, but what does the  do ? Can you explain the C implementation (I want to make a java version of it because I am experimating with the java MIDI API and those eucledean rhytms sounds cewl).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aleksey Gureiev</title>
		<link>http://blog.noizeramp.com/2008/10/26/rhythm-generation-with-an-euclidian-algorithm/comment-page-1/#comment-50918</link>
		<dc:creator>Aleksey Gureiev</dc:creator>
		<pubDate>Tue, 30 Dec 2008 08:12:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.noizeramp.com/?p=401#comment-50918</guid>
		<description>Right, I second this -- velocity is second in the row of the most important factors. Wesen, have you tried it all in Numerology 2?</description>
		<content:encoded><![CDATA[<p>Right, I second this &#8212; velocity is second in the row of the most important factors. Wesen, have you tried it all in Numerology 2?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: intellijel</title>
		<link>http://blog.noizeramp.com/2008/10/26/rhythm-generation-with-an-euclidian-algorithm/comment-page-1/#comment-50917</link>
		<dc:creator>intellijel</dc:creator>
		<pubDate>Tue, 30 Dec 2008 04:24:52 +0000</pubDate>
		<guid isPermaLink="false">http://blog.noizeramp.com/?p=401#comment-50917</guid>
		<description>In my experience with polyrhythms (and I am by no means an expert)  I found that the accenting was equally or more important than the pulse spacing. I have been looking at these different polyrhythm generators and I haven&#039;t seen any that are also generating velocity levels to correspond to the different accents. For example if in 4/4 time, the 1st, 5th, 9th, and 13th  1/16th note have the hardest accent and on 3rd, 7th, 11th and 15th   1/16th notes there is a weaker accent.

If you were playing a polyrhythm like 2 over 3 beats then one rhythm would have accents every other note and the other rhythm would have accents every third note.</description>
		<content:encoded><![CDATA[<p>In my experience with polyrhythms (and I am by no means an expert)  I found that the accenting was equally or more important than the pulse spacing. I have been looking at these different polyrhythm generators and I haven&#8217;t seen any that are also generating velocity levels to correspond to the different accents. For example if in 4/4 time, the 1st, 5th, 9th, and 13th  1/16th note have the hardest accent and on 3rd, 7th, 11th and 15th   1/16th notes there is a weaker accent.</p>
<p>If you were playing a polyrhythm like 2 over 3 beats then one rhythm would have accents every other note and the other rhythm would have accents every third note.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
