Fractales & Librairie Chaos pour OpenMusic 2/2
Orbitals(Suite)
Lorenz
Edward Lorenz, mathématicien américain travaillant comme météorologue au MIT, est le père officiel de la théorie du chaos. Il découvrit par hasard, en 1961, que l’on peut obtenir un comportement chaotique avec seulement trois variables. Il montre ainsi qu’une dynamique très complexe peut apparaître dans un système formellement très simple. Il est également l’auteur du célèbre effet papillon qui pose la non-moins célèbre question: « Le battement d’aile d’un papillon au Brésil peut-il déclencher une tornade au Texas ? ».
En ce qui concerne nos deux patches ci-dessus je n’aurai pas beaucoup de commentaires à faire. Il faut jouer avec, faire bouger les paramètres systématiquement par boucles ou par fonctions aléatoires (voir article précédent). Attention, avec trois variables(x, y et z) les courbes possèdent trois dimensions. Il est donc nécessaire d’ouvrir la 3DC et de manipuler la courbe avec la souris pour comprendre plus intuitivement ce qui se passe. Il faut aussi consulter l’excellente et très inspirante vidéo(en français) sur les attracteurs étranges et l’effet papillon.
Nous discuterons plus loin des applications musicales pour toutes les fonctions de la librairie Chaos.
Navier-Stokes
Les équations de Navier-Stokes non-linéaires décrivent, en mécanique des fluides, le mouvement de fluides visqueux. Elles sont aussi très utilisées en météorologie pour modéliser le mouvement des masses d’air et des courants océaniens, en aérodynamique, en architecture et dans bien d’autres domaines. La résolution de ces équations constitue, aujourd’hui encore, un problème ardu et elles sont généralement utilisées dans des formes approchées ce qui est le cas dans la librairie Chaos: ici cette fonction modélise cinq modes de l’équation, on obtient donc cinq paramètres, cinq courbes en deux dimensions.
Rossler
L’attracteur de Rössler est un système non-linéaire à trois dimensions avec des propriétés fractales.
Stein
Équation itérative quadratique d’après Paul et Myron Stein.
Ce patch est l’occasion de montrer une façon de faire des boucles dans OM.
L’équation de Stein et Stein est simple, elle possède deux paramètres d’entrée: seed(condition initiale entre 0.0 et 1.0) et lambda(la turbulence). Lambda pourra être soit un nombre, soit une liste. La fonction mapcan est une boucle qui prend pour premier argument une fonction en mode lambda(la petite icône bleue en haut à gauche du patch; rien à voir avec le nom du 2ème argument de la fonction Stein), et pour deuxième argument une liste de valeurs qui successivement vont servir d’argument à la seule entrée non déployée: la première, ici l’état initial seed. Les listes successives sont ensuite aplaties pour n’en constituer qu’une seule au lieu d’une liste de listes.
Le premier exemple, en haut à gauche, fait donc varier l’état initial seed 100 fois de 0.0 à 1.0 par pas de 0.01; la turbulence reste constante avec une valeur de 0.1.
Même principe dans l’exemple 2 en haut à gauche: ici la turbulence est constante à 2.3.
Le troisième exemple, en bas à gauche, change un peu de méthode en ce sens que la turbulence est ici encore constante mais qu’elle est une liste de 21 valeurs entre 1.0 et 3.0 par pas de 0.1. Seed comme précédemment varie 100 fois entre 0.0 et 1.0 mais reçoit en argument de turbulence, à chaque fois, une liste de 21 valeurs car cette entrée accepte soit un nombre, soit une liste.
Dans le quatrième exemple les deux premières entrées de Stein ne sont pas déployées et la fonction mapcan possède deux entrées pour deux listes qui seront maintenant synchrones et varieront ensemble pour ces deux premiers paramètres: seed et turbulence selon les paramètres que l’on voit.
Torus
Cette équation est dérivée d’un modèle de pendule qui reçoit des perturbations externes périodiques. (voir bibliographie (1))
Iinit et tinit sont les conditions initiales dans un espace de phases à deux dimensions. K est le paramètre de perturbation. En général, lorsque k est plus grand que 1, les orbites tendent à devenir chaotiques alors que celles calculées avec k plus petit que 1 suivent un mouvement cyclique et régulier.
Comme on peut le voir, les exemples de gauche sont obtenus en verrouillant la fonction sur « 1 », contrairement à ceux de droite. On obtient, dans le premier cas, la cohérence de la formule entre ses deux conditions initiales iinit et tinit, mais on retrouve un autre cohérence, beaucoup plus aléatoire et moins conforme à nos attentes, mais qui existe tout de même dans le deuxième cas. Je vous laisse juge…
Verhulst
En dynamique des populations, le modèle de Verhulst est un modèle de croissance proposé par Pierre François Verhulst vers 1840. Verhulst a proposé ce modèle en réponse au modèle de Malthus qui proposait un taux d’accroissement constant sans frein conduisant à une croissance exponentielle de la population.
- Seed est la valeur initiale entre 0 et 1.
- Lambda est un nombre ou une liste de nombres qui représente le degré de turbulence du résultat.
- Long est le nombre d’itérations c-a-d de valeurs générées.
Fractales
Tout le monde connaît les images fractales, notamment celles de Benoît Mandelbrot l’inventeur du terme.
Une fractale est une courbe ou une surface de forme irrégulière ou morcelée qui se crée en suivant des règles déterministes ou stochastiques impliquant une homothétie interne. « Un objet fractal est un objet dont chaque élément est aussi un objet fractal »(7)
IFS
La génération de structures fractales s’effectue avec les fonctions ifs-lib, make-w, app-w-trans et ifsx que l’on trouve dans le dossier IFS.
IFS signifie Iterated Function System.
IFS-lib
La fonction IFS-lib est une bibliothèque de données dont une grande partie est issue d’une bibliothèque privée de données fractales provenant de Mikael Laurson, le créateur de Patchwork, et de PWGL.
Elle se connecte à la fonction ifsx qui va traduire les résultats en coordonnées x et y à destination d’une BPC ou d’une BPF.
On a donc deux représentations possibles des mêmes données: BPC avec des valeurs x en abscisse qui ne sont pas nécessairement croissantes et BPF qui ont nécessairement des x croissantes. Les deux ont des possibilités d’interprétation et d’applications différentes et complémentaires.
Si on clique sur l’entrée de Ifs-lib on voit s’afficher un menu(ci-dessous) dont chacune des entrées représente un modèle fractal de transformations linéaires dont on voit quelques images ci-dessus.
ISFX
Le système de fonction itérée lui-même, qui reçoit en entrée 1 les données d’un module ifs-lib, app-w-trans ou make-w.
L’entrée 2 permet de spécifier le nombre d’itérations c’est à dire la complexité de la courbe fractale. Attention, au-delà de 6, le nombre de données devient très important et le système risque de patiner un peu…
L’entrée 3 (objet) reçoit une liste de listes ou une BPF représentant la courbe élémentaire qui sera répliquée et itérée. (voir ci-dessous)
Les deux entrées suivantes, 4 et 5 sont des facteurs multiplicatifs pour une éventuelle mise à l’échelle.
Ce module fournit une paire de coordonnées x & y, soit sous forme de liste de paires(x,y) dans la première sortie, soit une liste de x et une liste de y des sorties deux et trois, respectivement, à la façon d’autres modules de la librairie Chaos.
Make-w
Make-w permet de construire ses propres données de transformations linéaires. Elle remplace, en quelque sorte, le module ifs-lib en permettant une flexibilité complète de celles-ci.
Dans le patch ci-dessous, inspiré de Mikhail Malt(4) on voit six fonctions make-w réunies par un module app-w-trans connecté à la première entrée d’un module isfx. On voit ensuite la deuxième entrée d’isfx réglée sur 4 itérations puis la suivante qui reçoit une BPF comme objet élémentaire.
Ici, un certain nombre de paramètres d’entrée sont tirés au hasard pour une exploration rapide et heuristique de make-w. Il en résulte un ensemble de courbes assez varié qu’on peut voir plus bas.
Courbes fractales obtenues avec différentes valeurs d’itération en entrée 2 de isfx.
On peut assez bien voir ci-dessous la qualité d’auto-similarité, principale propriété des fractales. La « randomisation » des paramètres a pour résultat que les transformations ne sont pas strictement égales tout en conservant une forte homothétie.
L’affichage ci-dessous permet de mieux examiner les courbes fractales obtenues ci-dessus. (Clic puis Flèche gauche<->Flèche droite)
Conclusion
Les systèmes chaotiques sont des systèmes dynamiques non-linéaires, ce qui signifie qu’ils peuvent générer des résultats complexes et cohérents à partir de conditions initiales simples. Le Chaos décrit de manière frappante la façon dont certaines choses changent et se transforment dans la nature comme on peut le comprendre intuitivement à la vue de certaines images obtenues.
Sur le plan des applications musicales, Rick Bidlack utilise l’axe des ordonnées pour les fréquences et l’axe des abscisses de façon ouverte: ça pourra être le timbre, les durées, les dynamiques. « Le grand intérêt des systèmes dynamiques non-linéaires pour la composition est leur affinité naturelle avec le comportement des phénomènes du monde réel, associée avec l’efficacité mécanique de leur calcul et de leur contrôle. » (3).
Barry Truax associe les modèles à deux dimensions, à la fois à une macro-échelle, celle des évènements musicaux et à une micro-échelle celle de la synthèse sonore notamment granulaire.
Dans Le Fleuve du désir(1994) pour quatuor à cordes, Gérard Pape formalise huit trajectoires: hauteurs, vibrato, dynamiques, accentuation, position, pression, vitesse de l’archet, couleur de l’archet. L’idée est l’indépendance de l’évolution temporelle des paramètres ayant une trajectoire autonome et formant une nouvelle polyphonie(2).
Pour Mikhail Malt il faut cependant se méfier d’une traduction trop littérale: « Une logique formelle n’implique pas forcément une logique musicale. Un modèle mathématique ne peut être utilisé en composition musicale que s’il est soutenu par une conceptualisation et une pensée musicale. »(2). Selon lui, on aura donc intérêt à adopter une réflexion et une distance, une utilisation « au second degré » pour ne pas tomber dans une application trop simpliste et naïve de ces notions.
Télécharger Patches exemples Chaos2
Liens
_Sur Lorenz voir la vidéo de cet article dont je parlais plus haut.
_L’article concernant Lorenz fait partie d’un site passionnant, Chaos, sur la théorie du même nom disponible dans un grand choix de langues et de sous-titres.
_« De quelques enjeux philosophiques du phénomène du chaos« , Éric Bois format pdf.
_« Computer Music and the importance of Fractals, Chaos and complexity Theory », Dr. Mladen Milicevic IRCAM 1996 pdf.
_« Chaos and Fractals in Music » Gareth E. Roberts College of the Holly Cross 2012 pdf.
_« Art intersects science: Dabby creates music out of chaos » Diana Dabby interview MIT News 1998
_« Systèmes de fonctions itérées », Association Science Ouverte
Bibliographie
_« Dieu joue-t-il aux dés », Ian Stewart Champs-Flammarion 1994 (1)
_« Les musiques du chaos » Nicolas Darbon L’Harmattan 2006 (2)
_« Chaotic Systems as Simple (But Complex) Compositional Algorithms », Rick Bidlack Computer Music Journal Vol.16 n3 (3)
_ »Fractals and Writing – Six Fractal Contemplations » Mikhail Malt The OM Composer’s Book.1 ed Delatour & IRCAM (4)
_« Chaos & déterminisme, Points Sciences« , sous la direction de Amy Dahan-Dalmedico, Jean-Luc Chabert et Karine Chemla, Le Seuil (1992) (5)
_« Du chaos au cerveau », Gilles Deleuze, Félix Guattari, dans Qu’est-ce que la philosophie?, Paris, Les éditions de minuit, 1991 (6)
_ »Le Trésor des Paradoxes », Philippe Boulanger et Alain Cohen, Éd. Belin, 2007 (7)