Commits

Pierre Pagnoux committed 9779f74

General review.

  • Participants
  • Parent commits 1342bad

Comments (0)

Files changed (19)

File doc/img/amp_high.pdf

Binary file added.

File doc/img/amp_k.pdf

Binary file added.

File doc/img/amp_low.pdf

Binary file added.

File doc/img/amp_med.pdf

Binary file added.

File doc/img/website1.png

Added
New image

File doc/sout3/amp.md

-# Amplification
+# Effets audio
+
+## Amplification
 
 Le but principal de ce projet est d’amplifier une onde sonore et à cela s’ajoute divers effets. Le son est une onde produite par la vibration mécanique d’un support *fluide* ou *mécanique* et propagée grâce à l’élasticité du milieu environnant sous forme d’ondes *longitudinales*. Dans notre cas, le son est produit par un instrument de musique et est capté par un micro — classique ou bien piézo-électrique. On obtient alors un signal analogique continu qui est transmis via un câble jusqu’à la carte son de notre ordinateur.
 
-## Signaux analogiques et discrets
+### Signaux analogiques et discrets
 
 Sur un modèle électronique, un amplificateur et les autres effets sont reliés les uns à la suite des autres. Les modifications du signal opèrent grâce des matériaux électroniques — condensateurs, transistors, résistances, etc ... Le signal analogue d’entré $x(t)$ est traduit en un nouveau signal analogue de sortie $y(t)$.
 
 \caption{Terminologie des signaux et systèmes analogiques et discrets.}
 \end{figure}
 
-Lorsque le signal entre dans la carte son, il est échantillonné selon la *fréquence d’échantillonnage*. Plus la fréquence d’échantillonnage est élevée plus le signal est précis *i-e* que nous sommes capable de visualiser les fréquences élevée du signal analogique. De même la *résolution de quantification* — en *bits* permet d’améliorer la précision de la mesure du signal. Par example, un disque compact est échantillonné à $44,1$ KHz et quantifié à 16 bits.
+Lorsque le signal entre dans la carte son, il est échantillonné selon la *fréquence d’échantillonnage*. Plus la fréquence d’échantillonnage est élevées plus le signal est précis *i-e* que nous sommes capable de visualiser les fréquences élevée du signal analogique. De même la *résolution de quantification* — en *bits* permet d’améliorer la précision de la mesure du signal. Par example, un disque compact est échantillonné à $44,1$ KHz et quantifié à 16 bits.
 
-## Distorsion
+### Distorsion
 
 Un amplificateur idéal conserve la forme du signal d’entrée et augmente l’amplitude. L’amplification que nous souhaitons n’est pas celle d’un amplificateur idéal. Nous souhaitons reproduire les effets de *sustain* et *crunch* des amplis pour guitare électrique. 
 
 \caption{L’effet d’écrêtage.}
 \end{figure}
 
-D’une manière simple, le phénomène recherché est produit par une perte d’information volontaire. Il suffit donc de définir un seuil pour notre signal. Notre signal est transformé de manière à ne pas dépasser ce seuil.
+D’une manière simple, le phénomène recherché est produit par une perte d’information volontaire. L’ajout de bruit de fond est réalisé par l’addition de nombres aléatoires.
+
+### Mathématiques
+
+Soit $\varepsilon$ la valeur d’amplification souhaitée appartenant au domaine de définition suivant : $[0 ;1]$.
+
+Définissons un constante $k$ obtenue à $\varepsilon$ constant :
+
+\begin{displaymath}
+k = \frac{2\varepsilon}{1 - \varepsilon}
+\end{displaymath}
+
+\begin{figure}[htbp]
+\centering
+\includegraphics[width=12cm]{../img/amp_k.pdf}
+\caption{Fonction $y(x)$ permettant le calcul de la constante $k$.}
+\end{figure}
+
+Soit le *sample* $x \in [0; 1]$ , le signal de sortie est obtenu par la fonction $y$ suivante :
+
+\begin{displaymath}
+y=\frac{\left( 1+k\right)\cdot x}{\left( 1+k \cdot \mbox{abs}\left(x\right) \right)}
+\end{displaymath}
+
+En faisant varier le coefficient de saturation $\varepsilon$ on obtient les courbes suivantes pour modifier notre signal.
+
+\begin{figure}[htbp]
+\centering
+\includegraphics[width=8cm]{../img/amp_low.pdf}
+\caption{à $\varepsilon = 0.1$ : peu de saturation.}
+\end{figure}
+
+ \begin{figure}[htbp]
+\centering
+\includegraphics[width=8cm]{../img/amp_med.pdf}
+\caption{à $\varepsilon = 0.5$ : saturation moyenne.}
+\end{figure}
+
+ \begin{figure}[htbp]
+\centering
+\includegraphics[width=8cm]{../img/amp_high.pdf}
+\caption{à $\varepsilon = 0.9$ : saturation élevée.}
+\end{figure}
+

