1
Découverte d’Opusmodus : opérations dodécaphoniques et analyse Set Theory Si Opusmodus en tant que logiciel de CAO (Composition Assistée par Ordinateur) permet de composer, il peut-être aussi par ses diverses possibilités de calculs, d’opérations sur le matériau musical, un excellent outil pour l’analyse computationnelle. En 2009, le 2 décembre, Yun-Kang Ahn, de l’Ircam présentait sa soutenance de thèse dédiée à l’analyse computationnelle : rapport avec la composition, la segmentation et la représentation à l’aide de graphes, ( http://articles.ircam.fr/textes/Ahn09a/index.pdf). Dans son synoptique de présentation ( https://halshs.archives- ouvertes.fr/tel-00447778/file/Soutenance.pdf), il évoquait la définition générale de Ian Bent « L’analyse musicale est la résolution d’une structure musicale en éléments constitutifs relativement plus simples, et la recherche des fonctions de ces éléments à l’intérieur de cette structure ». Bent I. L’analyse musicale, Macmillan Press Ltd, 1987. Par ailleurs, Ian Bent, dans son ouvrage écrit conjointement avec William Drabkin, L’Analyse Musicale, Histoire et méthodes, publié aussi aux Editions Jean-Michel Bardez, proposait dans son chapitre III, consacré au XXe siècle, un sous chapitre intitulé « 1960 - 1975 : set-theory, ordinateurs et autres développements ». Si Yun-Kang Ahn avait soutenu sa thèse en 2015, il aurait pu ajouter dans la liste des logiciels qu’il évoque dans son synoptique - Open Music et Rubato - le logiciel Opusmodus écrit par Janusz Podrazik et en collaboration avec une équipe internationale dans laquelle il y a un français spécialiste du Live Coding, Stephane Boussuge. Et pour cause, Janusz Podrazik est le créateur d’une implémentation en LISP de la Set Theory d’Allen Forte comme le soulignent Moreno Andreatta et Carlos Agon de l’Ircam dans leur article signé conjointement : " Formalisation algébrique des structures algébriques à l'aide de la Set Theory : aspects théoriques et analytiques" ainsi que dans sa version anglaise « i mplementing algebraic methods in Open Music », les deux auteurs précisent: "Dans le cas de la librairie Dn, nous avons commencé par adapter en OpenMusic une implémentation en lisp réalisée par Janusz Podrazik." et ils le remercient en conclusion de la communication : "Nous voudrions remercier Janusz Podrazik pour son implémentation en lisp de la Set-Theory d'Allen Forte". Et de fait, toutes les caractéristiques d’un logiciel de CAO et d’analyse computationnelle sont bien implémentées dans Opusmodus. Tant dans les différentes opérations sur le matériau musical, qu’elles soient tonales ou atonales, dans leurs traductions « immédiates » en notation standard mais aussi sous la forme de la notation numérique en entiers et en intervalles, des possibilités de segmentation en ensembles de hauteurs (pc sets), de leur analyse, de leur affichage en entiers ou sur portées musicales mais aussi analysés dans le cadre de graphiques. Avec, par ailleurs, et c’est un point important, un affichage en partition enrichie par les articulations, les nuances de jeu, de vélocité, les changements de tempo, de métriques, etc. Il ne manque, de mon humble avis, que la représentation circulaire, le très visuel et pédagogique cercle dodécaphonique (pitch clock). Didier DEBRIL (mai 2015) Reproduire les bases des opérations dodécaphoniques Po - R - I - Ri Il est aisé avec Opusmodus d’effectuer les opérations de base sur une série dodécaphonique . Déjà, en premier lieu, on peut partir de rien, d’aucune données musicales et créer sa propre série. La plus simple, la plus immédiate, est la gamme chromatique et son inversion, voire même en palindrome. L’écriture OMN, « immédiate », sans mise en forme et traduction dans une partition plus sophistiquée, peut s’effectuer sous trois forme : via la « standard » avec les hauteurs insérées selon la notation américaine (ou anglaise), en entiers ou par intervalles. Chacune de ses notations pourra être affichée dans une portée musicale qui sera sous un tempo de 120 et à la noire en temps que durée. Toutefois, déjà, on peut l’enrichir avec des durées différentes et des nuances. Concrètement, le total chromatique va s’écrire comme suit : '(c4 cS4 d4 eb4 e4 f4 fs4 g4 gs4 a4 bb4). Deux remarques, le # est remplacé par la lettre « s ». On s’y fait très bien et c’est même peut-être plus rapide au niveau de l’écriture. De même, avec Opusmodus, si on écrit des fonctions dans le cadre d’un script, le codage est somme toute plutôt simplifié et on assimile rapidement la syntaxe. Ainsi, devant la parenthèse qui ouvre la suite de hauteurs, il y a le caractère typographique de l’apostrophe « «, ce caractère est important car il distingue une suite de données d’une fonction. En sélectionnant la liste des hauteurs, et en cliquant droit sur la souris , on affiche une fenêtre avec plusieurs menus. En choisissant Notation OMN, on affiche le total chromatique en portée, et avec Audition OMN ou shift-cmd 1, on écoute le résultat via un timbre de piano de la banque GM de l’ordinateur. On verra un peu plus loin qu’on peut dans le cadre d’une partition plus élaborée écouter les différents résultats via des instruments virtuels de son choix. Ceci étant, il ne s’agit que d’une simple notation et avec laquelle on ne peut effectuer aucune opération sur cette liste de hauteurs. Par contre, si j’affecte à cette liste le nom d’une variable avec « setf », celle-ci sera mémorisée dans son résultat après son évaluation, je n’aurais plus besoin lors d’opérations à venir de la réécrire. Je vais en profiter pour présenter une portée un peu plus sophistiquée, avec des durées et des nuances. Ne serait-ce que pour montrer la ductilité de l’outil d’écriture en notation rapide : Affichage du total chromatique et auquel est attribué la variable Chroma1 : (setf Chroma1 '(e. f4 f s cS4 d4 t eb4 mf e4 f4 e sfz fs4 p t g4 ppp gs4 a4 q bb4 ppppp)) Affichage du total chromatique inversé avec la fonction pitch-invert via la variable Chroma1: (setf Chroma1R ( pitch-invert Chroma1)) : Ceci étant, pour diverses opérations, il est plus rapide d’effectuer les opérations sans « enrichissements de la portée ». Avec Opusmodus on peut partir de rien. Pour ce faire, on va utiliser une fonction très utile, et qui servira notamment pour des transpositions avec un pas d’incrémentation, la fonction make-scale. Cette fonction a l’avantage d’être utilisable autant sur des hauteurs que sur des entiers. Ainsi, pour créer la gamme par tons chère à Debussy, on affecte à la fonction un pas d’incrémentation d’un ton, soit deux demi-tons : (setf scaleton (make-scale :alt 2)), la même formule avec les paramètres supplémentaires :type et :pal va créer la gamme par ton ascendante et descendante sous forme de palindrome : Pour créer une série aléatoire, on va créer en premier lieu le total chromatique en utilisant juste un pas de 1, soit une progression de do4 à Si4 avec un pas d’un demi-ton puis en lui associant la fonction rnd-order qui va réordonner le total chromatique. L’inconvénient, c’est qu’à chaque évaluation, la fonction rnd-order va réorganiser le total chromatique et afficher ainsi une nouvelle série. Pour palier à cet inconvénient, on peut lui ajouter le paramètre supplémentaire :seed « n ». Selon la valeur affectée, :seed va structurer selon le même schéma la réorganisation de la série de façon aléatoire mais juste sur une seule instance. Ensuite, toutes les évaluations donneront le même résultat. Mais comme je souhaite pour cet exemple obtenir une série totalement aléatoire, sans aucun choix de ma part, je vais donner une valeur aléatoire à :seed entre 1 et 1000. Je vais l’obtenir grâce à la fonction rnd-range à laquelle on associe le nom de la variable random : (setf random (rnd-range 1 1000)) puis (setf TC (rnd-order (make-scale 'C4 12) :seed random)). Et si le résultat me convient, je peux fixer le résultat de façon à pouvoir utiliser ultérieurement cette série pour d’autres opérations : Bien entendu, il est nettement plus intéressant et conseillé de créer ses propres séries de façon à leur associer des propriétés combinatoires. Avec Opusmodus, il est, aussi, aisé de recréer des séries élaborées par Arnold Schoenberg, Alban Berg, Anton von Webern, Pierre Boulez, etc. Le site http://www2.nau.edu/~krr2/12tone/12tone1.html donne en exemple plusieurs séries créées par les compositeurs de la seconde école de Vienne, des exemples qui permettront de vérifier les propriétés de construction d’Opusmodus. La première concerne la série op. 25 d’Arnold Schoenberg dans sa version originale Po et ses trois dérivées Rétrograde R, Inversion I et Rétrograde/inversion RI: Utilisation de la fonction reverse pour calculer le rétrograde R. Utilisation de la fonction pitch-invert et transposition d’une octave avec Pitch-transpose 12 pour monter le mi4 au mi5 et calculer l’inversion I. Utilisation conjointe des fonctions reverse & pitch-invert pour calculer le rétrograde de l’inversion RI. Dans la liste des explications données par le site TWELVE-TONE COMPOSITION, Part One sur la composition avec douze sons, le paragraphe « Modulo 12 Operations » est consacré aux opérations du calcul modulo 12 et à ses propriétés arithmétiques intrinsèques - transposition en additionnant par demi-tons, cycle des quartes et quintes en multipliant le total chromatique par 5 et 7, inversion en miroir en multipliant par 11, etc - et indique la procédure pour effectuer l’opération d’inversion « I », et qui consiste à inverser la structure intervallique, une tierce mineure ascendante devenant une tierce mineure descendante, ce qui correspond à un mouvement contraire chromatique. Mouvement à ne pas confondre avec le renversement des intervalles qui correspond à une translation, à une projection en miroir par rapport à l’octave divisée en deux par un intervalle de quarte augmentée ou quinte diminuée (triton). L’opération d’Inversion est intéressante à effectuer avec un crayon et un papier dans la mesure où celle-ci est utilisée pour calculer la matrice de transposition 12x12. De plus, cette opération est facilitée par l’utilisation du calcul modulo 12. (e5 eb5 cs5 g4 d5 f4 c5 fs4 a4 gs4 b4 bb4) (0 1 3 9 2 11 4 10 7 8 5 6) Dans les deux cercles dodécaphoniques ci- contre, deux représentations circulaires de la même structure intervallique (seconde mineure et tierce mineure) de l’ECH {1, 2, 5}/{do#, ré, fa} sont représentées. A gauche, les intervalles de ECH sont inversés {1, 0 9}/{do#, do, la} et partagent la même hauteur do#, tandis que la représentation circulaire de droite affiche l’ECH en miroir, dans une exacte symétrie inversée {11, 10, 7}/{si, sib, sol}. Modulo 12 Operations One can use modulo 12 arithmetic to describe any form of a row. It can also be used to transform one form of a row to another form. For example, complete a transposition by adding the number of the transposing interval to the pitch class number (transposition = PC number + T number, mod 12 ). Complete an inversion by subtracting the pitch class number from 12 (inversion = 12 - PC number, mod 12). Write the retrograde by reversing the order of the pitch class numbers. Write the retrograde-inversion by reversing the order of pitch class numbers in the inversion. Le premier graphique affiche, grâce à l’éditeur de graphes d’Opusmodus, l’inversion obtenue en soustrayant 12 à chaque hauteur. Il en résulte une symétrie miroir et qui n’est pas l’inversion recherchée. Série originale de l’Op. 25 de Schoenberg. Partir de rien, de zéro…. et créer une série totalement aléatoire & de l’utilité des variables A partir de la série originelle, l’utilisateur d’opusmodus a à sa disposition les fonctions reverse (rétrograde), et pitch-inverse (inversion) pour effectuer les opérations propres au dodécaphonisme. Pour obtenir le rétrograde ou la récurrence de l’inversion, on peut associer les deux fonctions reverse et pitch- inverse dans la même ligne du script. Pour afficher la série originelle et calculer les opérations rétrograde, inversion et rétrograde de l’inversion, il suffit de quatre lignes d’instructions dans le script. Comme l’affiche l’extension du logiciel gratuit iAnalyse 4 de Pierre Couprie ou dans sa suite d’ utilitaires pour Ipad ou Iphone, la notation numérique, en entiers et en équivalence d’octave, décompose le cercle dodécaphonique en douze parties égales, de do à si, et notées par demi-ton, de 0 à 11 et où 12 = 0. Comme pour l’heure, sur toute hauteur qui dépasse 12 on déduit 12 où tout multiple de 12 : si la valeur est 16, je déduirai 12, soit 4, c’est à dire le mi. Concernant la série de l’Op. 25, pour ceux qui n’ont pas l’habitude de travailler avec la notation modulo 12, il suffit d’effectuer la transposition avec l’aide d’un cadran horaire ou directement en sachant que par convention, 0=do, 1=do#/réb, 2=ré, 3=ré#/mib … 9=la, 10=la#/sib, 11=si. On peut attribuer à zéro, une autre valeur de hauteur. Arithmétique modulo 12 Pour obtenir l’inversion de la série originelle avec une feuille et un crayon, on peut calculer la structure intervallique de la série en notant le nombre de demi-tons qui séparent chaque intervalle et les inverser. Ainsi, entre mi et fa, il s’agit d’une seconde mineure ascendante (1 demi-ton) et qui va devenir descendante, donc mib, de fa à sol, cet intervalle de seconde majeure ascendante (2 demi-tons) va devenir une seconde majeure descendante donc do#, de sol à do#, cet intervalle de quarte augmentée (6 demi-tons) ascendant va devenir une quinte diminuée descendante soit sol, etc, et vice-versa pour les intervalles descendants. Avec la structure intervallique définie (1 2 6 -7 9 -7 6 -3 1 -3 1), il suffit d’effectuer une addition ou une soustraction par demi-tons en inversant ce qui est positif en négatif et ce qui est négatif en positif. De même, le cercle dodécaphonique ci-dessus facilitera le calcul. Si je déduis 9 demi-tons à ré, le résultat trouvé sera fa, etc. : -1 -2 -6 +7 -9 +7 -6 +3 -1 +3 -1 ——————————————————————————— mi mib do# sol fa do fa# la sol# si sib Une méthode similaire mais qui utilise le calcul modulo reprend le même principe à la nuance près qu’il s’agit de créer la série à partir de sa structure intervallique et sa notation modulo 12, soit mi = 4 comme hauteur de départ de la série. Ensuite on ajoute ou on soustrait les intervalles ce qui donne les hauteurs de la série : -1 -2 -6 +7 -9 +7 -6 +3 -1 +3 -1 4-1 = 3, 3 - 2 = 1, 1 - 6 = 7, 7 + 7 = 14-12 = 2, 2 - 9 = 5, 5 + 7 = 0, 0 - 6 = 6, 6 + 3 = 9, 9 - 1 = 8, 8 + 3 = 11, 11 - 1 = 10 ——————————————————————————— 4 3 1 7 2 5 0 6 9 8 11 10 Le calcul préconisé par la page web Twelve-Tone Composition Part One propose une autre solution, tout comme, d’ailleurs, la plupart des sites consacrés aux techniques dodécaphoniques, et, notamment, cette page web Creating A 12 Tone Matrix basée sur les propriétés du calcul modulo. Comme l’octave est divisée en 12 parties égales, il suffit de soustraire 12 de chacune des hauteurs de la série originelle, sauf celle de la note de départ, en l’occurence ici mi ou 4 afin de la conserver en tant que note de départ. Toutefois, la notation de la série originelle à partir de 0 concerne la position des hauteurs dans la série. Donc avant de déduire chaque hauteur de 12, je transpose de moins 4 demi-tons la série originelle afin d’être sur une base de Do (do=0). Puis je déduis 12 de chaque hauteur de la série, ce qui a pour effet de créer l’inversion en miroir des intervalles et je transpose l’ensemble du résultat de quatre demi-tons. La série est inversée mais la première note est toujours mi. La raison est simple, tout comme le fa#/6, le do/0, Sur papier ou sur l’ordinateur mais sans utiliser une fonction dédiée, le calcul va se décomposer en une suite de transpositions : Série originelle Série inversée 4 5 7 1 6 3 8 2 11 0 9 10 ————————————————————--- - 4 0 1 3 9 2 11 4 10 7 8 5 6 ————————————————————-- - 12 0 11 9 3 10 1 8 2 5 4 7 6 ————————————————————— + 4 4 3 1 7 2 5 0 6 9 8 11 10 ======> mi mib do# sol fa do fa# la sol# si sib =====> Le même calcul que ci-dessus mais reproduit avec l’opérateur x-y d’Opusmodus pour la transposition de -12 demi-tons. 1 - la fonction pitch-transpose - 4 transpose la série originelle de moins quatre demi-tons soit : (c4 cs4 eb4 a4 d4 b4 e4 bb4 g5 gs4 f4 fs4) 2 - la fonction modus convertit les hauteurs en notation en entiers : (0 1 3 9 2 11 4 10 7 8 5 6) 3 - la fonction gen-repeat duplique 12 fois la valeur 12 afin de soustraire 12 de chaque hauteur de la série transposée en do avec la fonction/opérateur x-y : (12 11 9 3 10 1 8 2 5 4 7 6) 4 - integer-to-pitch convertit le résultat en hauteurs : (c5 b4 a4 eb4 bb4 cs4 gs4 d4 f4 e4 g4 fs4) 5 - la fonction pitch-transpose transpose de 4 demi-tons l’ensemble de la série : (e5 eb5 cs5 g4 d5 f4 c5 fs4 a4 gs4 b4 bb4) et la fonction modus convertit les hauteurs en entiers modulo 12 : (4 3 1 7 2 5 0 6 9 8 11 10) Le graphique ci-contre présente l’inversion I dans son calcul final. Contrairement à l’inversion miroir où toutes les intervalles sont inversées, l’inversion est calculée à partir de la note mi. Reconstitution « pas à pas » du calcul de l’inversion, avec les différentes transpositions exposées en graphiques. Calculs modulo 12 & graphiques Op. 25 Schoenberg Po - R - I - RI Reconstitution de la série Opus 24 d’Anton von Webern La fenêtre de travail d’Opusmodus, logiciel de CAO. La fenêtre affiche la conversion du script en partition avec les nuances, articulations, changements de tempo, de métriques, tuplets, cross-beaming, etc. Po RI7 R6 I1 La série originelle Po a été créée à partir d’un premier tricorde {11, 10, 2} et qui a servi de base pour obtenir le deuxième {3, 7, 6) en effectuant le rétrograde du renversement transposé de 7 demi-tons - RI7 -, le troisième tricorde est obtenu, et toujours à partir du premier tricorde, en le lisant de droite à gauche et en le transposant de moins 6 demi-tons afin d’obtenir son rétrograde ou récurrence transposée de - 6 demi-tons. Enfin le quatrième tricorde est son inversion transposée d’un demi-ton. Avec Opusmodus on affecte au premier tricorde {b4, bb4, d5} la variable 1tricordeserop24 et qui va servir de base de calcul sans avoir à l’inscrire à chaque nouvelle opération. Puis, pour créer le deuxième tricorde, plusieurs fonctions sont imbriquées, chaînées ensemble : pitch-invert calcule l’inversion sur laquelle reverse effectue le rétrograde, lequel est transposé de 7 demi- tons avec pitch-transpose. La seconde transposition -12 est simplement une mise à une octave plus bas. Dans la dernière ligne, la fonction assemble-seq regroupe les quatre tricordes créés tandis flatten désassemble les quatre tricordes en enlevant leurs parenthèses ce qui a pour effet de regrouper les hauteurs dans la même liste, dans la même série. Segmentation et analyse des ECH (pc sets) l’Op. 24 d’Anton von Webern Opusmodus propose de façon native une série d’outils d’analyse et de composition liée à la Set Theory. Ainsi, on peut segmenter une série, une phrase musicale et analyser son contenu. Plusieurs fonctions natives d’Opusmodus vont donner des informations précieuses concernant l’ADN des ECH sélectionnés. De même, certaines pourront mettre en valeur des liens sous-jacents entre les ECH. La fonction row-group-modification segmente une phrase musicale, une série, en plusieurs segments. Ci-dessus, la série de l’Op. 24 est segmentée successivement en quatre tricordes, trois tétracordes, deux héxacordes ainsi que pour la dernière segmentation réalisée sur serop24div (3 4 5) en un tricorde, un tétracorde et un pentacorde. La fonction convertit directement les segmentations en entiers mais en valeur absolue, c’est-à-dire qu’une hauteur peut-être supérieure à 12. La fonction modus effectue la conversion modulo 12 du résultat obtenu. A droite, les deux graphiques mettent en évidence, notamment sur celui regroupant les quatre tricordes les résultats des opérations rétrograde, d’inversion, et du rétrograde de l’inversion. Visualisation du résultat des 4 opérations Po - RI7 - R6 - I1 Visualisation des deux héxacordes Po-RI7 & R6-I11 La fonction pcs-analysis est un outil d’analyse puissant, une sorte de spectrographe qui après analyse va afficher plusieurs informations importantes sur un Ensemble de Classes de Hauteurs ou plusieurs ECH - ce qui est pour le moins très pratique - dont les hauteurs des segments en entiers, leur classification Forte 3-3, 4-4 et 5-21, leur notation en Prime Form, c’est à dire transposée sur la base de 0/do, ce qui permet d’être sur un même plan au niveau de l’analyse, les hauteurs de la séquence ramenée en prime form en notation standard, le complément du total chromatique de chaque ECH, leur inversion, leur Normal Order et l’Ic Vector. Ce dernier affichant le nombre d’occurences des intervalles entre la seconde mineure et la quarte augmentée : (1 0 1 1 0 0) compte une seconde mineure, aucune seconde majeure, une tierce mineure, une tierce majeures et aucune quarte ni quarte augmentée. Analyse avec pcs-analysis (11 10 2 3 7 6 8 4 5 0 1 9) (0 11 3 4 8 7 9 5 6 1 2 10) (0 11 3 4 8 7 9 5 6 1 2 10) (7 6 10 11 3 2 4 0 1 8 9 5) (3 2 6 7 11 10 0 8 9 4 5 1) (4 3 7 8 0 11 1 9 10 5 6 2) (2 1 5 6 10 9 11 7 8 3 4 0) (6 5 9 10 2 1 3 11 0 7 8 4) (5 4 8 9 1 0 2 10 11 6 7 3) (10 9 1 2 6 5 7 3 4 11 0 8) (9 8 0 1 5 4 6 2 3 10 11 7) (1 0 4 5 9 8 10 6 7 2 3 11) (b4 bb4 d4 eb4 g4 fs4 gs4 e4 f4 c4 cs4 a4) (c4 b4 eb4 e4 gs4 g4 a4 f4 fs4 cs4 d4 bb4) (gs4 g4 b4 c4 e4 eb4 f4 cs4 d4 a4 bb4 fs4) (g4 fs4 bb4 b4 eb4 d4 e4 c4 cs4 gs4 a4 f4) (eb4 d4 fs4 g4 b4 bb4 c4 gs4 a4 e4 f4 cs4) (e4 eb4 g4 gs4 c4 b4 cs4 a4 bb4 f4 fs4 d4) (d4 cs4 f4 fs4 bb4 a4 b4 g4 gs4 eb4 e4 c4) (fs4 f4 a4 bb4 d4 cs4 eb4 b4 c4 g4 gs4 e4) (f4 e4 gs4 a4 cs4 c4 d4 bb4 b4 fs4 g4 eb4) (bb4 a4 cs4 d4 fs4 f4 g4 eb4 e4 b4 c4 gs4) (a4 gs4 c4 cs4 f4 e4 fs4 d4 eb4 bb4 b4 g4) (cs4 c4 e4 f4 a4 gs4 bb4 fs4 g4 d4 eb4 b4) Matrice Po R I RI Avec Opusmodus, calculer la matrice, le carré 12 x12 de transposition d’une série, est extrêmement simple en raison de la fonction dédiée row-matrix. Les deux premières lignes affichent la matrice en entiers mod 12 tandis que la seconde convertit directement les entiers en hauteurs avec les paramètres additionnels :type :pitch. Les trois lignes suivantes réalisent l’opération sans utiliser la fonction row-matrix. Elle est remplacée par un calcul qui peut-être effectué avec une feuille de papier et un crayon. Sommairement la structure intervallique de la série renversée I est transposée sur chacun des degrés de la série originale serop24. La fonction pitch-invert donne la série renversée, gen-repeat 12 duplique douze fois la série originale serop24 listée par list tandis que pitch-transpose-start reporte les intervalles, la structure intervallique de la série inversée I successivement sur chacune des premières hauteurs des douze listes dupliquées de la série originale, serop24. Visualisation graphique de la matrice/carré de transposition de la série Op. 24 d’Anton von Webern. Opusmodus propose à l’utilisateur une solide implantation d’outils de la Set Theory concernant autant la composition que l’analyse musicale. Ils permettent, notamment dans le cadre d’une analyse, d’effectuer rapidement une segmentation dans une phrase musicale, de l’analyser ainsi que de trouver des points de convergence, des liens sous-jacents entre les différents Ensembles de Classes de Hauteurs (pc sets). Ci-contre à droite et à gauche, deux aperçus des possibilités de ces outils à partir de deux exemples de segmentations extraits de l’ouvrage The Structure of Atonal Music d’Allen Forte. Segmentation et analyse des Ensembles de Classes de Hauteurs (ECH) Les lignes de script ci-dessus se décomposent comme suit : - Insertion des hauteurs via la variable exforteA , à partir de l’exemple 119 (Webern Four Pieces for Violin and Piano op.7) illustrant le chapitre « Pitch Class Set Complexes » de son ouvrage The Structure of Atonal Music. - Une première segmentation avec la fonction gen-divide prend en compte les deux dyades : ((b4 f5 e6 cs6) (f4 fs4 b4d5) (a3 d4fs5 eb3) (a3 d4 eb4 as3)) - Une seconde segmentation est effectuée avec melodize qui a pour fonction de transformer les accords en hauteurs séparées, d’où une modification de gen-divide (4 4 4 4) qui segmente la suite de hauteurs en quatre tétracordes qui sont convertis modulo 12 avec modus : ((11 5 4 1) (5 6 11 2) (9 2 6 3) (9 2 3 10)) - Analyse des quatre tétracordes avec la fonction pcs-analysis qui, en quelque sorte, se révèle être une sorte de spectrographe d’un ensemble de classes de hauteurs en analysant ses composantes, en affichant ce qui pourrait s’apparenter à l’ADN d’un ECH : melodize flatten modus (11 5 4 1) pcs-sub-power (2-6 2-5 2-2 2-1 2-4 2-3 3-5 3-8 3-7 3-3) melodize flatten modus (5 6 11 2) pcs-sub-prime-form ((1 0 0 0 0 0) (0 0 0 0 0 1) (0 0 0 0 1 0) (0 0 0 1 0 0) (0 0 1 0 0 0) (1 0 0 0 1 1) (1 0 1 1 0 0) (0 0 2 0 0 1) (0 0 1 1 1 0)) pcs-sub-relation (3-5 3-3) Sequence: ((11 5 4 1) (5 6 11 2) (9 2 6 3) (9 2 3 10)) Set: (4-z15 4-18 4-18 4-8) Prime Form: ((0 1 4 6) (0 1 4 7) (0 1 4 7) (0 1 5 6)) Pitch: ((c4 cs4 e4 fs4) (c4 cs4 e4 g4) (c4 cs4 e4 g4) (c4 cs4 f4 fs4)) Complement: ((2 3 5 7 8 9 10 11) (2 3 5 6 8 9 10 11) (2 3 5 6 8 9 10 11) (2 3 4 7 8 9 10 11)) Inversion: ((1 7 8 11) (7 6 1 10) (3 10 6 9) (3 10 9 2)) Normal Order: ((11 1 4 5) (11 2 5 6) (2 3 6 9) (9 10 2 3)) Vector: ((1 1 1 1 1 1) (1 0 2 1 1 1) (1 0 2 1 1 1) (2 0 0 1 2 1)) integer-to-pitch pcs-analysis Sequence: ((9 2 3 8) (10 11 0) (8 9) (0 4 7 1)) Set: (4-9 3-1 2-1 4-18) Prime Form: ((0 1 6 7) (0 1 2) (0 1) (0 1 4 7)) Pitch: ((c4 cs4 fs4 g4) (c4 cs4 d4) (c4 cs4) (c4 cs4 e4 g4)) Complement: ((2 3 4 5 8 9 10 11) (3 4 5 6 7 8 9 10 11) (2 3 4 5 6 7 8 9 10 11) (2 3 5 6 8 9 10 11)) Inversion: ((3 10 9 4) (2 1 0) (4 3) (0 8 5 11)) Normal Order: ((2 3 8 9) (10 11 0) (8 9) (0 1 4 7)) Vector: ((2 0 0 0 2 2) (2 1 0 0 0 0) (1 0 0 0 0 0) (1 0 2 1 1 1)) Exemple de segmentation, page 130, dans The Structure of Atonal Music d’Allen Forte. Exemple de segmentation, page 127, dans The Structure of Atonal Music d’Allen Forte. La conversion en graphique combinant hauteurs et durées est extrêmement simple à réaliser avec Opusmodus. - La liste des hauteurs et des durées est inscrite via la variable seggraphForte1 : (q b4 f5 e6 cs6 e f4 fs4 b4d5 a3 q d4fs5 eb3 e a3 d4 eb4 as3) - La fonction length-pitch-list-plot convertit les durées (length) et les hauteurs (pitch) en graphique. D’autres outils d’analyse de la Set Theory sont implantés dans Opusmodus. Ils permettent, notamment, d’analyser les liens avec d’autres ensembles de classes de hauteurs, notamment sous- jacents. Ainsi, la fonction pcs-sub-power permet « de voir tous les sous-ensembles possibles d’un ECH » et de les afficher soit en entiers, soit forme de ECH (pc sets), soit en hauteurs. La fonction pcs-sub-prime-forme, souligne la documentation, est similaire à pcs-sub-power, avec toutefois, une sortie sous la forme du vecteur d’intervalles. C’est un outil qui peut se révéler très utile pour « explorer les relations z entre les classes partageant le même contenu d'intervalles ». De même, la fonction pcs-sub-relation permet au compositeur d'explorer la variance ou l'invariance de paires de classes de hauteurs particulieres. L'utilisation de cette fonction permet de voir les possibles symétries entres classes de hauteurs. Dans les lignes extraites du script, la sélection d’un segment donné est obtenu grâce à la fonction « ~ », elle permet de choisir dans une série de plusieurs listes ou segmentations, celle qui sera analysée. Petite remarque, les fonctions melodyze et flatten ne sont pas obligatoires si dans la liste des hauteurs sélectionnées il n’y ni dyades ni accords. En revanche, en cas d’accords, il faut les convertir en hauteurs séparées et enlever les parenthèses avec flatten afin d’obtenir une seule liste. (a3 d4 eb4 ab4 as3b3c4 gs3 a4 c2e2g2cs3) melodize gen-divide modus ((9 2 3 8) (10 11 0) (8 9) (0 4 7 1)) Les opérations de segmentations sont similaires à celles effectuées autour de l’exemple sur Webern ci-contre à gauche. L’analyse effectuée par la fonction pcs-analysis affiche bien les ECH 4-9, 3-1, 2-1, et 4-18 : (a3 d4 eb4 ab4 as3b3c4 gs3 a4 eb1gb1c2e2g2cs3) 1 > melodize gen-divide modus ((9 2 3 8 10 11 0) (8 9) (3 6 0 4 7 1)) integer-to-pitch pcs-analysis Sequence: ((9 2 3 8 10 11 0) (8 9) (3 6 0 4 7 1)) Set: (7-4 2-1 6-z13) Prime Form: ((0 1 2 3 4 6 7) (0 1) (0 1 3 4 6 7)) Pitch: ((c4 cs4 d4 eb4 e4 fs4 g4) (c4 cs4) (c4 cs4 eb4 e4 fs4 g4)) Complement: ((5 8 9 10 11) (2 3 4 5 6 7 8 9 10 11) (2 5 8 9 10 11)) Inversion: ((3 10 9 4 2 1 0) (4 3) (9 6 0 8 5 11)) Normal Order: ((8 9 10 11 0 2 3) (8 9) (0 1 3 4 6 7)) Vector: ((5 4 4 3 3 2) (1 0 0 0 0 0) (3 2 4 2 2 2)) Mod 12 : ((0 1 3) (0 1 4) (0 1 6) (0 2 5) (0 2 6) (0 3 6) (0 3 7)) Pitch :((c4 cs4 eb4) (c4 cs4 e4) (c4 cs4 fs4) (c4 d4 f4) (c4 d4 fs4) (c4 eb4 fs4) (c4 eb4 g4)) ECH :(3-2 3-3 3-5 3-7 3-8 3-10 3-11 4-12 4-13 4-18) Vector :((1 1 1 0 0 0) (1 0 1 1 0 0) (1 0 0 0 1 1) (0 1 1 0 1 0) (0 1 0 1 0 1) (0 0 2 0 0 1) (0 0 1 1 1 0) (1 1 2 1 0 1) (1 1 2 0 1 1) (1 0 2 1 1 1)) Ci-dessus les liens que l’ECH 6-z13 partagent avec d’autres ensembles de classes de hauteurs. Leur affichage peut-être sous forme modulo 12, hauteurs, leur classification Forte et IC Vector. Les opérations sont similaires à celles de l’exemple sur Webern. Ci-dessus, l’objectif était de montrer la segmentation mettant en évidence les ECH 4-9, 3-1 et 4-18 ainsi que leur analyse via pcs-analysis et le graphe; et ci-dessous la segmentation regroupée sur les ECH 7-4 et 6-z13. Un essai sur la « construction » de la série de l’Opus 27 d’Anton von Webern avec les outils d’Opusmodus : http://www.deb8076.eu/CAO/Pdf/ AnalyseOPMOPasaPasop27Webern.pdf

Découverte d’Opusmodus : opérations dodécaphoniques et ... · PDF fileBent I. L’analyse musicale, Macmillan Press Ltd, 1987. Par ailleurs, Ian Bent, dans son ouvrage ... L’Analyse

Embed Size (px)

Citation preview

Découverte d’Opusmodus : opérations dodécaphoniques et analyse Set Theory

Si Opusmodus en tant que logiciel de CAO (Composition Assistée par Ordinateur) permet de composer, il peut-être aussi par ses diverses possibilités de calculs, d’opérations sur le matériau musical, un excellent outil pour l’analyse computationnelle. En 2009, le 2 décembre, Yun-Kang Ahn, de l’Ircam présentait sa soutenance de thèse dédiée à l’analyse computationnelle : rapport avec la composition, la segmentation et la représentation à l’aide de graphes, (http://articles.ircam.fr/textes/Ahn09a/index.pdf). Dans son synoptique de présentation (https://halshs.archives-ouvertes.fr/tel-00447778/file/Soutenance.pdf), il évoquait la définition générale de Ian Bent « L’analyse musicale est la résolution d’une structure musicale en éléments constitutifs relativement plus simples, et la recherche des fonctions de ces éléments à l’intérieur de cette structure ». Bent I. L’analyse musicale, Macmillan Press Ltd, 1987. Par ailleurs, Ian Bent, dans son ouvrage écrit conjointement avec William Drabkin, L’Analyse Musicale, Histoire et méthodes, publié aussi aux Editions Jean-Michel Bardez, proposait dans son chapitre III, consacré au XXe siècle, un sous chapitre intitulé « 1960 - 1975 : set-theory, ordinateurs et autres développements ». Si Yun-Kang Ahn avait soutenu sa thèse en 2015, il aurait pu ajouter dans la liste des logiciels qu’il évoque dans son synoptique - Open Music et Rubato - le logiciel Opusmodus écrit par Janusz Podrazik et en collaboration avec une équipe internationale dans laquelle il y a un français spécialiste du Live Coding, Stephane Boussuge. Et pour cause, Janusz Podrazik est le créateur d’une implémentation en LISP de la Set Theory d’Allen Forte comme le soulignent Moreno Andreatta et Carlos Agon de l’Ircam dans leur article signé conjointement : "Formalisation algébrique des structures algébriques à l'aide de la Set Theory : aspects théoriques et analytiques" ainsi que dans sa version anglaise « implementing algebraic methods in Open Music », les deux auteurs précisent: "Dans le cas de la librairie Dn, nous avons commencé par adapter en OpenMusic une implémentation en lisp réalisée par Janusz Podrazik." et ils le remercient en conclusion de la communication : "Nous voudrions remercier Janusz Podrazik pour son implémentation en lisp de la Set-Theory d'Allen Forte". Et de fait, toutes les caractéristiques d’un logiciel de CAO et d’analyse computationnelle sont bien implémentées dans Opusmodus. Tant dans les différentes opérations sur le matériau musical, qu’elles soient tonales ou atonales, dans leurs traductions « immédiates » en notation standard mais aussi sous la forme de la notation numérique en entiers et en intervalles, des possibilités de segmentation en ensembles de hauteurs (pc sets), de leur analyse, de leur affichage en entiers ou sur portées musicales mais aussi analysés dans le cadre de graphiques. Avec, par ailleurs, et c’est un point important, un affichage en partition enrichie par les articulations, les nuances de jeu, de vélocité, les changements de tempo, de métriques, etc. Il ne manque, de mon humble avis, que la représentation circulaire, le très visuel et pédagogique cercle dodécaphonique (pitch clock). Didier DEBRIL (mai 2015)

Reproduire les bases des opérations dodécaphoniques Po - R - I - Ri Il est aisé avec Opusmodus d’effectuer les opérations de base sur une série dodécaphonique . Déjà, en premier lieu, on peut partir de rien, d’aucune données musicales et créer sa propre série. La plus simple, la plus immédiate, est la gamme chromatique et son inversion, voire même en palindrome.L’écriture OMN, « immédiate », sans mise en forme et traduction dans une partition plus sophistiquée, peut s’effectuer sous trois forme : via la « standard » avec les hauteurs insérées selon la notation américaine (ou anglaise), en entiers ou par intervalles. Chacune de ses notations pourra être affichée dans une portée musicale qui sera sous un tempo de 120 et à la noire en temps que durée. Toutefois, déjà, on peut l’enrichir avec des durées différentes et des nuances. Concrètement, le total chromatique va s’écrire comme suit : '(c4 cS4 d4 eb4 e4 f4 fs4 g4 gs4 a4 bb4). Deux remarques, le # est remplacé par la lettre « s ». On s’y fait très bien et c’est même peut-être plus rapide au niveau de l’écriture. De même, avec Opusmodus, si on écrit des fonctions dans le cadre d’un script, le codage est somme toute plutôt simplifié et on assimile rapidement la syntaxe. Ainsi, devant la parenthèse qui ouvre la suite de hauteurs, il y a le caractère typographique de l’apostrophe « ‘«, ce caractère est important car il distingue une suite de données d’une fonction.

En sélectionnant la liste des hauteurs, et en cliquant droit sur la souris , on affiche une fenêtre avec plusieurs menus. En choisissant Notation OMN, on affiche le total chromatique en portée, et avec Audition OMN ou shift-cmd 1, on écoute le résultat via un timbre de piano de la banque GM de l’ordinateur. On verra un peu plus loin qu’on peut dans le cadre d’une partition plus élaborée écouter les différents résultats via des instruments virtuels de son choix. Ceci étant, il ne s’agit que d’une simple notation et avec laquelle on ne peut effectuer aucune opération sur cette liste de hauteurs. Par contre, si j’affecte à cette liste le nom d’une variable avec « setf », celle-ci sera mémorisée dans son résultat après son évaluation, je n’aurais plus besoin lors d’opérations à venir de la réécrire. Je vais en profiter pour présenter une portée un peu plus sophistiquée, avec des durées et des nuances. Ne serait-ce que pour montrer la ductilité de l’outil d’écriture en notation rapide : Affichage du total chromatique et auquel est attribué la variable Chroma1 :(setf Chroma1 '(e. f4 f s cS4 d4 t eb4 mf e4 f4 e sfz fs4 p t g4 ppp gs4 a4 q bb4 ppppp))Affichage du total chromatique inversé avec la fonction pitch-invert via la variable Chroma1:(setf Chroma1R (pitch-invert Chroma1)) :

Ceci étant, pour diverses opérations, il est plus rapide d’effectuer les opérations sans « enrichissements de la portée ». Avec Opusmodus on peut partir de rien. Pour ce faire, on va utiliser une fonction très utile, et qui servira notamment pour des transpositions avec un pas d’incrémentation, la fonction make-scale. Cette fonction a l’avantage d’être utilisable autant sur des hauteurs que sur des entiers. Ainsi, pour créer la gamme par tons chère à Debussy, on affecte à la fonction un pas d’incrémentation d’un ton, soit deux demi-tons :(setf scaleton (make-scale :alt 2)), la même formule avec les paramètres supplémentaires :type et :pal va créer la gamme par ton ascendante et descendante sous forme de palindrome :

Pour créer une série aléatoire, on va créer en premier lieu le total chromatique en utilisant juste un pas de 1, soit une progression de do4 à Si4 avec un pas d’un demi-ton puis en lui associant la fonction rnd-order qui va réordonner le total chromatique. L’inconvénient, c’est qu’à chaque évaluation, la fonction rnd-order va réorganiser le total chromatique et afficher ainsi une nouvelle série. Pour palier à cet inconvénient, on peut lui ajouter le paramètre supplémentaire :seed « n ». Selon la valeur affectée, :seed va structurer selon le même schéma la réorganisation de la série de façon aléatoire mais juste sur une seule instance. Ensuite, toutes les évaluations donneront le même résultat. Mais comme je souhaite pour cet exemple obtenir une série totalement aléatoire, sans aucun choix de ma part, je vais donner une valeur aléatoire à :seed entre 1 et 1000. Je vais l’obtenir grâce à la fonction rnd-range à laquelle on associe le nom de la variable random :(setf random (rnd-range 1 1000)) puis (setf TC (rnd-order (make-scale 'C4 12) :seed random)). Et si le résultat me convient, je peux fixer le résultat de façon à pouvoir utiliser ultérieurement cette série pour d’autres opérations :

Bien entendu, il est nettement plus intéressant et conseillé de créer ses propres séries de façon à leur associer des propriétés combinatoires. Avec Opusmodus, il est, aussi, aisé de recréer des séries élaborées par Arnold Schoenberg, Alban Berg, Anton von Webern, Pierre Boulez, etc. Le site http://www2.nau.edu/~krr2/12tone/12tone1.html donne en exemple plusieurs séries créées par les compositeurs de la seconde école de Vienne, des exemples qui permettront de vérifier les propriétés de construction d’Opusmodus. La première concerne la série op. 25 d’Arnold Schoenberg dans sa version originale Po et ses trois dérivées Rétrograde R, Inversion I et Rétrograde/inversion RI:

Utilisation de la fonction reverse pour calculer le rétrograde R.

Utilisation de la fonction pitch-invert et transposition d’une octave avec Pitch-transpose 12 pour monter le mi4 au mi5 et calculer l’inversion I.

Utilisation conjointe des fonctions reverse & pitch-invert pour calculer le rétrograde de l’inversion RI.

Dans la liste des explications données par le site TWELVE-TONE COMPOSITION, Part One sur la composition avec douze sons, le paragraphe « Modulo 12 Operations » est consacré aux opérations du calcul modulo 12 et à ses propriétés arithmétiques intrinsèques - transposition en additionnant par demi-tons, cycle des quartes et quintes en multipliant le total chromatique par 5 et 7, inversion en miroir en multipliant par 11, etc - et indique la procédure pour effectuer l’opération d’inversion « I », et qui consiste à inverser la structure intervallique, une tierce mineure ascendante devenant une tierce mineure descendante, ce qui correspond à un mouvement contraire chromatique. Mouvement à ne pas confondre avec le renversement des intervalles qui correspond à une translation, à une projection en miroir par rapport à l’octave divisée en deux par un intervalle de quarte augmentée ou quinte diminuée (triton). L’opération d’Inversion est intéressante à effectuer avec un crayon et un papier dans la mesure où celle-ci est utilisée pour calculer la matrice de transposition 12x12. De plus, cette opération est facilitée par l’utilisation du calcul modulo 12.

(e5 eb5 cs5 g4 d5 f4 c5 fs4 a4 gs4 b4 bb4)(0 1 3 9 2 11 4 10 7 8 5 6)

Dans les deux cercles dodécaphoniques ci-contre, deux représentations circulaires de la même structure intervallique (seconde mineure et tierce mineure) de l’ECH {1, 2, 5}/{do#, ré, fa} sont représentées. A gauche, les intervalles de ECH sont inversés {1, 0 9}/{do#, do, la} et partagent la même hauteur do#, tandis que la représentation circulaire de droite affiche l’ECH en miroir, dans une exacte symétrie inversée {11, 10, 7}/{si, sib, sol}.

Modulo 12 OperationsOne can use modulo 12 arithmetic to describe any form of a row. It can also be used to transform one form of a row to another form. For example, complete a transposition by adding the number of the transposing interval to the pitch class number (transposition = PC number + T number, mod 12 ). Complete an inversion by subtracting the pitch class number from 12 (inversion = 12 - PC number, mod 12). Write the retrograde by reversing the order of the pitch class numbers. Write the retrograde-inversion by reversing the order of pitch class numbers in the inversion.

Le premier graphique affiche, grâce à l’éditeur de graphes d’Opusmodus, l’inversion obtenue en soustrayant 12 à chaque hauteur. Il en résulte une symétrie miroir et qui n’est pas l’inversion recherchée.

Série originale de l’Op. 25 de Schoenberg.

Partir de rien, de zéro…. et créer une série totalement aléatoire & de l’utilité des variables

A partir de la série originelle, l’utilisateur d’opusmodus a à sa disposition les fonctions reverse (rétrograde), et pitch-inverse (inversion) pour effectuer les opérations propres au dodécaphonisme. Pour obtenir le rétrograde ou la récurrence de l’inversion, on peut associer les deux fonctions reverse et pitch-inverse dans la même ligne du script.

Pour afficher la série originelle et calculer les opérations rétrograde, inversion et rétrograde de l’inversion, il suffit de quatre lignes d’instructions dans le script.

Comme l’affiche l’extension du logiciel gratuit iAnalyse 4 de Pierre Couprie ou dans sa suite d’utilitaires pour Ipad ou Iphone, la notation numérique, en entiers et en équivalence d’octave, décompose le cercle dodécaphonique en douze parties égales, de do à si, et notées par demi-ton, de 0 à 11 et où 12 = 0. Comme pour l’heure, sur toute hauteur qui dépasse 12 on déduit 12 où tout multiple de 12 : si la valeur est 16, je déduirai 12, soit 4, c’est à dire le mi. Concernant la série de l’Op. 25, pour ceux qui n’ont pas l’habitude de travailler avec la notation modulo 12, il suffit d’effectuer la transposition avec l’aide d’un cadran horaire ou directement en sachant que par convention, 0=do, 1=do#/réb, 2=ré, 3=ré#/mib … 9=la, 10=la#/sib, 11=si. On peut attribuer à zéro, une autre valeur de hauteur.

Arithmétique modulo 12

Pour obtenir l’inversion de la série originelle avec une feuille et un crayon, on peut calculer la structure intervallique de la série en notant le nombre de demi-tons qui séparent chaque intervalle et les inverser. Ainsi, entre mi et fa, il s’agit d’une seconde mineure ascendante (1 demi-ton) et qui va devenir descendante, donc mib, de fa à sol, cet intervalle de seconde majeure ascendante (2 demi-tons) va devenir une seconde majeure descendante donc do#, de sol à do#, cet intervalle de quarte augmentée (6 demi-tons) ascendant va devenir une quinte diminuée descendante soit sol, etc, et vice-versa pour les intervalles descendants. Avec la structure intervallique définie (1 2 6 -7 9 -7 6 -3 1 -3 1), il suffit d’effectuer une addition ou une soustraction par demi-tons en inversant ce qui est positif en négatif et ce qui est négatif en positif. De même, le cercle dodécaphonique ci-dessus facilitera le calcul. Si je déduis 9 demi-tons à ré, le résultat trouvé sera fa, etc. :

-1 -2 -6 +7 -9 +7 -6 +3 -1 +3 -1 ———————————————————————————mi mib do# sol ré fa do fa# la sol# si sib

Une méthode similaire mais qui utilise le calcul modulo reprend le même principe à la nuance près qu’il s’agit de créer la série à partir de sa structure intervallique et sa notation modulo 12, soit mi = 4 comme hauteur de départ de la série. Ensuite on ajoute ou on soustrait les intervalles ce qui donne les hauteurs de la série :

-1 -2 -6 +7 -9 +7 -6 +3 -1 +3 -1 4-1 = 3, 3 - 2 = 1, 1 - 6 = 7, 7 + 7 = 14-12 = 2, 2 - 9 = 5, 5 + 7 = 0, 0 - 6 = 6, 6 + 3 = 9, 9 - 1 = 8, 8 + 3 = 11, 11 - 1 = 10 ——————————————————————————— 4 3 1 7 2 5 0 6 9 8 11 10

Le calcul préconisé par la page web Twelve-Tone Composition Part One propose une autre solution, tout comme, d’ailleurs, la plupart des sites consacrés aux techniques dodécaphoniques, et, notamment, cette page web Creating A 12 Tone Matrix basée sur les propriétés du calcul modulo. Comme l’octave est divisée en 12 parties égales, il suffit de soustraire 12 de chacune des hauteurs de la série originelle, sauf celle de la note de départ, en l’occurence ici mi ou 4 afin de la conserver en tant que note de départ. Toutefois, la notation de la série originelle à partir de 0 concerne la position des hauteurs dans la série. Donc avant de déduire chaque hauteur de 12, je transpose de moins 4 demi-tons la série originelle afin d’être sur une base de Do (do=0). Puis je déduis 12 de chaque hauteur de la série, ce qui a pour effet de créer l’inversion en miroir des intervalles et je transpose l’ensemble du résultat de quatre demi-tons. La série est inversée mais la première note est toujours mi. La raison est simple, tout comme le fa#/6, le do/0, Sur papier ou sur l’ordinateur mais sans utiliser une fonction dédiée, le calcul va se décomposer en une suite de transpositions :

Série originelle Série inversée

4 5 7 1 6 3 8 2 11 0 9 10 ————————————————————---- 4 0 1 3 9 2 11 4 10 7 8 5 6 ————————————————————---12 0 11 9 3 10 1 8 2 5 4 7 6 —————————————————————+ 4 4 3 1 7 2 5 0 6 9 8 11 10 ======> mi mib do# sol ré fa do fa# la sol# si sib =====>

Le même calcul que ci-dessus mais reproduit avec l’opérateur x-y d’Opusmodus pour la transposition de -12 demi-tons. 1 - la fonction pitch-transpose - 4 transpose la série originelle de moins quatre demi-tons soit : (c4 cs4 eb4 a4 d4 b4 e4 bb4 g5 gs4 f4 fs4) 2 - la fonction modus convertit les hauteurs en notation en entiers : (0 1 3 9 2 11 4 10 7 8 5 6)3 - la fonction gen-repeat duplique 12 fois la valeur 12 afin de soustraire 12 de chaque hauteur de la série transposée en do avec la fonction/opérateur x-y :(12 11 9 3 10 1 8 2 5 4 7 6)4 - integer-to-pitch convertit le résultat en hauteurs :(c5 b4 a4 eb4 bb4 cs4 gs4 d4 f4 e4 g4 fs4)5 - la fonction pitch-transpose transpose de 4 demi-tons l’ensemble de la série : (e5 eb5 cs5 g4 d5 f4 c5 fs4 a4 gs4 b4 bb4)et la fonction modus convertit les hauteurs en entiers modulo 12 :(4 3 1 7 2 5 0 6 9 8 11 10)

Le graphique ci-contre présente l’inversion I dans son calcul final. Contrairement à l’inversion miroir où toutes les intervalles sont inversées, l’inversion est calculée à partir de la note mi.

Reconstitution « pas à pas » du calcul de l’inversion, avec les différentes transpositions exposées en graphiques.

Calculs modulo 12 & graphiques

Op. 25 Schoenberg Po - R - I - RI

Reconstitution de la série Opus 24 d’Anton von Webern

La fenêtre de travail d’Opusmodus, logiciel de CAO. La fenêtre affiche la conversion du script en partition avec les nuances, articulations, changements de tempo, de métriques, tuplets, cross-beaming, etc.

Po

RI7

R6

I1

La série originelle Po a été créée à partir d’un premier tricorde {11, 10, 2} et qui a servi de base pour obtenir le deuxième {3, 7, 6) en effectuant le rétrograde du renversement transposé de 7 demi-tons - RI7 -, le troisième tricorde est obtenu, et toujours à partir du premier tricorde, en le lisant de droite à gauche et en le transposant de moins 6 demi-tons afin d’obtenir son rétrograde ou récurrence transposée de - 6 demi-tons. Enfin le quatrième tricorde est son inversion transposée d’un demi-ton.

Avec Opusmodus on affecte au premier tricorde {b4, bb4, d5} la variable 1tricordeserop24 et qui va servir de base de calcul sans avoir à l’inscrire à chaque nouvelle opération. Puis, pour créer le deuxième tricorde, plusieurs fonctions sont imbriquées, chaînées ensemble : pitch-invert calcule l’inversion sur laquelle reverse effectue le rétrograde, lequel est transposé de 7 demi-tons avec pitch-transpose. La seconde transposition -12 est simplement une mise à une octave plus bas. Dans la dernière ligne, la fonction assemble-seq regroupe les quatre tricordes créés tandis flatten désassemble les quatre tricordes en enlevant leurs parenthèses ce qui a pour effet de regrouper les hauteurs dans la même liste, dans la même série.

Segmentation et analyse des ECH (pc sets) l’Op. 24 d’Anton von Webern

Opusmodus propose de façon native une série d’outils d’analyse et de composition liée à la Set Theory. Ainsi, on peut segmenter une série, une phrase musicale et analyser son contenu. Plusieurs fonctions natives d’Opusmodus vont donner des informations précieuses concernant l’ADN des ECH sélectionnés. De même, certaines pourront mettre en valeur des liens sous-jacents entre les ECH.

La fonction row-group-modification segmente une phrase musicale, une série, en plusieurs segments. Ci-dessus, la série de l’Op. 24 est segmentée successivement en quatre tricordes, trois tétracordes, deux héxacordes ainsi que pour la dernière segmentation réalisée sur serop24div (3 4 5) en un tricorde, un tétracorde et un pentacorde. La fonction convertit directement les segmentations en entiers mais en valeur absolue, c’est-à-dire qu’une hauteur peut-être supérieure à 12. La fonction modus effectue la conversion modulo 12 du résultat obtenu. A droite, les deux graphiques mettent en évidence, notamment sur celui regroupant les quatre tricordes les résultats des opérations rétrograde, d’inversion, et du rétrograde de l’inversion.

Visualisation du résultat des 4 opérations Po - RI7 - R6 - I1

Visualisation des deux héxacordes Po-RI7 & R6-I11

La fonction pcs-analysis est un outil d’analyse puissant, une sorte de spectrographe qui après analyse va afficher plusieurs informations importantes sur un Ensemble de Classes de Hauteurs ou plusieurs ECH - ce qui est pour le moins très pratique - dont les hauteurs des segments en entiers, leur classification Forte 3-3, 4-4 et 5-21, leur notation en Prime Form, c’est à dire transposée sur la base de 0/do, ce qui permet d’être sur un même plan au niveau de l’analyse, les hauteurs de la séquence ramenée en prime form en notation standard, le complément du total chromatique de chaque ECH, leur inversion, leur Normal Order et l’Ic Vector. Ce dernier affichant le nombre d’occurences des intervalles entre la seconde mineure et la quarte augmentée :(1 0 1 1 0 0) compte une seconde mineure, aucune seconde majeure, une tierce mineure, une tierce majeures et aucune quarte ni quarte augmentée.

Analyse avec pcs-analysis

(11 10 2 3 7 6 8 4 5 0 1 9) (0 11 3 4 8 7 9 5 6 1 2 10) (0 11 3 4 8 7 9 5 6 1 2 10) (7 6 10 11 3 2 4 0 1 8 9 5) (3 2 6 7 11 10 0 8 9 4 5 1) (4 3 7 8 0 11 1 9 10 5 6 2) (2 1 5 6 10 9 11 7 8 3 4 0) (6 5 9 10 2 1 3 11 0 7 8 4) (5 4 8 9 1 0 2 10 11 6 7 3) (10 9 1 2 6 5 7 3 4 11 0 8) (9 8 0 1 5 4 6 2 3 10 11 7) (1 0 4 5 9 8 10 6 7 2 3 11)

(b4 bb4 d4 eb4 g4 fs4 gs4 e4 f4 c4 cs4 a4) (c4 b4 eb4 e4 gs4 g4 a4 f4 fs4 cs4 d4 bb4) (gs4 g4 b4 c4 e4 eb4 f4 cs4 d4 a4 bb4 fs4) (g4 fs4 bb4 b4 eb4 d4 e4 c4 cs4 gs4 a4 f4) (eb4 d4 fs4 g4 b4 bb4 c4 gs4 a4 e4 f4 cs4) (e4 eb4 g4 gs4 c4 b4 cs4 a4 bb4 f4 fs4 d4) (d4 cs4 f4 fs4 bb4 a4 b4 g4 gs4 eb4 e4 c4) (fs4 f4 a4 bb4 d4 cs4 eb4 b4 c4 g4 gs4 e4) (f4 e4 gs4 a4 cs4 c4 d4 bb4 b4 fs4 g4 eb4) (bb4 a4 cs4 d4 fs4 f4 g4 eb4 e4 b4 c4 gs4) (a4 gs4 c4 cs4 f4 e4 fs4 d4 eb4 bb4 b4 g4) (cs4 c4 e4 f4 a4 gs4 bb4 fs4 g4 d4 eb4 b4)

Matrice Po R I RI

Avec Opusmodus, calculer la matrice, le carré 12 x12 de transposition d’une série, est extrêmement simple en raison de la fonction dédiée row-matrix. Les deux premières lignes affichent la matrice en entiers mod 12 tandis que la seconde convertit directement les entiers en hauteurs avec les paramètres additionnels :type :pitch.Les trois lignes suivantes réalisent l’opération sans utiliser la fonction row-matrix. Elle est remplacée par un calcul qui peut-être effectué avec une feuille de papier et un crayon. Sommairement la structure intervallique de la série renversée I est transposée sur chacun des degrés de la série originale serop24.La fonction pitch-invert donne la série renversée, gen-repeat 12 duplique douze fois la série originale serop24 listée par list tandis que pitch-transpose-start reporte les intervalles, la structure intervallique de la série inversée I successivement sur chacune des premières hauteurs des douze listes dupliquées de la série originale, serop24.

Visualisation graphique de la matrice/carré de transposition de la série Op. 24 d’Anton von Webern.

Opusmodus propose à l’utilisateur une solide implantation d’outils de la Set Theory concernant autant la composition que l’analyse musicale. Ils permettent, notamment dans le cadre d’une analyse, d’effectuer rapidement une segmentation dans une phrase musicale, de l’analyser ainsi que de trouver des points de convergence, des liens sous-jacents entre les différents Ensembles de Classes de Hauteurs (pc sets).Ci-contre à droite et à gauche, deux aperçus des possibilités de ces outils à partir de deux exemples de segmentations extraits de l’ouvrage The Structure of Atonal Music d’Allen Forte.

Segmentation et analyse des Ensembles de Classes de Hauteurs (ECH)

Les lignes de script ci-dessus se décomposent comme suit : - Insertion des hauteurs via la variable exforteA , à partir de l’exemple 119 (Webern Four Pieces for Violin and Piano op.7) illustrant le chapitre « Pitch Class Set Complexes » de son ouvrage The Structure of Atonal Music. - Une première segmentation avec la fonction gen-divide prend en compte les deux dyades : ((b4 f5 e6 cs6) (f4 fs4 b4d5) (a3 d4fs5 eb3) (a3 d4 eb4 as3))- Une seconde segmentation est effectuée avec melodize qui a pour fonction de transformer les accords en hauteurs séparées, d’où une modification de gen-divide (4 4 4 4) qui segmente la suite de hauteurs en quatre tétracordes qui sont convertis modulo 12 avec modus :((11 5 4 1) (5 6 11 2) (9 2 6 3) (9 2 3 10))- Analyse des quatre tétracordes avec la fonction pcs-analysis qui, en quelque sorte, se révèle être une sorte de spectrographe d’un ensemble de classes de hauteurs en analysant ses composantes, en affichant ce qui pourrait s’apparenter à l’ADN d’un ECH :

melodizeflattenmodus(11 5 4 1)pcs-sub-power(2-6 2-5 2-2 2-1 2-4 2-3 3-5 3-8 3-7 3-3)melodizeflattenmodus(5 6 11 2)pcs-sub-prime-form((1 0 0 0 0 0) (0 0 0 0 0 1) (0 0 0 0 1 0) (0 0 0 1 0 0) (0 0 1 0 0 0) (1 0 0 0 1 1) (1 0 1 1 0 0) (0 0 2 0 0 1) (0 0 1 1 1 0))pcs-sub-relation(3-5 3-3)

Sequence: ((11 5 4 1) (5 6 11 2) (9 2 6 3) (9 2 3 10))Set: (4-z15 4-18 4-18 4-8)Prime Form: ((0 1 4 6) (0 1 4 7) (0 1 4 7) (0 1 5 6))Pitch: ((c4 cs4 e4 fs4) (c4 cs4 e4 g4) (c4 cs4 e4 g4) (c4 cs4 f4 fs4))Complement: ((2 3 5 7 8 9 10 11) (2 3 5 6 8 9 10 11) (2 3 5 6 8 9 10 11) (2 3 4 7 8 9 10 11))Inversion: ((1 7 8 11) (7 6 1 10) (3 10 6 9) (3 10 9 2))Normal Order: ((11 1 4 5) (11 2 5 6) (2 3 6 9) (9 10 2 3))Vector: ((1 1 1 1 1 1) (1 0 2 1 1 1) (1 0 2 1 1 1) (2 0 0 1 2 1))

integer-to-pitchpcs-analysisSequence: ((9 2 3 8) (10 11 0) (8 9) (0 4 7 1))Set: (4-9 3-1 2-1 4-18)Prime Form: ((0 1 6 7) (0 1 2) (0 1) (0 1 4 7))Pitch: ((c4 cs4 fs4 g4) (c4 cs4 d4) (c4 cs4) (c4 cs4 e4 g4))Complement: ((2 3 4 5 8 9 10 11) (3 4 5 6 7 8 9 10 11) (2 3 4 5 6 7 8 9 10 11) (2 3 5 6 8 9 10 11))Inversion: ((3 10 9 4) (2 1 0) (4 3) (0 8 5 11))Normal Order: ((2 3 8 9) (10 11 0) (8 9) (0 1 4 7))Vector: ((2 0 0 0 2 2) (2 1 0 0 0 0) (1 0 0 0 0 0) (1 0 2 1 1 1))

Exemple de segmentation, page 130, dans The Structure of Atonal Music d’Allen Forte.

Exemple de segmentation, page 127, dans The Structure of Atonal Music d’Allen Forte.

La conversion en graphique combinant hauteurs et durées est extrêmement simple à réaliser avec Opusmodus. - La liste des hauteurs et des durées est inscrite via la variable seggraphForte1 :(q b4 f5 e6 cs6 e f4 fs4 b4d5 a3 q d4fs5 eb3 e a3 d4 eb4 as3)- La fonction length-pitch-list-plot convertit les durées (length) et les hauteurs (pitch) en graphique.

D’autres outils d’analyse de la Set Theory sont implantés dans Opusmodus. Ils permettent, notamment, d’analyser les liens avec d’autres ensembles de classes de hauteurs, notamment sous-jacents. Ainsi, la fonction pcs-sub-power permet « de voir tous les sous-ensembles possibles d’un ECH » et de les afficher soit en entiers, soit forme de ECH (pc sets), soit en hauteurs. La fonction pcs-sub-prime-forme, souligne la documentation, est similaire à pcs-sub-power, avec toutefois, une sortie sous la forme du vecteur d’intervalles. C’est un outil qui peut se révéler très utile pour « explorer les relations z entre les classes partageant le même contenu d'intervalles ». De même, la fonction pcs-sub-relation permet au compositeur d'explorer la variance ou l'invariance de paires de classes de hauteurs particulieres. L'utilisation de cette fonction permet de voir les possibles symétries entres classes de hauteurs.Dans les lignes extraites du script, la sélection d’un segment donné est obtenu grâce à la fonction « ~ », elle permet de choisir dans une série de plusieurs listes ou segmentations, celle qui sera analysée. Petite remarque, les fonctions melodyze et flatten ne sont pas obligatoires si dans la liste des hauteurs sélectionnées il n’y ni dyades ni accords. En revanche, en cas d’accords, il faut les convertir en hauteurs séparées et enlever les parenthèses avec flatten afin d’obtenir une seule liste.

(a3 d4 eb4 ab4 as3b3c4 gs3 a4 c2e2g2cs3)melodizegen-dividemodus((9 2 3 8) (10 11 0) (8 9) (0 4 7 1))Les opérations de segmentations sont similaires à celles effectuées autour de l’exemple sur Webern ci-contre à gauche. L’analyse effectuée par la fonction pcs-analysis affiche bien les ECH 4-9, 3-1, 2-1, et 4-18 :

(a3 d4 eb4 ab4 as3b3c4 gs3 a4 eb1gb1c2e2g2cs3)1 > melodizegen-dividemodus((9 2 3 8 10 11 0) (8 9) (3 6 0 4 7 1))

integer-to-pitchpcs-analysisSequence: ((9 2 3 8 10 11 0) (8 9) (3 6 0 4 7 1))Set: (7-4 2-1 6-z13)Prime Form: ((0 1 2 3 4 6 7) (0 1) (0 1 3 4 6 7))Pitch: ((c4 cs4 d4 eb4 e4 fs4 g4) (c4 cs4) (c4 cs4 eb4 e4 fs4 g4))Complement: ((5 8 9 10 11) (2 3 4 5 6 7 8 9 10 11) (2 5 8 9 10 11))Inversion: ((3 10 9 4 2 1 0) (4 3) (9 6 0 8 5 11))Normal Order: ((8 9 10 11 0 2 3) (8 9) (0 1 3 4 6 7))Vector: ((5 4 4 3 3 2) (1 0 0 0 0 0) (3 2 4 2 2 2))

Mod 12 : ((0 1 3) (0 1 4) (0 1 6) (0 2 5) (0 2 6) (0 3 6) (0 3 7))Pitch :((c4 cs4 eb4) (c4 cs4 e4) (c4 cs4 fs4) (c4 d4 f4) (c4 d4 fs4) (c4 eb4 fs4) (c4 eb4 g4))ECH :(3-2 3-3 3-5 3-7 3-8 3-10 3-11 4-12 4-13 4-18)Vector :((1 1 1 0 0 0) (1 0 1 1 0 0) (1 0 0 0 1 1) (0 1 1 0 1 0) (0 1 0 1 0 1) (0 0 2 0 0 1) (0 0 1 1 1 0) (1 1 2 1 0 1) (1 1 2 0 1 1) (1 0 2 1 1 1))Ci-dessus les liens que l’ECH 6-z13 partagent avec d’autres ensembles de classes de hauteurs. Leur affichage peut-être sous forme modulo 12, hauteurs, leur classification Forte et IC Vector.

Les opérations sont similaires à celles de l’exemple sur Webern. Ci-dessus, l’objectif était de montrer la segmentation mettant en évidence les ECH 4-9, 3-1 et 4-18 ainsi que leur analyse via pcs-analysis et le graphe; et ci-dessous la segmentation regroupée sur les ECH 7-4 et 6-z13.

Un essai sur la « construction » de la série de l’Opus 27 d’Anton von Webern avec les outils d’Opusmodus : http://www.deb8076.eu/CAO/Pdf/AnalyseOPMOPasaPasop27Webern.pdf