Se lancer dans la composition algorithmique et l'aide à l'écriture avec Common Music
- 69 réponses
- 6 participants
- 5 347 vues
- 8 followers
amleth
En suite à ce thread : /environnement-de-developpement-audio/cycling-74/Max-MSP/forums/t.198444,travail-midi.html
Prérequis :
Common Music n'est rien de plus qu'une librairie de fonctions écrites en LISP. Ce n'est donc ni un logiciel, ni un plug-in. Pour se servir de ces fonctions, il faut s'y connaître un minimum en LISP. Mais il se trouve que ce langage de programmation, qui a désormais 50 ans, est très abstrait, très haut niveau, et enquiquine jamais ses utilisateurs avec des considérations informatiques ésotériques (comme la gestion de la mémoire...). C'est à mon sens un des langages les plus simples à maîtriser.
Pourquoi utiliser un langage de programmation et pas un outil graphique ?
Parce qu'ainsi, on bénéficie de toute la flexibilité de l'écriture pour définir, manipuler et modifier des structures musicales. Common Music permet donc de formaliser des idées musicales, de les développer, de les réutiliser d'un morceau à l'autre. C'est une sorte de "partition potentielle", pour reprendre un terme cher aux développeurs d'OpenMusic à l'IRCAM. Common Music, c'est la dimension abstraite de la musique : les structures, la notation, les algorithmiques, les "idées". Concrètement, ça génère des fichiers MIDI, qu'il faut ensuite exploiter dans un séquenceur avec des VSTi. Common Music ne produit donc que des notes, et pas des sons, d'où son rapprochement avec la notion de partition.
Comment commencer ?
La transcription hypertexte du livre de Taube est disponible ici : https://www.music.mcgill.ca/%7Eferguson/Notes%20from%20the%20Metalevel/nm/index.html.
Mais il faut également avoir un environnement LISP qui tourne. LISP est un très vieux langage qui possède une histoire très fournie. Plusieurs versions (on dit : "implémentations") de LISP on vu le jour en 50 ans. Aujourd'hui, je vous propose d'utiliser la version Allegro Common Lisp, de Franz Lisp.
Première chose : télécharger un environnement LISP. Je vous laisse aller là :
http://www.franz.com/downloads/allegrodownload.lhtml
Une fois installé, vous avez un environnement pour faire du LISP. Chouette. Mais comment ? LISP est avant tout un langage interprété : vous allez écrire des expressions dans la fenêtre de droite (dans des fichiers texte), puis les évaluer (grâce à Ctrl+E), et voir le résultat dans la fenêtre de gauche, dite fenêtre de debug.
Je ne vais pas faire ici un tuto pour le LISP, car Notes From The Metalevel propose d'apprendre le LISP en visant directement un usage compositionnel.
Seconde chose : il vous faut Common Music.
Alors... rendez-vous ici : http://commonmusic.sourceforge.net/doc/cm.html, téléchargez l'archive, et décompressez là qqpart. Vous avec un dossier "cm", qui contient le code source des fonctions.
Comment l'utiliser dans Allegro Express ? Fastoche ! Créez un nouveau fichier texte dans l'éditeur, et écrivez ces deux premières lignes :
(load "<chemin du dossier cm>/src/cm.lisp")
(in-package :cm)
Faites Ctrl+E sur chacune, et voilà que l'environnement se met à charger les fonctions...
And we're going to have this transitory cow fling thing right here in Cicely?
deb76
amleth
Même si tu as résolu en partie tes soucis, je vais faire un petit tuto sur CM, le MIDI et Windows.
1. Télécharger MIDISHARE : https://sourceforge.net/project/showfiles.php?group_id=120273&package_id=147327&release_id=388455, c'est le fichier midishare-1.91-win32.zip
2. Tout décompresser, et copier tous les .dll et .ini dans le dossier c:\windows
3. Télécharger l'interface CM/MidiShare : https://sourceforge.net/project/showfiles.php?group_id=9766&package_id=172112
4. Placer tous les fichiers de l'archive dans cm/src/midishare
5. Si vous aviez déjà lancé une compilation de CM dans un environnement LISP, supprimez tous les sous-dossers du dossier cm/bin (mais pas les fichiers cm.bat et cm.sh). Par exemple, si vous utilisez Allegro, vous devrez supprimer le dossier cm/bin/allegro_8.1_windows-i686
6. Relancez votre environnement LISP, et rechargez CM : (load "XXX/cm/src/cm.lisp")
5. Et voilà... l'appel à la fonction (events (qqchose) "coincoin.mid") appelle chez moi le media player de windows et lit automatiquement le fichier midi généré. Chez moi, les fichiers MIDI sont générés dans C:\Program Files\acl81-express.
And we're going to have this transitory cow fling thing right here in Cicely?
deb76
J'avoue que je ne comprends pas très bien ce qui se passe. Comme je t'ai indiqué plus haut, avec l'installation de Midishare, je pensais avoir résolu mes problèmes. Sur le portable qui tourne sur Vista, les évaluations se font sans erreur, mais toutefois sans production de fichiers midi.
Sur le portable qui tourne sur XP, l'évaluation de la fonction se fait bien, mais elle cale sur la fonction Event. Et pourtant, avec le même type d'installation. C'est à ne rien y comprendre.
J'ai donc tout réinstallé comme tu me l'as écrit plus haut, en suivant scrupuleusment tes indications, qui me semblent pertinentes, puisqu'elles indiquent un chemin, mais rien n'y fait, c'est toujours pareil. Problème avec XP, évalutions correctes avec Vista mais production fantôme du fichier midi.
Ce que je ne comprends pas, c'est qu'avec Open Music, j'ai du son, j'entends les accords, les notes ou les séquences. Donc midishare fonctionne. Par contre, il exporte bien en fichier midi mais ils ne sont pas reconnus. On dirait que l'exportation se réalise mais dans un mauvais format...
J'ai passé la soirée dessus mais je ne trouve pas de solution. Je vais continuer à chercher.
En tout cas, merci encore pour ton aide.
amleth
Ce qui est étonnant, c'est que tes évaluations passent sans qu'aucun player midi ne soit déclenché... Normalement, c'est un comportement inscrit dans Common Music... "events" prend en paramètre un process musical, un fichiers midi, et hop, il en déclenche la lecture.
Ce mauvais format, quel est -il ? Vois-tu un objet ? Qqc sur le disque ?
Aïe... comment faire.
Je commence à désespérer : je me faisais une joie de présenter Common Music, et voilà que c'est ininstallable facilement !
And we're going to have this transitory cow fling thing right here in Cicely?
Anonyme
Hors sujet : amleth : ta signature me rappelle Dylan Thomas, ou Poe, ou Shakespeare (vu ton pseudo, c'est plutôt la bonne réponses ?) mais dans les 3 cas pourquoi dans la langue de Goethe... bien que ça pourrait aussi être du Goethe ?)
amleth
Des antrhopologues comme Jack Goody ont finement étudié le passage de l'oral à l'écrit (ou des historiens/linguistes comme Sylvain Auroux). Il en est ressorti qu'à chaque technique, une rationnalité propre était associée. On ne pense pas pareil selon les propriétés des substrats matériels qu'on emploie pour véhiculer/produire la connaissance. L'apparition de l'écriture a vu naître l'idée de "grammaire", impensable dans une civilisation orale, car pour créer des paradigmes de déclinaison, il faut pouvoir spatialiser dans un même espace (en listes, tableaux, etc.) les mots prélevés du flux de parole. Bon, maintenant, un des thèmes de recherhce de notre labo, c'est de savoir si le support numérique - algos, calculabilité, dynamicité, etc. - induit également l'apparition d'une nouvelle rationnalité. En gros : est-ce qu'on pense et fait pareil avec du papier/crayon et un ordinateur ? On est bien sûr convaincu que non, que les structures même de notre intellect sont amenées à être reconfigurées.
Tu poses la question dans le champs musical. Common Music, les algorithmes, etc. sont de nouvelles façons d'écrire de la musique. Ce sont avant tout de nouveaux moyens techniques, mais qui permettent de nouvelles catégories de pensée. La question : l'écriture à apporté la grammaire et la théorie à la parole, ok, mais qu'apporte l'algorithme à l'écriture ? On dirait qu'on passe à un niveau d'abstraction ou de généricité supérieur. C'est également l'idée de Heinrich Taube quand il pose le terme de "metalevel" : l'algorithme musical n'est pas la partition, ni l'oeuvre, c'est davantage l'oeuvre potentielle, une sorte de moule génétique formel qui doit "être déroulé" pour donner naissance à une ou plusieurs oeuvres, comme lun schéma grammatical doit être parlé pour donner corps à un contenu langagier qui fait sens.
Cette technicité algorithmique permet d'obtenir des choses que l'espace de la partition en permet pas de penser. Elle se situe à un autre niveau que la partition. C'est un niveau purement formel, celui où on ne représente non plus des contenus musicaux, mais des idées musicales. Voir également les articles de l'équipe Représentation Musicale à l'IRCAM (ceux qui développent OpenMusic...).
De plus, on peut exprimer des choses fascinantes, comme "génère moi douze mille microévénements oscillant aléatoirement autour de telle, telle et telle note et suivant telle, telle et telle évolution paramétrique". On n'écrit pas effectivement els 12000 notes, mais plutôt l'idée qui permet de les produire. Enfin moi, ça me fascine.
Après la question, c'est aussi la question du "style de l'algorithme". Comment reconnaître le "cachet informatique" ? Le résultat n'est qu'une instance du type de déroulement temporel que définit l'algorithme. Comment remonter de l'un à l'autre... voilà une question posée aux musicologues. La structure formelle est explicitée en amont. Elle est écrite, au même titre que ses instances. Mais pas audible : elle ne l'est que par ses instances.
Oh, merde, je crois avoir été un peu chiant. Désolé, c'est un sujet qui me passionne. Bon, j'ai faim.
Hors sujet : Ca se rapprocherait davantage de Poe... c'est Lovecraft en fait. Mais traduit en allemand, parce que c'est une langue que j'affectionne. Mais comme tu l'as vu, je suis également un sacré amateur de Shakespeare... et Goethe est également mon compagnon de chevet...
And we're going to have this transitory cow fling thing right here in Cicely?
deb76
Citation : "events" prend en paramètre un process musical, un fichiers midi, et hop, il en déclenche la lecture.
C'est ce qui me rend perplexe. Car midishare est actif puisqu'il lit les séquences d'Open Music. Ceci étant, comme je te le disais quand je veux exporter la séquence d'Open Music en midi, le fichier est bien écrit mais il est unitilisable, pas reconnu.
Donc, c'est à ce niveau là qu'il faut chercher et je pense que Common Music c'est pareil.
Citation : Ce mauvais format, quel est -il ? Vois-tu un objet ? Qqc sur le disque ?
Non avec Common Music, oui avec Open Music mais fichier illisible.
Citation : Je commence à désespérer : je me faisais une joie de présenter Common Music, et voilà que c'est ininstallable facilement !
On va trouver. De toute façon, je souhaite m'inscrire au forum de l'Ircam pour Open Music, mais je ne le ferai que si j'arrive à exporter mes fichiers en midi et qu'ils soient exploitables. Donc, je vais écrire à l'Ircam pour leur demander conseil, en leur signalant aussi mon problème avec Common Music. Cela serait bien le diable que personne ne me réponde. En 1981, j'ai fait le stage avec Marc Battier, je vais lui demander. Et j'ai le sentiment que si ce problème d'écriture du fichier midi est résolu, il le sera pour Common Music.
Cela va juste prendre un peu plus de temps. Il n'est pas question pour moi d'abandonner. Je suis particulièrement têtu et j'aime comprendre.
deb76
Citation : Si vous permettez, concernant le résultat musical, cette programmation permet-elle d'obtenir des musiques qu'on n'aurait pas idée d'écrire par crayon et papier ? Et le résultat sera-t-il identifiable au moyen qui a permis de l'obtenir ?
Pour ma part, je dis non car l'algorithme n'est qu'un outil parmi tant d'autres. Je m'explique. Il va me permettre d'obtenir un matériel de base sur lequel ensuite je vais travailler. C'est ce que j'ai fait pour la Grande Bleue, une création réalisée pour les journées du patrimoine en 199 autour des Vitraux d'Alfred Manessier en l'église Saint-Sépulcre d'Abbeville. Le matériau en notes midi a été généré de façon aléatoire par Patchwork. Il n'y a que juste l'intro qui est aisément identifiable, et c'était volontaire, car je voulais faire référence à Patchwork. J'avais utilisé pour celle-ci, un Random walk, en réfrence à Xénakis. Pour le reste, j'ai tellement mouliné, joué avec les transpositions, travaillé avec l'Ips de Cubase Vst - qui à partir d'une phase midi, permet de générer des phrases très complexes ainsi que des structures rythmiques.
Ceci étant, cela donne aussi des idées. Pouvoir multiplier des accords, générer des contractions de séquences injouables par ailleurs, construire des clusters, travailler avec des séries harmoniques, les décliner selon des rangs différents (1 3 7 8 912 15 16 17 18 21 23 26 28 - c'est un exemple, autant d'outils fantastiques pour quelqu'un comme moi qui vient du rock et de la tape music électronique.
Citation : De plus, on peut exprimer des choses fascinantes, comme "génère moi douze mille microévénements oscillant aléatoirement autour de telle, telle et telle note et suivant telle, telle et telle évolution paramétrique". On n'écrit pas effectivement els 12000 notes, mais plutôt l'idée qui permet de les produire. Enfin moi, ça me fascine.
Oui, moi aussi.
Anonyme
Hors sujet : ach ja ... Cthulhu !
deb76
Citation : Oh, merde, je crois avoir été un peu chiant. Désolé, c'est un sujet qui me passionne.
Ah, non pas du tout. Je trouve ça très agréable d'échanger ainsi.
Citation : Cette approche de la composition me rappelle l'évolution du déterminisme en cybernétique : au lieu de programmer de façon complexe et complète une entité dans son ensemble (ce qui correspond à l'écriture note à note d'une partition) on préfère, pour se rapprocher davantage du modèle vivant, programmer plus simplement une foule de cellules élémentaires en intégrant des interactions entre-elles (ce qui renvoie aux modules dont vous parlez) et comptant sur les causes initiées pour en attendre des résultats globalement prévisibles mais pourtant étonnants dans leur réalisation.
Oui, à mon sens, nous sommes dans ce registre. J'aime beaucoup ta dernière phrase, avec cet aspect prévisible des résultats mais "pourtant étonnants dans leur réalisations". Et de fait, ces outils me fascinent. Peut-être est-ce le fait d'avoir connu toutes cette évolution de l'informatique musicale.
Dans un autre forum, lesInstruments virtuels (très agréable, très sympa et surtout très convivial grâce à Burnie) on évoquait le geste lié au matériel hardware, en gros le plaisir de tourner un potentiomètre d'un synthé vintage, du rêve de posséder un Moog Modular ou un Ems Synthi Aks, que sais-je. Pour ma part, je disais que mon rêve à moi, c'était la station 4X (ou son équivalent) de l'Ircam car je suis passé de la bande magnètique à directement l'ordinateurlors de mon stage à l'Ircam en 1981. Et donc du temps différé et qui ne me gêne pas. Et j'expliquais que le passage au temps réel, de la puissance des outils que nous, particuliers, nous commençons à avoir, cela me fascinait. Et je suis bien plus intéressé par les possibilités offertes aujourd'hui par Open Music ou Common Music que d'avoir un gros synthé vintage. Car il sera figé dans ses possibilités de création. Ce qui n'est d'ailleurs pas le cas d'un expandeur comme le Clavia G2 Engine qui grâce à son éditeur permet de construire des patchs tout à fait passionnants et très complexes. Là, on dispose d'un synthé qui est réellement une station de travail dans le sens recherche, dans la lignée de l'Ircam. En fait, on créée ses propres synthés et ses propres partitions dans le cadre des performances.
Mais bon, moi aussi je m'égare. Mais une chose est sûre, je suis de plus en plus fasciné. Et je n'ose pas penser à ce que nous allons disposer comme outils dans 10 ans...
J'ai lu il y a très longtemps Herman Hess, et comme beaucoup le fameux Loup des Steppes mais pas "le jeu des perles de verre". Cela me donne envie de le découvrir.
Bon, je vais me replonger dans le mythique Necromonicon d'Abdud Al-Hazred et qui sait rencontrer Charles Dexter Ward qui m'ouvrira enfin les portes de la compréhension du chemin de l'objet midi dans midishare, où enfin, je pourrais maîtriser la magie de Common Music, de ses mystérieux codes se transformant en de multiples séquences musicales sorties du ventre d'un ordinateur. Oui, c'est vraiment fascinant.
- < Liste des sujets
- Charte