File doc/sout3/cli.md

 \begin{verbatim}
 $ ./stardsp —help
 Usage : ./stardsp [OPTIONS]
-Input : PulseAudio or AIFF
-	-gui						GUI Mode
+Input : Realtime or AIFF
+	-core						Run core only
 	-file <path>				AIFF file input
-	-dev <device>				TTY
-	-send-surface <data>		test Control-surface
-	-use-surface				Use Control-surface
+	-surface <device>			TTY
+	-ssurface <data>			test Control-surface
+	-eq <lg,mg,hg>				Use Equalizer
+	-amp <drive,noise>			Use Amplifier
+	-rev <modulation>			Use Reverberation
+	-echo <delay,decay>			Use Echo
+	-stereo <modulation>		Use Stereo effect
+	-balance <left/right>		Stereo Balance
+	-default					Surface preset
 \end{verbatim}
 
-Les options qui sont présentes permettent à l’utilisateur de choisir le mode d’éxecution de StarDSP :
+Les options qui sont présentes permettent à l’utilisateur de choisir le mode d’execution de StarDSP et des options :
 
-- `PulseAudio`
-- Fichier `AIFF`
-- GUI
+- Utiliser un fichier.
+- Ajouter les effets qu’il souhaite appliquer — l’ordre d’ajout est respecté.
+- Utiliser la surface de contrôle.
+- Utiliser l’interface graphique — par défaut.
+- Utiliser que le *core* du programme.
 
-De même, nous avons également ajouté des options pour la manipulation de la *surface de contrôle*.
-
-Cette interface textuelle se réalise facilement avec le module `Arg` d’`OCaml`.
+Cette interface textuelle se réalise facilement avec le module `Arg` d’`OCaml`. Celle-ci a été indispensable tout le long du développement de StarDSP.

File doc/sout3/echo.md

-# Nouveaux effets
-
-Par mesure simplicité, nos effets respectent le *format* suivant :
-
-* `init` : permet d’initialiser l’effet — donne la structure par défaut.
-* `update` : permet de mettre à jour le comportement de l’effet.
-* `compute` : permet d’appliquer l’effet : `float -> float`.
-
 ## Echo
 
 ### Explication

File doc/sout3/equalizer.md

-# Égaliseur *3-Band*
+## Égaliseur *3-Band*
 
 La première fonctionnalité que nous avons ajouté est celle d’un *égaliseur* simple à trois bandes. Ceci permet de modifier le signal de manière à favoriser une partie du *spectre sonore*[^1]. Concrêtement, l’utilisateur peux choisir de favoriser les basses fréquences, les mediums ou bien les hautes fréquences à sa guise.
 
-## Traitement du signal
+### Traitement du signal
 
-### Les séries de \textsc{Fourier}
+#### Les séries de \textsc{Fourier}
 Pour réaliser cet effet, il faut pouvoir décomposer notre signal. Une onde sonore est en réalité composée d’une somme de signaux.
 
 \label{series}
 
 On obtient ainsi divers signaux avec des fréquences différentes. Si nous souhaitons augmenter les basses dans notre son, il faut augmenter l’amplitude des signaux basse fréquence et inversement pour les aïgus.
 
-### La transformée de \textsc{Fourier} discrète
+#### La transformée de \textsc{Fourier} discrète
 
 Diviser pour régner est la stratégie utilisée ici. Le signal d’entrée est très complexe. Pour pouvoir le traiter, on se propose de le décomposer en somme sinusoïdes. C’est ainsi beaucoup plus simple pour faire les modifications souhaitées.
 
 - Périodique, discrète :
 	Transformée de Fourier discrète
 	
