Stumbled upon this site and this paper. Talks about generating beats and such using Euclid's algorithm and how it relates to world music:
Paper: http://cgm.cs.mcgill.ca/~godfried/publications/banff.pdf
Site with Example and Code: http://ruinwesen.com/blog?id=216
I wanted to implement this in MAXMSP but I have a feeling I will need to just call in some external Java or C code. Below is what I have so far, all you do is select the number of HITS you want in a certain time frame (beats) and hit compute...all it does so far is generate a list of 1's (the hits) followed by 0's (the rests). The real algorithm is supposed to go from there, but I'm not sure how to implement it using MAX objects. Anyone care to look into this? I can easily do any combination by hand, but the whole point would be to automate it and let the user decide all the parameters.
----------begin_max5_patcher----------
1163.3oc0Yt0iahCEG+4jOEHdNyHeia69z1pJ02pT09TqVshPbm5cASTvnc1
ope2WvFRH2.aBwgUQJP.h4+4mOmiO19GKW3tN+UZgqyu37UmEK9wxEKjWp9B
KZ98B2r3WSRiKjOlaRdVFkKbWotmf9pPd8OSKJSEL9KNegtKupMadfTFmljW
xkOEp4heKmK3wYT4+721whSae7s6nEUMerfky+yczDgRavvvmAqbfddxC.b8
AD3Yfyez7GYajMV95+5IOTaqwKyX7TpPJcX6qHVj78Jg1o4UMNQdvyu9aLoS
aWK2B1aR4BQU29bs18ET8VyKEsuVP8E+4xk0es5Fg76yy1VJnSKaQfHIMgPo
4G0KZglhVTPW1Blur82yEwoNuiFK166ZNJwRqU4rF.6kj.SIojNsjz+7toYC
I+H6FPHzO7.Bw8hPRjwHD10YbFfPN8eprjyH31cLtv4Sb5vXrKOLNuGjHS1Q
hjoU8B6GHvm8h7fgA2aqW3r1Yu8odEh+cKUIY20w7WbW435djHGDNXuQBGLQ
BGL5YO87VNlKnQvk0kBQkmVuD3RADXhw1HP4..7Z65OwFO1XfSWm7tSpS3Lq
zz9W7EscPOiLAHRaGqb98zMavcCIpn9u7gO+IyB6wFOlbikqB68mIg8uk5PS
XoENvq6SXdbOI3hzAMbRQeYQlAA2.cPSGcJpGNnvHGCjuoNFD4PhpgGIQiKf
.Lk17w4HzypMNQOxCoLUUhf.6Y2Yzhh3WnmY3Pm1Of5OSUNRDdrwBpoH.aND
9PSRR2R4abJnhICKistILR53DPd3CcTWxT0mAKZ5niFRIvHoDL.oxmNNJgu2
EPcs4xol4JBiuRoQcXCLZrrgDdkVWu4b.mxjNSU7DLzzzL9JeCB5Pk11IIyI
r3lsbiK1.gQOHSerSx.5ORe8FazlSxHkUHdJNIoLqhcg8VVIqdUzLqylLVPD
4eXINryLJuVL+jUZADYboEAgOHO+q3rT9FS6wOGg2BXr.RUVpMG9rmhLFFQl
ilPiiiTSMSM1oMWXlpVXMc2UQPsoeVwUrW34UROkk72cMKyWaYnZuOTSH0q2
5QBLeEA75Tp1EZ7aZkQmvoA+Tuv2L+NeiGrVQoPxs328+lLVdirJN6mupLix
KGJp730NhInYM66Io5FqptaXyQneyIXTyI9sORUQDUm8q5.xqNqB0t3.ApIT
2aX79oqWaMMpsaQSZlrjzNo8K+BuoParkxhZ99Ho1dmFP2e5Ri2TyH7AjdOS
VJaQ417dxdzK0T80OFyE4k6RZ4X6pe5bPXanEBFeu.95g8MpyC8c1lMTd2EO
OisYadU2xdWvK1oajlfCoIrU0T8tCMHmPO.MAmWZBgzfSm.y6NmH53iGXWMg
0USP602gmebBpSXmuUkjNYLQ10CGpiGNxtYwqWN3A0Dz29ZZnLlPf80DZ.MY
Y2oHcbmrKlpWy3gcmHVUS5TSvI59tiof4GlNIHednIzLTSZkwDM6FrCBrZYJ
5jHvtE8FpwnJ9VkQ5T1jcSLoSN.KWBtl8Zyqhc8tA+npe7yk+GfIgweI
-----------end_max5_patcher-----------