Conservatoire National des Arts et Métiers
INSTITUT DINFORMATIQUE DENTREPRISE
FICHE SIGNALETIQUE
MEMOIRE dIngénieur I.I.E.
Organisation rythmique
dans un environnement daide
à la composition
Auteur : Benoit Meudic
Directeur de recherche : M Gérard Assayag, responsable de léquipe
Représentations Musicales, département recherche et développement à lIrcam - Centre Georges-Pompidou
Descriptif :
A partir dun modèle existant, la librairie conçue permet dopérer une quantification rythmique sur un flux musical dans un environnement daide à la composition.
La reconnaissance par un ordinateur de la structure rythmique dun flux musical quelconque est un problème délicat. En effet le rythme se définit non seulement par des durées, mais aussi par tous les autres paramètres (intensités, hauteurs, temps doccurrence des événements sonores...) pouvant contribuer à la perception de régularités. Ce niveau de complexité rend donc difficile toute analyse globale. De plus, la donnée de ces paramètres tels-quels (sous la forme de suite de nombres) ne permet pas au musicien de simaginer le rythme résultant. Pour obtenir une structure rythmique lisible et compréhensible, il faut réduire intelligemment la quantité dinformation fournie par les composants du rythme initial de façon à ne garder que les informations qui sont essentielles au yeux du musicien. Il est important de pouvoir quantifier le rythme lorsque lon désire entrer des partitions musicales directement au clavier (applications en gravure professionnelle) ou lorsque lon veut transcrire en notation des séquences rythmiques calculées (application en composition assistée par ordinateur).
Cest le principe de la quantification rythmique. (il sera détaillé dans le chapitre II).
Open-Music, un nouvel environnement visuel de programmation musicale écrit en Clos (Common Lisp Object System), destiné aux compositeurs, a récemment été créé à lissue de la thèse de Carlos Agon [Agon 98].
On ma alors proposé de développer dans cet environnement une nouvelle librairie de quantification à partir du modèle de Kant ([Agon 94]), librairie de quantification intégrée à PatchWork (prédécesseur dOpen-Music), basée sur le principe de la quantification par segmentations.
On ma par ailleurs demandé de chercher puis dintégrer de nouvelles fonctionalités à cette nouvelle librairie.
Le stage sest alors articulé autour de deux axes :
Le chapitre III présentera le concept original de la quantification par segmentations, destiné à pallier les lacunes des quantificateurs industriels, puis décrira le nouveau module graphique de quantification rythmique que jai développé dans Open-Music. Ce module sinspire très largement de " Kant ". Il apporte un maniement plus souple des segmentations, et permet de les personnaliser par lintégration de méthodes externes au quantificateur définies par lutilisateur.
Enfin, les chapitre IV et V présenteront deux méthodes dinterprétation du coefficient dauto-corrélation que jai développé dans le cadre de la quantification de structures rythmiques répétitives. ([Brown 1993] [Desain Siebe] ) Ces méthodes sont destinées à être intégrées dans le module de quantification détaillé au chapitre III.
Remerciements
Je tiens à remercier tous les membres de léquipe Représentations Musicales, Gérard Assayag, Carlos Agon, Peter Hanappe, Dorothea Baeumer et Olivier Delerue, qui par leurs expériences, mont permit de découvrir la richesse de linformatique musicale.
Leur confiance, leur disponibilité et leur gentillesse mauront aussi très certainement aidé à
acquérir lautonomie que nécessite toute démarche de recherche.
SOMMAIRE
I Le cadre de la recherche
II La quantification rythmique
A Un exemple
B " Quantify ", un module de quantification
III La quantification par segmentations.
A Le principe de la quantification par segmentation
B Une nouvelle interface graphique pour la quantification
1. Lenvironnement graphique
2. Les manipulations graphiques dans léditeur chord-seq-seg
3. Des méthodes de segmentation (définition, utilisations)
IV Une méthode de segmentation par le coefficient dauto-corrélation
A Le coefficient dauto-corrélation
B Une première interprétation du coefficient
1) La détermination des barres de mesure et de la pulsation
2) Lanalyse dune structure régulière
3) Lanalyse dune structure régulière déformée
V Conclusions : Vers une mesure de lexpressivité
GLOSSAIRE MUSICAL.
REFERENCES.
Annexes
1) la classe de léditeur graphique et une de ses méthodes
2) la fonction dauto-corrélation décrite en V
LIRCAM est un institut de recherche dont les activités sarticulent entre la recherche scientifique, le développement technologique et la création musicale contemporaine.
Le département Recherche et Développement a pour but lélaboration de connaissances et de technologies en rapport avec les problématiques de la musique et du son. Il regroupe une soixantaine de collaborateurs, chercheurs, ingénieurs, étudiants dont les activités se répartissent entre plusieurs équipes thématiques : acoustique et psycho-acoustique, analyse-synthèse, temps-réel, représentations musicales.
Léquipe " représentations musicales "
Léquipe Représentations musicales, dirigée par Gérard assayag, développe des environnements de composition assistée par ordinateur (CAO), à partir dune formalisation des structures musicales.
Les logiciels PatchWork et OpenMusic issus de ces travaux constituent deux générations successives d'environnements compositionnels permettant le calcul de structures musicales à partir de langages de programmation graphique. Ils sont abondamment utilisés pour la composition d'oeuvres contemporaines, notamment pour l'élaboration de parties instrumentales (aide à l'écriture), mais aussi pour la recherche musicologique.
LE SUJET ET ses limites
Le problème, classique en recherche musicale, de la quantification rythmique peut se définir
ainsi : conversion d'un flux de durées exprimées par des valeurs réelles en une structure métrique et rythmique exprimable dans la notation musicale standard.
L'intérêt de la question provient du fait que beaucoup de compositeurs utilisent des formalismes numériques pour engendrer des configurations complexes de durées; le problème se pose aussi de façon évidente dans le cas de la transcription automatique du jeu instrumental.
Un début de réponse au problème a été donnée par le quantificateur " Kant " de PatchWork.
Le sujet consiste à intégrer ce quantificateur dans le nouvel environnement Open-Music, et à lenrichir de nouvelles fonctionalités, particulièrement dans le cas de structures rythmiques régulières.
On ne traitera pas des problèmes de quantification en temps réel, qui ajoutent une complexité trop grande. De plus, les étapes de quantification feront souvent appel aux choix de lutilisateur, la quantification ne sera donc pas entièrement automatique.
Le chapitre suivant va présenter plus en détail le concept de quantification rythmique.
II La quantification rythmique
A Un exemple
Lorsquune structure nous semble complexe, cest quelle contient à nos yeux un trop grand nombre dinformations pour quon puisse la décrire, et donc la mémoriser.
Souvent, on est tenté détablir un rapprochement avec une structure connue moins complexe. Par exemple, on dira dun signal quil est quasi-périodique de façon à pouvoir le décrire par les seules données de son amplitude et de sa périodicité. Le signal sera donc " approximé " à un signal moins complexe mais descriptible. Il sera quantifié.
Prenons lexemple dune suite de durées issues de la discrétisation dun signal sonore :
1.177, 0.592, 0.288, 0.337, 0.436, 0.337 0.387 0.600 0.634 0.296 0.280 0.296 0.346 1.1193
(les durées ont une précision à la milliseconde)
Cette représentation est précise, mais trop complexe, donc peu informative.
Par un processus de quantification, nous allons abaisser le degré de précision de la notation de manière à dégager une structure.
Avant de réduire la précision, nous voulons mettre en valeur une première structure en divisant la séquence en plusieurs parties.
Par exemple, réalisons les groupements suivants :
(1.177)
(0.592, 0.288, 0.337)
(0.436, 0.337 0.387)
(0.600 0.634)
(0.296 0.280 0.296 0.346)
(1.1193)
Nous allons maintenant réaliser des approximations successives des durées à lintérieur de chaque groupement.
Tout dabord, choisissons une nouvelle unité de temps plus grande, par exemple 1.000 s.
Exprimons les durées en proportion de cette nouvelle unité.
Une première approximation pourrait modifier les valeurs en : (valeurs exprimées en nombre dunités de temps)
(1)
(1/2, 1/4, 1/4 + 1/16)
(1/4 + 1/8, 1/4 + 1/16, 1/4 + 1/16)
(1/2 1/4 + 1/16)
(1/4 1/4 1/4 1/4 + 1/16)
(1)
La représentation correspondante nest pas très satisfaisante (voir la représentation en bas de la figure 1), car lapproximation nest pas encore assez élevée.
Une deuxième approximation pourrait alors modifier les valeurs en :
(1)
(1/2, 1/4, 1/4)
(1/3, 1/3, 1/3)
(1/2, 1/2)
(1/4, 1/4, 1/4, 1/4)
(1)
La nouvelle représentation obtenue serait beaucoup plus satisfaisante, car elle serait plus simple donc plus riche en informations que la représentation précédente (voir haut de la figure 1).
Au total, les moyens dont nous disposons pour réduire linformation sont :
Les exigences de la quantification nous apparaissent alors clairement :
Imaginons que lutilisateur naie aucun contrôle sur les résultats. Les approximations réalisées seront alors celles rentrées par défaut dans le quantificateur. Le résultat sera parfois bon, souvent mauvais. (par exemple, le rythme du haut de la figure 1 ne peut être le résultat dapproximations " aveugles ")
Il faut donc permettre à lutilisateur dorienter la quantification par lintermédiaire de paramètres de contrôle. La difficulté est doffrir des contrôles à la fois simples et puissants de manière à rendre presque transparent loutil informatique aux yeux du compositeur, pour que le rapport aux matériaux analysés soit plus direct, et pour que lenchaînement logique des étapes du processus de quantification soit compréhensible.
Aujourdhui, il existe de nombreux quantificateurs, mais ils ne répondent pas à toutes les exigences, notamment dans le cadre de la musique contemporaine.
La partie suivante va présenter lun de ces quantificateur .
B " Quantify ", un module de quantification
Quantify est le module de quantification actuellement utilisé sous Open-Music.
Il peut être assimilé à une fonction de plusieurs paramètres, dont certains sont optionnels.
La quantification se fait donc en un seul temps. Le contrôle du processus est alors réalisé uniquement par le choix des paramètres dentrée du module.
Présentation des paramètres :
Le premier paramètre du module est la liste des durées à quantifier.
Cette liste peut être extraite dune source musicale quelconque, ou peut provenir dune première quantification.
Par exemple, prenons la liste de durées :
1000, 500, 250, 250, 333, 333, 333, 500, 500, 250, 250, 250, 250, 1000
(les durées sont exprimées en milliseconde)
On peut affecter chaque durée à une note de manière à avoir la représentation suivante :
Les durées sont représentées par un trait horizontal.
Les paramètres de contrôle du module sont :
(* voir définitions en fin de rapport)
Le tempo (ou pulsation) est lunité selon laquelle sexpriment les durées finales. Lorsquil est bien choisi, sa seule donnée peut suffire à obtenir une bonne quantification.
Un tempo de 49 (voir définition du glossaire musical) appliqué aux durées ci-dessus peut être représenté par la figure ci-dessous.
Les barres verticales représentent un début dunité (ou pulsation). Elles sont régulièrement espacées de (60000/49 =) 1224 millisecondes.
Une fois le tempo fixé, la liste des signatures permet de visualiser dans le résultat final des " groupement dunités de tempo". Par exemple, des signatures 2/4 signifient des groupements dunités par 2. On peut les représenter par la figure ci-dessous. Les grandes barres représentent les séparations entre les groupes dunités. (ici, il ny a que des groupes de deux unités)
Les paramètres de contrôle optionnels sont :
(* voir définitions en fin de rapport)
Ces entrées sont des contraintes agissant sur la complexité des rythmes pour chaque mesure.
En sortie, le module de quantification renvoie une liste de valeurs définissant une structure rythmique. Cette structure peut être représentée en notation rythmique traditionnelle.
une représentation rythmique
Le processus de quantification détaillé :
La donnée de la pulsation et des signatures en entrée fournit une subdivision régulière (dunité la pulsation) de léchelle de temps dans laquelle sont disposées les durées. La quantification se fait dans chaque subdivision régulière. Elle consiste à exprimer les durées en proportion de la pulsation.
La représentation des notes () dans une pulsation dune mesure sur laxe de temps
Chaque pulsation (grand traits verticaux) est subdivisée en grilles (petits traits verticaux)
sur lesquelles on cherche à placer les évènements par rapport au début de la pulsation.
oi est le temps dattaque
di est linter-onset (différence entre deux temps dattaque successifs)
Ce processus commence par la recherche d'un diviseur entier. On essaie exhaustivement les divisions possibles de la pulsation par des entiers dans un rang [min max], où le min est calculé en fonction de la durée minimale dans la pulsation et le max est fixé à 32. Chacun de ces diviseurs possibles définit une grille pour chaque pulsation. On doit maintenant trouver la "meilleure grille" relativement à certains critères.
On commence par bouger chaque attaque au point le plus proche dans la grille, et pour chaque grille on calcule une erreur relative à ce processus. Trois différents types d'erreurs sont calculés :
La fonction cube
Distance euclidienne.
Afin de choisir la division convenable les trois mesures d'erreurs sont combinées avec des coefficients donnés par lutilisateur qui permettent de favoriser la précision (des durées des temps dattaque) ou la simplicité de la notation.
On finit ce modèle par la reconstruction de la structure à partir des résultats obtenus pour chaque pulsation. Cette construction peut être vue comme la construction d'un arbre dont les feuilles représentent l'information rythmique d'une division en pulsations tandis que les noeuds supérieurs représentent l'information rythmique au niveau des mesures ou des ensembles de mesures.
Le problème du tempo :
Prenons maintenant les entrées du module définies plus haut,
(durées : 1000, 500, 250, 250, 333, 333, 333, 500, 500, 250, 250, 250, 250, 1000
tempo : 49
signatures : 2/4)
et analysons le résultat de la quantification :
Les contraintes de tempo (49) et de signature (2/4) ont bien été respectées.
Prenons maintenant comme entrées le tempo 60 et la signature 4/4 :
Le rythme obtenu avec un tempo de 49 est assez complexe, presque autant que lest la liste de durées initiale. La quantification na donc pas remplit le rôle quon lui avait attribué, qui était de réduire la quantité dinformations contenues dans la liste de durées.
Le rythme obtenu avec un tempo de 60 est beaucoup plus simple, donc satisfaisant.
Il faut donc impérativement fournir au quantificateur un tempo adapté à la séquence étudiée.
Certains quantificateurs industriels, contrairement à quantify, disposent dalgorithmes permettant de déterminer un bon tempo, moyennant quelques choix de lutilisateur.
Supposons donc que le problème du tempo soit résolu.
Le problème des structures irrégulières :
Reprenons la même liste de durées que précédemment :
1000, 500, 250, 250, 333, 333, 333, 500, 500, 250, 250, 250, 250, 1000
Déformons-la, de façon à obtenir une structure comparable aux effets expressifs que pourrait produire un musicien sil interprétait cette suite de durées (accélérations, irrégularités dans le tempo...).
Prenons par exemple la liste suivante :
1177, 592, 288, 337, 436, 337, 387, 600, 634, 296, 280, 296, 346, 11193
Le résultat de la quantification avec quantify est maintenant très médiocre :
Les rythmes sont trop complexes. Il faut donc essayer de se rapprocher de la représentation précédente :
Pour cela, nous proposons une pré-étape de quantification sajoutant au module quantify.
Cest la quantification par segmentations, présentée dans le chapitre suivant.
Elle a été définie puis implémentée dans le quantificateur " Kant " par Carlos Agon [Agon 94]
Elle offre à lutilisateur un plus large contrôle sur la structure à quantifier.
Le stage a permit de développer une nouvelle interface de quantification sous Open-Music à partir de " Kant ". Elle sera présentée dans le chapitre suivant.
III La quantification par segmentations.
A Le principe de la quantification par segmentation
Le principe de base est de déterminer avec précision lemplacement des barres de mesures (signatures) dans la structure rythmique finale. Ainsi, il sera possible de visualiser des groupements entre les rythmes. Le gain en simplicité visuelle pourra ainsi contribuer à la perte dinformations inhérente à la quantification.
Les quantificateurs industriels (quantify, finale) ne permettent pas ce type de contrôle.
Quantify, par exemple, dispose bien dune entrée permettant de spécifier les signatures, mais cette entrée dépend de la pulsation spécifiée. Les groupements sexpriment en effet en nombre dunités de pulsation. Les groupements de pulsations sont indépendants des durées sur lesquelles la quantification sapplique.
Le principe de la quantification par segmentations est de définir non pas des groupements de pulsation, mais des groupements de durées, avant même quune pulsation soit définie.
Le double rôle de la mesure est alors mis en valeur :
la mesure est un groupement métrique (groupement de pulsations) et un groupement rythmique (groupement de durées).
La quantification par segmentation permet de définir lemplacement de la barre de mesure par des contraintes sur ces deux aspects. Les quantificateurs industriels ne posent de contraintes que sur laspect métrique de la mesure.
Concrètement, le principe est de segmenter (découper) un flux musical en plusieurs parties. Les parties seront délimitées par des séparation (ce seront les barres de mesure du rythme quantifié)
La première étape du processus de quantification est donc une segmentation (un découpage en plusieurs parties) de laxe de temps sur lequel ont étés positionnées séquentiellement les notes.
Toute sortes de méthodes peuvent intervenir pour le choix des découpages. (voir B 3.)
La deuxième étape du processus consiste à déterminer une pulsation (unité de temps) qui soit un diviseur commun " approximatif " des durées des différents groupes constitués en première étape. (La durée dun groupe est lintervalle de temps dans lequel se situent les notes et les accords qui le constituent.)
Le diviseur commun est nécessairement approximatif car pour quil ait de lintérêt, sa valeur ne doit pas être trop faible. Par exemple, nous dirons que 5 est un diviseur commun approximatif de 11, 15 et 19.
La méthode utilisée calcule la pulsation par un algorithme d'approximation (agcd) équivalent à l'algorithme développé à l'Ircam pour l'extraction de la fondamentale virtuelle dun spectre discret exprimé comme une liste de fréquences (voir description et figure ci-dessous). L'analogie utilisée fait correspondre la liste de fréquences à la liste de durées et la valeur de la fondamentale virtuelle à la valeur de la pulsation.
Description de lalgorithme agcd :
Entrées : values (durées des différents groupes) et tolerance (valeur de tolérance pour les approximations)
Corps de lalgorithme :
Lalgorithme de la fondamentale virtuelle.
A lissue de la deuxième étape, nous aurons donc déterminé une pulsation selon laquelle pourront sexprimer approximativement les durées des différents groupes. De façon à éliminer ce coté approximatif, nous allons ensuite modifier les tailles des groupes (par des opérations de compression et de dilatation) pour quelles soient des multiples parfaits de la pulsation trouvée.
Enfin, lors dune troisième étape, une quantification que nous appellerons " quantification locale " est effectuée, avec comme entrées la pulsation trouvée à la deuxième étape, les signatures (voir définition dans le glossaire musical) et la liste de durées. Cette quantification nintervient pas dans le cadre de la segmentation. Elle peut se faire par exemple à laide du module quantify.
Linterface que jai développé réalise les deux premières étapes, qui fourniront les entrées à la troisième étape. Linterface va maintenant être présentée.
B Une nouvelle interface graphique pour la quantification
La classe de linterface hérite dun éditeur musical (chord-seq) déjà implémentée sous Open-Music. Patchwork, Kant, Open-Music et léditeur Chord-seq seront décrits en chapitre 1.
Linterface propose alors de définir une ou plusieurs segmentations du flux musical à quantifier (matérialisé sous la forme de notes et daccords, comportant donc des durées, mais aussi des hauteurs, des intensités...). La segmentation consiste à déterminer des groupes de notes ou daccords par le positionnement de barres verticales (futures barres de mesure). Nous appellerons les frontières entre ces groupements des " séparations ". (cf. figure ci-dessus) Une segmentation contient donc un ensemble de séparations.
Les manipulations sur les segmentations et les séparations seront décrites au chapitre 2.
Une segmentation dun flux musical dans le nouvel éditeur de quantification.
Les séparations apparaissent sous la forme de barres verticales,
créant ainsi un découpage de la séquence.
Plusieurs méthodes de segmentation sont proposées, de la méthode la plus basique (reconnaissance de groupes commençant par des hauteurs ou des durées localement minimales ou maximales) aux méthodes plus complexes de reconnaissance de patterns, ou de répétitions (par exemple en utilisant le coefficient dauto-corrélation).
Ces méthodes seront décrites en 3.
PatchWork est un langage de programmation visuelle construit au dessus de CommonLisp [Steele90]. Un programme PatchWork consiste en un graphe orienté acyclique dont les noeuds sont des boîtes représentant des invocations de fonctions, et dont les arêtes (connections) représentent le passage de paramètres.
Les boîtes ont divers types :
- Lisp (toutes les fonctions du langage Lisp sont disponibles) ;
- Calculs (opérations arithmétiques, logiques, combinatoires, ensemblistes) ;
- Génération ou transformations de structures musicales (interpolation d'accords ou de profils mélodiques, construction de séries et de spectres, génération stochastique etc.) ;
- Editeurs de courbes et de partitions en notation musicale traditionnelle ;
- Midi (réception et envoi de données vers des synthétiseurs externes avec possibilités d'échelles en micro-intervalles) ;
- Contrôle de la synthèse sonore (pilotage des programmes de synthèse Csound et Chant).
Les étapes de la segmentation du quantificateur Kant
Les événements sonores (représentés par des notes) sont positionnés dans le temps, aux positions correspondant aux temps dattaque.
Les découpages (représentés par des symboles) se font sur les temps dattaques.
- le modèle fonctionnel
- le modèle objet
- le modèle par contraintes
- le modèle visuel
Ses principales caractéristiques sont :
- la réflexivité (il contient une représentation de lui-même).
- la méta-programmation, qui permet de considérer les classes comme objets à part entière, de façon à pouvoir définir de nouveaux " types " de classes.
- une gestion de la dualité entre le temps de calcul dun objet musical et le temps dexécution dune séquence musicale.
- une interface présentant à lutilisateur des objets musicaux prédéfinis permettant de gérer à la fois le son, les paramètres midi et la notation musicale.
La boite chord-seq.
Ses premières entrées sont respectivement :
- la référence de la classe chord-seq
- les hauteurs des notes
- les onsets (voir définition dans le glossaire musical)
- les durées
- les intensités
Léditeur de quantification chord-seq-seg dispose par rapport à chord-seq dune vue supplémentaire apparaissant sur la droite de léditeur, qui permet de définir et manipuler des segmentations. De plus, quatre sorties supplémentaires contiennent respectivement : la liste des méthodes de segmentation externes (voir 3.), le tempo et les signatures de la segmentation quantifiée en cours dans léditeur (si ils ont été définis lors de la phase de quantification proposée par léditeur), et une liste complète des paramètres définissant les segmentations. Cette dernière liste permet deffectuer des sauvegardes.
Léditeur chord-seq-seg.
Description de la vue :
2. Les manipulations graphiques dans léditeur chord-seq-seg
On peut distinguer deux étapes dans la manipulation de léditeur.
La première consiste à créer une segmentation, et à placer des séparations dans léditeur.
La deuxième étape consiste à rechercher un ou plusieurs tempo à partir de cette segmentation.
La segmentation :
Une fois la segmentation créé, on définit les séparations à la main (par un click sur lemplacement désiré dans le panel), ou à laide de méthodes (voir 3.).
1) la manipulation des segmentations
2) la manipulation des séparations
La recherche de tempo
Une fois la segmentation définie, la recherche de tempo seffectue en choisissant laction tempo du menu " action ".
Plusieurs tempi sont alors proposés. Le résultat de la quantification sajoute dans la liste des segmentations, sous le nom : " nom de la segmentation utilisée " concaténé à " -quant ".
La pulsation apparaît sous la forme de petites barres verticales sintercalant entre les séparations.
Le tempo et les signatures correspondant à lemplacement des séparations sont ajoutés aux paramètres de la segmentation-résultat.
Pour quils soient disponibles en sortie de léditeur, il faut que la segmentation-résultat soit sélectionnée.
Létape suivante de quantification peut alors se faire en connectant les sorties tempo et signature de léditeur aux entrées du module " quantify " décrit plus haut.
3. Des méthodes de segmentation (définition, utilisations)
Une méthode de segmentation est un algorithme définissant lemplacement des séparations sur un flux musical donné.
Plusieurs méthodes sont disponibles dans léditeur de quantification à travers le menu " methode ". En voici quelques-une :
Lun des apports de la nouvelle interface est que les utilisateurs ont maintenant la possibilité de définir leurs propres méthodes de segmentation au moyen des Patchs dOpen-Music, quil suffit ensuite de connecter à léditeur par lintermédiaire dune entrée prévue à cet effet (entrée Labstractions).
Ces patchs prennent la forme de lambda-abstractions. Ce sont donc des fonctions, définies graphiquement par lutilisateur, qui seront appliquées par léditeur au flux musical à quantifier.
(voir figure suivante)
La figure ci-dessus montre une abstraction définissant la fonction dauto-corrélation (patch carré). Elle sintègre à la boite chord-seq-seg (rectangle en bas à gauche) à laide dune connection matérialisée par un trait les reliant.
Une méthode de segmentation particulièrement intéressante pour la quantification de structures régulières va être présentée dans le chapitre suivant.
Cette méthode devrait en effet permettre denrichir la liste des possibilités de segmentation automatique du nouvel éditeur que je viens de présenter.
IV Une méthode de segmentation par le coefficient dauto-corrélation
Dans ce chapitre, on étudiera les applications du coefficient dauto-corrélation à la quantification rythmique par segmentation.
Après avoir donné la formule du coefficient (partie A), une première utilisation du coefficient [brown94] sera analysée. (partie B)
Puis, après avoir soulevé les problèmes de traitement des structures régulières déformées, nous concluerons ce rapport par les possibilités offertes par les analyses de Peter Desain [Desain Siebe]. (chapitre V)
A Le coefficient dauto-corrélation
La formule du coefficient dauto-corrélation permet, étant donné une suite X(n), de comparer deux sous-suites extraites x[0..N] et x[m..m+N] de même longueur N, décalées de m éléments, afin de déterminer leur corrélation A[m] suivant la formule :
Plus la valeur de A[m] sera grande et plus la corrélation sera forte.
Généralement, on se donne une sous-suite de référence x[0..N] que lon compare à plusieurs autres sous-suites x[m..m+N] en faisant varier m afin de déterminer celles qui lui sont le plus corrélées.
Les coefficients A[m] obtenus pour chaque valeur de m peuvent alors être visualisés dans un graphe que nous appellerons graphe de corrélation.
Les résultats sont normalisés en divisant chaque A[m] par A[0] (qui est la plus forte valeur que lon puisse obtenir). Tous les coefficients sont alors compris entre -1 et 1.
(sur les graphiques, les valeurs sont multipliées par un coefficient 10000)
Un graphe dauto-corrélation
En abscisse, les éléments de la suite des coefficients
En ordonnée, les valeurs du coefficient
Un pic à labscisse m signifie que x[m..m+N] est fortement corrélée à x[0..N]
B Une première interprétation du coefficient
Judith Brown [Brown94] nous propose de dégager le rythme de certains fragments musicaux contenant de nombreuses répétitions et régularités, en sappuyant sur le calcul du coefficient dauto-corrélation appliqué à des inter-onset (différence temporelle entre deux occurrences consécutives dévénements sonores). Cette méthode sera présentée au chapitre III.
Elle nous a intéressés dans la perspective de lintégrer au nouveau module de quantification. En effet, lancien module de quantification (KANT [Agon 94]) ne permettait pas une analyse fine des structures régulières, sa fonction initiale étant lanalyse de structures complexes.
1) La détermination des barres de mesure et de la pulsation
Judith Brown [Brown94] nous propose lanalyse suivante:
A partir dune suite X(n) dinter-onsets (durées séparant deux attaques dévénements sonores consécutifs) extraite dun enregistrement sonore comportant des régularités, étant donnée la sous-suite x[0..N] qui servira de sous-suite de référence :
Lanalyse du graphe des coefficients dauto-corrélation A[m] (corrélant x[0..N] à x[m..m+N]) permet de déterminer un emplacement des barres de mesures* dans la partition*, et parfois fournit une valeur pour la pulsation*. (* voir les définitions en annexe)
En effet, le coefficient met en valeur des régularités et des répétitions qui sont souvent indiquées par des mesures dans la notation traditionnelle.
Lemplacement des barres de mesures et la valeur de la pulsation ont une grande influence sur
la procédure de quantification, comme nous lavons vu dans les chapitres précédants.
En fait, avec ces deux paramètres (emplacement des mesures et pulsation), il est facile de quantifier X(n) pour aboutir à une représentation rythmique.
Une représentation rythmique dun extrait musical
Les mesures apparaissent sous la forme de barres (suivies de 4 4) qui découpent la séquence, et la pulsation, notée en haut à gauche (elle vaut 120 dans lexemple), sert dunité temporelle.
Voyons plus en détail la procédure danalyse :
Judith Brown propose de détecter lemplacement de la première barre de mesure du fragment musical étudié.
Cet emplacement est supposé correspondre au premier pic localement maximal rencontré dans le graphe dauto-corrélation lorsquon le parcourt de gauche à droite.
Un pic situé à la valeur x est dit localement maximal lorsquil est maximal dans lintervalle
[0 2x]
Ainsi, sur le graphe dauto-corrélation suivant, le pic localement maximal est situé à la valeur 500, et doit correspondre à lemplacement dune barre de mesure.
En ordonnée, les valeurs du coefficient dauto-corrélation
La procédure exige le respect de certaines contraintes :
Les deux sous-suites à comparer doivent respecter certaines contraintes, de façon à ce que le coefficient ait un sens.
Tout dabord, comme nous lavons remarqué au paragraphe précédant, les éléments de X(n) doivent être du même ordre de grandeur. X(n) ne sera donc pas strictement monotone.
De plus, deux sous-suites à comparer doivent avoir un certain nombre dindices en commun.
En utilisant la notation de la formule, cela se traduit par : m < N
La limite que nous nous fixerons sera de au moins la moitié des indices en commun.
Donc m <= N/2
Ce critère est arbitraire, lidée étant que le nombre déléments en commun doit être au moins supérieur ou égal aux nombre des éléments restants.
Enfin, la taille des sous-suites doit par ailleurs être suffisamment grande pour que les comparaisons soient significatives, mais ce critère est bien difficile à préciser, et dépendra de chaque cas de figure.
La fonction de calcul du coefficient dauto-corrélation
telle quelle apparait dans OpenMusic
(boutons au-dessus de la boîte auto-correlation)
De gauche à droite:
- la suite de durées exprimée dans léchelle de temps dunité 20ms
- lunité de léchelle de temps (en ms)
- la longueur (en s) des sous-suites à considérer
- la taille (en s) de la suite initiale à analyser
Voyons maintenant les résultats de lanalyse appliquée à deux exemples.
2) Lanalyse dune structure régulière
Un seul exemple sera présenté dans le but de faciliter les comparaisons entre les différentes analyses. Ainsi, pour toutes les analyses, nous prendrons comme support le début de la marche turque de Mozart.
De plus, les tests effectués ont montré que la fonction dauto-corrélation indique assez souvent lemplacement de la première pulsation, et non celle de la mesure. Nous avons donc modifié certaines règles :
Le premier pic localement maximal détecté par la fonction dauto-corrélation sera interprété comme étant la pulsation, et le deuxième comme étant la barre de mesure.
Quelques approximations seront alors nécessaires.
Les pics recherchés ne répondent pas toujours aux critères précédents.
Nous considérerons donc quun pic est localement maximal lorsquil est maximal dans lintervalle [0 , 2(x-approx1)] et lorsque les pics situés dans [2(x-approx1), 2x] ne lui sont pas supérieurs de approx2.
Approx1 et approx2 seront des valeurs dapproximations.
Lanalyse :
Appliquons maintenant la méthode dauto-corrélation sur un extrait de la marche turque de Mozart, issu dun fichier Midi comportant des durées parfaites. Les données ne proviennent donc pas dune interprétation, mais ont été rentrées " à la main " dans le fichier Midi à partir de la partition.
Lanalyse du graphe dauto-corrélation détecte deux pics localement maximaux au sens où nous lavons définit plus haut (valeurs 250 et 500)
Le premier pic est interprété comme étant la pulsation, et le deuxième comme étant la barre de mesure, ce qui est satisfaisant.
Le tempo trouvé est 120 à la noire, et la signature 2/4.
Graphe dauto-corrélation issu de lanalyse dun fragment de la marche turque de mozart
A partir de ces résultats, il est possible dopérer une quantification à laide du module quantify, auquel on aura rentré les tempo et la signature trouvée. Les résultats seront satisfaisants :
3) Lanalyse dune structure régulière déformée
Etudions maintenant le comportement du coefficient appliqué au même fragment mais déformé par une pondération aléatoire des durées, ceci dans le but de se rapprocher de ce que pourrait être un fragment musical issu dune exécution.
Les valeurs du graphe dauto-corrélation sont nettement moins significatives, pour ne pas dire insignifiantes, puisque le tempo trouvé correspond rarement à la valeur attendue.
Graphe dauto-corrélation calculé à partir du fragment déformé
Ceci nous procure une information assez importante sur les limites de la méthode telle que nous lutilisons.
Deux solutions soffrent à nous :
La première solution sera détaillée en conclusion.(chapitre V)
Voyons donc comment régulariser les déformations.
Pour cela, déterminons les informations à conserver sur la structure du fragment.
Considérons que le fragment est réduit à une suite dinter-onsets (différences entre deux évènements sonores consécutifs).
Etant donné que nous cherchons à nous rapprocher dune structure régulière, il nous paraît satisfaisant de réduire linformation disponible en affectant les valeurs des inter-onsets situés dans un même ambitus à une valeur moyenne représentative.
fig1
Graphe représentant les inter-onsets issus du fragment déformé. En ordonnée, les inter-onsets.
fig2
Graphe dinter-onsets issu de la fonction de régularisation
fig3
Graphe dinter-onsets issu du fragment parfait.
Le graphe régularisé (fig2) en est très proche.
Ainsi, nous aimerions ne conserver que la forme globale du graphe (fig1.), cest à dire revenir au graphe (fig2.).
Pour cela, une fonction de régularisation a été crée.
Cette fonction partage laxe des ordonnées en un nombre de valeurs précisées par lutilisateur, et pour chaque valeur crée un groupe de toutes les durées de la suite initiale appartenant à lintervalle définit par :
[valeur - (valeur * pourcentage rentré par lutilisateur) &
valeur + (valeur * pourcentage rentré par lutilisateur)].
Les groupes seront ensuite filtrés de manière à ce quaucun groupe nempiète sur un groupe voisin, cest à dire quaucune valeur dun groupe nappartienne à un autre groupe.
Les critères utilisés pour filtrer sont la taille du groupe (de deux groupes ayant des éléments communs on choisira le plus grand), puis en cas dégalité, le groupe dont la moyenne des valeurs est la plus proche de la valeur initiale ayant servi à sa création est retenu. Enfin, si les groupes ne sont toujours pas séparés, ils sont abandonnés.
Lavantage de la méthode sur les méthodes habituelles est que le nombre de groupes obtenus nest pas choisi au départ, ce qui permet de limiter les indications fournies en entrée de la fonction.
On attribuera ensuite à ces groupes de valeurs une même valeur représentative du groupe. Cette valeur pourra être une simple moyenne entre les valeurs du groupe, ou la valeur initiale ayant servit à créer le groupe.
Les entrées de la fonction dapproximation sont :
Ainsi, la structure globale du graphe irrégulier sera mise en valeur (figure 1). Elle sera assez proche de celle du graphe parfait (figure 3), mais pas tout à fait, ce qui fait que les résultats ne seront pas toujours satisfaisants.
Le tempo trouvé par la méthode du coefficient est correct dans 80% des cas.
Pour améliorer les résultats, il faudrait par exemple calculer le tempo sur plusieurs parties de la séquence, puis faire une moyenne entre les différentes valeurs trouvées. On pourrait aussi rechercher à régulariser parfaitement le graphe.
Ceci est en fait indispensable pour obtenir des résultats satisfaisants lors de la " quantification locale ". Les résultats montrent en effet que des petites variations dans les durées suffisent à produire un résultat trop complexe lors de cette étape.
Graphe dauto-corrélation calculé à partir de la suite dinter-onsets régularisée
Les pics peuvent à nouveau être interprétés pour déterminer les valeurs de tempo et les signatures
La méthode dauto-corrélation, qui propose un interprétation en terme de pulsations et mesures des pics du graphe dauto-corrélation, est donc assez performante mais elle nécessite le réglage de plusieurs paramètres, et montre rapidement ses limites dans le cas de structures irrégulières ou déformées.
On peut retirer des analyses un ensemble de conclusions :
Une façon " dobliger " la méthode à ne prendre en compte que des valeurs antécédentes au point darticulation, rendant la méthode utilisable en temps réel, pourrait sinspirer de [DeSi]. Cet article propose par ailleurs une utilisation du coefficient dauto-corrélation pour détecter une pulsation en temps réel. Elle sera soulignée en conclusion.
V Conclusions : Vers une mesure de lexpressivité
La méthode décrite plus haut nous a montré ses limites dans lanalyse de structures irrégulières. Une réponse à ses problèmes peut sinspirer de larticle de Peter Desain [DeSi].
La méthode quil décrit na pas été implémentée sous Open-Music. Seule une fonction que jai écrit en lisp a été testée, et semble donner des résultats convaincants. La méthode pourra donc faire lobjet de développements futurs.
Elle propose dutiliser le coefficient dauto-corrélation comme une mesure de lexpressivité. Par expressivité, nous entendons les variations introduites par linterprète par rapport à la partition.
En effet, les interprétations dune oeuvre musicale ne sont jamais exactement fidèles à la partition. Sil est possible de produire des hauteurs exactes (avec un piano, par exemple), les durées et les intensités sont des paramètres beaucoup plus variables. Lanalyse rythmique dune interprétation doit donc prendre en compte les écarts observés par rapport à la notation de la partition.
Pour cela, Peter Desain [DeSi] propose dadopter un système de fenêtrage. Le calcul du graphe dauto-corrélation seffectuerait ainsi dans une fenêtre dont la taille dépendra du contexte rythmique local à cette fenêtre, qui serait déplacée, pour chaque nouveau calcul, le long du fragment rythmique étudié.
Ainsi, les variations dues aux déformations (continues) de la structure rythmique seront locales, (seules les variations comprises dans la fenêtre seront prises en compte), et donc assez faibles pour ne pas perturber le calcul du coefficient dauto-corrélation.
La fenêtre pourra avoir un pas de déplacement constant sur la séquence étudiée. Pour chaque fenêtre considérée, le calcul du graphe dauto-corrélation pourra, par la méthode du B., fournir une valeur de tempo.
Pour chaque nouvelle fenêtre, une valeur de tempo sera donc trouvée, ce qui permettra détablir un graphe de tempo sur lensemble de la séquence étudiée. Par ses variations, ce graphe mettra en évidence les irrégularités de la séquence.
Un problème immédiat déjà mentionné dans la partie B., est que le tempo trouvé sera plutôt parfois la marque dune demi/mesure, ou bien dune mesure. Ainsi, une valeur de 60 suivie dune valeur de 130 ne signifie pas toujours un brusque changement de tempo, mais doit être interprété comme une légère accélération de 60 à 65 (= 130 / 2).
Actuellement, je ne dispose pas de méthodes pour effectuer ces distinctions.
Cependant, le principe me semble extrêmement intéressant car il permet danalyser la séquence rythmique pas à pas, tout comme lêtre humain pourrait le faire en écoutant une performance musicale.
En ce qui concerne léditeur de quantification, le stage a aboutit à une librairie utilisable dans Open-Music.
Cette librairie, largement inspirée du quantificateur " Kant ", offre un maniement plus souple des segmentations, et permet à lutilisateur de personnaliser les méthodes de segmentation par le biais des lambda-abstractions.
Il faudra maintenant intégrer à léditeur de nouvelles procédures de segmentations.
En sons sens usuel, celui que lui donne la théorie classique, la mesure relève d'un agencement rythmique plus rigoureux encore, défini avant tout par ses périodicités et ses
symétries : celles-ci sont concrétisées graphiquement dès le XVIIè siècle par les barres de mesures réalisant un compartimentage du flux rythmique en subdivisions de durées
égales ou "isochrones" : les mesures.
Par extension, on donne également ce nom à la portion de musique comprise entre deux barres consécutives.
ex : une mesure à 3/8 signifie qu'il y a 3 temps dans chaque mesure et que le temps a une durée égale à la croche.
Dans ce rapport, on emploie indifféremment le terme de tempo ou pulsation.
Le rythme comporte l'articulation des actes musicaux successifs ; il est donc la manière d'être ou la forme temporelle de la musique, le mode particulier selon lequel celle-ci
réalise son existence dans le temps.
Au sens étroit, le rythme est l'ordre et la proportion des durées, relativement longues ou brèves. Au sens large, il est l'ensemble du mouvement musical.
La notation utilise deux chiffres (par exemple 4/4, 8/4, 2/8), le premier est le nombre de pulsations, le deuxième est le rythme représentatif de la durée dune pulsation (par exemple, 4 est une noire, 8 est une croche..) Une signature 2/4 signifie quil y a 2 noires dans une mesure.
Dès que se dégage la notion d'unité de temps (voir temps), c'est de la valeur de celle-ci que va dépendre le tempo. Il peut être indiqué par une indication expressive (ex :
andante, allegro ...) ou par le temps métronomique.
ex : q = 60 signifie qu'il y a 60 noires dans une minute ; la noire dure donc une seconde.
Dans une mesure à 4/4, le temps = la noire d'où le temps (ou pulsation) a une durée de une seconde.
Le temps métronomique indiqué au début d'une page musicale ne constitue qu'un tempo moyen à l'intérieur duquel peuvent intervenir accelerando ou rubato.
[Agon 98] A. Agon. " OpenMusic : Un langage visuel pour la composition musicale assistée par ordinateur " Thèse, IRCAM-Paris VI, 1998.
[Agon 94] Agon, A. " KANT: Une critique de la quantification pure. " Mémoire de DEA Informatique, Université de Paris XI, 1994.
[AAFR 94] Agon C., Assayag G., FinebergJ.,Rueda C. , ICMC 94. Aarhus, 1994. " Kant : a Critique of Pure Quantification "
[Brown 1993] Judith C Brown "Determination of the meter of musical scores by autocorrelation " J.Acoust Soc Am 94 (4) October 1993
[BrownPuckette 89] " Calculation of a narrowed autocorrelation fonction " J Acoust Soc Am 85 1595-1601
[Camb 98] Cambouropoulos E. " Towards a General Computational Theory of Musical Structure " The university of Edinburgh, Faculty of Music and Department of Artificial Intelligence, 1998.
[Dannenberg 87] Dannenberg R B & Mont-Reynaud B " Following an improvisation in real time " Proceedings of the 1987 International Computer Music Conference. Computer Music Association.
[Desain Siebe] Peter desain, Siebe de Vos . " Auto-correlation and the study of Musical Expression "
[Desain Honing 94] Desain P & Honing H " Rule-based models of initial beat induction and an analysis of their behavior " In proceedings of the 1994 International Computer Music Conference 80-82. San Francisco :International Computer Music Association
[Desain Honing 92] Desain, P., & Honing, H. (1992) "The quantization problem: traditional and connectionist approaches. " In M. Balaban, K. Ebcioglu, & O. Laske (eds.), Understanding Music with AI: Perspectives on Music Cognition. 448-463. Cambridge: MIT Press.
[Honing 93] Honing, H. (1993) " Issues in the representation of time and structure in music " Contemporary Music Review, 9, 221-239.
[Huron 90] D.Huron Book review of Music as Cognition by ML Serafine Psychology of Music.
[Large ] Edward W.Large, John F.Kolen " Resonnance and the Perception of musical meter " Connection Science, 6 (1) 177-208
[Lerdahl Jackendoff 83] " A generative theory of tonal music " Cambridge : MIT press.
[Longuet higgins 87] " Mental Process " Cambridge MIT Press.
[LRD 93] M. Laurson, C. Rueda, J. Duthen. " The Patchwork Reference Manual " IRCAM, 1993
[Mazzola 97] Guerino Mazzola " inverse performance theory " gbm@presto.pr.net.ch
[Mc Adams 89] Steve Mc Adams " Physiological constraints on form-bearing dimensions in music. " Music and the cognitive sciences, Contemporary Music review. 4(1)
[Palmer Krumhansl 90] " Mental representation of musical meter " Journal of Experimental Psycology : Human Perception & Performance.
[Rosenthal 92] " Emulation of human rhythm perception " Computer Music journal 16, 64-76
[Tanguiane 94] A.S Tanguiane " A principle of correlativity of Perception and its application to Music Recognition " (Music Perception, 1994, vol11 n°4 465-502)
1) la classe de léditeur graphique et une de ses méthodes
La classe de léditeur et ses champs (les 3 premiers champs sont publics car ils ont une entrée initarg) :
Une méthode de suppression de segmentation :
2) la fonction dauto-corrélation décrite en V
; méthode principale qui constituera un module dOpen-Music