Chaines de Markov et génération de séquences musicales avec les fonctions et distributions de la librairie OMAlea 2/2
Suite du précédent article, nous allons explorer les dossiers alea-seq, random-walks et tools.
Alea-seq
Cette fonction utilise la distribution uniforme pour générer une séquence aléatoire dans une tessiture de plus ou moins un intervalle autour d’une note centrale. Ici plus ou moins une quinte (7) autour de Do (6000) soit des notes entre Fa2 et Sol3.
Linea-seq
Même principe que précédemment sauf que les limites supérieure et inférieure sont spécifiées par des hauteurs au lieu d’un intervalle +/-.
Cette fonction a le grand mérite d’être aléatoire de façon continue ce qui permet de générer des séquences micro-tonales.
La différence entre distributions tempérées et distributions micro-tonales réside dans le fait qu’elles relèvent de processus discret et processus continu respectivement. On pourrait dire: espace strié et espace lisse, chers à Gilles Deleuze et Pierre Boulez.
Distribution triangulaire
Une autre distribution aléatoire. Permet aussi les micro-tons.
1 sur f
1/f génère une valeur selon la distribution du même nom. Les valeurs sont comprises entre 0 et (2n-1) à partir d’une valeur de départ appelée <last>.
Si n=2 les valeurs seront comprises entre 0 et 3
Si n=4 les valeurs seront comprises entre 0 et 15
Si n=7 les valeurs seront comprises entre 0 et 127
Je trouve cette distribution intéressante par ses moyennes autour d’un ambitus resserré et, dans le même temps, des écarts imprévisibles et parfois énormes.
Mouvement Brownien
Le mouvement Brownien génère des intervalles selon le paramètre <sigma> de distribution Gaussienne avec une note de départ et des limites supérieure et inférieure.
Randwalk 1&2
Randwalk2 fonctionne en midicents elle ne fournira donc pas de micro-tons. Pour ce faire il faudra plutôt utiliser randwalk1 qu’on mettra à l’échelle en multipliant par 100.
Chaines de Markov
Ici on quitte le domaine de l’aléatoire pour celui de la statistique.
Les 3 fonctions ana-mark, ana-mark1, ana-mark2 ont un fonctionnement particulier que j’ai oublié avec la disparition du tutoriel. Markov1 elle, fonctionne parfaitement mais avec des index de position, ce qui peut être d’ailleurs très intéressant. J’en donne un exemple dans le dossier de patches.
J’ai donc reconstruit graphiquement le processus avec une phase d’analyse et une phase de synthèse:
Je ne détaillerai pas chacun des patches et sous-patches, ce serait trop fastidieux, vous les trouverez dans le dossier random-walk.
Rapidement: « markov analyse » génère une matrice de transitions(out1) et l’ensemble de valeurs, le domaine, qu’on appelle espace des états fini en out2, dont la matrice(out1) régit les transitions. « Markov synthesis » quant à elle, reprend les deux listes fournies par « markov analyse »(in1 et in2) plus un argument définissant l’état initial(in3) et la longueur de la séquence qu’on veut obtenir(in4).
Il faut insister sur deux points:
- Le patch « markov synthesis » étant récursif, l’argument first-elem(état initial) doit être entre parenthèses.
- La valeur de l’état initial doit impérativement être incluse dans l’espace des états fini analysé.
Le processus des Chaines de Markov étant statistique, il faut lui fournir un modèle qui ne sera, d’ailleurs, pas forcément une autre musique.
Je vous recommande, à ce sujet, la lecture de cet article « What Is Composition? » de Giuseppe Englert concernant le concept et le rôle du modèle dans la composition musicale.
Tools
Des outils pour filtrer et zoomer les distributions, c’est à dire pour limiter et changer d’échelle.
Je n’ai pas trouvé d’utilisations intéressantes de filtre3 et filtre4 en regard des deux premières.
Les zooms sont également très intéressants.
Les fonctions zoom correspondent à peu près à la fonction om-scale.
On notera la différence, pour ces deux outils, entre les frontières élastiques et absorbantes.
Télécharger les patches (2ème partie) de la librairie OMAlea(updated 12-02-2016)
Jean-Michel Darrémont
Bibliographie
Au sujet des espaces lisses et des espaces striés:
« Penser la musique aujourd’hui » Pierre Boulez Gallimard 1963
« Points de repère I – Imaginer » Pierre Boulez Christian Bourgois 1995
« Mille Plateaux » Gilles Deleuze & Félix Guattari Éditions de Minuit 1980
Liens
« Les chaînes de Markov… à l’infini« , un passionnant article de Philippe Manoury
Le mouvement brownien et son histoire – CNRS
Chaines de Markov – Wikipedia
Processus de Markov – Wikipedia – voir le chapitre des applications
Très belle explication des chaines de Markov notamment par la marche de l’ivrogne.
Stochastique, chaines de Markov
Modèle de Markov caché – Wikipedia
Bonjour,
tout d’abord merci pour vos articles, rares mais toujours passionnants et très utiles ! J’avoue être fort peu matheux et ne pas comprendre le mode de calcul de 1/f. Que signifie exactement « (2^n -1) » ?
Il semblerait que cette fonction se retrouve dans les proportions de plusieurs pièces musicales, ce que je trouve étonnant vu les écarts gigantesques générés par cette fonction dans OMAlea :
http://www.pnas.org/content/109/10/3716.full
Pourriez-vous m’en dire plus sur la manière de calculer cette fonction, en termes simples ?
Merci !
Bonjour,
2^n -1 signifie (2 puissance n) -1.
Comme vous voyez c’est très simple:
Si n= 2 les valeurs seront tirées au hasard entre 0 et 4 -1=3
Si n= 4 les valeurs seront tirées au hasard entre 0 et 16 -1=15
Si n=7 les valeurs seront tirées au hasard entre 0 et 128 -1=127
Ces valeurs représentent des intervalles, exprimés en 1/2 ton et tout ça est calculé à partir d’une note de départ, en 1er argument, appelée « start ». Tout ça est exprimé en valeurs MIDI de 0 à 127.
Voilà je ne vois pas quoi dire de plus si ce n’est que tout ça, je veux dire OpenMusic, ne sont que des outils pour flatter l’inspiration, que je m’en sers pour composer et que je hais les maths. 😀
Donc la meilleure manière de calculer 1/f, pour un musicien, c’est d’utiliser OM notamment avec le patch qu’on peut télécharger dans l’article ci-dessus (vous trouverez le lien à la fin). De jouer avec en changeant les arguments et en oubliant ce qu’il y a sous le capot. Au préalable, pour que ça marche, il faut installer OpenMusic que vous trouverez ici http://forum.ircam.fr/fr/produit/openmusic/ si vous ne l’avez pas déjà. (C’est gratuit…)
Merci pour le lien, ça a l’air très intéressant.
Et merci pour le commentaire.
Bonne année.
Merci pour votre réponse limpide (et rapide !). J’ai une certaine fascination pour ces « modèles » employés dans la musique algorithmique (rythmes euclidiens, lois de Zipf…) que j’utilise plutôt dans Pure Data généralement, même si j’ai déjà bricolé dans OM. Je vais voir à quoi je peux appliquer ça maintenant…
Il y aura bientôt plusieurs articles sur les modèles de chaos et la librairie OMChaos pour OM. Fascinant aussi.
Au plaisir.
Voilà qui me sera aussi utile ! Vous arrive-t-il d’utiliser le résultat donné par le patch en tant que tel (par ex. pour un environnement sonore, une installation…) ou s’agit-il toujours d’un outil de composition assistée ? Ce serait également intéressant de nous donner de courts exemples de votre musique réalisés à partir de ces outils, même si vous corrigez ce qui vous est proposé par les patchs… pour mieux comprendre pourquoi tel ou tel modèle est plus approprié à la génération mélodique, tel autre pour le rythme, tel pour la synthèse…
J’utilise rarement le résultat du patch tel quel. Ça me sert surtout pour me donner des idées. Sinon c’est un peu trop mécanique.
Après, il faut essayer par vous-même, jouer avec les patches et les paramètres.
Je suis très intéressé aux chaines de Markov. Dans votre patch d’analyse-synthèse, il y a une fonction (jm choix multiple) que je ne trouve pas du tout. J’ai essayé en remplacent le par ‘choixmultiple’, qui est dans la librairie OMAlea, mais je ne sais pas si ca marche ou non, car lors de l’évaluation j’ai un message sortant de l’objet ‘dialog-message’ et juste après un autre donné par OM. Pouvez vous me donner quelques conseils?
Bonjour,
Un des patches était manquant. Je pensais avoir tout vérifié…
Vous pouvez télécharger le nouveau dossier (Alea-2_2) je viens de le mettre à jour.
Si vous voulez d’autres infos n’hésitez pas.
Bonne journée.
Jean-Michel Darrémont
Bonjour Jean-Michel,
Maintenant cela marche très bien, je suis très reconnaissant!
À bientôt,
Cristian