-Pour des raisons de simplicité nous n’avons pour le moment pas réalisé d’implémentation de la tranformée de \textsc{Fourier}.
+La réalisation de la transformée de \textsc{Fourier} permet de réaliser un égaliseur paramétrique très précis. Cette tranformée est très pratique également en analyse du signal. Ne nous ne l’avons pas utilisée dans ce projet, nous utilisons la méthode par convolution.
 
-### Convolution
+#### Convolution
 
 Une autre méthode très utilisée dans le traitement des signaux est la *convolution* également très connue dans le traitement d’image via les matrices de convolution.
+\newline
 
 La convolution est une méthode mathématique pour combiner deux signaux pour en former un troisième. C’est l’une des techniques incontournable dans le traitement des signaux. La convolution prend en compte trois signaux : le signal d’*entrée*, le signal de *sortie* et la *réponse impulsionnelle*.
+\newline
 
 La *réponse impulsionnelle* est obtenue lorsque l’entrée est une impulsion, c’est-à-dire une variation soudaine et brève du signal. Dans un système à temps continu, le modèle mathématique d’une impulsion est une distribution de \textsc{Dirac}. Pour un système à temps discret, une impulsion est définie par la suite $\delta(n)$ valant $1$ si $n = 0$ et $0$ sinon. Cette fonction est aussi appelée l’*impulsion unitaire*. On peut donc visualiser notre signal comme un groupement d’impulsions.
+\newline
 
 \begin{figure}[htbp]
 \centering
 
 La *convolution* est représentée par le signe $\ast$. Le signal d’entré est convolutionné par la *réponse impulsionnelle* et produit le signal de sortie.
 
-#### Example
 \begin{figure}[!hb]
 \centering
 \includegraphics[scale=0.4]{../img/lowpass_filter.png}
-\caption{Filtre passe-bas.}
+\caption{Filtre passe-bas obtenu par convolution.}
 \end{figure}
-
  
-## Implémentation
+### Implémentation
 
 Au niveau de l’implémentation, on utilise le principe de convolution évoqué dans la partie d’avant. On défini une structure, pour stocker les nouvelles valeurs — ainsi que les anciennes — et faire les calculs. Il s’agit d’une implémentation très efficace.
 

File doc/sout3/files 2.md

-# Fichiers audio
-
-## Problème
-Lors de la précédente soutenance, nous avions présenté la possibilité de lire des fichiers `AIFF` afin de pouvoir effectuer des tests sur notre logiciel. Le problème de saturation que nous avions rencontré, qui a été source de conflits et de perte de temps est maintenant résolu.
-
-## Changement de bibliothèque
-Le problème était une amplification involontaire sur nos fichiers `AIFF`. Le son était complétement saturé à cause d’une perte d’information et des valeurs mal converties par la précédente bibliothèque. Pour palier ce problème, nous avons radicalement changé de bibliothèque pour lire les fichiers. Nous utilisons maintenant `libsndfile`. Cette nouvelle bibliothèque permet en outre de lire beaucoup plus de format de fichier. *StarDSP* peut maintenant être utilisé avec ces quelques formats de fichier :
-
-#### Liste des formats de fichier pris en charge par *StarDSP*
-* Microsoft `WAV`
-* Apple `AIFF/AIFC`
-* Format `RAW`
-* Paris Audio File `PAF`
-* Apple `CAF`
-* Free Lossless Audio Codec `FLAC`
-* Soundforge `W64`
-
-Cela offre beaucoup plus de souplesse ! Cette nouvelle bibliothèque a été également l’occasion d’alléger notre code. Celle-ci s’occupe des différentes conversions à effectuer.

File doc/sout3/files.md

-## Fichiers AIFF
+## Fichiers audio
 
