\documentclass[11pt]{beamer} \usepackage{xunicode}% for XeTex! \usepackage{fontspec}% for XeTex! \usepackage{xltxtra} % for XeTex! \usepackage{amsfonts}% for Z12 \usepackage[french]{babel} \usepackage{url} \usepackage{tikz} \usetikzlibrary{shapes} \usetikzlibrary{shapes.geometric} \usetikzlibrary{positioning} \usetikzlibrary{fit} \usetikzlibrary{lindenmayersystems}% for Hilbert curve \usetikzlibrary{external} \tikzexternalize[prefix=figs/] \tikzset{external/system call={xelatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"}} \usepackage[lofdepth,lotdepth]{subfig}% replaces subfigure % The presentation specific packages %\usepackage{hyperref} \usepackage{multimedia} \defaultfontfeatures{Scale=MatchLowercase} \setromanfont[Mapping=tex−text]{Linux Libertine O} \setsansfont [Mapping=tex−text]{Ubuntu} \setmonofont [Mapping=tex−text]{Inconsolata} \newcommand{\ircam}{Ircam} \newcommand{\lps}{Lps} \newcommand{\lisp}{Lisp} \newcommand{\mlys}{Modalys} \newcommand{\om}{OpenMusic} \newcommand{\mpri}{Mpri} \newcommand{\todo}{\fbox{\texttt{todo}}} \newcommand{\sonif}[2]{% \parbox{2ex}{\includegraphics[height=2ex]{figs/speaker}}% \hspace{.5em}\emph{#2}} \hyphenation{con-cen-trent} \AtBeginSection[]{ \frame{\sectionpage} } \pgfdeclarelindenmayersystem{Hilbert curve}{% Rewrite rule for Hilbert curve \rule{L -> +RF-LFL-FR+} \rule{R -> -LF+RFR+FL-}} \begin{document} \title{De la sonification à la « musification »\\de systèmes complexes} \subtitle{Présentation de stage} \author{Martin Potier\\ {\scriptsize MPRI, Université Paris Diderot}} \date{6 septembre 2012} \institute{ {\small\textbf{Wiebke Drenckhan}}\\ Laboratoire de Physique des Solides, Université Paris Sud, CNRS \and {\small\textbf{Moreno Andreatta} et \textbf{Jean-Louis Giavitto}}\\ Équipe Représentation Musicales, Institut de Recherche et Coordination Acoustique/Musique, CNRS} % Each presentation will last 30 minutes (20 minutes of presentation + 10 % minutes of questions). A video-projector will be available. \frame{\titlepage} \begin{frame}{Plan} \tableofcontents \end{frame} \section{Motivations : comment se comporte une mousse ?} % Trouver des lois d'un système complexe sans connaissance a priori \begin{frame}{Comprendre l'évolution d'une mousse liquide en deux dimensions} % movie %\movie[width=\textwidth,height=.8\textheight]{ % \includegraphics[width=\textwidth,height=.8\textheight]{figs/poster}} %{figs/coarsening.avi} \end{frame} \begin{frame}{Comprendre l'évolution d'une mousse liquide (suite)} \begin{center} Comment qualifier ces 3 organisations spatiales ? \end{center} \begin{columns} \column{.3\textwidth} \includegraphics[width=\textwidth]{figs/foam2D-honeycomb} \column{.3\textwidth} \includegraphics[width=\textwidth]{figs/foam2D-grain-boundaries} \column{.3\textwidth} \includegraphics[width=\textwidth]{figs/foam2D-disordered} \end{columns} \pause \begin{columns} \column{.6\textwidth} \includegraphics[width=\textwidth]{figs/lauriesfoam} \column{.4\textwidth} \begin{itemize} \item 10 ans pour obtenir le modèle ! \item Pourrait-on aller plus vite ? \item Pourrait-on \emph{entendre} la mousse ? \end{itemize} \end{columns} \end{frame} \section{De la sonification scientifique\ldots} \begin{frame}{Un nouveau domaine} \begin{itemize} \item Propriétés intéressantes du système auditif : reconnaissance des objets sonores évoluant \emph{dans le temps}, spatialisation, multi-échelle, \ldots \item En parallèle de la \emph{visualisation scientifique} des données. \end{itemize} \begin{quote} « Sonification is the transformation of data relations into perceived relations in an acoustic signal for the purposes of facilitating communication or interpretation. »\hfill\textbf{Kramer~1999} \end{quote} \pause \begin{center} \usebeamercolor{frametitle} \begin{tikzpicture}[align=center, every node/.style={fg,auto}] \node (phystate) {État local du système}; \node (phyobs) [below=of phystate] {Observables}; \node (sonrel) [right=of phystate] {Relations sonores\\(analogiques)}; \node (sonobs) [below=of sonrel] {Objets sonores}; \node (qb) at (barycentric cs:phyobs=1,sonobs=1) [black,yshift=-1cm,font=\scriptsize] {mappings\\sonification}; \draw[thick,->, dotted] (phyobs) -- (phystate); \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); \end{tikzpicture} \end{center} \end{frame} \begin{frame}{\sonif{sound/M1}{M$_1$ : synthèse modale, timbre et ordre (30 s)}} Utilise Modalys (outil de l'IRCAM) pour la synthèse de timbre \medskip \begin{center} \begin{tabular}{|r|l|} \hline \textbf{Paramètres des bulles} & \textbf{Paramètres du mapping} \\ \hline Nombre de voisines & Fréquence \\ Aire & Bande de fréquence \\ Périmètre & Amplitude \\ \hline \end{tabular} \end{center} \medskip Modalys simule 900 oscillateurs (un par bulle). \pause\medskip On peut entendre les 3 configurations spatiales précédentes : \begin{description} \item[Ordre] $\rightarrow$ fréquence pure ; \item[Grain boundaries] $\rightarrow$ battement (deux fréquences proches) ; \item[Désordre] $\rightarrow$ bruit non caractéristique. \end{description} On pourrait faire mieux\ldots \end{frame} \section{\ldots à la musification} \begin{frame}{Enrichir la sonification} \begin{columns} \column{.7\textwidth} \usebeamercolor{frametitle} \pgfdeclarelayer{background} \pgfsetlayers{background,main} \begin{tikzpicture}[align=center, every node/.style={fg,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} \pause \column{.3\textwidth} \begin{itemize} \item plus de paramètres \item à plusieurs échelles \item paramètres plus « riches » \end{itemize} Bande passante de données à mapper plus grande \end{columns} \end{frame} \begin{frame}{\sonif{sound/M2}{M$_2$ : un mapping rythmique (22 s)}} \begin{columns} \column{.5\textwidth} \includegraphics[width=\textwidth]{figs/chemin-rythm1} \column{.5\textwidth} \includegraphics[width=\textwidth]{figs/chemin-rythm2} \end{columns} 40 premières itérations \pause \begin{columns} \column{.5\textwidth} \includegraphics[width=\textwidth]{figs/lauriesfoam} \column{.5\textwidth} Conclusion : \begin{itemize} \item on entend un changement \item placement de $\Delta$ arbitraire \item 1D alors que 2D \end{itemize} \end{columns} \end{frame} \begin{frame}{Des Tonnetz aux graphes de Cayley} \begin{center} \includegraphics[width=\textwidth]{figs/piano} \end{center} \hspace{2cm}$\downarrow$\hfill$\downarrow$\hspace{2cm} \begin{columns}[c] \column{.4\textwidth} \includegraphics[width=\textwidth]{figs/eulers-tonnetz}\\ {\scriptsize L. Euler (1739)} \column{.05\textwidth} $$ \rightarrow $$ \column{.4\textwidth} \begin{tikzpicture} [note/.style={draw,black,circle,inner sep=.5mm,minimum size=8mm}, label distance=-1mm,label position=below left, double distance=.5mm, scale=.5, transform shape] \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} \end{columns} \medskip Une présentation possible du groupe $\mathbb{Z}_{12}$ avec deux générateurs : $$ 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} > $$ \end{frame} \begin{frame}{Des Tonnetz aux graphes de Cayley (suite)} \begin{center} \begin{tikzpicture} [note/.style={draw,black,circle,inner sep=2mm}, hex/.style={}, label distance=-1mm,label position=below left, double distance=.5mm,xscale=.60\textwidth/9.2cm, yscale=.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} \end{center} Peut-on entendre la déformation d'une grille hexagonale ? \end{frame} \begin{frame}{\sonif{sounds/M3}{M$_3$ : un mapping intervallique (53 s)}} \begin{columns} \column{.2\textwidth} \begin{tikzpicture}[rotate=30,scale=.5, 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} \column{.6\textwidth} \includegraphics[width=\textwidth]{figs/bulandhex} \end{columns} \medskip \begin{columns} \column{.3\textwidth} \includegraphics[width=\textwidth]{figs/hex} \column{.3\textwidth} \includegraphics[width=\textwidth]{figs/bul} \end{columns} \medskip \begin{center} \end{center} \end{frame} \begin{frame}{\sonif{sounds/M4}{M$_4$ : un mapping intervallique et rythmique (58 s)}} Association de M$_2$ (rythme comme distance entre points) et de M$_3$ (intervalles comme projection sur un tonnetz) \end{frame} \section{Conclusion} \begin{frame}{Bilan \& Perspectives} Réalisation d'une bibliothèque logicielle \textbf{Musify} avec OpenMusic : \begin{itemize} \item langage fonctionnel \item analyse musicale computationnelle \item réutilisation pour la composition \end{itemize} \includegraphics[width=\textwidth]{figs/visual-prog} \end{frame} \begin{frame}{Bilan \& Perspectives (suite)} Les résultats sont encourageants : \begin{itemize} \item On repère des phases (épisodes catastrophiques) \item Faible temps de calcul (< quelques secondes) \item Beaucoup de variations à étudier \end{itemize} Ce qui est prévu : \begin{itemize} \item \texttt{gnusic} (en référence à gnuplot) \item exploration assistée des mappings (système de types ?) \end{itemize} \end{frame} \begin{frame} \begin{center} Merci de votre attention \end{center} \end{frame} \bgroup \setbeamercolor{background canvas}{bg=black} \begin{frame}[plain]{} \end{frame} \egroup \begin{frame}{Implémentation} QHull, Triangulation de Delaunay \end{frame} \begin{frame}{De 2 à 3 dimensions} Courbes de Hilbert : \begin{center} \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 \begin{tikzpicture}[scale=.80] \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} \hfill \begin{tikzpicture}[scale=.80] \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} \hfill \begin{tikzpicture}[scale=.80] \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} \end{figure} \end{center} \end{frame} \end{document}