From 067a164a54ea79e5037fcfa60e1d4bd499d0ab3a Mon Sep 17 00:00:00 2001 From: Martin Potier Date: Sun, 12 Aug 2012 20:40:08 +0200 Subject: [PATCH] A little bit more --- StageSonification2012.bib | 12 ++- content.tex | 195 +++++++++++++++++++++++++++++++++----- memoire.tex | 24 +++++ 3 files changed, 205 insertions(+), 26 deletions(-) diff --git a/StageSonification2012.bib b/StageSonification2012.bib index 3fd3b36..88f3fc3 100644 --- a/StageSonification2012.bib +++ b/StageSonification2012.bib @@ -329,4 +329,14 @@ title = {A presentation on liquid foams}, author = {Drenckhan, Wiebke}, year = {2012} -} \ No newline at end of file +} + +@techreport{giavitto_mgs_2001, + address = {CNRS, Universit\'e d'\'Evry Val d'Essonne, \'Evry, France}, + author = {Giavitto, Jean-Louis and Michel, Olivier}, + institution = {Laboratoire de M\'ethodes Informatiques}, + keywords = {ds2, mgs, tissue\_modelling}, + month = {Mai}, + title = {{MGS}: a {P}rogramming {L}anguage for the {T}ransformations of {T}opological {C}ollections}, + year = {2001} +} diff --git a/content.tex b/content.tex index 09d0758..46153dd 100644 --- a/content.tex +++ b/content.tex @@ -737,7 +737,139 @@ 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. -%Chemins hamiltoniens dans le tonnetz \cite{albini_hamiltonian_2009}. +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é : +$$ 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$ : +$$ 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 @@ -890,11 +1022,10 @@ dimensions} 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 espace pavé de notes. -Ce dernier, plongé dans l'espace, est ensuite déformé au gré de l'évolution du -système. +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 @@ -910,17 +1041,17 @@ les transformations se font sur une base métrique. \label{fig:num} \end{figure} -Un chemin dans une mousse est une suite de sauts entre bulles voisines. Plongé -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 voisinnage 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 le -graphe de Cayley. On construit les projections de la manière suivante : +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 voisinnage 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$. @@ -988,16 +1119,27 @@ 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 librairie 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 : Max et \textsc{Mgs}. - -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. +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 @@ -1009,7 +1151,7 @@ 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 +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} @@ -1022,8 +1164,7 @@ office de fonction anonyme à passer à un autre patch ou à une fonction écrit en \lisp\ directement. Plusieurs primitives de \modalys\ sont directement accessibles dans \openmusic. -\subsection{Mappings} - +\subsection{Organisation des patchs} \section{Validation} Chaque mapping a été testé avec différents paramètres et sur différents @@ -1045,10 +1186,14 @@ abordés. \subsection{Une amélioration des mapping} comparaison delaunay / voisin mousse +Peut-on reconnaitre la forme d'un tambour ? + Un meilleur traitement local/global (id Laurent) \subsection{Une validation approfondie} Écoutes beaucoup sujets, statistiques \subsection{Développement d'un cadre général} +Librairie (environnement de sonification) + Fait l'objet d'un sujet de thèse à l'\textsc{Édite} de Paris VI. diff --git a/memoire.tex b/memoire.tex index 7cc9f82..47e90c3 100644 --- a/memoire.tex +++ b/memoire.tex @@ -9,6 +9,8 @@ \usepackage[french]{babel} \usepackage{url} \usepackage{tikz} +\usetikzlibrary{petri} +\usetikzlibrary{shapes} \usetikzlibrary{positioning} \usepackage[lofdepth,lotdepth]{subfig}% replaces subfigure \usepackage{scrtime} @@ -43,6 +45,28 @@ \item }% {\end{list}} +\tikzset{ + >=latex, + every place/.style={minimum size=6mm}, + every transition/.style={minimum size=6mm}, + token distance=5pt, +} +\tikzstyle{cover}=[fill=white,opacity=.6,text opacity=1,inner + sep=.1em,outer sep=.2333em] +\tikzstyle{lvar}=[draw,circle,minimum size=6mm,inner sep=1pt] +\tikzstyle{trans}=[draw,diamond,minimum size=6mm,inner sep=1pt] +\tikzstyle{gvar}=[draw,rectangle,minimum size=6mm,inner sep=1pt] +\tikzstyle{lmes}=[draw,circle,densely dotted,thick,minimum size=6mm, + inner sep=1pt] +\tikzstyle{gmes}=[draw,rectangle,densely dotted,thick,minimum + size=6mm,inner sep=1pt] +\tikzstyle{activator}=[->] +\tikzstyle{inhibitor}=[-|,shorten >=1pt] +\newcommand{\GBF}[1]{#1} +\newcommand{\PosSet}{PosSet} +\newcommand{\defeq}[1]{defeq~#1} + +% ------------------------------------------------------------------------------ \begin{document} \titlehead{{\Large\ircam\hfill\lps}\\% UMR 9912 - STMS \hfill UMR 8502 - Université Paris-Sud\\%