Juste une idée que j'ai eue l'autre jour: créer des rythmes en suivant une chaîne de Markov de sons prédéfinis.
Je me souviens que quelqu'un a fait une beatbox avec Google Translate et la langue allemande (suivez le lien et appuyez sur écouter).
Le défi consiste donc à créer une entrée de texte pour Google Translate à partir d'une chaîne donnée. Ou vous pouvez utiliser des notes de musique et jouer vous-même :).
Vous pouvez faire un programme lisant une ligne avec le nombre de battements, un autre avec leurs noms et une représentation matricielle des probabilités (vous pouvez choisir la représentation).
Vous pouvez également créer une fonction avec ces trois arguments.
Par exemple
[contribution]
20
pv zk bschk kkkk
[[.1, .4, .5, 0.],
[.3, .2, .3, .2],
[0., .3, .2, .5],
[.1, .8, .1, 0.]]
[sortie] quelque chose comme:
pv zk bschk zk pv bschk zk pv zk bschk kkkk pv bschk zk bschk bschk bschk zk kkkk bschk
La probabilité de départ est la même pour chaque battement.
Ce n'est pas un défi de code-golf parce que j'aimerais voir de belles solutions (soyez créatif).
Des points supplémentaires si vous inventez de nouveaux rythmes et / ou choisissez une table de probabilités qui donne de beaux rythmes la plupart du temps.
Si vous le souhaitez, vous pouvez utiliser de vrais rythmes (dans de nombreuses langues, il est facile d'ouvrir des .wav
fichiers, comme le wave
module en Python) et générer de la musique! Voici quelques extraits gratuits.
Je peux publier une implémentation de référence si nécessaire.