-Au cours de la phase de développement de ce projet, nous avons besoin de régulierement tester notre travail. C'est pourquoi, nous avons ajouté la prise en charge de la lecture de fichiers `AIFF`. Pour cela, nous reprenons une bibliothèque écrite en `C`. La `LibAIFF` nous a permis de nous simplifier la tâche, en ce qui concerne la lecture de ce format de fichier, étant donné que cela n'est pas le but principal de notre projet.
+Au cours de la phase de développement de ce projet, nous avions besoin de régulierement tester notre travail. C'est pourquoi, nous avons ajouté la prise en charge de la lecture de fichiers audio. Pour cela, nous reprenons une bibliothèque écrite en `C` : `libsndfile`. Celle-ci nous a permis de nous simplifier la tâche, en ce qui concerne la lecture de multiples formats de fichier, étant donné que cela n'est pas le but principal de notre projet.\newline
+
+La bibliothèque nous offre beaucoup de souplesse. Elle s’occupe des différentes conversions à effectuer.
+\newline
 
 Nous avons réalisé un *binding* de cette bibliothèque. Cela consiste à traduire les fonctions de cette bibliothèque en `OCaml`. Nous obtenons au final des fonctions simples :
 
 ~~~ {.ocaml}
-val open_file	: string -> t
-val close_file	: t -> unit
-val read		: t -> (float, Bigarray.float32_elt, Bigarray.c_layout)
+val openf			: string -> t
+val closef			: t -> unit
+val readf			: t -> (float, Bigarray.float32_elt, Bigarray.c_layout)
 	Bigarray.Array1.t -> int -> int
 ~~~
 
-On peux facilement remarquer que la lecture des fichiers AIFF consiste a remplir un *buffer* de nombres flottants -- representant les valeurs discrètes du signal sonore numérisé. On appelle communément ces valeurs *sample*.
+### Liste des formats de fichier pris en charge par *StarDSP*
+* Microsoft `WAV`
+* Apple `AIFF/AIFC`
+* Format `RAW`
+* Paris Audio File `PAF`
+* Apple `CAF`
+* Free Lossless Audio Codec `FLAC`
+* Soundforge `W64`
+
+
+On peux facilement remarquer que la lecture des fichiers audio consiste à remplir un *buffer* de nombres flottants — representants les valeurs discrètes du signal sonore numérisé. On appelle communément ces valeurs *sample*.

File doc/sout3/gui.md

-# Graphical User Interface
+## Graphical User Interface
 
 L'objectif du projet *StarDSP* est de reproduire les fonctionnalités d'un amplificateur de guitare. Pour faciliter l'utilisation de ce logiciel nous disposons d'une interface graphique. Notre interface est réalisée avec *LablGTK 2.0* et *OCaml*.\newline
 

File doc/sout3/handler.md

 # Encapsulation
 
+Par mesure simplicité, nos effets respectent tous le *format* suivant :
+
+* `init` : permet d’initialiser l’effet — donne la structure par défaut.
+* `update` : permet de mettre à jour le comportement de l’effet.
+* `compute` : permet d’appliquer l’effet : `float -> float`.
+
 ## Module *core* Audio
 
 ### Problématique
 
-Lors de la précédente version de *StarDSP*, l’accès direct aux ressources audio n’était pas protégé. De plus, il en résultait un code très verbeux et n’était pas facilement modulable. Par ailleurs, l’arrivée des *threads* nous a obligé à restructurer notre programme.
+Lors de la version un de *StarDSP*, l’accès direct aux ressources audio n’était pas protégé. De plus, il en résultait un code très verbeux et n’était pas facilement modulable. Par ailleurs, l’arrivée des *threads* nous a obligé à restructurer notre programme.
 
 ### Création d’un module dédié
 
-La gestion des interactions avec `PulseAudio` est désormais *encapsulée* via la création d’un module. Cela instaure une autonomie dans le fonctionnement de notre logiciel et prévient l’apparition d’erreur inopinée.
+La gestion des interactions avec `PulseAudio` est *encapsulée* via la création d’un module. Cela instaure une autonomie dans le fonctionnement de notre logiciel et prévient l’apparition d’erreur inopinée.
 
 Ce module permet donc tout simplement d’initialiser le moteur son, de libérer les ressources, et gère de lui même les mécanismes de gestion des effets. Nous en avons profité également pour ajouter des *modes de fonctionnement* :
 
 ## Gestion des effets
 ### Intérêt
 
