[ph_bjorklund]

implémentation de l’algorithme de Björklund afin de produire des motifs rythmiques. Basé sur l’article de Godfried Toussaint The Euclidean Algorithm Generates Traditional Musical Rhythms.

– reçoit en entrée deux valeurs : le nombre de pulses, et le nombre de slots. En terme musicaux, le nombre de notes et le nombre de temps à la mesure.
– produit en sortie un motif binaire (dans l’idée, les 1 sont des notes jouées, les 0 forment les silences) de longueur égale au nombre de slots, et dont la somme est égale au nombre de pulses :

par ex = 3, 7 produit 1001010
soit un motif binaire de 7 bits contenant 3 fois le bit 1.

A noter que l’algorithme produit la « meilleure » distribution des notes.  Et commence avec la moins bonne :

11111000 devient 10101011 puis 10110110

en détaillant :

[11111] [000] devient
[10][10][10] [1][1] puis 
[101][101] [10]
(et en fait :
[10110] [10] mais c'est le même motif)

On voit que la distribution est « de mieux en mieux » car au début on a  5 notes consécutives (11111000) puis 3 notes (10101011) et enfin 2 x 2 (10110110).
Cela pourrait donc constituer un 3ème  paramètre pour l’objet, de la 1ère étape (les notes toutes regroupées) , à la dernière étape (les notes les mieux distribuées).Par exemple avec les 5 pulses / 13 slots :

XXXXX........ étape 0
X.X.X.X.X.... étape 1
X..X..X..X.X. étape 2
X..X.X..X.X.. étape 3
X..X.X..X..X. étape 4 (maxi)

A voir aussi les notions différentes de polyrythmique et polymétrique (décrites dans la vidéo : https://www.youtube.com/watch?v=xTgSgTGoBLc)

On pourrait aussi aller plus loin en essayant de distribuer plusieurs notes différentes, par exemple 3 notes A et 2 notes B  sur une mesure à 8 temps:

AAABB...
A.A.A.BB
A.BA.BA.
A.BA.A.B

Avec 5 A 2 B sur 13 temps :

AAAAABB......
A.A.A.A.A.B.B
A.BA.
..............(3 petits points, ça ne marche pas très bien !)