Musique algorithmique
Tu te souviens de chord
? La fonction chord te donne les notes d’un certain accord :
Il y a aussi une fonction nommée scale
. Scale retourne toutes les notes d’une gamme, pas seulement celles d’un accord :
Avec choose
tu peux obtenir aléatoirement un des éléments d’une liste. Si tu veux parcourir la liste de manière plus structurée, Sonic PI a une fonction très puissante nommée tick
:
Ici, on récupère juste la gamme de E3 (mi) mineur pentatonique et on joue chaque élément. Pour cela on ajoute .tick
à la fin de la déclaration de la gamme. Ce tick est local à la boucle live_loop, donc chaque live_loop peut avoir son propre indice d’itération tick :
Tu peux utiliser tick sur n’importe quel anneau (en fait, tu peux aussi itérer sur des listes mais ça s’arrêtera quand tu arriveras à la fin). Les anneaux (ring en anglais) sont des listes spéciales qui recommencent à zéro quand elles arrivent à la fin. Dans l’exemple ci-dessus la gamme redémarre au début après avoir atteint la dernière note. Les deux fonctions scale
et chord
retournent un anneau. Parfois tu voudras créer une liste et la transformer en anneau en appelant .ring
ou en utilisant le constructeur ring
:
Voici un exemple un tout petit peu plus compliqué. Ici tu as une liste d’accords qui est convertie en anneau sur lequel on itère :
Et maintenant, pour couronner le tout, ajoutons lui une mélodie :
Commence à itérer, vas-y !