-Au fur et à mesure que le projet se développe, nous avons de plus en plus d’effets à traiter. C’est pourquoi afin de prendre en charge l’interface utilisateur, nous avons ajouté un gestionnaire d’effets. L’utilisateur a désormais le choix d’ajouter, de supprimer, ou bien de déplacer l’ordre d’application des effets. Le son produit en sortie, peut-être différent en fonction de l’ordre d’application. 
+Lors du développement de ce projet, nous avons eu de plus en plus d’effets à traiter. C’est pourquoi afin de prendre en charge plus facilement l’interface utilisateur, nous avons ajouté un gestionnaire d’effets. L’utilisateur a désormais le choix d’ajouter, de supprimer, ou bien de déplacer l’ordre d’application des effets. Le son produit en sortie, peut-être différent en fonction de l’ordre d’application. 
 
-Cela nous permet d’avoir un niveau d’abstraction élevé par rapport à la version précédente. La gestion des effets permet simplement de contrôler chacun d’eux sans avoir à se soucier des détails au niveau de l’implémentation qui peuvent encore évoluer. En outre, cela simplifie notre travail en équipe : on peut ajouter facilement un effet sans avoir à comprendre en détail le fonctionnement du coeur du programme.
+Cela nous permet d’avoir un niveau d’abstraction élevé dans l’utilisation de notre code source. La gestion des effets permet simplement de contrôler chacun d’eux sans avoir à se soucier des détails au niveau de l’implémentation. En outre, cela a simplifié notre travail en équipe : on peut ajouter facilement un effet sans avoir à comprendre en détail le fonctionnement du coeur du programme.
 
 ### Conception & implémentation
 
 
 val add : 'a -> int -> 'a list -> 'a list
 (** Add an element at the index position in ocaml list.
-    Index begin at position 1.
-*)
+    Index begin at position 1. *)
 
 val del : int -> 'a list -> 'a list
 (** Delete an element at the index position in ocaml list.
-    Index begin at position 1.
-*)
+    Index begin at position 1. *)
 
 val move : int -> int -> 'a list -> 'a list
-(** Move an element at src position to dst position in ocaml list.
-*)
+(** Move an element at src position to dst position in ocaml list. *)
 
 ~~~
 

File doc/sout3/pulse.md

-# PulseAudio
+# PulseAudio \& fichiers
 
 ## Adaptation de la bibliothèque client *PulseAudio* pour le langage *OCaml*
 

File doc/sout3/reverb.md

-\newpage
-
 ## Réverbération
 
 ### Explication
 
-La réverbération est la persistance d'un son dans un lieu lorsque la source n'existe plus. C'est une addition de plusieurs échos successifs, avec des retards différents. Cet effet essaye de simuler l'ambiance d'une salle dans laquelle le signal sonore se repercute sur plusieurs obstacles. Par exemple dans une cathédrale, lorsqu'un son fort est produit il y aura une réverbération naturelle.
-C'est l'un des effets musical les plus prisés, car il est très agréable à l'oreille et il permet de faire durer un son -- une note.
+La réverbération est la persistance d'un son dans un lieu lorsque la source n'existe plus. C'est une addition de plusieurs échos successifs, avec des retards différents. Cet effet essaye de simuler l'ambiance d'une salle dans laquelle le signal sonore se répercute sur plusieurs obstacles. Par exemple dans une cathédrale, lorsqu'un son fort est produit il y aura une réverbération naturelle.
+C'est l'un des effets musical les plus prisés, car il est très agréable à l'oreille et il permet de faire durer un son — dans notre cas une note.
 
 \begin{figure}[h]
 \centering
 \includegraphics[scale=0.8]{../img/reverb_exp.jpg}
-\caption{Schéma explicatif d’une réverbération}
+\caption{Schéma explicatif d’une réverbération naturelle.}
 \end{figure}
 
 Le signal entendu est semblable à ceci :
 \begin{figure}[h]
 \centering
 \includegraphics[width=\linewidth]{../img/reverb_graph.jpg}
-\caption{Signal audio lors d’une réverbération}
+\caption{Signal audio lors de l’application d’une réverbération.}
 \end{figure}
 
-\newpage
-
 ### Implémentation
 
 La réverbération est un effet très complexe. Il faut tout d'abord simuler des “filtres en peigne” — ou *Comb Filter* — et des “filtres déphaseurs” — ou *All-Pass Filter*.
 Pour chacun de ces filtres, il faudra un *buffer* qui contiendra le signal d'entrée retardé et d'un gain d'amplification $g$. Ce gain est donné par la formule suivante:
 
