Commit af8593cebbc2e1190f21edcd4ef4695dad2797fa

Authored by rsimonin
1 parent 14b969fb

readme

pur/Laetire.cpp 0 → 100644
... ... @@ -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 49 \ No newline at end of file
... ...
pur/SonPurLa.PNG 0 → 100644

18.4 KB

pur/laetire.WAV 0 → 100644
No preview for this file type
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 25 Nous avons commencé à construire notre signal sinusoïdale à l’aide de la fonction sinus dans math.h et de notre fréquence.
26 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 42 \ No newline at end of file
... ...
strech/lastrech.cpp
... ... @@ -41,12 +41,10 @@ int main(int argc, char **argv)
41 41 //Modification dans le domaine fréquentiel
42 42 printf("===modif freq\n");
43 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 50 //FFT inverse
... ...
strech/timestrechcow.cpp
... ... @@ -43,7 +43,6 @@ int main(int argc, char **argv)
43 43 printf("===modif freq\n");
44 44 for(i=1;i<w.datasize()+1;i++){
45 45 int x=i-1;
46   - int y=(2*i)-2;
47 46  
48 47 test3[2*x][0]=test2[x][0];
49 48 test3[2*x+1][0]=test2[x][0];
... ...