Outils pour utilisateurs

Outils du site


clapping_music_for_robots

Ceci est une ancienne révision du document !


Clapping Music for Robots

Contexte

Connaissez-vous Steve Reich ? Il s'agit d'un fabuleux musicien classique du XXe siècle, qui retravaille la question du son après l'aporie du dodécaphonisme. Contrairement aux conneries qu'a composé Schönberg, c'est intelligent, mais en plus, c'est agréable à écouter.

Une étudiante de l'ESAD m'a sollicité pour mettre en place une version robotisée de la pièce Clapping Music, dont voici une partition :

L'idée musicale

Comme vous pouvez le voir si vous avez appris à lire les grappes de cerises, il s'agit d'un jeu polyrythmique assez simple à conceptualiser (mais v'là comme c'est chaud à jouer) :

Une clave de x temps est répétée en boucle par la première voix.

Une seconde voix commence à jouer la clave de manière synchrone. Tous les Y cycles, la seconde voix “omet” un temps, ce qui décale la clave par rapport à la première voix.

De fait, tous les X * Y cycles, les deux voix finissent par se recaler l'une l'autre.

Première mesure

L'étudiante souhaite utiliser un Arduino afin de piloter deux servomoteurs qui jouent les deux voix mentionnées ci-dessus.

Dans sa première version, elle a eu une idée géniale : déclarer deux boucles différentes pour chacun des servos, et indiquer de manière brute la partition en assignant les temps d'attentes à l'aide de la fonction delay() .

Malheureusement, cette manière de faire nécessite de taper 4 lignes de code par note et par voix, soit, ben en fait, beaucoup trop de lignes.

Plus grave encore, il n'est en fait pas possible de déclarer deux boucles différentes dans l'Arduino ! Cela impliquerait du multithreading, et la puce n'a qu'un cœur…

L'étudiante, qui a décidément une âme de hackeuse, a donc intuitionné qu'elle pouvait utiliser deux Arduinos pour créer la polyrythmie. C'est en effet faisable, mais peu être un peu too much… De plus, je suspecte qu'ils se désynchronisent assez rapidement, rendant la pièce inaudible.

clapping_music_for_robots.1647250210.txt.gz · Dernière modification : 2022/03/14 09:30 de Simon Deplat