-\begin{figure}[htpb]
-\centering
-		  $g = 0.001 ^ {(D / RVT)} $
-\end{figure}
+\begin{displaymath}
+		  g = 0.001 ^ {(D / RVT)}
+\end{displaymath}
 
 Où $D$ est le *delay time* — ou *loop time* — qui correspont au retard du filtre et $RVT$ est le temps de réverbération désiré.
 
 
  Il a pour équation:
 
-\begin{figure}[htpb]
-\centering
-   	       	    $y(n) = x(n) + g * y(n - d)$
-\end{figure}
+\begin{displaymath}
+   	       	    y(n) = x(n) + g * y(n - d)
+\end{displaymath}
 
 où $n$ correspond au *sample* actuel, $x$ signal d'entrée, $y$ signal de sortie, $g$ le gain du filtre et $d$ le *delay* ou retard.
 
 Son implémentation en C donne ceci:
 
-\begin{verbatim}
+~~~{.c}
   	float output = delayBuffer[n - d];
   	delayBuffer[n] = input + output * g;
  	return output;
-\end{verbatim}
-
-\newpage
+~~~
 
 #### All-Pass Filter
 
 
 Il a pour équation :
 
-\begin{figure}[htpb]
-\centering
-		 $y(n) = -g * x(n) + x(n - d) + g  *  y(n - d)$
-\end{figure}
+\begin{displaymath}
+		 y(n) = -g * x(n) + x(n - d) + g  *  y(n - d)
+\end{displaymath}
 
 où $n$ correspond au *sample* actuel, $x$ signal d'entrée, $y$ signal de sortie, $g$ le gain du filtre et $d$ le *delay* ou retard.
 
-Son implémentation en C donne ceci:
-\begin{verbatim}
+Son implémentation en C donne ceci :
+
+~~~{.c}
   float output = delayBuffer[n - d];
   delayBuffer[n] = input + output * g;
   output = output - input * g;
   return output;
-\end{verbatim}
-
-\newpage
+~~~
 
 #### Réverbération
 
 
 J'ai opté pour une méthode similaire a celle présentée sur le schéma qui suit pour la réalisation de la réverbération — 6 *Comb Filters* en parallèles suivi de 4 *All-Pass Filters* en séries.
 
-Chaque filtre a son propre *buffer de délais* et son propre gain $g$. Pour les filtres en parallèles, il suffit de diviser le signal par le nombre de filtre en parallèle et d'additionner les sorties de ces derniers. Pour les filtres en séries, il suffit simplement de passer en entrée du filtre la sortie du filtre précédent.
+Chaque filtre a son propre *buffer de délais* et son propre gain $g$. Pour les filtres en parallèles, il suffit de diviser le signal par le nombre de filtre et d'additionner les sorties de ces derniers. Pour les filtres en séries, il suffit simplement de passer en entrée du filtre la sortie du filtre précédent.
 
 Cette méthode est basée sur les algorithmes de \textsc{Schroeder} et \textsc{Moorer}.
 

File doc/sout3/stereo.md

-##Stéréo
+## Stéréo
 
-###Explication
+### Explication
 
 Le son stéréophonique, ou plus communément le stéréo, est une méthode de reproduction du son qui créée une illusion de profondeur, de son directionnel. Pour celà, on utilise deux canaux audio indépendants (ou plus) à travers deux haut-parleurs ou plus de manière à créer l'impression d'un son provenant de diverses directions, comme dans l'audition naturelle.
 
 Pour cette dernière soutenance, nous avons ajouté deux effets basé sur la stéréophonie. Une balance audio manuelle et une automatique.
 
-###Implémentation
+### Implémentation
 
-Tout d'abord il faut comprendre que lorque l'on créée un buffer toutes les fréquences qui seront a un emplacement paire dans le buffer seront les fréquences jouées par le haut-parleur de droite et les impaires par celle de gauche.
+Tout d'abord, il faut comprendre que lorque l'on créé un *buffer* toutes les *samples* qui seront à un emplacement pair dans le buffer seront des *samples* joués par le haut-parleur de gauche et les impairs par celui de droite.
 
-Pour qu'un son semble provenir de droite il suffit d'avoir une amplification plus forte a droite qu'à gauche.
+Pour qu'un son semble provenir de droite il suffit d'avoir une amplification linéaire plus forte à droite qu'à gauche.
 
