Bonjour merci pour ta réponse pour le moment j'ai récuperer un code en C permettant de créer une sinus en même temps de créer un fichier wave en manipulant une variable de type fichier :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int FREQUENCE =1000;
#define BITPERSAMPLE 16
#define PI 3.1415927
typedef int int32;
typedef short int16;
typedef char int8;
struct WavHeader
{
int8 FileTypeBlocID[4];
int32 FileSize;
int8 FileFormatID[4];
};
struct WavFmt
{
int8 FormatBlocID[4];
int32 BlocSize;
int16 AudioFormat;
int16 NbrCanaux;
int32 Frequence;
int32 BytePerSec;
int16 BytePerBloc;
int16 BitsPerSample;
};
FILE * wavfile_open( const char *filename )
{
struct WavHeader head = {{'R','I','F','F'},0,{'W','A','V','E'}};
struct WavFmt Fmt = {{'f','m','t',' '},16,1,1,FREQUENCE,FREQUENCE*BITPERSAMPLE/8,BITPERSAMPLE/8,BITPERSAMPLE};
FILE* F;
F = fopen(filename,"wb");
if(!F)
return 0;
fwrite(&head,sizeof(head),1,F);
fwrite(&Fmt,sizeof(Fmt),1,F);
return F;
}
void wavfile_write(FILE *F, double* data,int32 length )
{
char subhead[5] = "data";
fwrite(subhead,4,1,F);
fwrite(&length,sizeof(length),1,F);
fwrite(data,sizeof(double),length,F);
}
void wavfile_close( FILE *file )
{
int file_length = ftell(file);
int32 FileSize = file_length - 8;
fseek(file,4,SEEK_SET);
fwrite(&FileSize,sizeof(FileSize),1,file);
fclose(file);
}
int main()
{
FILE* F;
int i;
int nbsecondes = 10;
int updown = 1;
double* y = malloc(nbsecondes*FREQUENCE*sizeof(double));
for(i=0;i<(nbsecondes*FREQUENCE);i++)
{y=sin(2*PI*FREQUENCE);}
F = wavfile_open("sound.wav");
if (!F)
return -1;
wavfile_write(F,y,nbsecondes*FREQUENCE);
free(y);
wavfile_close(F);
return 0;
}