(en voix droite et gauche), additionner les deux tableaux (valeur par valeur) et
reformer le tableau de byte initial (grâce à la primitive mix). La méthode doit
donc prendre deux arguments (deux tableaux de bytes) et renvoyer un tableau
de même type. S’inspirer des signatures des fonctions existantes dans le code.
Question 3
Écrire une fonction permettant de multiplier un signal par une constante (on
augment ainsi l’amplitude du signal et donc le volume du son).
Question 4
Écrire une fonction permettant de générer un signal sinusoïdal dont on pré-
cise la fréquence et l’amplitude (utiliser la méthode Math.sin http: // java.
sun. com/ j2se/ 1. 4. 2/ docs/ api/ java/ lang/ Math. html# sin( double) ). Pour
préciser la fréquence, il faut partir des donnés suivantes : il y a 44100 échan-
tillons par seconde et la période d’un sinus est 2π. Le spectre audible se situe
entre 200 Hz et 20k Hz.
Question 5
Écrire une fonction permettant de concaténer deux signaux (concaténer si-
gnifie que l’on juxtapose l’un après l’autre les deux signaux).
Question 6
Réaliser les effets écho et chorus décrits sur cette page http://en.wikipedia.
org/wiki/Sound_effect#Techniques. Écrire pour cela deux fonctions en pré-
cisant la durée du décalage et le nombre d’écho en argument.
Remarques :
1. faites des expériences avec vos fonctions : écoutez vos sinusoïdes, mixez-les,
manipulez les fichiers sonores. . .
2. il serait mieux (pourquoi ?) de faire toutes les opérations en considérant
les voix gauches et droites comme des tableaux de doubles et non d’entiers,
et faire la conversion au dernier moment.
Séance 2
Avant d’entamer cette partie, il faut finir au moins un effet sonore parmi les
suivants : addition d’un signal sinusoïdal à un signal sonore lu, chorus, écho,
inversion du signal (lecture arrière), . . .
Il sera possible de compléter la liste des effets implémentés par la suite.
2