-####Balance audio manuelle
+#### Balance audio manuelle
 
-Une balance est un règlage double, c'est à dire que lorque l'on va diminuer le son d'un côté, il va augmenter de l'autre, donnant donc l'impression de direction. Cette effet est très simple et peut être très utile selon ce que l'on veut faire percevoir.
-Il nous faut donc juste un nombre n que l'on incrémenete à chaque fois qui nous permet de savoir s'il on est positionné sur l'enceinte de droite ou de gauche.
+Une balance est un réglage double, c'est-à-dire que lorque l'on va diminuer le son d'un côté, il va augmenter de l'autre, donnant donc l'impression de direction. Cette effet est très simple et peut être très utile selon ce que l'on veut faire percevoir.
+Il nous faut donc juste un nombre `n` que l'on incrémente à chaque fois. Cela nous permet de savoir si nous sommes positionné sur l’enceinte de droite ou de gauche.
 
-J'ai rajouté au passage un autre effet avec la balance qui permet d'augmenter l'amplification d'une seule enceinte sans modifier l'autre.
+Nous avons rajouté au passage un autre effet avec la balance qui permet d'augmenter l'amplification d'une seule enceinte sans modifier l'autre.
 
-####Balance audio automatique
+#### Balance audio automatique
 
-C'est effet reprend le principe du dernier effet mais le son va provenir de droite puis de gauche puis a nouveau de droite par vague. Il va faire balancer le son de gauche a droite automatiquement.
-Pour cela on utilise une fonction sinusoidale qui va permettre cette sensation de "vague".
-Cette effet est très agréable a écouter et très facilement audible mais nécessite deux haut-parleurs, ce que actuellement quasiment tout le monde a.
+Cet effet reprend le principe de la balance manuelle mais le son va provenir de droite puis de gauche puis a nouveau de droite par vague. Il va faire balancer le son de gauche a droite automatiquement.
+Pour cela on utilise une fonction sinusoïdale qui va permettre cette sensation de *vague*.
+Cet effet est très agréable à écouter, très facilement audible et nécessite deux haut-parleurs. Sur des périodes très courtes le son d’une guitare est semblable au son produit par un orgue. On produit de cette manière un effet *chorus*.

File doc/sout3/tasks.md

+\newpage
+
 #### Répartition des tâches
+
 * Pierre \textsc{Surply}
 	* PulseAudio *binding*
 	* Surface de contrôle
 	* Mara
-	* CGI \& moteur de template
+	* Moteur de template en *CGI*
+	* Initiatialisation de la communication par *pipe*
 * Pierre \textsc{Pagnoux}
-	* Fichiers AIFF
-	* Amplification
+	* Lecture des fichiers audio — *binding*
+	* Moteur audio
+	* Gestions des effets
+	* Effet d’amplification
 	* Égaliseur *3-Band*
+	* Effet d’écho
+	* GUI
+	* Communication par *pipe*
+	* Site internet
+	* Retouche d’images et montage vidéo
 * Alexandra \textsc{Pizzini}
 	* GUI
-	* Contenu du site web
-* Vincent \textsc{Molinié}
+* Vincent \textsc{Molinié}
+	* Effet de réverbération
+	* Effet stéréo
+	* Contrôle de la balance (L/R)

File doc/sout3/website 2.md

