1524 lines
73 KiB
TeX
1524 lines
73 KiB
TeX
% Intro
|
||
% Méthodologie
|
||
% Résultats
|
||
% A?rmoire
|
||
% Discussion
|
||
|
||
\section{Introduction}
|
||
\setcounter{page}{1}
|
||
% Kickstart
|
||
Ce mémoire est issu de la rencontre entre l'\ircam\ (Institut de Recherche
|
||
et Coordination Acoustique/Musique) et le \lps\ (Laboratoire de Physique des
|
||
Solides) autour d'un sujet de recherche sur la sonification de mousses liquides.
|
||
Rédigé en conclusion d'un stage de recherche de Master 2 au \mpri, il présente
|
||
le cadre interdisciplinaire et les pistes de réflexion empruntées lors de ce
|
||
travail exploratoire.
|
||
|
||
Les mousses sont un sujet d'étude du \lps. Les physiciens ont le choix entre
|
||
les mesures de plusieurs instruments et c'est pourquoi la découverte du/des
|
||
paramètre(s) décrivant au mieux le comportement de ce système est une question
|
||
non triviale ; ce/ces paramètre(s) est/sont noyé(s) dans de multiples mesures
|
||
portant sur de nombreux autres paramètres. L'usage du son et notamment de la
|
||
musique pour détecter des propriétés des mousses liquides est une approche
|
||
novatrice dans ce domaine. L'équipe Représentations Musicales de l'\ircam\ a
|
||
développé des environnements informatiques originaux intégrant des concepts
|
||
théoriques modélisant l'analyse musicale à l'aide de structures mathématiques.
|
||
Ces environnements musicaux peuvent être appliqués au cas de la sonification des
|
||
systèmes complexes.
|
||
|
||
Plus précisément, ce stage prend pour hypothèse que la musique peut aider le
|
||
processus de sonification (on parlera ainsi de « musification » des données)
|
||
et a pour objectif d'apporter des réponses à deux questions qui sont la
|
||
qualification de l'ordre spatial et temporel dans une mousse liquide en deux
|
||
dimension et de valider cette approche.
|
||
|
||
% De quoi on va parler
|
||
\medskip
|
||
Nous commencerons par présenter succintement le domaine de la sonification
|
||
scientifique, l'idée de la musification, le système étudié et quelques
|
||
notions musicales nécessaires. Nous aborderons ensuite les liens entre une
|
||
représentation géométrique de l'espace des hauteurs en musique, connue comme
|
||
le \emph{Tonnetz}, et des outils algébriques tel que le graphe de Cayley puis
|
||
nous exposerons quelques mappings mis en œuvre pendant ces cinq mois. Nous
|
||
continuerons avec des détails sur l'implémentation de ces mappings, puis nous
|
||
parlerons de la validation des données obtenues pour clore sur les perspectives
|
||
de ce stage et leurs implications.
|
||
|
||
\subsection[De la sonification scientifique]{De la sonification
|
||
scientifique\ldots}
|
||
\label{subsec:sonification}
|
||
Quelle loi gouverne la chute d'un corps ? D'après \cite{drake_galileo_1990},
|
||
Galilée aurait construit et utilisé une rampe (figure~\ref{fig:rampe-full})
|
||
inclinée dotée de clochettes montées sur des portails munis de marteaux, afin
|
||
de mettre en évidence une loi quadratique. Sur cette rampe on laisse librement
|
||
rouler une bille qui, pendant sa descente, fait sonner les clochettes
|
||
(figure~\ref{fig:rampe-detail}) : la phrase rythmique entendue dépend de la
|
||
position de chaque portail sur la rampe. En déplaçant les portails de telle
|
||
manière à ce que cette phrase soit périodique, on peut déterminer
|
||
l'accélération de la bille en mesurant leur position sur la rampe.
|
||
|
||
Cette expérience pratique utilisant le son comme descripteur d'un phénomène
|
||
fait partie de la sonification scientifique. On peut citer des outils
|
||
scientifiques actuels reposant sur le même principe que la rampe de Galilée :
|
||
le compteur Geiger, le radar de recul (avec des « bip » de plus en plus
|
||
rapprochés quand la distance à l'obstacle diminue).
|
||
|
||
\begin{figure}[p]
|
||
\centering
|
||
\subfloat[Ensemble]{
|
||
\includegraphics[height=.25\textheight]{img/galileo-inclined-plane.jpg}
|
||
\label{fig:rampe-full}}
|
||
\qquad
|
||
\subfloat[Détail]{
|
||
\includegraphics[height=.25\textheight]{img/galileo-inclined-plane-detail.jpg}
|
||
\label{fig:rampe-detail}}
|
||
\caption{Rampe de Galileo Galilei (au Museo Galileo de Florence)}
|
||
\label{fig:rampe}
|
||
\end{figure}
|
||
|
||
\medskip
|
||
Le domaine de la \emph{visualisation} de données
|
||
\cite{friendly_milestones_2002} a une histoire riche et a pris beaucoup
|
||
d'importance avec l'arrivée des premiers ordinateurs. Il a pour but de mettre
|
||
en images un ensemble de données, par exemple des clusters dans un nuage de
|
||
points, pour mettre en avant les relations existantes dans l'ensemble de
|
||
données considéré.
|
||
|
||
La sonification scientifique est un domaine plus jeune et en plein développement
|
||
depuis les vingt dernières années, notamment grâce à la création de la
|
||
conférence ICAD (pour \emph{International Community for Auditory Display}) en
|
||
1992. Ce champ de recherche intrinsèquement pluridisciplinaire est à mettre en
|
||
parallèle de la visualisation de données. \\ La sonification est définie dans
|
||
\cite{kramer_sonification_1999} en ces termes~:
|
||
|
||
\begin{quote}
|
||
Sonification is the transformation of data relations into perceived relations
|
||
in an acoustic signal for the purposes of facilitating communication or
|
||
interpretation.
|
||
\end{quote}
|
||
|
||
Pour faire le lien entre données à analyser et son, quelques techniques ont été
|
||
référencées dans~\cite{hermann_sonification_2011} :
|
||
\begin{description}
|
||
\item [Audification] Cette technique consiste à écouter le signal
|
||
brut ou déformé par traitement analogique (filtrage passif,
|
||
accélération, ralentissement, \ldots), l'exemple emblématique étant
|
||
\cite{speeth_seismometer_1961}, dans lequel Speeth montre que l'on peut
|
||
distinguer, en écoutant les données séismométriques, la détonation d'un explosif
|
||
d'un tremblement de terre ;
|
||
\item [Auditory Icons et Earcons] Ce sont des sons discrets utilisés pour les
|
||
évènements discrets (comme les alarmes), le premier consiste à jouer des sons
|
||
préenregistrés et le second peut être l'agencement de séquences synthétisées
|
||
connues pour former des « mots » ;
|
||
\item [Model Based Sonification] Cette méthode consiste à créer un
|
||
\emph{modèle} issu des données du système, interagir avec ce modèle et
|
||
écouter en temps réel le son généré afin de tirer des informations du système
|
||
\cite{hermann_listen_1999} ;
|
||
\item [Parameter Mapping Sonification (PMS)] Avec cette approche, on relie les
|
||
paramètres du système aux paramètres du rendu sonore.
|
||
\end{description}
|
||
Notre travail s'inscrit dans la dernière catégorie. Traditionnellement, un
|
||
paramètre contrôlant la production d'un son est \emph{lié} à un des paramètre
|
||
du système étudié. Par exemple, nous pourrions relier un paramètre sonore comme
|
||
la fréquence d'un son à un paramètre de notre système comme le nombre de bulles
|
||
évoluant dans le temps. La variation des fréquences perçues nous renseigne
|
||
ainsi sur l'évolution du nombre de bulles au cours du temps. Cette méthode
|
||
plutôt intuitive souffre d'un défaut : il existe beaucoup de mappings
|
||
possibles.
|
||
|
||
\begin{figure}[p]
|
||
\centering
|
||
\pgfdeclarelayer{background}
|
||
\pgfsetlayers{background,main}
|
||
\begin{tikzpicture}[align=center, every node/.style={auto}]
|
||
\node (phystate) {État local du système};
|
||
\node (phyobs) [below=of phystate] {Observables};
|
||
\node (sonrel) [right=of phystate] {Relations sonores\\(analogiques)};
|
||
\node (musrel) [above=of sonrel] {Relations musicales\\(symboliques)};
|
||
\node (sonobs) [below=of sonrel] {Objets sonores};
|
||
\node (phyrel) [above=of phystate] {État global du système\\Lois du système};
|
||
\node (qt) at (barycentric cs:musrel=1,phyrel=1) [black,yshift=1cm] {?};
|
||
\node (qb) at (barycentric cs:phyobs=1,sonobs=1)
|
||
[black,yshift=-1cm,font=\scriptsize] {mappings\\sonification/musification};
|
||
|
||
\draw[thick,->, dotted] (phyobs) -- (phystate);
|
||
\draw[thick,->, dotted] (phystate) -- (phyrel);
|
||
\draw[black,thick,->] (phyobs) |- (qb) -| (sonobs);
|
||
\draw[black,thick,font=\scriptsize,->] (sonobs)
|
||
to node [swap,text width=21mm] {perception (IHM)} (sonrel);
|
||
\draw[black,thick,->,dotted] (sonrel) to node [swap] {?} (phystate);
|
||
\draw[black,thick,->] (sonrel) to (musrel);
|
||
\draw[black,thick,->] (musrel.north) |- (qt) -| (phyrel.north);
|
||
|
||
\begin{pgfonlayer}{background}
|
||
\node[draw=gray,dashed,thick,fill=gray!10,inner sep=5mm,xshift=3mm,yshift=-4mm,
|
||
fit=(phystate) (sonrel) (sonobs) (phyobs) (qb)] {};
|
||
\end{pgfonlayer}
|
||
\end{tikzpicture}
|
||
|
||
\caption{Place de la musification dans le cycle des transformations pour la
|
||
recherche de relations dans un système complexe par sonification (la partie
|
||
encadrée correspond à une PMS classique, tandis que le reste se rapporte à la
|
||
musification)}
|
||
\label{fig:dico}
|
||
\end{figure}
|
||
|
||
En général on ne peut pas passer facilement des observables d'un système
|
||
aux lois les régissant et même si au moins une méthode automatique existe
|
||
\cite{schmidt_distilling_2009}, elle reste pour l'instant limitée à des cas
|
||
particuliers. Il est alors intéressant de passer par une sonification du
|
||
système. En utilisant la PMS, on donne une représentation sonore aux observables
|
||
de notre système qui est perçue par le système auditif comme un objet sonore
|
||
dont on peut extraire des caractéristiques ou des relations. Ces relations
|
||
sonores sont un lien direct avec les lois du système.
|
||
|
||
%Outils et thèse Vogt
|
||
Le domaine de la sonification scientifique en physique est bien détaillé
|
||
dans \cite{vogt_sonification_2010} et il existe plusieurs
|
||
outils et environnements pour la recherche de relations par
|
||
PMS \cite{candey_xsonify_2006} \cite{pauletto_toolkit_2004}
|
||
\cite{walker_sonification_2003}, cependant aucun ne tirent réellement parti du
|
||
côté fortement structurel de la musique. Pourtant, la musique a de réels atouts
|
||
au sein de la sonification et c'est pourquoi nous proposons de dépasser le
|
||
cadre de la sonification pour aller vers la musification des données, comme
|
||
illustré par le schéma en figure~\ref{fig:dico}.
|
||
|
||
\subsection[À la musification]{\ldots\ à la musification}
|
||
Une approche de notre problème par les techniques de sonification classiques
|
||
nous semble limitée car elle passe outre la forte composante \emph{strucurelle}
|
||
de la musique. Nous explorons la voie de la \emph{musification}, une extension
|
||
naturelle de la PMS.
|
||
% C'est une approche géométrico-algébrique qui
|
||
% cherche à combler le manque de géométrie dans les techniques de sonification
|
||
% usuelles, donnée pourtant intéressante lors de l'étude de systèmes physiques
|
||
% complexes ayant une organisation spatiale.
|
||
Elle apporte à la sonification :
|
||
\begin{itemize}
|
||
\item une structure hiérarchique claire (note, mesure, phrase, \ldots) et
|
||
notamment multi-échelle,
|
||
\item une meilleure analyse des régularités, des symétries et
|
||
\item une « facilité » de traitement auditif par la réutilisation d'un
|
||
background musical connu.
|
||
\end{itemize}
|
||
La musification est adaptée à l'analyse des systèmes complexes, où l'on veut
|
||
traiter au moins deux échelles simultanément : l'échelle locale (bulle) et
|
||
l'échelle globale (mousse). Par ailleurs, la musification peut s'appuyer sur
|
||
des approches et outils géométriques qui sont aussi utilisés dans l'analyse des
|
||
systèmes complexes physiques : symétries, organisation spatiale, \ldots
|
||
|
||
C'est tout un univers formel (§~\ref{subsec:music}) qui vient se greffer à
|
||
la PMS et nous permet de \emph{dépasser} la sonification pour aller vers la
|
||
musification. Nous utilisons ces observations pour musifier un système complexe
|
||
physique, les mousses liquides en deux dimensions.
|
||
|
||
\subsection{Système étudié : les mousses liquides}
|
||
\label{subsec:mousses}
|
||
|
||
\begin{figure}[p]
|
||
\centering
|
||
\subfloat[Désordonnée]{
|
||
\includegraphics[width=.3\textwidth]{img/foam1}
|
||
\label{fig:desordonnee}}
|
||
\quad
|
||
\subfloat[Partiellement désordonnée]{
|
||
\includegraphics[width=.3\textwidth]{img/foam2}
|
||
\label{fig:part-des}}
|
||
\quad
|
||
\subfloat[Régulière]{
|
||
\includegraphics[width=.3\textwidth]{img/foam3}
|
||
\label{fig:reguliere}}
|
||
|
||
\caption{Différentes organisations spatiales d'une mousse en deux dimensions}
|
||
\label{fig:mousses-space}
|
||
\end{figure}
|
||
|
||
Notre objet d'étude est un système complexe relativement bien connu des
|
||
physiciens du \lps\ d'Orsay : il s'agit des mousses liquides en deux dimensions
|
||
(figure~\ref{fig:mousses-space} et figure~\ref{fig:mousses-time}). Une mousse
|
||
liquide est un mélange liquide-gaz, par exemple de l'eau savonneuse et de
|
||
l'air, constitué de poches de gaz (bulles) dans le liquide. Les interfaces
|
||
sont constituées de molécules à la fois hydrophobes et hypdrophiles à travers
|
||
lesquelles, suivant la pression, le gaz d'une bulle passe à une autre. Au cours
|
||
de l'évolution temporelle de la mousse, certaines bulles grossissent et d'autres
|
||
diminuent de volume, jusqu'à disparaître.
|
||
|
||
Si le comportement de ces mousses liquides est aujourd'hui bien connu, il n'en
|
||
a pas toujours été ainsi. Il a fallu plusieurs années de recherche pour isoler
|
||
le «~bon~» paramètre parmi tous, c'est-à-dire celui le plus à même de décrire le
|
||
comportement du système. L'hypothèse qui motive ce stage est que cette recherche
|
||
peut être menée plus efficacement grâce à la musification du système.
|
||
%
|
||
\begin{figure}[p]
|
||
\includegraphics[width=\textwidth]{img/foam-coarsening}
|
||
\begin{tikzpicture}[xscale=\textwidth/2cm]
|
||
\draw[|-to] (0,0) -- node[midway,fill=white] {temps} (2cm,0);
|
||
\end{tikzpicture}
|
||
\caption{Différents états de l'évolution temporelle d'une mousse en deux
|
||
dimensions à partir d'un état de type désordonné (figure~\ref{fig:desordonnee})}
|
||
\label{fig:mousses-time}
|
||
\end{figure}
|
||
%
|
||
\begin{figure}[p]
|
||
\centering
|
||
\includegraphics[width=.8\textwidth]{img/foam-time}
|
||
\caption{Graphe de l'évolution temporelle de l'aire moyenne
|
||
normalisée des bulles d'une mousse liquide en deux dimensions (de
|
||
\cite{drenckhan_seminaire_2012})}
|
||
\label{fig:mousses-graph}
|
||
\end{figure}
|
||
%
|
||
Deux questions se posent alors :
|
||
\begin{enumerate}
|
||
\item{Peut-on écouter le degré d'ordre de l'organisation spatiale du système ?}
|
||
Par exemple, est-il possible d'avoir des mélodies caractéristiques de l'état
|
||
\subref{fig:desordonnee}, \subref{fig:part-des} et \subref{fig:reguliere} de la
|
||
figure \ref{fig:mousses-space}, permettant de les distinguer ?
|
||
\item{Peut-on écouter les épisodes catastrophiques lors de l'évolution
|
||
temporelle du système ?} Par exemple, est-il possible d'avoir des mélodies
|
||
ayant des variations fortes correspondantes aux épisodes catastrophiques, les
|
||
mettant en évidence ?
|
||
\end{enumerate}
|
||
|
||
Ces deux questions ont orienté notre exploration lors de la
|
||
sonification/musification du système. La première est illustrée par les trois
|
||
états de la figure \ref{fig:mousses-space} ; la seconde est illustrée par les
|
||
états en fonction du temps de la figure \ref{fig:mousses-time} et le graphe
|
||
de l'évolution temporelle d'un paramètre de la figure \ref{fig:mousses-graph}
|
||
(ces trois figures proviennent de \cite{drenckhan_seminaire_2012}). Dans ce
|
||
graphe, on observe l'évolution de l'aire moyenne des bulles au cours du temps.
|
||
On peut noter trois moments importants~:
|
||
\begin{enumerate}
|
||
\item une phase initiale : le système semble statique du point de vue du
|
||
paramètre représenté ;
|
||
\item une phase intermédiaire : on trouve plusieurs marches à chaque épisode
|
||
catastrophique et ils sont difficiles à trouver quand on ne connaît pas le
|
||
\emph{bon} paramètre ;
|
||
\item une phase dite de « scaling state » : le système continue à évoluer mais
|
||
de manière similaire dans le temps (on ne peut plus distinguer deux images
|
||
prises à des moments différents de deux dont la seconde est un agrandissement de
|
||
la première) et il est également très difficile, si ce n'est \emph{impossible de
|
||
le voir}.
|
||
\end{enumerate}
|
||
Il faut bien comprendre que ce graphe est réalisé \emph{a posteriori}, une
|
||
fois que le fonctionnement du système a été découvert et bien compris.
|
||
Dans l'exemple illustré ici, c'est le graphe $<A>/<A_0>$ qui décrit l'évolution
|
||
de la surface moyenne normalisée des bulles qui caractérise l'évolution du système
|
||
et permet de distinguer trois phases dans la vie du système.
|
||
|
||
De manière générale, le physicien doit trouver, dans la masse des données
|
||
expérimentales, les relations qui permettent de caractériser l'état d'un
|
||
système et son évolution. L'hypothèse qui est explorée dans ce travail est
|
||
que la musification permet, au même titre que la visualisation scientifique,
|
||
d'explorer cette masse de données et de rendre explicite les relations qui y
|
||
sont cachées. Comme présenté dans la figure~\ref{fig:dico}, on doit pouvoir
|
||
repérer des relations à différentes \emph{échelles} à la fois locale et globale
|
||
(respectivement micro et macroscopique), ce que la musification nous fournit
|
||
d'emblée de part la correspondance naturelle entre les échelles musicales et les
|
||
différents niveaux de structure du système physique.
|
||
|
||
\medskip
|
||
Nous opérons en aveugle, sans \emph{a priori} fort sur les mousses et leur
|
||
agencement. Nous avons tout de même connaissance des quatres lois de Plateau
|
||
(des observations du physicien belge J. Plateau) :
|
||
\begin{enumerate}
|
||
\item tout film enfermant des bulles se compose d'éléments de surface lisses,
|
||
\item la courbure moyenne de chacun de ces éléments est constante (ce ne sont
|
||
pas forcément des sphères),
|
||
\item lorsque trois éléments de surface se rejoignent, ils se raccordent selon
|
||
une courbe régulière en tout point de laquelle leurs plans tangents forment des
|
||
angles de 120° (figure~\ref{fig:plateau3}),
|
||
\item lorsque ces lignes de raccordement se rejoignent, elles le font quatre
|
||
par quatre et prennent alors, au point de rencontre, les quatre directions
|
||
tétraédriques (comme les quatre segments qui joignent le centre d'un tétraèdre
|
||
régulier à ses sommets, et dont chacun forme avec les autres des angles
|
||
d'environ 109°, figure~\ref{fig:plateau4}).
|
||
\end{enumerate}
|
||
|
||
\begin{figure}[p]
|
||
\centering
|
||
\subfloat[Point de rencontre de trois «~éléments de surface~»]{
|
||
\begin{tikzpicture}[scale=.2\textwidth/15mm]
|
||
\node (c) {};
|
||
\node (d) at (0:1cm) {};
|
||
\node (e) at (120:1cm) {};
|
||
\node (f) at (240:1cm) {};
|
||
\draw (c) -- (d); \draw (c) -- (e); \draw (c) -- (f);
|
||
\fill (c) circle (.5mm);
|
||
%\fill (d) circle (.2mm);
|
||
%\fill (e) circle (.2mm);
|
||
%\fill (f) circle (.2mm);
|
||
\end{tikzpicture}
|
||
\label{fig:plateau3}
|
||
}
|
||
\qquad
|
||
\subfloat[Point de rencontre de quatre «~lignes de raccordement~»]{
|
||
\begin{tikzpicture}[scale=.3\textwidth/15mm]
|
||
\node (o) at (0,0 ,0) {};
|
||
\node (c) at (0,1 ,0) {};
|
||
\node (d) at (0,-1/3,0.94280904) {};
|
||
\node (e) at (0.94280904,-1/3,0) {};
|
||
\node (f) at (0,-1/3,0) {};
|
||
\draw (o) -- (c.center);
|
||
\draw (o) -- (d.center);
|
||
\draw (o) -- (e.center);
|
||
\draw (o) -- (f.center);
|
||
\fill (c) circle (.2mm);
|
||
\fill (d) circle (.2mm);
|
||
\fill (e) circle (.2mm);
|
||
\fill (f) circle (.2mm);
|
||
\begin{scope}[opacity=.5]
|
||
\fill[black] (o.center) -- (c.center) -- (d.center) -- cycle;
|
||
\fill[black!80] (o.center) -- (c.center) -- (e.center) -- cycle;
|
||
\fill[blue] (o.center) -- (c.center) -- (f.center) -- cycle;
|
||
\fill[gray] (o.center) -- (d.center) -- (e.center) -- cycle;
|
||
\fill[black] (o.center) -- (d.center) -- (f.center) -- cycle;
|
||
\fill[black!80] (o.center) -- (f.center) -- (e.center) -- cycle;
|
||
\end{scope}
|
||
\fill (o) circle (.5mm);
|
||
\end{tikzpicture}
|
||
\label{fig:plateau4}
|
||
}
|
||
\caption{Illustration des lois 3 et 4 de Plateau}
|
||
\label{fig:plateau}
|
||
\end{figure}
|
||
|
||
Le livre \cite{isenberg_science_1992} fournit beaucoup d'illustrations de ces
|
||
observations. En deux dimensions, la 3\ieme\ loi nous intéresse et on peut
|
||
l'observer sur une mousse régulière (figure~\ref{fig:reguliere}) car on
|
||
retrouve un agencement hexagonal (où chaque intersetion de trois bulles
|
||
présente trois angles de 120°) : ceci implique que chaque bulle possède six
|
||
voisines. C'est le point de départ des techniques géométriques mises en place
|
||
dans ce mémoire (voir notamment §~\ref{subsec:music} et
|
||
§~\ref{subsec:tonnetz-cayley}). On veut être capable de repérer les symétries
|
||
et asymétries du système ainsi que des variations marquées d'un paramètre dans
|
||
l'évolution temporelle.
|
||
|
||
Cette étude en deux dimensions a pour but premier de valider le bon
|
||
fonctionnement des techniques mises en place pour pouvoir ensuite attaquer un
|
||
domaine moins bien connu : les mousses en trois dimensions.
|
||
|
||
\medskip
|
||
C'est avec ces quelques indices que nous commençons la musification du système
|
||
en nous fondant sur une approche computationnelle en analyse musicale connue
|
||
comme la \emph{Set Theory}.
|
||
|
||
\subsection{Une vue sur la théorie musicale}
|
||
\label{subsec:music}
|
||
Nous nous contenterons d'une description générale de cette théorie musicale.
|
||
La formalisation musicale s'est accentuée à la fin du XX\ieme\ siècle
|
||
avec l'utilisation d'outils algébriques pour décrire les collections de
|
||
hauteurs et généraliser les intervalles musicaux : c'est le paradigme de
|
||
la \emph{Set Theory}~\cite{forte_structure_1973} \cite{rahn_basic_1987}
|
||
\cite{andreatta_autour_2008}, que l'on peut traduire en français par «~Théorie
|
||
(musicale) des ensembles~»\footnote{Une approche qui, à la différence de
|
||
la théorie des ensembles en mathématiques, s'applique principalement à des
|
||
structures finies et laisse donc de côté les problèmes des fondements des
|
||
mathématiques}. En rajoutant des opérations algébriques à l'espace des hauteurs
|
||
on obtient un couple (ensemble, structure) nous ouvrant l'accès à la théorie des
|
||
groupes. Les opérations ensemblistes et algébriques sont disponibles : union et
|
||
intersection, utilisation de la loi interne, etc.
|
||
|
||
La notion importante utilisée tout au long de ce mémoire est celle
|
||
d'\emph{intervalle} : c'est la distance entre deux notes. Le plus petit
|
||
intervalle considéré tout au long de notre étude est le demi-ton car nous
|
||
nous basons sur la gamme occidentale. Cette gamme utilisant le tempérament
|
||
égal, a 12 demi-tons, tous à égale distance l'un par rapport à l'autre
|
||
(d'où le terme «~égal~» pour indiquer le tempérament) et répartis sur sept
|
||
notes (figure~\ref{fig:gamme}). On peut altérer la hauteur d'une note, donc
|
||
l'intervalle ayant pour une de ses bornes cette note, en la faisant précéder
|
||
d'une altération : ♯ (dièse, +1 demi-ton) ou ♭ (bémol, -1 demi-ton).
|
||
|
||
\begin{figure}[p]
|
||
\centering
|
||
\begin{tikzpicture}[note/.style={draw,black,circle},bend left=-40]
|
||
\node[note] (C) {Do};
|
||
\node[note,right=of C] (D) {Ré};
|
||
\node[note,right=of D] (E) {Mi};
|
||
\node[note,right=of E] (F) {Fa};
|
||
\node[note,right=of F] (G) {Sol};
|
||
\node[note,right=of G] (A) {La};
|
||
\node[note,right=of A] (B) {Si};
|
||
\node[note,right=of B,gray,dashed] (C2) {Do};
|
||
|
||
\draw[->] (C.south east) to node[above,midway] {+2} (D.south west);
|
||
\draw[->] (D.south east) to node[above,midway] {+2} (E.south west);
|
||
\draw[->] (E.south east) to node[above,midway] {+1} (F.south west);
|
||
\draw[->] (F.south east) to node[above,midway] {+2} (G.south west);
|
||
\draw[->] (G.south east) to node[above,midway] {+2} (A.south west);
|
||
\draw[->] (A.south east) to node[above,midway] {+2} (B.south west);
|
||
\draw[->] (B.south east) to node[above,midway] {+1} (C2.south west);
|
||
\end{tikzpicture}
|
||
\caption{Répartition des demi-tons dans la gamme de Do Majeur}
|
||
\label{fig:gamme}
|
||
\end{figure}
|
||
|
||
Il n'y a que sept noms de notes et ils sont indicés pour indiquer à quelle
|
||
octave ils appartiennent, une octave étant l'intervalle de Do$_i$ à Do$_{i+1}$
|
||
valant 12 demi-tons. Par exemple, le La$_3$ a, par définition, une fréquence
|
||
de 440~Hz et le La$_2$, à l'octave inférieure, a pour fréquence $f(La_3) /
|
||
2 $ donc 220~Hz. En utilisant la réduction à l'octave, on réduit l'espace
|
||
combinatoire en 12 intervalles qui sont les 12 classes de résidus modulo 12 de
|
||
$\mathbb{Z}_{12}$. On peut utiliser une représentation circulaire comme support
|
||
visuel pour des opérations algébriques élémentaires, entre autres :
|
||
\begin{itemize}
|
||
\item la transposition (rotation sur le cercle, fig. \ref{fig:transposition}) et
|
||
\item l'inversion (symétrie sur le cercle, fig. \ref{fig:inversion}),
|
||
\end{itemize}
|
||
qui constituent une première formalisation algébrique.
|
||
|
||
\begin{figure}[p]
|
||
\hfill
|
||
\subfloat[Transposition : $x \rightarrow x + k \bmod 12$]{
|
||
\begin{tikzpicture}[scale=.3\textwidth/2cm,delta angle=-30,radius=1.06cm]
|
||
\draw (0cm,0cm) circle (1cm);
|
||
\foreach \i/\j in
|
||
{90/0,60/1,30/2,0/3,330/4,300/5,270/6,240/7,210/8,180/9,150/10,120/11} {
|
||
\node[fill,circle,inner sep=.5mm] (\j) at (\i:1cm) {};
|
||
\node at (\i:1.2cm) {\j};
|
||
}
|
||
\draw (0) -- (3) -- (7) -- (0);
|
||
\draw[gray] (1) -- (4) -- (8) -- (1);
|
||
\draw[gray,dashed,->] (0,0) +(90:1.06cm) arc [start angle=90];
|
||
\end{tikzpicture}
|
||
\label{fig:transposition}}
|
||
\hfill
|
||
\subfloat[Inversion : $x \rightarrow -x \bmod 12 $.]{
|
||
\begin{tikzpicture}[scale=.3\textwidth/2cm]
|
||
\draw (0cm,0cm) circle (1cm);
|
||
\foreach \i/\j in
|
||
{90/0,60/1,30/2,0/3,330/4,300/5,270/6,240/7,210/8,180/9,150/10,120/11} {
|
||
\node[fill,circle,inner sep=.5mm] (\j) at (\i:1cm) {};
|
||
\node at (\i:1.2cm) {\j};
|
||
}
|
||
\draw[dashed,gray] (0,-1.3cm) -- (0,1.3cm);
|
||
\draw (0) -- (3) -- (7) -- (0);
|
||
\draw[gray] (0) -- (5) -- (9) -- (0);
|
||
\end{tikzpicture}
|
||
\label{fig:inversion}}
|
||
\hfill~
|
||
\caption{Intervalles et opérations algébriques sur un cercle}
|
||
\end{figure}
|
||
|
||
\bigskip
|
||
Une autre représentation qui nous intéresse est l'organisation spatiale des
|
||
intervalles au sein d'un \emph{tonnetz} (figure~\ref{fig:tonnetz}), décrite en
|
||
premier par Leonhard Euler. Ce dernier a choisi une disposition spatiale
|
||
compacte valorisant les intervalles\footnote{% (((-----------------------------
|
||
L. Euler utilise une notation allemande où le $H$ correspond au $B$ anglo-saxon
|
||
et le $B$ correspond à $A\#$. Cette notation vient du système de notation BACH.
|
||
Voir la page \url{http://en.wikipedia.org/wiki/H_(musical_note)} pour de plus
|
||
amples détails.}% )))---------------------------------------------
|
||
~de tierce majeure (4 demi-tons, en progressant sur l'axe horizontal vers la
|
||
droite) et de quinte juste (7 demi-tons, en progressant sur l'axe vertical
|
||
vers le bas). Cette représentation est équivalente à la donnée d'un groupe
|
||
cyclique d'ordre 12, comme précédemment, mais exprimée sous forme d'un graphe
|
||
planaire. Ces deux intervalles sont les plus consonnants après l'octave ; il
|
||
est donc agréable et pratique de pouvoir passer d'une note à une autre en les
|
||
privilégiant.
|
||
|
||
\begin{figure}[p]
|
||
\centering
|
||
|
||
\subfloat[Tonnetz de L. Euler (1739)]{
|
||
\includegraphics[width=.45\textwidth]{img/eulers-tonnetz}
|
||
\label{fig:tonnetz}}
|
||
\subfloat[Tonnetz de L. Euler vu comme une partie du graphe de Cayley de la
|
||
présentation finie $g_{4,7}$ du groupe $\mathbb{Z}_{12}$]{
|
||
\begin{tikzpicture}
|
||
[note/.style={draw,black,circle,inner sep=.5mm,minimum size=8mm},
|
||
label distance=-1mm,label position=below left,
|
||
double distance=.5mm]
|
||
\node[note,double] (C) {Do };
|
||
\node[note,left=of C] (F) {Fa };
|
||
\node[note,right=of C] (G) {Sol };
|
||
\node[note,right=of G] (D) {Ré };
|
||
|
||
\node[note,above=of F] (A) {La };
|
||
\node[note,right=of A] (E) {Mi };
|
||
\node[note,right=of E] (B) {Si };
|
||
\node[note,right=of B] (Fd) { Fa♯};
|
||
|
||
\node[note,above=of A] (Cd) { Do♯};
|
||
\node[note,right=of Cd] (Gd) {Sol♯};
|
||
\node[note,right=of Gd] (Dd) { Ré♯};
|
||
\node[note,right=of Dd] (Ad) { La♯};
|
||
|
||
\draw (F) -- (C) -- node[above,midway] {+7} (G) -- (D);
|
||
\draw (A) -- (E) -- (B) -- (Fd);
|
||
\draw (Cd) -- (Gd) -- (Dd) -- (Ad);
|
||
|
||
\draw (F) -- (A) -- (Cd);
|
||
\draw (C) -- node[right,midway] {+4} (E) -- (Gd);
|
||
\draw (G) -- (B) -- (Dd);
|
||
\draw (D) -- (Fd) -- (Ad);
|
||
|
||
\draw[dashed] (Cd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Gd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Dd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Ad.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (F.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (C.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (G.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (D.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (F.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (A.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (Cd.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (Ad.east) -- +(6mm ,0cm );
|
||
\draw[dashed] (Fd.east) -- +(6mm ,0cm );
|
||
\draw[dashed] (D.east) -- +(6mm ,0cm );
|
||
\end{tikzpicture}
|
||
\label{fig:cayley}}
|
||
%\caption{Répartition spatiale des intervalles en tant que
|
||
%tonnetz~\subref{fig:tonnetz} et en tant que graphe de
|
||
%Cayley~\subref{fig:cayley}}
|
||
\caption{Répartition spatiale des intervalles en tant que tonnetz et en tant que
|
||
graphe de Cayley}
|
||
|
||
\end{figure}
|
||
|
||
Le musicologue Hugo Riemann a beaucoup exploré ce mode de représentation des
|
||
relations intervaliques entre les notes pour soutenir son système liant les
|
||
triades majeures et mineures. En gardant l'agencement d'Euler et en récupérant
|
||
une triangulation de l'espace, on obtient immédiatement toutes les triades
|
||
Majeures et mineures de la gamme agencées par tonalités voisines, comme Do
|
||
Majeur (La mineur) est la tonalité relative Majeure (mineure) à La mineur (Do
|
||
Majeur) respectivement, comme on peut le voir sur la figure~\ref{fig:trig}.
|
||
|
||
\begin{figure}[p]
|
||
\centering
|
||
\subfloat[Triangulation d'accords sur un graphe de Cayley, en exemple Do Majeur
|
||
(gris clair) et La mineur (gris foncé)]{
|
||
\begin{tikzpicture}
|
||
[note/.style={draw,black,circle,inner sep=.5mm,minimum size=8mm},
|
||
label distance=-1mm,label position=above right,
|
||
double distance=.5mm,scale=.30\textwidth/7.2cm]
|
||
\node[note] (F) at (0cm,0cm) {Fa };
|
||
\node[note,double] (C) at (2cm,0cm) {Do };
|
||
\node[note] (G) at (4cm,0cm) {Sol };
|
||
\node[note] (D) at (6cm,0cm) {Ré };
|
||
|
||
\node[note] (A) at (0cm,2cm) {La };
|
||
\node[note] (E) at (2cm,2cm) {Mi };
|
||
\node[note] (B) at (4cm,2cm) {Si };
|
||
\node[note] (Fd) at (6cm,2cm) { Fa♯};
|
||
|
||
\node[note] (Cd) at (0cm,4cm) { Do♯};
|
||
\node[note] (Gd) at (2cm,4cm) {Sol♯};
|
||
\node[note] (Dd) at (4cm,4cm) { Ré♯};
|
||
\node[note] (Ad) at (6cm,4cm) { La♯};
|
||
|
||
\draw (F) -- (C) -- (G) -- (D);
|
||
\draw (A) -- (E) -- (B) -- (Fd);
|
||
\draw (Cd) -- (Gd) -- (Dd) -- (Ad);
|
||
|
||
\draw (F) -- (A) -- (Cd);
|
||
\draw (C) -- (E) -- (Gd);
|
||
\draw (G) -- (B) -- (Dd);
|
||
\draw (D) -- (Fd) -- (Ad);
|
||
|
||
\begin{scope}[opacity=.8]
|
||
\filldraw[lightgray]
|
||
(C.center) -- (E.center) -- (G.center) -- cycle; % DOM
|
||
\filldraw[gray]
|
||
(C.center) -- (E.center) -- (A.center) -- cycle; % Lam
|
||
\end{scope}
|
||
\draw (Cd) -- (E);
|
||
\draw (Gd) -- (B) -- (D);
|
||
\draw (Dd) -- (Fd);
|
||
|
||
\draw[dashed] (Cd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Gd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Dd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Ad.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (F.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (C.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (G.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (D.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (F.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (A.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (Cd.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (Ad.east) -- +(6mm ,0cm );
|
||
\draw[dashed] (Fd.east) -- +(6mm ,0cm );
|
||
\draw[dashed] (D.east) -- +(6mm ,0cm );
|
||
\end{tikzpicture}
|
||
\label{fig:trig}}
|
||
\quad
|
||
\subfloat[Dual du graphe de Cayley mettant en exergue une structure
|
||
hexagonale]{
|
||
\begin{tikzpicture}
|
||
[note/.style={draw,black,circle,inner sep=2mm},
|
||
hex/.style={},
|
||
label distance=-1mm,label position=below left,
|
||
double distance=.5mm,scale=.50\textwidth/9.2cm]
|
||
\begin{scope}[opacity=.5]
|
||
\node[note] (F) at (-1cm,0cm) {};
|
||
\node[note,double] (C) at ( 1cm,0cm) {};
|
||
\node[note] (G) at ( 3cm,0cm) {};
|
||
\node[note] (D) at ( 5cm,0cm) {};
|
||
|
||
\node[note] (A) at ( 0cm,2cm) {};
|
||
\node[note] (E) at ( 2cm,2cm) {};
|
||
\node[note] (B) at ( 4cm,2cm) {};
|
||
\node[note] (Fd) at ( 6cm,2cm) {};
|
||
|
||
\node[note] (Cd) at ( 1cm,4cm) {};
|
||
\node[note] (Gd) at ( 3cm,4cm) {};
|
||
\node[note] (Dd) at ( 5cm,4cm) {};
|
||
\node[note] (Ad) at ( 7cm,4cm) {};
|
||
|
||
\draw (F) -- (C) -- (G) -- (D);
|
||
\draw (A) -- (E) -- (B) -- (Fd);
|
||
\draw (Cd) -- (Gd) -- (Dd) -- (Ad);
|
||
|
||
\draw (F) -- (A) -- (Cd);
|
||
\draw (C) -- (E) -- (Gd);
|
||
\draw (G) -- (B) -- (Dd);
|
||
\draw (D) -- (Fd) -- (Ad);
|
||
\draw (Cd) -- (E) -- (G);
|
||
\draw (Gd) -- (B) -- (D);
|
||
\draw (Dd) -- (Fd);
|
||
\draw (A) -- (C);
|
||
|
||
\node (1u) at (barycentric cs:A=1,Cd=1,E=1) {};
|
||
\node (2u) at (barycentric cs:Gd=1,B=1,E=1) {};
|
||
\node (3u) at (barycentric cs:B=1,Dd=1,Fd=1) {};
|
||
\node (4u) at (barycentric cs:F=1,A=1,C=1) {};
|
||
\node (5u) at (barycentric cs:E=1,G=1,C=1) {};
|
||
\node (6u) at (barycentric cs:B=1,G=1,D=1) {};
|
||
\node (1d) at (barycentric cs:Cd=1,Gd=1,E=1) {};
|
||
\node (2d) at (barycentric cs:Dd=1,Gd=1,B=1) {};
|
||
\node (3d) at (barycentric cs:Dd=1,Ad=1,Fd=1) {};
|
||
\node (4d) at (barycentric cs:A=1,E=1,C=1) {};
|
||
\node (5d) at (barycentric cs:G=1,E=1,B=1) {};
|
||
\node (6d) at (barycentric cs:D=1,Fd=1,B=1) {};
|
||
|
||
\draw[dashed] (Cd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Gd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Dd.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (Ad.north) -- +(0cm ,6mm );
|
||
\draw[dashed] (F.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (C.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (G.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (D.south) -- +(0cm ,-6mm);
|
||
\draw[dashed] (F.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (A.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (Cd.west) -- +(-6mm,0cm );
|
||
\draw[dashed] (Ad.east) -- +(6mm ,0cm );
|
||
\draw[dashed] (Fd.east) -- +(6mm ,0cm );
|
||
\draw[dashed] (D.east) -- +(6mm ,0cm );
|
||
\end{scope}
|
||
|
||
\draw[hex] (1u.center) -- (1d.center) -- (2u.center)
|
||
-- (2d.center) -- (3u.center) -- (3d.center);
|
||
\draw[hex] (4u.center) -- (4d.center) -- (5u.center)
|
||
-- (5d.center) -- (6u.center) -- (6d.center);
|
||
\draw[hex] (1u.center) -- (4d.center);
|
||
\draw[hex] (2u.center) -- (5d.center);
|
||
\draw[hex] (3u.center) -- (6d.center);
|
||
\draw[hex,dashed] (1d.center) -- +(0, 1.5cm);
|
||
\draw[hex,dashed] (2d.center) -- +(0, 1.5cm);
|
||
\draw[hex,dashed] (3d.center) -- +(0, 1.5cm);
|
||
\draw[hex,dashed] (4u.center) -- +(0,-1.5cm);
|
||
\draw[hex,dashed] (5u.center) -- +(0,-1.5cm);
|
||
\draw[hex,dashed] (6u.center) -- +(0,-1.5cm);
|
||
|
||
\draw[hex,dashed] (1u.center) -- +(150:1.0cm);
|
||
\draw[hex,dashed] (4u.center) -- +(150:1.0cm);
|
||
\draw[hex,dashed] (3d.center) -- +(-30:1.0cm);
|
||
\draw[hex,dashed] (6d.center) -- +(-30:1.0cm);
|
||
\end{tikzpicture}
|
||
\label{fig:dual}}
|
||
\caption{Triangulation d'accords et dual se rapportant à un graphe de Cayley}
|
||
\label{fig:cayley-use}
|
||
\end{figure}
|
||
|
||
\medskip
|
||
On s'intéressera à trois structures musicales pour \emph{musifier} les bulles
|
||
d'une mousse :
|
||
\begin{itemize}
|
||
\item les \textbf{relations harmoniques} comme la donnée d'un accord ou d'un
|
||
timbre. Un accord est une superposition de notes alors qu'un timbre est plutôt
|
||
une composition de fréquences (dans le cas du mapping M$_1$, détaillé à la page
|
||
\pageref{subsec:modal} de ce mémoire). C'est une donnée ponctuelle, instantanée,
|
||
permettant de valider immédiatement un critère sonore. Par exemple, pour le
|
||
timbre : « c'est une trompette ! » ou bien pour la justesse : « cet accord est
|
||
très dissonant » ;
|
||
\item les \textbf{relations mélodiques} comme une succession d'évènements
|
||
sonores se déployant dans le temps, ces évènements pouvant être des structures
|
||
harmoniques. On peut évaluer la similarité à un air connu : « on dirait Frère
|
||
Jacques » ou s'attendre à un développement musical : « Il va de nouveau y avoir
|
||
cette même phrase mélodique » ;
|
||
\item les \textbf{relations rythmiques} sont aussi une succession d'évènements
|
||
s'étalant dans le temps. \textit{A contrario}, on se concentre uniquement sur
|
||
le moment où arrive l'évènement (onset) et pas sur sa nature. On peut par
|
||
exemple reconnaître des \emph{ostinati} rythmiques.
|
||
\end{itemize}
|
||
Ces trois structures musicales s'appuient sur l'analyse des intervalles : de
|
||
manière évidente pour harmonique et mélodique, les relations rythmiques sont
|
||
analysables comme intervalles de temps. Ces trois dernières sont mises en
|
||
pratique pour la musification de notre système.
|
||
|
||
\section{Méthode}
|
||
% Où on en est ?
|
||
Nous avons établi le principe de sonification et son extension, la musification.
|
||
% Problème ?
|
||
Nous souhaitons maintenant trouver et établir, pour le système physique que nous
|
||
venons de décrire, des méthodes permettant de mettre en avant ses différents niveaux
|
||
de structure.
|
||
% Solution ?
|
||
Quatre méthodes (appelées mappings, en référence à la PMS) sont présentées dans
|
||
cette section, d'abord très axées sur la sonification traditionnelle (M$_1$,
|
||
un seul niveau de description) puis plus structurées dans l'optique d'une
|
||
musification : rythmique (M$_2$), mélodique (M$_3$) et enfin musicale (M$_4$).
|
||
Nous commencerons par établir les liens existants entre Tonnetz et Graphe de
|
||
Cayley, notion nécessaire aux mappings à venir.
|
||
|
||
\subsection{Un tonnetz comme graphe de Cayley}
|
||
\label{subsec:tonnetz-cayley}
|
||
%(thèse de julien cohen)
|
||
Le graphe de Cayley de la présentation finie d'un groupe G permet de visualiser
|
||
les éléments de G et leur relation de voisinage. Soit G un groupe et S une
|
||
partie génératrice de G~:
|
||
\begin{itemize}
|
||
\item chaque sommet $V_i$ représente un élément du groupe $G$,
|
||
\item chaque arc $e_i$ est étiqueté par un générateur de $S$,
|
||
\item un arc étiqueté $e$ se trouve entre les sommets $U$ et $V$ si $U + e = V$.
|
||
\end{itemize}
|
||
|
||
\medskip
|
||
Un tonnetz peut être vu comme le graphe de Cayley de la présentation finie d'un
|
||
groupe, en l'occurence du groupe cyclique $\mathbb{Z}_{12}$ des 12 demi-tons de
|
||
la gamme occidentale, muni de l'addition comme loi commutative et d'une partie
|
||
génératrice $S$. Pour garder l'analogie dans la figure \ref{fig:cayley}, nous
|
||
utilisons deux générateurs : la tierce Majeure (\texttt{4}) et la quinte juste
|
||
(\texttt{7}). Le sommet à l'origine du graphe de Cayley est l'élément
|
||
\emph{neutre} du groupe. Dans nos exemples, nous utilisons la présentation
|
||
finie suivante, notée additivement car nous sommes dans un groupe commutatif :
|
||
$$ g_{4,7} = < \mathbf{4}, \mathbf{7}\ |\ 3.\mathbf{4} + 0.\mathbf{7} = 0,\quad0.\mathbf{4} +
|
||
12.\mathbf{7} = 0,\quad\mathbf{4} + \mathbf{7} = \mathbf{7} + \mathbf{4} > $$
|
||
Nous avons noté les générateurs en gras et l'écriture $n.\mathbf{g}$ abrège
|
||
la somme $\mathbf{g} + \cdots + \mathbf{g}$ n fois.
|
||
|
||
\begin{figure}[ht]
|
||
\centering
|
||
\subfloat[Chemin fermé satisfait dans tout graphe de Cayley, car « il revient sur ses pas »]{
|
||
\begin{tikzpicture}[scale=.45\textwidth/4cm]
|
||
\clip (-25mm,-5mm) rectangle (15mm,15mm);
|
||
\draw[step=1cm,densely dotted] (-3,-1) grid (2,3);
|
||
\fill (0,0) circle (2pt);
|
||
\fill (0,1) circle (2pt);
|
||
\fill (1,1) circle (2pt);
|
||
\draw[thick,<->,double] (0,0) -- node[left] {b}
|
||
node[right] {-b} ++(0,1);
|
||
\draw[thick,<->,double] (1,1) -- node[below] {-a}
|
||
node[above] {a} ++(-1,0);
|
||
\draw[thin,-open triangle 90] (-2,0) -- node[left] {a} ++(0,1);
|
||
\draw[thin,-open triangle 90] (-2,0) -- node[below] {b} ++(1,0);
|
||
\end{tikzpicture}
|
||
\label{fig:closepath}}
|
||
\qquad
|
||
\subfloat[Chemin fermé dans un graphe de Cayley spécifique à la contrainte $b +
|
||
b + (-b) + (-a) = 0$]{
|
||
\begin{tikzpicture}[scale=.45\textwidth/4cm]
|
||
\clip (-15mm,-5mm) rectangle (25mm,15mm);
|
||
\draw[step=1cm,densely dotted] (-2,-1) grid (3,3);
|
||
\fill (0,0) circle (2pt);
|
||
\fill (0,1) circle (2pt);
|
||
\fill (1,0) circle (2pt);
|
||
\fill (1,1) circle (2pt);
|
||
\draw[thick,->] (0,0) -- node[left] {b} (0,1);
|
||
\draw[thick,->] (0,1) -- node[above] {a} (1,1);
|
||
\draw[thick,->] (1,1) -- node[right] {-b} (1,0);
|
||
\draw[thick,->] (1,0) -- node[below] {-a} (0,0);
|
||
\end{tikzpicture}
|
||
\label{fig:closepath2}}
|
||
\caption{Chemins dans un graphe de Cayley}
|
||
\label{fig:paths}
|
||
\end{figure}
|
||
|
||
Dans le graphe de Cayley associé à cette présentation, l'espace se replie sur
|
||
lui-même après 4 « sauts » de tierce Majeure ou 12 « sauts » de quinte juste,
|
||
on a ainsi un tore. Nous travaillons dans un « dépliage » de ce tore.
|
||
|
||
Tout graphe de Cayley possède des chemins fermés, par exemple dans le graphe
|
||
construit à partir de deux générateurs $a$ et $b$, le chemin suivant décrit par
|
||
le mot $w$ est fermé en toute généralité (figure~\ref{fig:closepath}) car il «
|
||
revient sur ses pas » :
|
||
$$ w = a + b + (-b) + (-a) $$
|
||
|
||
Les graphes de Cayley possèdent des chemins fermés qui leur sont
|
||
\emph{spécifiques} car caractéristiques des équations de la présentation ;
|
||
en reprenant l'exemple précédant augmenté de la contrainte de commutativité
|
||
$ a + b = b + a $, on obtient un autre chemin fermé décrit par le mot $w$
|
||
(figure~\ref{fig:closepath2}) :
|
||
$$ w = a + b + (-a) + (-b) $$
|
||
|
||
\subsection{Quelques mappings}
|
||
Pour apporter des éléments de réponse aux questions des physiciens
|
||
(§~\ref{subsec:mousses}), nous proposons les mappings M$_1$, M$_2$, M$_3$ et
|
||
M$_4$ suivants. Le premier porte sur l'aspect signal et entre de ce fait dans
|
||
le cadre de la sonification classique, les trois suivants tirent partie des
|
||
théories musicales néo-Riemanniennes et portent sur des études rythmiques
|
||
et mélodiques. À chaque mapping correspond une table des paramètres : les
|
||
paramètres de la bulle sont liés directement aux dimensions et descripteurs
|
||
du système physique, les paramètres du modèle sont ceux liés directement aux
|
||
dimensions du mapping et qui sont reliés aux précédents et finalement les
|
||
paramètres arbitraires sont ceux que l'on ne contrôle pas via les données
|
||
expérimentales mais qui influent sur le résultat.
|
||
|
||
\subsubsection{M$_1$ : Synthèse modale}
|
||
\label{subsec:modal}
|
||
Un objet physique vibre librement après avoir été excité et présente des modes
|
||
propres de vibration dépendant entre autres de sa géométrie et des matériaux le
|
||
constituant. Ces modes peuvent être observés sur le spectre des fréquences du
|
||
signal émis et sont utilisés par \modalys\ pour sauvegarder l'empreinte sonore
|
||
d'un objet physique. Le signal émis est un timbre particulier que notre système
|
||
auditif \emph{reconnaît} et associe à l'objet qui l'a émis. Par exemple, une
|
||
cuiller en bois tombant au sol a un son caractéristique et facilement
|
||
différenciable d'une cuiller en métal. Nous utilisons cette capacité de
|
||
reconnaissance pour reconnaître et différencier différentes organisations
|
||
spatiales des bulles dans une mousse en deux dimensions et plus tard
|
||
reconnaître leur évolution.
|
||
|
||
La synthèse modale est un cas de sonification classique. Nous associons un mode
|
||
de vibration (virtuel, il ne correspond à aucun objet physique existant) à
|
||
chaque bulle de la mousse, ainsi les paramètres de la bulle servent à
|
||
déterminer les paramètres du mode.
|
||
|
||
\begin{table}[hb]
|
||
\centering
|
||
\begin{tabular}{|l|l|l|}
|
||
\hline
|
||
\textbf{Paramètre de la bulle} &
|
||
\textbf{Paramètre du modèle} &
|
||
\textbf{Paramètre arbitraires} \\
|
||
\hline
|
||
Aire & Fréquence & \emph{Aucun}\\
|
||
Nombre de voisins & Amplitude & \\
|
||
Périmètre & Bande de fréquence & \\
|
||
\hline
|
||
\end{tabular}
|
||
\caption{Liste des paramètres d'une bulle liée à un mode de vibration}
|
||
\label{tab:param1}
|
||
\end{table}
|
||
|
||
Nous additionnons ensuite le signal obtenu pour chaque bulle ce qui construit
|
||
un timbre ; les paramètres à régler sont détaillés dans la table
|
||
\ref{tab:param1}. Ce premier mapping se veut très simple afin de déterminer
|
||
quelles informations sont très facilement accessibles à l'ouïe.
|
||
L'implémentation (§~\ref{sec:implementation}) a été menée en utilisant
|
||
\modalys.
|
||
|
||
\subsubsection{M$_2$ : Chemins rythmiques}
|
||
À l'image d'un exemple de sonification du §~\ref{subsec:sonification}, le
|
||
compteur Geiger, nous pouvons utiliser le rythme comme lien à l'organisation
|
||
spatiale des bulles d'une mousse liquide en deux dimensions.
|
||
|
||
\begin{figure}[ht]
|
||
\centering
|
||
\subfloat[En pointillés, $(\Delta)$ traverse la mousse. Les centres des bulles
|
||
proches sont sélectionnés]{
|
||
\includegraphics[width=.45\textwidth]{img/chemin-rythm1}
|
||
\label{fig:rythm1}}
|
||
\qquad
|
||
\subfloat[Projection orthogonale des centres de bulles sur $(\Delta)$ pour
|
||
obtenir une phrase rythmique]{
|
||
\includegraphics[width=.45\textwidth]{img/chemin-rythm2}
|
||
\label{fig:rythm2}}
|
||
\caption{Extraction d'une phrase rythmique dans une mousse en deux
|
||
dimensions}
|
||
\end{figure}
|
||
|
||
On parcourt par balayage le long d'une segment de droite $(\Delta)$ l'image
|
||
d'une mousse en sélectionnant tous les centres des bulles étant à une distance
|
||
$d$ de la droite (figure \ref{fig:rythm1}). Ces échantillons récoltés sont
|
||
ensuite projetés orthogonalement sur $(\Delta)$, comme illustré figure
|
||
\ref{fig:rythm2}. On sonifie ensuite la distance entre chaque point projeté
|
||
pour obtenir un motif rythmique : nous avons ainsi une information en une
|
||
dimension en traversant un échantillon et nous pouvons détecter une symétrie
|
||
axiale d'axe orthogonal à $(\Delta)$. Plus précisément, nous avons accès à la
|
||
densité de centre de bulle tout au long de la droite ; cela nous renseigne à la
|
||
fois sur la taille des bulles et sur leur répartition le long de $(\Delta)$. La
|
||
liste des paramètres peut être consultée dans la table \ref{tab:param2}.
|
||
|
||
\begin{table}[hb]
|
||
\centering
|
||
\begin{tabular}{|m{4cm}|m{4cm}|m{4cm}|}
|
||
\hline
|
||
\textbf{Paramètre de la bulle} &
|
||
\textbf{Paramètre du modèle} &
|
||
\textbf{Paramètre arbitraires} \\
|
||
\hline
|
||
Position du centre en abscisse & Position de l'évènement sur l'axe du temps &
|
||
Équation de droite $(\Delta)$ \\
|
||
Position du centre en ordonnée & & \\
|
||
\hline
|
||
\end{tabular}
|
||
\caption{Liste des paramètres d'une bulle liée à un chemin rythmique}
|
||
\label{tab:param2}
|
||
\end{table}
|
||
|
||
Une technique similaire est mise en œuvre par S. Adhitya dans SUM
|
||
\cite{adhitya_audio-assisted_2011}, un outil permettant de sonifier
|
||
l'organisation urbaine à partir de plans surimposés.
|
||
|
||
\subsubsection{Remarque et extension des chemins rythmiques}
|
||
Nous remarquons que pour M$_2$ (et ce sera aussi le cas pour M$_3$ et M$_4$
|
||
que nous verrons ensuite) on veut explorer un espace (2D) mais en cheminant le
|
||
long d'un chemin (1D). Cette démarche est intéressante et logique car, dans le
|
||
cas d'un espace homogène, les bulles au cœur du chemin sont « typiques » et
|
||
représentatives de l'espace non exploré. Cependant, dans le cas d'un espace
|
||
non homogène (figure \ref{fig:desordonnee}), on n'obtient pas toujours le même
|
||
résultat suivant le point de départ du chemin, pour un même chemin. Dans ce
|
||
cas une courbe fractale continue remplissant le plan permettrait d'explorer
|
||
exhaustivement tout l'espace des bulles, par exemple une courbe de Hilbert,
|
||
de dimension donnée. Elle a pour intérêt de parcourir tout l'espace en le
|
||
décrivant, zone par zone et donc d'offrir un aperçu sonore permettant de rendre
|
||
compte de la « densité » d'un paramètre, par zone.
|
||
|
||
On peut imaginer une famille de courbes $(H_1,H_2,H_3,\ldots)$ qui remplissent
|
||
de mieux en mieux l'espace, chaque $H_i$ approchant et agrégeant des domaines
|
||
spatiaux de plus en plus fins.
|
||
|
||
\begin{figure}[ht]
|
||
%\draw [opacity=.2,line join=round,line width=1cm,
|
||
% l-system={Hilbert curve, axiom=L, order=2, step=1cm, angle=90}]
|
||
\centering
|
||
\subfloat[Courbe $H_1$, $r = 1.5$]{
|
||
\begin{tikzpicture}
|
||
\clip (-.5,-.5) rectangle (3.5,3.5);
|
||
\draw [densely dotted] (-1,-1) grid (4,4);
|
||
\draw [l-system={Hilbert curve, axiom=L, order=1, step=3cm, angle=90}]
|
||
lindenmayer system;
|
||
\foreach \i in {0cm,3cm} {
|
||
\foreach \j in {0cm,3cm} {
|
||
\fill (\i,\j) circle (2pt);
|
||
\fill[opacity=.2] (\i,\j) circle (1.5cm);
|
||
}
|
||
}
|
||
\draw[<->|] (0,0) -- node[above left] {$r$} (45:1.5cm);
|
||
\end{tikzpicture}
|
||
\label{fig:H1}}
|
||
\hfill
|
||
\subfloat[Courbe $H_2$, $r = 0.5$]{
|
||
\begin{tikzpicture}
|
||
\clip (-.5,-.5) rectangle (3.5,3.5);
|
||
\draw [densely dotted] (-1,-1) grid (4,4);
|
||
\draw [l-system={Hilbert curve, axiom=L, order=2, step=1cm, angle=90}]
|
||
lindenmayer system;
|
||
\foreach \i in {0cm,1cm,2cm,3cm} {
|
||
\foreach \j in {0cm,1cm,2cm,3cm} {
|
||
\fill (\i,\j) circle (2pt);
|
||
\fill[opacity=.2] (\i,\j) circle (0.5cm);
|
||
}
|
||
}
|
||
\draw[<->|] (0,0) -- (45:.5cm);
|
||
\end{tikzpicture}
|
||
\label{fig:H2}}
|
||
\hfill
|
||
\subfloat[Courbe $H_3$, $r = 3/14$]{
|
||
\begin{tikzpicture}
|
||
\clip (-.5,-.5) rectangle (3.5,3.5);
|
||
\draw [densely dotted] (-1,-1) grid (4,4);
|
||
\draw [l-system={Hilbert curve, axiom=L, order=3, step=0.42857143cm, angle=90}]
|
||
lindenmayer system;
|
||
\foreach \i in {0cm,.42857143cm,.85714286cm,1.2857143cm,1.7142857cm,
|
||
2.1428571cm,2.5714286cm,3cm} {
|
||
\foreach \j in {0cm,.42857143cm,.85714286cm,1.2857143cm,1.7142857cm,
|
||
2.1428571cm,2.5714286cm,3cm} {
|
||
\fill (\i,\j) circle (2pt);
|
||
\fill[opacity=.2] (\i,\j) circle (.21428571cm);
|
||
}
|
||
}
|
||
\draw[-|] (0,0) -- (45:.21428571cm);
|
||
\end{tikzpicture}
|
||
\label{fig:H3}}
|
||
\caption{Utilisation de courbes de Hilbert pour remplir progressivement
|
||
l'espace, en gris la zone moyennée}
|
||
\label{fig:hilbert}
|
||
\end{figure}
|
||
|
||
Chaque itération présente un moyennage des valeurs, du plus global au plus
|
||
local. Chaque « coude » de la courbe de Hilbert est un point agrégeant les
|
||
valeurs des bulles à une distance $r$ dépendant de l'itération de la courbe
|
||
de Hilbert : plus l'itération est élevée et plus $r$ est petit (voir la
|
||
figure~\ref{fig:hilbert}). Arrivé à une segmentation de l'espace en parcelles
|
||
de taille moyenne proche de la taille moyenne des bulles, nous nous trouvons à
|
||
un niveau de description très local, puisque chaque coude aura un moyennage des
|
||
valeurs sur une bulle (dans un espace homogène). On peut donc sonifier chaque
|
||
point $p_i$ en lui associant une hauteur correspondant, par exemple, au nombre
|
||
de voisines qu'ont en moyenne les bulles contenues dans le cercle de centre
|
||
$p_i$ et de rayon $r$.
|
||
|
||
\subsubsection{M$_3$ : Chemins musicaux}
|
||
Dans la section précédente, nous remplissions le plan avec une courbe fractale
|
||
continue. Nous pouvons aussi nous servir d'un maillage hexagonal de taille
|
||
caractéristique initiale réglable.
|
||
|
||
\begin{figure}[ht]
|
||
\centering
|
||
\subfloat[$P_2$, pavage hexagonal se rapportant au graphe dual d'un graphe de
|
||
Cayley]{\includegraphics[width=.4\textwidth]{img/hex}}
|
||
\qquad\qquad
|
||
\subfloat[$P_1$, mousse en deux dimensions]{
|
||
\includegraphics[width=.4\textwidth]{img/bul}}\\[1cm]
|
||
\subfloat[Numérotation unique des voisins d'une bulle (convention utilisée)]{
|
||
\begin{tikzpicture}[rotate=30,scale=.7,
|
||
hex/.style={regular polygon, regular polygon sides=6, draw, inner sep=.5cm,
|
||
transform shape, text width=0}]
|
||
\node[hex,gray] (5) at ( 30:1.41cm) {}; %5
|
||
\node[hex,gray] (6) at ( 90:1.41cm) {}; %6
|
||
\node[hex,gray] (1) at (150:1.41cm) {}; %1
|
||
\node[hex,gray] (2) at (210:1.41cm) {}; %2
|
||
\node[hex,gray] (3) at (270:1.41cm) {}; %3
|
||
\node[hex,gray] (4) at (330:1.41cm) {}; %4
|
||
\node[hex,thick] (h) at (0,0) {};
|
||
|
||
\foreach \i in {1,...,6} {
|
||
\draw[gray,->,dashed] (h.center) -- (\i) node[gray] {\i} ;}
|
||
\end{tikzpicture}
|
||
\label{fig:num}}
|
||
\qquad
|
||
\subfloat[Projection de deux chemins de $P_2$ à $P_1$. Du plus clair
|
||
au plus foncé, à gauche, $1, 2, 3, 4, 5$ et à droite $6, 4, 6, 4, 6$]{
|
||
\includegraphics[height=.17\textheight]{img/bulandhex}
|
||
\label{fig:M3d}}
|
||
\caption{Schéma de la sonification des chemins dans un système physique en deux
|
||
dimensions}
|
||
\label{fig:M3}
|
||
\end{figure}
|
||
|
||
En effet, on ne peut que noter le parallélisme entre l'organisation hexagonale
|
||
d'une mousse régulière (figure \ref{fig:reguliere}) avec un graphe de Cayley
|
||
d'une présentation de $\mathbb{Z}_{12}$ (figure \ref{fig:dual}) et par
|
||
conséquent de son tonnetz associé. Il semble donc naturel de se servir de cette
|
||
représentation et d'essayer de voir la mousse comme un tonnetz, c'est-à-dire un
|
||
graphe de notes. Plongé dans l'espace, ce pavage du plan est ensuite déformé au
|
||
gré de l'évolution du système.
|
||
|
||
%---
|
||
\bigskip
|
||
La figure \ref{fig:M3} présente schématiquement les deux projections $\pi_{12}$
|
||
et $\pi_{21}$ des plans $P_1$, l'espace où évolue le système étudié, et $P_2$
|
||
l'espace musical sous-jacent où se trouve un pavage hexagonal généré par un
|
||
graphe de Cayley plongé dans le plan : il forme des hexagones réguliers comme
|
||
une mousse régulière et à chacun de ces hexagones correspond une note. Toutes
|
||
les transformations se font sur une base métrique.
|
||
|
||
Un chemin dans une mousse est une suite de sauts entre bulles voisines. Dans
|
||
un tonnetz, ceci correspond à une suite de notes. Dans le graphe de Cayley de
|
||
la présentation $g_{4,7,11}$ du groupe $\mathbb{Z}_{12}$, chaque élément a six
|
||
voisins, en prenant les directions $a$, $b$, $c = a + b$, et leurs inverses.
|
||
Nous numérotons de manière unique (figure \ref{fig:num}) le voisinage de
|
||
chaque bulle et nous indiquons ainsi un chemin par une suite d'identifiants
|
||
correspondant aux directions (uniques) à prendre. Nous utiliserons par la suite
|
||
soit des chemins construits à partir de points ou définits comme une succession
|
||
de directions. Dans tous les cas, deux points consécutifs dans un chemin sont
|
||
\emph{voisins} dans la mousse ou dans le graphe de Cayley. On construit les
|
||
projections de la manière suivante :
|
||
\begin{itemize}
|
||
\item $\pi_{12}$ : on part du plan $P_1$, dans lequel se trouve un chemin $c$
|
||
de longueur $n$ constitué des \emph{points} $p_1$, $p_2$, …, $p_n$.
|
||
\begin{enumerate}
|
||
\item On commence par construire une grille hexagonale $P_2$ centrée sur les
|
||
coordonnées de $p_1$, avec pour taille caractéristique le rayon moyen des
|
||
bulles.
|
||
\item Ensuite, on détermine à quelle position se trouve chaque $p_i$ de $P_1$
|
||
dans $P_2$ par un changement de coordonnées.
|
||
\item $p_i$ exprimé dans les nouvelles coordonnées détermine ainsi la note
|
||
associée.
|
||
\end{enumerate}
|
||
\item $\pi_{21}$ : on part du plan $P_2$, dans lequel se trouve un chemin $c$
|
||
de longueur $n$ cette fois décrits par \emph{voisinage} $v_1$, $v_2$, …, $v_n$.
|
||
On souhaites trouver un chemin « équivalent » dans le plan $P_1$ contenant le
|
||
système physique :
|
||
\begin{enumerate}
|
||
\item On sélectionne \emph{arbitrairement} un centre de bulle comme point de
|
||
départ.
|
||
\item On détermine quels sont ses voisins et on les numérote.
|
||
\item On parcours $c$ dans $P_1$ comme on le ferait dans $P_2$, c'est-à-dire
|
||
en choisissant le prochain voisin à chaque bulle.
|
||
\item On obtient ainsi un chemin $c'$ constitué des \emph{points} $p_1$, $p_2$,
|
||
…, $p_n$ dans $P_1$.
|
||
\end{enumerate}
|
||
\end{itemize}
|
||
|
||
\bigskip
|
||
La méthode consiste à écouter comparativement le rendu d'un chemin dans $P_1$
|
||
et dans $P_2$ en partant du fait que, si la mousse est régulière, alors les
|
||
deux rendus sonores seront identiques. L'idée sous-jacente à cette méthode est
|
||
d'essayer de rendre de manière musicale la \emph{distorsion} entre le réseau
|
||
de bulles et un réseau hexagonal idéal. En effet, la mousse se relaxe au cours
|
||
du temps vers un réseau proche d'un réseau hexagonal idéal. S'il est possible
|
||
d'expliciter à un instant donné combien la mousse diffère de ce réseau, on
|
||
pourra écouter comment cette distorsion évolue et s'atténue au cours du temps.
|
||
Dans l'approche développée ici, le « défaut d'hexagonalité » se traduit par
|
||
une distorsion d'un chemin mélodique dans un tonnetz. À partir de là, on peut
|
||
écouter des paramètres différents qui rendent compte de cette distorsion. Par
|
||
exemple :
|
||
\begin{itemize}
|
||
\item on peut écouter un objet musical (note, accord, rythme) qui est lié à la
|
||
distance entre le point d'arrivée du chemin idéal et le point d'arrivée du chemin
|
||
déformé ;
|
||
\item on peut, plus globalement, écouter le chemin correspondant à une mélodie
|
||
connue, soit en canon (une voix correspondant à un chemin idéal, l'autre
|
||
correspondant au chemin déformé), soit uniquement l'air déformé (le bagage
|
||
culturel commun permettant de détecter immédiatement la différence avec l'air
|
||
connu).
|
||
\end{itemize}
|
||
|
||
On peut d'ailleurs noter que, dans l'exemple
|
||
fourni figure~\ref{fig:M3d}, le chemin de gauche est rendu de manière similaire
|
||
dans $P_1$ et dans $P_2$, alors que le chemin de droite est clairement déformé
|
||
dans $P_1$, dû à une irrégularité le long du chemin.
|
||
|
||
\begin{table}[h]
|
||
\centering
|
||
\begin{tabular}{|m{4cm}|m{4cm}|m{4cm}|}
|
||
%\begin{tabular}{|l|l|l|}
|
||
\hline
|
||
\textbf{Paramètre de la bulle} &
|
||
\textbf{Paramètre du modèle} &
|
||
\textbf{Paramètre arbitraires} \\
|
||
\hline
|
||
Position du centre en abscisse & Chemin comme suite de voisins & Orientation de
|
||
$P_1$ par rapport à $P_2$ \\
|
||
Position du centre en ordonnée & Rayon moyen d'un hexagone dans la grille & \\
|
||
« Rayon » moyen des bulles & & \\
|
||
\hline
|
||
\end{tabular}
|
||
\caption{Liste des paramètres d'une bulle liée à un chemin musical}
|
||
\label{tab:param3}
|
||
\end{table}
|
||
|
||
|
||
\subsubsection{M$_4$ : Chemins augmentés}
|
||
Nous avons rajouté des extensions au-dessus des chemins musicaux tels que
|
||
décrits dans la section précédente : accords, mélodies plus complexes et
|
||
rythme.
|
||
|
||
L'usage d'accords nous permet de comparer immédiatement deux parcours
|
||
simultanés, les mélodies nous permettent de déformer des thèmes connus (par
|
||
exemple la comptine Frère Jacques) et le rythme rajoute une information sur les
|
||
différences de distance entre le parcours dans un espace \emph{régulier} et
|
||
déformé.
|
||
|
||
\bigskip
|
||
Pour clore cette section, notez qu'une page web\footnote{%
|
||
\url{http://repmus.ircam.fr/blogteam/potier/list-of-parameter-mappings}}
|
||
~hébergée à l'\ircam\ permet d'écouter des échantillons sonores associées aux
|
||
méthodes M$_1$, M$_2$ et M$_3$ obtenus pendant l'implémentation.
|
||
|
||
\section{Implementation}
|
||
\label{sec:implementation}
|
||
% État du travail
|
||
Les mappings M$_1$, M$_2$, M$_3$ et M$_4$ ont été mis en pratique, à l'exception
|
||
de l'extension des chemins rythmiques à l'aide des courbes fractales continues
|
||
remplissant le plan. Tous les mappings ont été réalisés avec \openmusic, un
|
||
langage de programmation graphique (décrit plus en détail §~\ref{subseq:om}), et
|
||
une bibliothèque logicielle pour ce dernier regroupant les principales fonctions
|
||
pour la sonification des mousses est en cours de développement, cependant elle
|
||
est en cours de finalisation et demande encore quelques améliorations.
|
||
|
||
Tous les mappings ont été implémentés grâce aux outils présents à l'\ircam,
|
||
notamment \modalys, pour la synthèse modale, et \openmusic\ comme environnement
|
||
de programmation principal.
|
||
|
||
D'autres outils ont été employés pour les études préliminaires mais n'ont pas
|
||
été utilisés pour l'implémentation finale :
|
||
\begin{itemize}
|
||
\item Max, un environnement de programmation visuelle temps réel dédié aux
|
||
interactions visuelle et musicale, considéré pour la sonification de M$_1$ et
|
||
\item MGS, un langage de programmation spatiale \cite{giavitto_topological_2003}
|
||
\cite{bigo_building_2011}, considéré pour le calcul des projections de M$_3$.
|
||
\end{itemize}
|
||
|
||
Nous partons à chaque fois des données que nous fournissent les physiciens du
|
||
\lps. Ces données textuelles sont soit issues d'une simulation du système soit
|
||
d'une expérience physique en laboratoire. Les informations sont réparties en
|
||
fichiers, chaque fichier correspondant aux informations liées à une itération du
|
||
système. Par exemple, le fichier \verb+bubbleList0087.txt+ contient un tableau
|
||
des paramètres de chaque bulle à l'itération 87 du système, dont voici un aperçu
|
||
des cinq premières lignes~:
|
||
|
||
\begin{figure}[!h]
|
||
\begin{agrandirmarges}{1.5cm}
|
||
\centering\scriptsize
|
||
\begin{verbatim}
|
||
refAbs indiceT Xc Yc area perimeter perimeterSquel Voisin areaSquel
|
||
7 24 366.29319274879765 34.74824269330374 2703.0 194.2670273047588 220.8940178970694 6 3506.7500000000005
|
||
9 9 484.7240557389072 26.99101576824349 2727.0 194.75230867899737 111.60506872273685 3 1777.9735056839017
|
||
24 26 73.46391948347892 36.87713634637296 2633.0 192.8528137423857 218.2162989786121 6 3409.2083333333335
|
||
25 28 250.1252813203301 46.01950487621905 2666.0 192.2670273047588 217.44392303943744 6 3396.2916666666674
|
||
32 34 134.1557126480703 58.96121513183034 2617.0 192.02438661763952 216.35836507129306 6 3353.833333333333
|
||
\end{verbatim}
|
||
\end{agrandirmarges}
|
||
\end{figure}
|
||
|
||
Nous y trouvons :
|
||
\begin{description}
|
||
\item[refAbs] une référence absolue à une bulle qui permet de garder la trace
|
||
d'une bulle au cours des itérations;
|
||
\item[Xc, Yc] les coordonnées en abscisse et en ordonnée du centre de
|
||
la bulle ;
|
||
\item[area] l'aire de la bulle ;
|
||
\item[perimeter] le périmètre de la bulle ;
|
||
\item[Voisin] le nombre de voisines de la bulle.
|
||
\end{description}
|
||
Les autres paramètres présents ne sont pas utilisés lors des sonifications.
|
||
|
||
\subsection{Modalys}
|
||
\modalys\ (anciennement appelé Mosaïc) est un outil de synthèse modale par
|
||
modèle physique basée sur \lisp\ \cite{eckel_sound_1995}. Cet outil permet de
|
||
modéliser un objet physique et une (ou des) interaction(s) avec ce dernier.
|
||
\modalys\ simule les modes de vibration de cet objet et calcul le signal reçu
|
||
à un point donné de l'espace. Par exemple, le chevalet d'un violon et l'archet
|
||
frottant sur la corde pourraient être respectivement l'objet modélisé et
|
||
l'interaction.
|
||
|
||
Le profil vibratoire d'un objet modélisé peut être sauvegardé comme une liste
|
||
de modes propres de vibration (fréquences propres, déformées propres et
|
||
amortissement).
|
||
|
||
\subsection{OpenMusic}
|
||
\label{subseq:om}
|
||
\openmusic\ est un langage et environnement de programmation visuelle et
|
||
fonctionnelle basé sur le Common Lisp Object System (implémentation de
|
||
LispWorks). Développé par Carlos \textsc{Agon}, Gérard \textsc{Assayag} et
|
||
Jean \textsc{Bresson}, il a pour but premier d'assister le compositeur en lui
|
||
fournissant les outils et le formalisme pour exprimer ses idées.
|
||
|
||
La programmation s'effectue à base de patch, des icônes graphiques munies
|
||
d'entrées (les arguments de la fonction) et de sorties (le ou les résultats
|
||
de cette fonction), que l'on peut connecter à l'aide de liens pour passer des
|
||
valeurs (figure~\ref{fig:om}). Un patch peut aussi faire office de fonction
|
||
anonyme (lambda) à passer à un autre patch ou à une fonction écrite en \lisp\
|
||
directement. Plusieurs primitives de \modalys\ sont directement accessibles
|
||
dans \openmusic. Une fois ces patchs écrits et connectés, on lance l'évaluation
|
||
de l'ensemble pour obtenir un résultat. On programme ainsi une application en
|
||
dérivant les données en entrée jusqu'à obtenir le résultat escompté.
|
||
|
||
\openmusic\ est muni d'extensions pour la musique (notation, calcul dédié),
|
||
le son (extraction de caractéristiques), la spatialisation et même la vidéo.
|
||
Il permet aussi d'écrire directement des fonctions en \lisp\ et fournit une
|
||
interface visuelle pour la programmation des boucles, entre autre. C'est un
|
||
logiciel libre conçu et développé à l'\ircam\ fonctionnant sur MacOS et Windows
|
||
: ce sont ces arguments qui ont motivé notre choix.
|
||
|
||
\begin{figure}[p]
|
||
\centering
|
||
\includegraphics[width=.9\textheight,angle=90]{img/visual-prog}
|
||
\caption{Photo d'écran présentant plusieurs fenêtres d'\openmusic\ pendant
|
||
l'implémentation de M$_3$ et M$_4$}
|
||
\label{fig:om}
|
||
\end{figure}
|
||
|
||
\subsection{La bibliothèque logicielle \musify}
|
||
\label{subsec:musify}
|
||
La bibliothèque logicielle \musify\ a été développée dans le but de regrouper
|
||
les fonctions nécessaires à la musification d'un système complexe. Elles sont
|
||
suffisamment génériques pour s'étendre au delà des mousses, tant que le système
|
||
reste représentable en deux dimensions. Voici la liste provisoire des fonctions
|
||
retenues (travail en cours) qui se rapportent toutes à M$_3$ et M$_4$ :
|
||
\begin{description}
|
||
\item [\texttt{make\_DicoCoord}]
|
||
Cette fonction prend une liste de $n$ points $(x_1, y_1), \ldots, (x_n, y_n)$ et
|
||
retourne une table de hachage les contenant avec pour clef un entier indiquant
|
||
leur ordre :
|
||
$$ (1: (x_1,y_1)), \ldots, (n: (x_n,y_n))$$
|
||
Afin que le traitement des données reste rapide, sans pour autant stocker
|
||
implicitement des données en mémoire, nous utilisons cette table de hachage
|
||
pour maintenir le lien entre la référence des nœuds et leur coordonnées ; on
|
||
peut ainsi passer rapidement de la représentation de graphe à la représentation
|
||
spatiale plongée dans le plan.
|
||
\item [\texttt{coord\_to\_bubble}]
|
||
Cette fonction prend une coordonnée $(x,y)$ et renvoie l'identifiant $i$
|
||
correspondant à la bulle \emph{la plus proche}. Cela permet de sélectionner un
|
||
centre de bulle arbitrairement comme point de départ.
|
||
\item [\texttt{find\_neighbors}]
|
||
Cette fonction prend une table de hachage, trouve les voisins de chacun des
|
||
points dans la table et les numérote de manière unique. Elle retourne une
|
||
nouvelle table de hachage dans laquelle chaque identifiant est associé aux
|
||
identifiants de ses voisins : c'est une matrice d'adjacence. Notre
|
||
implémentation fait appel au logiciel \texttt{qdelaunay} qui calcule une
|
||
triangulation de Delaunay sur l'ensemble des points.
|
||
\item [\texttt{dirs\_to\_bubblepath}]
|
||
Cette fonction prend une liste de directions (des entiers de 1 à 6), une table
|
||
de hachage contenant le voisinage de chaque bulle, une bulle de départ et
|
||
retourne une suite d'identifiants de bulles.
|
||
C'est la première étape de la projection $\pi_{21}$.
|
||
\item [\texttt{bubblepath\_to\_notes}]
|
||
Cette fonction prend une liste d'identifiants de bulles, l'aire moyenne des
|
||
bulles, la table de hachage des voisins, deux paramètres pour générer un
|
||
tonnetz, une note de départ et retourne une liste de notes sous forme d'entiers.
|
||
C'est la seconde étape de la projection $\pi_{21}$ où on rend sous forme de note
|
||
le parcourt d'un chemin dans une mousse.
|
||
\item [\texttt{dirs\_to\_note}]
|
||
Cette fonction prend une liste de directions, deux paramètres pour générer un
|
||
tonnetz, une note de départ et retourne une liste de notes sous forme d'entiers
|
||
également. On rend sous forme de note le parcours d'un chemin dans le tonnetz.
|
||
\item [\texttt{dirs\_to\_coord}]
|
||
Cette fonction prend une liste de directions, l'aire moyenne des bulles, les
|
||
coordonnées de départ et génère les positions dans le plan des points du chemin
|
||
parcouru. On parcours ici le tonnetz dans le plan euclidien : cela permet de
|
||
comparer avec un parcours dans la mousse.
|
||
\end{description}
|
||
|
||
\section{Validation}
|
||
Les mappings que nous avons présentés sont des propositions qui ont pour
|
||
objectif d'explorer l'idée de la musification par rapport à la sonification
|
||
classique. Nous avons ainsi proposé des approches reposant sur le rythme et la
|
||
mélodie. Nous espérons que les exemples développés auront convaincu le lecteur
|
||
du fait qu'ils puissent facilement être étendus afin de mettre en œuvre des
|
||
accords, de la polyphonie, etc.
|
||
|
||
Cette validation doit permettre d'établir à quel point un mapping musical est
|
||
performant pour assister un sujet lors de l'analyse de l'évolution d'un système
|
||
physique complexe.
|
||
|
||
Chaque mapping a été testé avec différents paramètres et sur différents
|
||
échantillons de départ.
|
||
|
||
|
||
Comme la sonification est une activité impliquant la perception humaine (à
|
||
l'instar de la visualisation) comme finalité de sa production, il est primordial
|
||
de valider les résultats obtenus sur un grand nombre de sujet. Ainsi, on
|
||
s'assure du fait que les résultats obtenus sont bien reproductibles et sont bien
|
||
liés aux qualités de la technique plutôt qu'à des particularités d'un groupe
|
||
d'individus.
|
||
|
||
\subsection{Écoutes préliminaires}
|
||
En utilisant M$_1$, nous pouvons d’ores et déjà entendre un épisode
|
||
catastrophique lors de l'évolution temporelle d'une mousse. En effet, nous
|
||
utilisons une bande de fréquence de l'ordre de quelques Hertz en sortie afin
|
||
d'entendre un phénomène de battement et utilisons les correspondances nombre
|
||
de voisines/fréquence, aire/amplitude et périmètre/bande de fréquence (voir
|
||
table~\ref{tab:param1})~:
|
||
\begin{itemize}
|
||
\item Une mousse parfaitement ordonnée ne retourne qu'une fréquence unique, car
|
||
toutes les bulles ont le même nombre de voisines ;
|
||
\item Une mousse en phase intermédiaire présente des passages avec battements
|
||
entrecoupés de passages sans battements indiquant les épisodes catastrophiques ;
|
||
\item Une mousse en phase de « scaling state » ne présente plus de battements
|
||
car trop de fréquences sont mélangées, c'est plutôt un timbre complexe.
|
||
\end{itemize}
|
||
|
||
\medskip
|
||
Avec M$_2$, nous obtenons un résultat similaire : nous pouvons remarquer
|
||
un épisode catastrophique au niveau local car la phrase rythmique change
|
||
brusquement et se vide au fur et à mesure que les bulles grossissent.
|
||
|
||
\medskip
|
||
Avec M$_3$ et M$_4$, nous n'avons pas encore eu le temps d'effectuer
|
||
d'écoutes préliminaires.
|
||
|
||
\subsection{Un protocole pour la validation}
|
||
Nous proposons ici une idée de protocole à suivre pour la validation des données
|
||
expérimentales obtenues.
|
||
|
||
Les sujets sont assis dans un environnement isolé du bruit ambiant (chambre
|
||
anéchoïde) face à un écran et à un dispositif de pointage qui leur permet
|
||
de choisir une réponse parmi celles qui sont proposées.
|
||
|
||
% Les constantes sont les facteurs qui ne changent pas.
|
||
On effectue plusieurs passations (période pendant laquelle on teste l'effet d'un
|
||
paramètre sur un sujet) avec plusieurs modalités (paramètre que l'on teste).
|
||
Pendant la modalité «~organisation spatiale~», on vérifie ce qu'un sujet peut
|
||
reconnaître en prenant pour donnée du système en entrée un état du système à un
|
||
instant donné. Dans la modalité «~évolution temporelle~», on prend pour donnée
|
||
une évolution du système.
|
||
|
||
À chaque passation de la modalité «~organisation spatiale~», le sujet compare
|
||
les 2 échantillons sonores qui lui sont présentés et choisit (Gauche ou Droite)
|
||
celui qui répond le mieux à la question posée sur l'écran. Ces échantillons sont
|
||
issus de la sonification de deux échantillons de donnée initiale, avec deux
|
||
méthodes et mapping des paramètres identiques. On enregistre le choix fait et on
|
||
réitère en changeant d'abord d'échantillons, de mapping puis de méthode.
|
||
|
||
À chaque passation de la modalité « évolution temporelle », le sujet doit
|
||
décider s'il a perçu un évènement particulier dans l'échantillon sonore qu'il
|
||
a entendu (échantillon de 5 à 10 secondes). Cet échantillon est le fruit de la
|
||
sonification de 4 itérations de la simulation du murissement d'une mousse, avec
|
||
la même méthode de sonification. On enregistre la réponse (positive, négative)
|
||
et on réitère en changeant d'échantillon, de mapping puis de méthode.
|
||
|
||
On cherche à déterminer quel mapping de chaque méthode M$_1$, M$_2$ et M$_3$
|
||
est le plus efficace pour que le sujet reconnaisse l'information.
|
||
|
||
Afin de limiter la fatigue des sujets, l'expérience ne doit pas durer plus de
|
||
15 minutes.
|
||
|
||
\section{Perspectives}
|
||
De par la courte durée du stage et de par le côté fortement
|
||
exploratoire du sujet, certaines parties n'ont été que partiellement
|
||
traitées et d'autres n'ont été qu'entrevues.
|
||
|
||
\bigskip
|
||
Voici quelques explications sur les points insuffisamment abordés.
|
||
|
||
\begin{description}
|
||
\item[Vérification du graphe de voisinage.]
|
||
Le premier point à aborder est celui de la comparaison entre une triangulation
|
||
de Delaunay et le voisinage \emph{réel} dans une mousse. Comme décrit dans
|
||
§~\ref{subsec:musify}, nous utilisons une triangulation de Delaunay afin trouver
|
||
une relation de voisinage entre les bulles, afin de pouvoir décrire un chemin de
|
||
proche en proche. Un point important à vérifier est donc qu'il soit raisonnable
|
||
d'utiliser cette méthode comme approximation du voisinage, sachant que le
|
||
paramètre «~nombre de voisins~» est très important du point de vue des mousses
|
||
liquides en deux dimensions.
|
||
|
||
\item[Une extension de M$_1$.]
|
||
Une seconde voie d'amélioration serait d'ajouter à M$_1$ une donnée locale en
|
||
plus du traitement global. Pour le moment, nous considérons chaque bulle comme
|
||
des entités séparées et sans interaction les unes avec les autres. À l'instar
|
||
de carreaux hexagonaux en terre cuite que l'on peut trouver dans le midi,
|
||
suite à un tremblement de terre seuls certains d'entre eux sont fêlés à cause
|
||
des vibrations. Chacun d'entre eux ayant une fréquence de résonnance et étant
|
||
accolés les uns aux autres : seuls certains ont cassé et cela à cause d'une
|
||
amplification locale dûe au voisinage. En partant d'un principe similaire, il
|
||
serait intéressant de rajouter une interaction entre chaque bulle en prenant en
|
||
compte les fréquences de résonnance de chacune afin d'amplifier ou d'inhiber ses
|
||
voisines.
|
||
|
||
\item[Une validation approfondie.]
|
||
La partie de validation n'a malheureusement été que très peu traitée. Il est
|
||
primordial de mener des campagnes de validation auprès de très nombreux sujets
|
||
afin de valider statistiquement la pertinence des résultats.
|
||
|
||
\item[Développement d'un cadre général.]
|
||
Comme amorcé avec la bibliothèque logicielle \musify, nous avons pour
|
||
but de développer un environnement de sonification général permettant
|
||
l'exploration d'un ensemble de données pour y trouver des relations, de manière
|
||
semi-automatique, interactive (modèle Human-In-The-Loop) et temps-réel afin que
|
||
l'utilisateur puisse en permanence obtenir un retour sonore. Ce cadre général
|
||
vise à être développé dans un sujet de thèse déposé cette année à l'ÉDITE de
|
||
Paris VI.
|
||
|
||
\item[Explorer plus de mapping.]
|
||
Par exemple, il faudrait explorer des variantes de M$_3$ avec des accords plutôt
|
||
que des mélodies.
|
||
|
||
\item[Surchage cognitive.]
|
||
Il serait intéressant de savoir jusqu'à quel point on peut superposer
|
||
des informations différentes (comme dans M$_4$ : rythme, accord,
|
||
polyphonie, timbre, etc.) avant d'atteindre un point de surchage
|
||
cognitive~\cite{paas_cognitive_2004} (qui peut être tout autant un phénomène
|
||
masquage de fréquence), auquel cas il est inutile de continuer à «~empiler~»
|
||
l'information.
|
||
|
||
\item[Exploration des mappings.]
|
||
Comment explorer semi-automatiquement les mappings ? On pourrait faire défiler
|
||
auditivement plusieurs mapping différents du même processus et laisser
|
||
l'auditeur choisir le plus approprié. Il faut concevoir une interface pour
|
||
effectuer semi-automatiquement la correspondance afin que l'auditeur puisse
|
||
affiner lui-même son écoute, parmi un dictionnaire de mapping existant. Il
|
||
manque un outil générique et très flexible (comme \texttt{gnuplot}) qui, à
|
||
partir de séries temporelles, produit de la musique (plutôt que des graphiques).
|
||
|
||
\item[Étude systématique des rapports 2D/3D.]
|
||
Afin de pouvoir généraliser ensuite le modèle à trois dimensions, il serait
|
||
intéressant d'étudier en détail les projections de 3D vers 2D, avec une courbe
|
||
de Hilbert par exemple, par balayage (comme le principe du radar) ou par une
|
||
approche voisine de la tomographie discrète (reconstruction d'une image en 2D
|
||
par l'ensemble des projections du contour en 1D).
|
||
\end{description}
|