1370 lines
63 KiB
TeX
1370 lines
63 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 sonification/musification 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 (\ircam) possède
|
||
les outils informatiques et \emph{mathémusicaux} pour élaborer un environnement
|
||
de sonification apte à démontrer son intérêt.
|
||
|
||
Plus précisément, ce stage prends pour hypothèse que la musique peut aider le
|
||
processus de sonification 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 tonnetz et
|
||
graphe de Cayley et 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 leurs positions 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 \textsc{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{itemize}
|
||
\item{l'\textbf{Audification}} 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{les \textbf{Auditory Icons} et \textbf{Earcons}} 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{la \textbf{Model Based Sonification}} 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} et \item{la \textbf{Parameter Mapping Sonification}
|
||
(\textsc{Pms})}.
|
||
\end{itemize}
|
||
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 renseignent
|
||
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
|
||
\begin{tikzpicture}[auto,bend right,scale=\textwidth/5cm]
|
||
%every node/.style={transform shape}]
|
||
\node (phyrel) {Lois du système};
|
||
\node (phyobs) [below=of phyrel] {Observables};
|
||
\draw[thick,->, dotted] (phyobs) -- (phyrel);
|
||
\node (musobs) [right=of phyobs]
|
||
{Objets sonores};
|
||
\draw[black!50,thick,font=\scriptsize,->] (phyobs) to node
|
||
{mappings} (musobs);
|
||
\draw[black!50,thick,font=\scriptsize] (phyobs) to node [swap]
|
||
{sonification} (musobs);
|
||
|
||
\node (musrel) [above=of musobs]
|
||
{Relations sonores};
|
||
\draw[black!50,thick,font=\scriptsize,->] (musobs)
|
||
to node [swap,text width=21mm] {perception (IHM)} (musrel);
|
||
\draw[black!50,thick,->] (musrel) to node [swap] {?} (phyrel);
|
||
\end{tikzpicture}
|
||
|
||
\caption{Cycle des transformations pour la recherche de relations
|
||
dans un système complexe par sonification}
|
||
\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é à des cas
|
||
particuliers. Il est alors intéressant de passer par une sonification du
|
||
système (figure~\ref{fig:dico}). En utilisant la \textsc{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
|
||
Il existe plusieurs outils et environnements pour la recherche de relations par
|
||
\textsc{Pms} \cite{candey_xsonify_2006} \cite{pauletto_toolkit_2004}
|
||
\cite{walker_sonification_2003}, mais aucun ne tire réellement parti du côté
|
||
fortement structurel de la musique. Pourtant la musique a de réels atouts au
|
||
sein de la sonification, on parlera alors de \emph{musification}.
|
||
|
||
\subsection[À la musification]{\ldots\ à la musification}
|
||
Une approche de notre problème par les techniques de sonification classiques
|
||
nous semble limité 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 \textsc{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
|
||
\textsc{Pms} et nous permet de \emph{dépasser} la sonification pour aller vers
|
||
la musification.
|
||
|
||
\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\footnote{Ref needed} 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,
|
||
constitué de poches de gaz (bulles) dans le liquide. Les interfaces sont
|
||
constituées de molécules à la fois hydrophobes et hypdrophiles. Si le
|
||
comportement de ces mousses liquides est aujourd'hui bien connu, il n'en a pas
|
||
toujours été ainsi. Il a fallut 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'hyptohè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}
|
||
\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}.
|
||
Dans ce graphe, 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).
|
||
\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 compris. Le
|
||
paramètre $<A>/<A_0>$ décrit ici l'évolution du système. Ces trois figures
|
||
proviennent de \cite{drenckhan_presentation_2012}.
|
||
|
||
Nous opérons en aveugle, sans \emph{a priori} forts sur les mousses et leurs
|
||
agencements. 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 dimension 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 la set-theory.
|
||
|
||
\subsection{Une vue sur la théorie musicale}
|
||
\label{subsec:music}
|
||
Nous resterons très général sur 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 classes d'intervalles : la
|
||
\emph{set-theory} \cite{forte_structure_1973} \cite{rahn_basic_1987}
|
||
\cite{colloque_autour_de_la_set_theory_actes_2008}. 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 hauteur entre deux notes. Le plus petit
|
||
intervalle considéré est le demi-ton. Il y a 12 demi-tons dans la gamme
|
||
occidentale et ils sont répartis sur 7 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$_4$ a, par définition, une fréquence de
|
||
440~Hz et le La$_3$, à l'octave inférieure, a pour fréquence $f(La_4) / 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
|
||
\textsc{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égiants.
|
||
|
||
\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 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'un 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 de M1, page \pageref{subsec:modal}).
|
||
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 commes intervalles de temps.
|
||
|
||
\clearpage
|
||
\section{Méthode}
|
||
\subsection{Un tonnetz comme graphe de Cayley}
|
||
\label{subsec:tonnetz-cayley}
|
||
%(thèse de julien cohen)
|
||
Le graphe de Cayley 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$ setrouve entre les sommets $U$ et $V$ si $U + e = V$.
|
||
\end{itemize}
|
||
|
||
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é additivement car nous sommes dans un groupe abélien :
|
||
$$ g_{4,7} = < 4, 7\ |\ 3+4=0, 12+7=0 > $$
|
||
|
||
\begin{figure}[ht]
|
||
\centering
|
||
\subfloat[Chemin fermé universel dans un graphe de Cayley]{
|
||
\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,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);
|
||
\end{tikzpicture}
|
||
\label{fig:closepath}}
|
||
\qquad
|
||
\subfloat[Chemin fermé particulier dans un graphe de Cayley]{
|
||
\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}):
|
||
$$ w = a + b + -b + -a $$
|
||
|
||
Certains graphes de Cayley possèdent des chemins fermés qui leur sont
|
||
\emph{spécifiques} ; 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 $$
|
||
|
||
%%Chemins hamiltoniens dans le tonnetz \cite{albini_hamiltonian_2009}.
|
||
%Simple topological collections can be defined as \emph{group based fields}
|
||
%(GBF), that can be considered as associative arrays whose indexes are elements
|
||
%in a group~\cite{giavitto01c}. The group is defined by a \emph{finite
|
||
%presentation}:
|
||
%$$
|
||
%G = \langle
|
||
%\GBF{g}_1, \dots, \GBF{g}_n ;
|
||
%w_1 = 0, \dots w_n = 0
|
||
%\rangle
|
||
%$$
|
||
%where $G_g = \{ \GBF{g}_i \}$ is a set of generators together with some
|
||
%constraints $w_j$ on their combinations: $w_j \in G_g^*$ is a group element
|
||
%which equates to zero (we consider here only abelian groups and therefore
|
||
%we use an additive notation: 0 denotes the identity element of the group).
|
||
%%%
|
||
%Thus a GBF can be pictured as a labelled graph where the underlying graph
|
||
%is the Cayley graph of the finite presentation. The labels are the values
|
||
%associated with the vertices and the generators are associated with the
|
||
%edges. In other words, the set of vertices $\PosSet^0 = G$ and there is an
|
||
%edge labelled by $\GBF{g}_k \in G_g$ between the vertices $h$ and $h'$ iff
|
||
%$h + \GBF{g}_k = h'$.
|
||
%
|
||
%For instance, in order to define a square grid, we may use two generators
|
||
%\GBF{e} (east) and \GBF{n} (north). This is illustrated in the left part of
|
||
%Fig.~\ref{fig:grids}.
|
||
|
||
%\begin{figure}[!b]
|
||
%\begin{center}
|
||
%\begin{tikzpicture}
|
||
%\draw[densely dotted] (-.9,-.9) grid (3.9,2.9);
|
||
%\draw[fill] (1,0) circle (1.5pt) node[above right]
|
||
% {\GBF{e}};
|
||
%\draw[fill] (0,2) circle (1.5pt) node[above left]
|
||
% {$2\cdot\GBF{n}$};
|
||
%\draw[fill] (0,1) circle (1.5pt) node[above left]
|
||
% {\GBF{n}};
|
||
%\draw[fill] (1,2) circle (1.5pt) node[above right,cover]
|
||
% {$2\cdot\GBF{n}+\GBF{e}$};
|
||
%\draw[thick,->] (0,0) -- (1,0);
|
||
%\draw[thick,->] (0,0) -- (0,2);
|
||
%\draw[thick,->] (0,0) -- (0,1);
|
||
%\draw[thick,->] (1,0) -- (1,2);
|
||
%\draw[thick,->] (0,2) -- (1,2);
|
||
%\draw[fill=white] (0,0) circle (1.5pt) node[below,cover]
|
||
% {$0\cdot\GBF{n} = 0\cdot\GBF{e}$};
|
||
%%
|
||
%\begin{scope}[shift={(8,-.2)},scale=1.2]
|
||
%\path[clip](-.8,-.8) rectangle (3.1,2.3);
|
||
%\foreach \x in {-2,...,3}
|
||
% \foreach \y in {-2,...,3}
|
||
% \draw[densely dotted] (0,0) ++(0:\x) ++(60:\y) -- ++(60:1)
|
||
% -- ++(-60:1) -- +(180:1);
|
||
%\draw[fill] (0,0) ++(60:1) circle (1.5pt) node[above left,cover]
|
||
% {\GBF{n}};
|
||
%\draw[thick,->] (0,0) -- ++(60:1);
|
||
%\draw[fill] (0,0) ++(120:1) circle (1.5pt) node[above,cover]
|
||
% {\GBF{nw}};
|
||
%\draw[thick,->] (0,0) -- ++(120:1);
|
||
%\draw[fill] (0,0) ++(60:2) circle (1.5pt) node[above left,cover]
|
||
% {$2\cdot\GBF{n}$};
|
||
%\draw[thick,->] (0,0) -- ++(60:2);
|
||
%\draw[fill] (0,0) ++(0:1) circle (1.5pt) node[above,cover]
|
||
% {\GBF{e}};
|
||
%\draw[thick,->] (0,0) -- ++(0:1);
|
||
%\draw[fill] (0,0) ++(60:2) ++(0:1) circle (1.5pt) node[above,cover]
|
||
% {$2\cdot\GBF{n}+\GBF{e}$};
|
||
%\draw[thick,->] (0,0) ++(60:2) -- ++(0:1);
|
||
%\draw[very thick,dashed,->] (0,0) -- ++(0:2) -- ++(60:1) -- ++(120:1);
|
||
%\draw[fill=white] (0,0) circle (1.5pt) node[below,cover,text
|
||
% width=16mm,text centered] {$0\cdot\GBF{n} = 0\cdot\GBF{e}$\newline
|
||
% $= 0\cdot\GBF{nw}$};
|
||
%\end{scope}
|
||
%\end{tikzpicture}
|
||
%\end{center}
|
||
%\caption{Left: a GBF defining a square grid, with two generators
|
||
% \GBF{e} and \GBF{n}. Right: a GBF defining a triangular grid with
|
||
% three generators \GBF{e}, \GBF{n} and \GBF{nw}, and a constraint
|
||
% $\GBF{n} - \GBF{nw} = \GBF{e}$.}
|
||
%\label{fig:grids}
|
||
%\end{figure}
|
||
|
||
%Similarly, an hexagonal grid can be defined by means of three generators
|
||
%\GBF{n}, \GBF{e} and \GBF{nw} (north-west) and a constraint $\GBF{n} -
|
||
%\GBF{nw} = \GBF{e}$, as illustrated in the right part of
|
||
%Fig.~\ref{fig:grids}. As shown by the dashed path, we have
|
||
%$2\cdot\GBF{n}+\GBF{e} = 2\cdot\GBF{e} + \GBF{n} + \GBF{nw}$, which can be
|
||
%also checked in an algebraic way, by substituting \GBF{nw} with $\GBF{n} -
|
||
%\GBF{e}$ in this equality as allowed by the constraint.
|
||
%
|
||
%\textbf{(A UPDATER)}
|
||
%The GBF structure is thus adequate to define the arrangement on a
|
||
%grid, in any number of dimensions. In such grids, a distance can be
|
||
%naturally defined as the minimum number of steps in order to reach one
|
||
%point from the other (this is the approach of \emph{geometric group
|
||
% theory}). For instance, in the triangular grid of
|
||
%Fig.~\ref{fig:grids}, points at \GBF{e} and \GBF{n} are at distance
|
||
%1 because only one step in direction \GBF{nw} is required to reach the
|
||
%latter from the former; similarly, points \GBF{n} and
|
||
%$2\cdot\GBF{n}+\GBF{e}$ are at distance 2. Let us denote by
|
||
%$\Delta(x,y)$ the distance between two points $x$ and $y$. It is easy
|
||
%to check that $\Delta(x,y) = \Delta(y,x)$ for any $x$ and $y$.
|
||
%
|
||
%Such a distance can be used to implement our neighboring relation,
|
||
%for instance, for $x \neq y$, we could define:
|
||
%%
|
||
%$$\delta(x,y) \defeq {1 \over \Delta(x,y)}$$
|
||
%%
|
||
%which matches the intuition that $\delta(x,y) = 1$ for two immediate
|
||
%neighbors while $\delta(x,y)$ converges toward $0$ when $x$ and $y$
|
||
%become farther one each other.
|
||
%
|
||
%The main drawback with grids is that inserting new elements is
|
||
%possible only if a hole is already present. Consider for instance
|
||
%Fig.~\ref{fig:limitation} and assume that the modules represent
|
||
%cells forming a tissue. It would be difficult to model the division of
|
||
%cell~3, because there is no free position adjacent to~3. But in many
|
||
%biological system, we may expect that the division of cell~3 results
|
||
%in ``pulling away'' the neighboring cells. Similarly, if cell~3 is
|
||
%called to die, removing it from the grid will result in a disconnected
|
||
%tissue, which may be undesirable too.
|
||
|
||
|
||
\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
|
||
complètement dans le cadre de la sonification classique, les trois suivantes
|
||
tirent partie des théories musicales néo-Riemanniennes et portent sur des
|
||
études rythmiques et mélodiques.
|
||
|
||
\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 parcours 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
|
||
ensuites 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)$. La liste des paramètres peut être
|
||
consultée dans la table \ref{tab:param2}.
|
||
|
||
\begin{table}[hb]
|
||
\begin{agrandirmarges}{1cm}
|
||
\centering
|
||
\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 & 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{agrandirmarges}
|
||
\end{table}
|
||
|
||
Une technique similaire est mise en œuvre par S. Adhitya dans \textsc{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$, M$_3$ et M$_3$ on veut explorer un espace (2D)
|
||
mais en cheminant le long d'un chemin (1D). Cette démarche est intéressante et
|
||
logique pour les raisons suivantes :
|
||
\begin{itemize}
|
||
\item 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é ;
|
||
\item 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 ;
|
||
\item 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 n'être constitué que de segment de
|
||
droite.
|
||
\end{itemize}
|
||
|
||
On peut imaginer une famille de courbes $(H_0,H_1,H_2)$ qui remplissent de
|
||
mieux en mieux l'espace, $H_i$ approche et aggrège les parcelles.
|
||
|
||
\begin{figure}[ht]
|
||
\caption{famille de courbes}
|
||
\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 aggrégeant les
|
||
valeurs des bulles à une distance $D$, $D$ dépendant de l'itération de la
|
||
courbe de Hilbert : plus l'itération est élevée et plus $D$ est petit.
|
||
Arrivé à une segmentation de l'espace proche 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).
|
||
|
||
\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]
|
||
\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 hexagone correspond une note. Toutes
|
||
les transformations se font sur une base métrique.
|
||
|
||
\begin{figure}[ht]
|
||
\caption{Numérotation unique des voisins d'une bulle}
|
||
\label{fig:num}
|
||
\end{figure}
|
||
|
||
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}$ du groupe $\mathbb{Z}_{12}$, chaque élément a
|
||
six voisins, en prenant les directions \texttt{a}, \texttt{b}, \texttt{a+b},
|
||
\texttt{-a}, \texttt{-b} et \texttt{-(a+b)}. 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
|
||
coordoné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.
|
||
|
||
\begin{table}[hb]
|
||
\begin{agrandirmarges}{1.5cm}
|
||
\centering
|
||
\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{agrandirmarges}
|
||
\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é.
|
||
|
||
\clearpage
|
||
\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\ 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 n'est pas prête à l'issue de ce stage 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 é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 \textsc{Mgs}, un langage de programmation spatiale
|
||
\cite{giavitto_mgs_2001}, considéré pour le calcul des projections de M$_3$.
|
||
\end{itemize}
|
||
|
||
\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 alto et
|
||
l'archer 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équence, bande passante, amplitude).
|
||
|
||
\subsection{OpenMusic}
|
||
\openmusic\ est un langage et environnement de programmation visuelle
|
||
et fonctionnelle basé sur 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 patch écrits et connecté 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 fourni 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}[ht]
|
||
\includegraphics[width=\textwidth]{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 coordoné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 renvoit 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, un 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 parcours 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 liset 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}
|
||
Chaque mapping a été testé avec différents paramètres et sur différents
|
||
échantillons de départ.
|
||
|
||
\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.
|
||
À chaque passation de la modalité « organisation spatiale », le sujet compare
|
||
les 2 échantillons sonores qui lui sont présentés et choisi (Gauche ou Droite)
|
||
celui qui répond le mieux à la question posée sur l'écran. Ces échantillons sont
|
||
issu de la sonification 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ération de la simulation du murrissement 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.
|
||
|
||
\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 quelque 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 eu encore eu le temps d'effectuer
|
||
d'écoutes préliminaires.
|
||
|
||
\section{Perspectives}
|
||
De part la courte durée du stage et de part le côté fortement exploratoire du
|
||
sujet, certaines parties n'ont été que partiellement traitées et d'autres n'ont
|
||
été qu'entrevues. Voici quelques explications sur les points insuffisamment
|
||
abordés.
|
||
|
||
\subsection{Une amélioration des mapping}
|
||
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.
|
||
|
||
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 interactions 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.
|
||
|
||
\subsection{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.
|
||
|
||
\subsection{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'\textsc{Édite} de Paris VI (annexe~\ref{anx:sujet}).
|
||
|