-# Site internet
-
-## Évolutions
-Nous arrivons à mi-parcours. Le site présenté précedemment était viable pour présenter un utilitaire. Mais nous avons préféré le refaire complètement afin d’y ajouter un aspect plus *multimédia* et plus *didactique*. Notre site internet se voit donc offrir un tout nouveau look !
-
-\begin{figure}[h]
-\centering
-\includegraphics[scale=0.4]{../img/website.png}
-\caption{\emph{Design} du nouveau site internet}
-\end{figure}
-
-Le site internet a été restructuré de la façon suivante pour plus lisibilité.
-
-* Une page d’accueil allant à l’essentiel.
-* Une section de *présentation détaillée*.
-* Une section *documentation*.
-* Une section *téléchargement*.
-* Une section *à propos*.
-
-La nouvelle page d’accueil permet de montrer en quelques coups d’oeil les différentes fonctionnalités qu’offre *StarDSP*. La section *téléchargement* permet de distribuer rapidement notre logiciel et nos rapports de soutenance. La section *documentation* permet quant à elle d’explique en détails le fonctionnement de *StarDSP* et préciser les solutions aux eventuels problèmes. La présentation *détaillée* présente globalement le logiciel mais avec beaucoup plus d’explication et de détails par rapport à la page d’accueil qui se limite à la présentation des points forts. La section *à propos* permet quant à elle de présenter le travail effectué par chaque membres de l’équipe, ainsi que des liens vers des projets personnels. On notera également que le site est désormais rédigé exclusivement en anglais pour pouvoir attirer un public plus large.
-
-## Hébergement
-
-Le projet commence à prendre de l’ampleur. C’est pourquoi nous hébergeons le site sur un serveur. Notre site étant réalisé grâce au moteur de *template* de Pierre \textsc{Surply}, il est nécessaire de le compiler pour pouvoir l’afficher. Le serveur distant n’ayant pas forcément la même configuration que nos ordinateurs personnels, nous devons effectuer la compilation sur le serveur distant.
-
-Pour la dernière soutenance le site internet sera éventuellement disponible sur internet, cela dépendra de la capacité de notre hébergeur à exécuter un site internet en *CGI*.

File doc/sout3/website.md

 # Site web
 
-Pour ce projet le site Web est le principal support d'information de notre projet. Il devra permettre à l'utilisateur de disposer de toute l'aide et informations nécessaire à la bonne utilisation de *StarDSP*. Il aura ainsi accès à la description du projet ainsi qu'a une brève présentation de l'équipe.
+Le site internet est le principal support d'information de notre projet. Il doit rendre le projet attractif. Nous avons optés pour un aspect *multimédia* et *didactique*.
+
+\begin{figure}[h]
+\centering
+\includegraphics[scale=0.4]{../img/website1.png}
+\caption{\emph{Design} du site internet}
+\end{figure}
 
 ## Conception du site web
 
 Le projet StarDSP, se classant dans la catégorie des utilitaires, nous avons opté pour un style très épuré. Le site web est un élément important. Il s’agit du premier contact avec l’utilisateur. Nous avons donc décidé d’aborder une interface très claire et simple d’utilisation. Il est a noter que le design *CSS* a été fait de nos propres mains !
 
-La grande nouveauté pour ce projet est l’utilisation d’un moteur de template, réalisé par Pierre — *l’autre !* Ce moteur de template a considérablement accéléré la création du site internet. Et évite l’apprentissage d’un langage comme *PHP*.
+Le site internet est structuré de la façon suivante :
+
+* Une page d’accueil allant à l’essentiel.
+* Une section de *présentation détaillée*.
+* Une section *documentation*.
+* Une section *téléchargement*.
+* Une section *à propos*.
+
+La page d’accueil permet de montrer en quelques coups d’oeil les différentes fonctionnalités qu’offre *StarDSP*. Nous y avons mis une vidéo montrant un guitariste en train d’utiliser *StarDSP* comme amplificateur.
+
+La section *téléchargement* permet de distribuer rapidement notre logiciel et nos rapports de soutenance. La section *documentation* permet quant à elle d’expliquer en détails le fonctionnement de *StarDSP* et préciser les solutions aux eventuels problèmes. La présentation *détaillée* présente globalement le logiciel mais avec beaucoup plus d’explication et de détails par rapport à la page d’accueil qui se limite à la présentation des points forts. Cette section contient d’example de son obtenu avec le logiciel et des images montrant l’interface graphique et la surface de contrôle.
+
+La section *à propos* permet quant à elle de présenter le travail effectué par chaque membres de l’équipe, ainsi que des liens vers des projets personnels. On notera également que le site est désormais rédigé exclusivement en anglais pour pouvoir attirer un public plus large.
+
+## Hébergement
+
+Le projet commence à prendre de l’ampleur. C’est pourquoi nous hébergeons le site sur un serveur. Le moteur de template de Pierre S. a permis de réaliser les bases du site internet très rapidement. Mais pour pouvoir héberger facilement le site internet, nous avons dû générer toutes les pages en html — seulement le contenu est à modifier. \newline
+
+Retrouvez le site internet à l’adresse suivante : \url{http://star-dsp.epimeros.org}.