www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit f3bc534db906a9a3bffe32234d47e1ee770907bd
parent 2d9ab5a097684a186a4f278dc749c5631d02c15a
Author: gduperon <gduperon@5d9ba3ac-444b-4713-9fb3-0b58e79229a2>
Date:   Mon, 17 May 2010 03:28:04 +0000

Section Dataflow OK

git-svn-id: https://projetud.info-ufr.univ-montp2.fr/svn/flin607-2009-gduperon@54 5d9ba3ac-444b-4713-9fb3-0b58e79229a2

Diffstat:
Mrapport/biblio.bib | 19++++++++++++++-----
Arapport/images/alsa-modular-synth.png | 0
Arapport/images/dark-tower-of-meta-levels.jpg | 0
Arapport/images/labview.png | 0
Rrapport/lisp-class-graph.png -> rapport/images/lisp-class-graph.png | 0
Arapport/images/quartz-composer.png | 0
Arapport/images/world-machine.jpg | 0
Mrapport/rapport.pdf | 0
Mrapport/rapport.tex | 140+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
9 files changed, 119 insertions(+), 40 deletions(-)

diff --git a/rapport/biblio.bib b/rapport/biblio.bib @@ -44,23 +44,31 @@ @misc{modular-synth, author = {Jacques Bon}, url = {http://cafcom.free.fr/ams/ams1.html}, - note = {Article décrivant les premiers synthétiseurs virtuels et leur relation avec les synthétiseurs matériels : \myurl{\url{http://cafcom.free.fr/ams/ams1.html}}, section intitulée «Débuts de l'informatique musicale»}} + note = {Article décrivant les premiers synthétiseurs virtuels et leur relation avec les synthétiseurs matériels, \myurl{\url{http://cafcom.free.fr/ams/ams1.html}}, section intitulée «Débuts de l'informatique musicale»}} % http://cafcom.free.fr/ams/ams1.png @misc{alsa-modular-synth, author = {Jacques Bon}, url = {http://cafcom.free.fr/ams/ams2.html}, - note = {Article décrivant Alsa Modular Synth : \myurl{\url{http://cafcom.free.fr/ams/ams2.html}}}} + note = {Article décrivant Alsa Modular Synth, \myurl{\url{http://cafcom.free.fr/ams/ams2.html}}}} % http://www.world-machine.com/images/ui1.jpg @misc{world-machine, author = {Stephen Schmitt}, url = {http://www.world-machine.com/features.html}, - note = {Fonctionnalités de world machine : \myurl{\url{http://www.world-machine.com/features.html}}}} + note = {Fonctionnalités de world machine, \myurl{\url{http://www.world-machine.com/features.html}}}} % http://upload.wikimedia.org/wikipedia/en/thumb/b/bc/QuartzComposerSnowLeopard.png/800px-QuartzComposerSnowLeopard.png @misc{quartz-composer, url = {http://en.wikipedia.org/wiki/Quartz_Composer}, - note = {Capture d'écran sur la page wikipédia «Quartz Composer» : \myurl{\url{http://en.wikipedia.org/wiki/Quartz_Composer}}}} + note = {Capture d'écran sur la page wikipédia «Quartz Composer», \myurl{\url{http://en.wikipedia.org/wiki/Quartz_Composer}}}} -% +% +@misc{the-right-tool, + url = {http://therighttool.hammerprinciple.com/}, + note = {Sondage cherchant à déterminer quelles affirmations correspondent le mieux à quels langages de programmation, \myurl{\url{http://therighttool.hammerprinciple.com/}}}} + +% http://zone.ni.com/devzone/cda/tut/p/id/9387 +@misc{labview, + url = {http://zone.ni.com/devzone/cda/tut/p/id/9387}, + note = {Logiciel de mesure LabView, \myurl{\url{http://zone.ni.com/devzone/cda/tut/p/id/9387}}}}, +\ No newline at end of file diff --git a/rapport/images/alsa-modular-synth.png b/rapport/images/alsa-modular-synth.png Binary files differ. diff --git a/rapport/images/dark-tower-of-meta-levels.jpg b/rapport/images/dark-tower-of-meta-levels.jpg Binary files differ. diff --git a/rapport/images/labview.png b/rapport/images/labview.png Binary files differ. diff --git a/rapport/lisp-class-graph.png b/rapport/images/lisp-class-graph.png Binary files differ. diff --git a/rapport/images/quartz-composer.png b/rapport/images/quartz-composer.png Binary files differ. diff --git a/rapport/images/world-machine.jpg b/rapport/images/world-machine.jpg Binary files differ. diff --git a/rapport/rapport.pdf b/rapport/rapport.pdf Binary files differ. diff --git a/rapport/rapport.tex b/rapport/rapport.tex @@ -14,8 +14,9 @@ } \usepackage{graphicx} -\graphicspath{images} -\usepackage{subfigure} +\graphicspath{{images/}} +\usepackage{subfig} +\usepackage{calc} \usepackage{pgffor} \usepackage{ifthen} @@ -79,47 +80,115 @@ succès dans certains domaines, principalement des domaines intéressant les non \subsubsection{Graphisme} - -Certains logiciels de graphisme représentent des filtres graphiques par des boîtes. Pour enchaîner des filtres, on connecte la sortie d'un -aux entrées des autres. Ainsi, Quartz Composer permet la création d'images vectorielles animées sous MacOS de manière grapq ; -\item World Machine, un générateur de cartes de hauteurs (heightmaps) ; -\end{itemize} +Le logiciel Quartz Composer sous MacOS permet la création d'images vectorielles animées et interactives sous MacOS de manière graphique~: On +applique des filtres graphiques, représentés par des boîtes, aux résultats d'autres filtres, en connectant les boîtes entre elles. Dans +World Machine, ces filtres sont des actions physiques (érosion, soulèvement) et permettent de générer des cartes de hauteur (heightmaps), +qui sont utilisées pour modéliser des terrains en 3D. \subsubsection{Musique} L'interface de certains logiciels de musique s'inspirent de l'architecture des synthétiseurs modulaires\cite{modular-synth} (ces grosses boîtes avec pleins de prises jack qu'on relie avec des câbles : chaque prise jack est une entrée ou une sortie d'un module, les câbles sont -les connexions). -\begin{itemize} -\item Max/MSP, prédécesseur de PureData ; -\item Alsa Modular Synth ; % TODO -\end{itemize} - -Traitement de signaux -\begin{itemize} -\item LabView -\end{itemize} - -\begin{figure}[htp!] - \centering - % - %http://cafcom.free.fr/ams/ams1.png - \subfigure[Alsa Modular Synth\cite{alsa-modular-synth}]{\label{fig:alsa-modular-synth}\includegraphics[width=5cm]{alsa-modular-synth}} - % - % http://www.world-machine.com/images/ui1.jpg - \subfigure[World Machine\cite{world-machine}]{\label{fig:world-machine}\includegraphics[width=5cm]{world-machine}} - % - % http://upload.wikimedia.org/wikipedia/en/thumb/b/bc/QuartzComposerSnowLeopard.png/800px-QuartzComposerSnowLeopard.png - \subfigure[World Machine\cite{world-machine}]{\label{fig:world-machine}\includegraphics[width=5cm]{quartz-composer}} - % +les connexions). Un des premiers synthétiseurs virtuels, Max/MSP, utilisait cette analogie. D'autres logiciels similaires lui ont succédé : +PureData (qui est aussi un langage de programmation généraliste), Alsa Modular Synth, \dots + +% http://recherche.ircam.fr/equipes/repmus/RMPapers/CMJ98/ + +\subsubsection{Mesures scientifiques} + +LabView permet aux scientifiques de procéder à des traitements sur les signaux et les données acquises depuis un ordinateur, grâce à un +langage de programmation graphique utilisant le paradigme du dataflow. + +\begin{figure}[ht] + \setbox1=\hbox{\includegraphics[width=5cm]{alsa-modular-synth}}% The smaller image + \setbox2=\hbox{\includegraphics[width=5cm]{world-machine}}% The larger image + {\,} + \hfill + \begin{minipage}{5cm} + \centering + % http://cafcom.free.fr/ams/ams1.png + \raisebox{0.5\ht2-0.5\ht1}{\includegraphics[width=5cm]{alsa-modular-synth}} + \end{minipage} + \hfill + \begin{minipage}{5cm} + \centering + % http://www.world-machine.com/images/ui1.jpg + \includegraphics[width=5cm]{world-machine} + \end{minipage} + \hfill + {\,} + + %%%%%%%%%% + + {\,} + \hfill + \begin{minipage}{5cm} + \centering + \caption{Alsa Modular Synth\cite{alsa-modular-synth}} + \label{fig:alsa-modular-synth} + \end{minipage} + \hfill + \begin{minipage}{5cm} + \centering + \caption{World Machine\cite{world-machine}} + \label{fig:world-machine} + \end{minipage} + \hfill + {\,} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + \setbox1=\hbox{\includegraphics[width=5cm]{alsa-modular-synth}}% The smaller image + \setbox2=\hbox{\includegraphics[width=5cm]{world-machine}}% The larger image + {\,} + \hfill + \begin{minipage}{5cm} + \centering + % http://upload.wikimedia.org/wikipedia/en/thumb/b/bc/QuartzComposerSnowLeopard.png/800px-QuartzComposerSnowLeopard.png + \raisebox{0.5\ht2-0.5\ht1}{\includegraphics[width=5cm]{quartz-composer}} + \end{minipage} + \hfill + \begin{minipage}{5cm} + \centering + % http://zone.ni.com/cms/images/devzone/tut/binary_tree2.png + \includegraphics[width=5cm]{labview} + \end{minipage} + \hfill + {\,} + + %%%%%%%%%% + + {\,} + \hfill + \begin{minipage}{5cm} + \centering + \caption{Quartz Composer\cite{quartz-composer}} + \label{fig:quartz-composer} + \end{minipage} + \hfill + \begin{minipage}{5cm} + \centering + \caption{LabView\cite{labview}} + \end{minipage} + \hfill + {\,} \caption{Captues d'écrans de quelques langages de programmation utilisant le paradigme du dataflow.} - \label{fig:config/demar} + \label{fig:screenshots} \end{figure} -\begin{itemize} -\item vidéo alan kay -\item http://recherche.ircam.fr/equipes/repmus/RMPapers/CMJ98/ -\end{itemize} +\subsubsection{Traitement de signaux} + +Force est de constater que tous les exemples cités ci-dessus sont des cas particuliers de traitement de signal (image, son, signaux +provenant d'appareils de mesure). Le paradigme du dataflow devrait être tout aussi efficace pour construire des programmes conventionnels~: +les signaux d'entrée sont les évènements provoqués par l'utilisateur (clic de souris, appui sur le clavier), ceux de sortie sont les retours +(écran, haut-parleurs, \dots). Cependant, les langages graphiques n'ont eu que peu de succès auprès de la communauté des programmeurs, et +les raisons de ce rejet méritent d'être étudiées. + +Récemment, un chercheur a mis en place un sondage auprès des programmeurs qui devrait à terme permettre de savoir quels langages +correspondent le mieux à quelles affirmations, selon les programmeurs\cite{the-right-tool}. Ces affirmations sont du type «Ce langage est facile à utiliser» ou +«Ce langage à une bonne communauté». Les affirmations qui obtiennent les moins bons scores pour un langage donné indiquent en général les +défauts de ce langage. J'ai donc contacté l'auteur de ce sondage pour lui demander d'ajouter des langages de programmation visuels pendant +que le sondage est encore ouvert. \subsection{Langages spécifiques à un domaine} @@ -341,6 +410,7 @@ Pour l'implémentation, nous nous limiterons à un sous-ensemble purement foncti \begin{itemize} \item gruntnetwork.com \item La thèse sur la programmation par l'exemple +\item vidéo alan kay \end{itemize} \subsection{Notes pour la suite\dots}