
Euclidean Drum Machine - marcw
http://www.groovemechanics.com/euclid/
======
pistle
My patch...

var patch = [ {steps:11,pulses:4,offset:0}, {steps:7,pulses:1,offset:8},
{steps:5,pulses:2,offset:0}, {steps:3,pulses:1,offset:0},
{steps:1,pulses:16,offset:0}, ]; patch.forEach(function(hit,index){ index =
index + 1; $('.space-'+index).val(hit.steps).trigger('change');
$('.fill-'+index).val(hit.pulses).trigger('change');
$('.offset-'+index).val(hit.offset).trigger('change'); });

just drop that into your F12 tools' watch window and we can share
configs/patches

~~~
pistle
Double-bass metal

var patch = [ {steps:11,pulses:13,offset:2}, {steps:8,pulses:2,offset:6},
{steps:5,pulses:7,offset:4}, {steps:1,pulses:3,offset:1},
{steps:15,pulses:8,offset:8}, ]; patch.forEach(function(hit,index){ index =
index + 1; $('.space-'+index).val(hit.steps).trigger('change');
$('.pulses-'+index).val(hit.pulses).trigger('change');
$('.offset-'+index).val(hit.offset).trigger('change'); });

~~~
sitkack
Could you post a screenshot of how you did this? My browser dev fu is weak.

------
naringas
I'm fascinated by this concept and I've even had some ideas about making
something similar, though I haven't worked them out

I'd love to look at the source code for this.

~~~
erikschoster
There's a popular paper on the technique by Godfried Toussaint that explores
it in depth:
[http://cgm.cs.mcgill.ca/~godfried/publications/banff.pdf](http://cgm.cs.mcgill.ca/~godfried/publications/banff.pdf)

~~~
anigbrowl
He has a bunch of interesting material and a book called _The Geometry of
Musical Rhythm_. Being a CS prof, though, he has the intensely annoying habit
of counting everything from zero. Musicians don't do this, they count from 1
(like everyone else except programmers), and so all his diagrams, notation
etc. have to been mentally shifted by one step every time you reach for an
instrument or talk to another musician.

I personally think that counting from zero is a really harmful habit. I
understand how it originated and of course switching to counting from 1 would
involve all sorts of kludges and result in all sorts of bugs. But it strikes
me as a classic case of abstraction gone wrong, as 'the _n_ th step' is going
to mean entirely different things in the problem and the software domain.

------
robhanlon
Reminds me of Axon:
[http://www.audiodamage.com/instruments/product.php?pid=AD026](http://www.audiodamage.com/instruments/product.php?pid=AD026)

------
dpflan
The top level site
([http://www.groovemechanics.com/](http://www.groovemechanics.com/)) has some
other cool instruments like a virtual analog sequencer and synthesizer. It
would be awesome to be able to use multiple instruments at once in an
integrated session - who doesn't want to be a JS-plug-in one-man-band?

------
tcfunk
Warning for all those with headphones on:

If you navigate to a different tab, and then come back to groovemechanics.com,
the sound pops in VERY LOUDLY...it was painful and a bit scary to my eardrums.

Other than that, though, this is really cool!

~~~
hartzler
I did not heed this warning. It is VERY LOUD! Heart attack loud :)

------
genericacct
Holy coolness, can you make a version that runs in node-webkit so I can hook
it up to ableton and other DAWs via OSC? That would be 100% groovy. Do you
mind if i do it myself some time?

~~~
marcw
Thanks! Yeah, I plan to open-source the project. So of course that would be
great to port it node-webkit.

------
kaoD
Suggestion: a random button.

~~~
pistle
(function(){ for(var i=1;i<6;i++){
$('.space-'+i).val(Math.floor((Math.random() * 16) + 1)).trigger('change');
$('.fill-'+i).val(Math.floor((Math.random() * 16) + 1)).trigger('change');
$('.offset-'+i).val(Math.floor((Math.random() * 8) + 1)).trigger('change'); }
})()

------
frankydp
Suggestion. Update the url hash with the settings so you can share links.

------
pavel_lishin
I don't understand why and how it periodically resets.

~~~
kmm
If the least common multiple of two elements is high, the rhythm would have a
very long period, which doesn't sound very well. Three elements of periods
16,9 and 7 would have a period of 1008 steps, which at a tempo of 100 would
take 10 seconds to reset. That's not a rhythm, that's a tune.

~~~
TheLoneWolfling
I actually thought it would be interesting to do a tune along those lines.

Have a quartet where each one is playing something with a different time
signature. Hellish to coordinate, but could be interesting at the same time,
as instruments wander in and out of sync with each other. Chord progressions
forming with two and three instruments while the others are doing something
else.

