Commit af8593cebbc2e1190f21edcd4ef4695dad2797fa
1 parent
14b969fb
readme
Showing
7 changed files
with
64 additions
and
14 deletions
Show diff stats
@@ -0,0 +1,48 @@ | @@ -0,0 +1,48 @@ | ||
1 | +#include <iostream> | ||
2 | +#include "wavdata.h" | ||
3 | +#include "fft.h" | ||
4 | +#include <math.h> | ||
5 | + | ||
6 | +#define FREQ 22400 | ||
7 | +#define AMPLITUDE 10 | ||
8 | +#define FREQDO 261 | ||
9 | +#define FREQLA 440 | ||
10 | +#define SIZE FREQ*5 | ||
11 | + | ||
12 | + | ||
13 | +int main(int argc, char **argv) | ||
14 | +{ | ||
15 | + float pi=3.141592; | ||
16 | + WavData w; | ||
17 | + char *data = new char[SIZE]; | ||
18 | + char *data2 = new char[SIZE*2]; | ||
19 | + int i,j=0; | ||
20 | + | ||
21 | + //Creation de la données | ||
22 | + for(i=0;i<SIZE;i++){ | ||
23 | + float wla=2.0*3.14*FREQLA; | ||
24 | + float t=(float)i/FREQ; | ||
25 | + data[i]=AMPLITUDE*(1+sin(wla*t)); | ||
26 | + } | ||
27 | + | ||
28 | + for(i=0;i<SIZE;i++){ | ||
29 | + data2[j]=data[i]; | ||
30 | + data2[j+1]=data[i]; | ||
31 | + j=j+2; | ||
32 | + } | ||
33 | + | ||
34 | + //setup du format audio de sortie | ||
35 | + w.setAudioFormat(1); | ||
36 | + w.setNbrChanel(1); | ||
37 | + w.setFrequency(FREQ); | ||
38 | + w.setBytePerBloc(4); | ||
39 | + w.setBytePerSec(FREQ); | ||
40 | + w.setBitsPerSample(8); | ||
41 | + w.clearData(); | ||
42 | + | ||
43 | + //implémentation des données de sortie | ||
44 | + w.setDatasize(SIZE*2); | ||
45 | + w.setData(data2); | ||
46 | + w.save("laetire.WAV"); | ||
47 | + | ||
48 | +} | ||
0 | \ No newline at end of file | 49 | \ No newline at end of file |
18.4 KB
No preview for this file type
pur/test
No preview for this file type
readme.md
@@ -25,12 +25,17 @@ C’est à dire que nous chargions le son cow afin de récupérer ses paramètre | @@ -25,12 +25,17 @@ C’est à dire que nous chargions le son cow afin de récupérer ses paramètre | ||
25 | Nous avons commencé à construire notre signal sinusoïdale à l’aide de la fonction sinus dans math.h et de notre fréquence. | 25 | Nous avons commencé à construire notre signal sinusoïdale à l’aide de la fonction sinus dans math.h et de notre fréquence. |
26 | Pur.cpp permet de créer deux fichiers audio différents purs. Le premier fichier est la note La et le deuxieme la note DO. | 26 | Pur.cpp permet de créer deux fichiers audio différents purs. Le premier fichier est la note La et le deuxieme la note DO. |
27 | 27 | ||
28 | +J'utilise VLC et la visualisation de l'audio avec l'osciloscope afin d'afficher le signal. | ||
29 | + | ||
30 | +```C++ | ||
31 | +for(i=0;i<SIZE;i++){ | ||
32 | + data2[j]=data[i]; | ||
33 | + data2[j+1]=data[i]; | ||
34 | + j=j+2; | ||
35 | + } | ||
36 | +``` | ||
37 | +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. | ||
28 | 38 | ||
29 | -On a fait un test avec la valeur 128 et pas de son en sortie du fichier | ||
30 | - | 39 | +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. |
31 | 40 | ||
32 | -Multiplier par 2 le temps | ||
33 | -Diviser | ||
34 | -1 echantillion devient 2 | ||
35 | -Dans l’espace frequentielle | ||
36 | -FFT Deux dimensions, double le temps FFTinverse | 41 | +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. |
37 | \ No newline at end of file | 42 | \ No newline at end of file |
strech/lastrech.cpp
@@ -41,12 +41,10 @@ int main(int argc, char **argv) | @@ -41,12 +41,10 @@ int main(int argc, char **argv) | ||
41 | //Modification dans le domaine fréquentiel | 41 | //Modification dans le domaine fréquentiel |
42 | printf("===modif freq\n"); | 42 | printf("===modif freq\n"); |
43 | for(i=0;i<SIZE;i++){ | 43 | for(i=0;i<SIZE;i++){ |
44 | - int x=i; | ||
45 | - | ||
46 | - test3[2*x][0]=test2[x][0]; | ||
47 | - test3[2*x+1][0]=test2[x][0]; | ||
48 | - test3[2*x][1]=0; | ||
49 | - test3[2*x+1][1]=0; | 44 | + test3[2*i][0]=test2[i][0]; |
45 | + test3[2*i+1][0]=test2[i][0]; | ||
46 | + test3[2*i][1]=0; | ||
47 | + test3[2*i+1][1]=0; | ||
50 | } | 48 | } |
51 | 49 | ||
52 | //FFT inverse | 50 | //FFT inverse |
strech/timestrechcow.cpp
@@ -43,7 +43,6 @@ int main(int argc, char **argv) | @@ -43,7 +43,6 @@ int main(int argc, char **argv) | ||
43 | printf("===modif freq\n"); | 43 | printf("===modif freq\n"); |
44 | for(i=1;i<w.datasize()+1;i++){ | 44 | for(i=1;i<w.datasize()+1;i++){ |
45 | int x=i-1; | 45 | int x=i-1; |
46 | - int y=(2*i)-2; | ||
47 | 46 | ||
48 | test3[2*x][0]=test2[x][0]; | 47 | test3[2*x][0]=test2[x][0]; |
49 | test3[2*x+1][0]=test2[x][0]; | 48 | test3[2*x+1][0]=test2[x][0]; |