Synthèse musicale et … programmation fonctionnelle
Jerzy Karczmarczuk (GREYC, Université de Caen)On sait que les structures de données paresseuses peuvent représenter de manière “statique” le processus de leur génération. Nous avons exploité ce paradigme afin de construire les générateurs et les transducteurs de signaux acoustiques. La synthèse des échantillons demande le codage des processus itératifs ; nous les avons remplacés par l’usage très agressif de la co- récursivité, et de la programmation par flots de données. Ceci a permis
- la construction aisée des flots sonores “infinis”: générateurs harmoniques, tonalités paradoxales de Shepard/Risset, etc.
- la construction des filtres (notamment des filtres IIR, récursifs) de manière extrêmement compacte ; utile pour les réverberateurs et autres générateurs d’effets sonores
- l’implémentation des modèles dits ‘physiques’ d’instruments musicaux (basés sur les “guides-d’onde” et les résonances dans des lignes de retardement) de manière 10 fois plus courte que les équivalents impératifs.
Nous présentons un petit paquetage écrit en Clean. L’exposé aura le caractère de tutoriel, aucune connaissance du traitement des signaux ni de la théorie des instruments musicaux n’est nécessaire. Nous allons démontrer (le son de) quelques instruments musicaux presque acceptables, même si loin du réel - en fait, qui s’attend à produire une flute de Pan réaliste en 10 lignes de code?…