d2bf2dcd
rsimonin
readme
|
1
|
# TP IMA5 Time Streching
|
14b969fb
rsimonin
readme
|
2
|
## Intro
|
d2bf2dcd
rsimonin
readme
|
3
4
5
|
Apres une entrevue des bibliothèques, nous distingons deux utilitées.
La première, est la création de fichier audio wavdata.
|
5b30ed81
rsimonin
readme
|
6
|
Et la seconde, nous permet d'utiliser le domaine fréquentiel à l'aide de FFT et FFT inverse.
|
d2bf2dcd
rsimonin
readme
|
7
|
|
b31008bf
rsimonin
test
|
8
|
## Les fichiers WAV
|
d2bf2dcd
rsimonin
readme
|
9
|
|
5b30ed81
rsimonin
readme
|
10
|
Après la compilation de notre main
|
b31008bf
rsimonin
test
|
11
12
|
```bash
|
d2bf2dcd
rsimonin
readme
|
13
14
|
g++ main.cpp wavedata.cpp -o test
./test
|
b31008bf
rsimonin
test
|
15
|
```
|
5b30ed81
rsimonin
readme
|
16
17
|
Nous pouvons alors lire le chargement de fichier audio COW.WAV, avec différends éléments caractéristiques du fichier comme sa taille, son format et la méthode d'organisation des données.Ensuite nous pouvons lire le format audio de notre son contenu dans le fichier. Avec la fréquence d'échantillonnage, la taille des blocs de données, le type de bloc, le nombre de Connaux...
Le code a pour but dans un premier temps à décrire le fichier ainsi que le format audio. Ensuite il charge la donnée contenue dans le fichier pour la traiter. La dernière partie du code a pour but d’allonger la durée de l’audio. En ajoutant un effet délay à partir de la fin du son du fichier.
|
14b969fb
rsimonin
readme
|
18
19
|
### Pur
|
5b30ed81
rsimonin
readme
|
20
|
Dans le git du projet, il y a un dossier pur où se trouve différents fichiers.
|
14b969fb
rsimonin
readme
|
21
22
|
Dans cette partie, nous nous sommes basés sur la construction du fichier audio donné dans le main.cpp.
C’est à dire que nous chargions le son cow afin de récupérer ses paramètres, puis en cherchant un peu nous avons trouvé les fonctions, dans le header de la bibliothèque, pour fixer les paramètres de notre format audio en sortie.
|
5b30ed81
rsimonin
readme
|
23
24
|
Nous avons commencé à construire notre signal sinusoïdal à l’aide de la fonction sinus dans math.h et de notre fréquence.
Pur.cpp permet de créer deux fichiers audio différents purs. Le premier fichier est la note La et le deuxième la note DO.
|
14b969fb
rsimonin
readme
|
25
|
|
5b30ed81
rsimonin
readme
|
26
|
J'utilise VLC et la visualisation de l'audio avec l'oscilloscope afin d'afficher le signal.
|
af8593ce
rsimonin
readme
|
27
28
29
30
31
32
33
34
35
|
```C++
for(i=0;i<SIZE;i++){
data2[j]=data[i];
data2[j+1]=data[i];
j=j+2;
}
```
A l'aide de cette fonction, nous étirons notre signal par deux. Ce qui à pour effet de diviser par deux la fréquence de notre signal, donc notre devient plus grave.
|
d2bf2dcd
rsimonin
readme
|
36
|
|
af8593ce
rsimonin
readme
|
37
|
Dans cette première partie, j'ai pu rencontrer différents problèmes sur l'utilisation de la blibliotéque et sur la création de signaux.
|
6c227d28
rsimonin
premier push
|
38
|
|
5b30ed81
rsimonin
readme
|
39
40
41
42
43
|
Dans le code précédent, je me suis rendu compte que les valeurs devaient être positive, c'est pourquoi dans notre création de notre sinus, un "+1" s'y trouve afin d'assurer d'avoir des valeurs >0.
## FFT
Dans un premier, j'ai cherché à bien comprendre l'utilisation de la FFT, ce qui m'a pris beaucoup de temps avec des incompréhensions multiples.
|