D
djtraumwelt
Foren As
Code:
#include <stdio.h>
#include <string.h>
typedef struct {
char riff1;
char riff2;
char riff3;
char riff4;
int dateigros;
char wave1;
char wave2;
char wave3;
char wave4;
char fmt1;
char fmt2;
char fmt3;
char fmt4;
int fmtlen;
short int fmttag;
short int channels;
int rate;
int bytessec;
short int blockalign;
short int bits;
char data1;
char data2;
char data3;
char data4;
int len;
} waveheader;
int main(int argc, char *argv[]) {
short int *wavedata;
short int *wavesinus;
short int *waveton1;
short int *waveton2;
FILE *fp;
makesine(wavesinus);
fp=fopen("sine.wav","wb");
fwrite(waveheader,1,44,fp); //hier syntax error before "waveheader"
fwrite(wavesinus,2,2000,fp);
fclose(fp);
return 0;
}
int makesine(short int *wavesinus) {
wavesinus=(short int *) malloc(4000);
short int u=-125;
short int uplus=1;
short int y[3] = {0};
int x=0;
while(x < 4000) {
y[2]+=u;
y[1]=(y[0]+y[2]) / 2;
wavesinus[x]=y[0];
wavesinus[x+1]=y[0];
wavesinus[x+2]=y[1];
wavesinus[x+3]=y[1];
y[0]=y[2];
x+=4;
u+=uplus;
if (u==-125)
uplus=1;
if (u==125)
uplus=-1;
}
waveheader.riff1='R'; //hier syntax error before '.'
waveheader.riff2='I';
waveheader.riff3='F';
waveheader.riff4='F';
waveheader.wave1='W';
waveheader.wave2='A';
waveheader.wave3='V';
waveheader.wave4='E';
waveheader.fmt1='f';
waveheader.fmt2='m';
waveheader.fmt3='t';
waveheader.fmt4=' ';
waveheader.fmtlen=16;
waveheader.fmttag=1;
waveheader.channels=2;
waveheader.rate=44100;
waveheader.bytessec=176400;
waveheader.blockalign=4;
waveheader.bits=16;
waveheader.data1='d';
waveheader.data2='a';
waveheader.data3='t';
waveheader.data4='a';
waveheader.len=4000;
waveheader.dateigros=waveheader.len+36;
return 0;
}
int maketon(int power1, int power2, int power3, int power4, int power5) {
short int laut[1000];
int i;
for(i=0; i < 1000; i++)
laut[i]=7000/i;
return 0;
}
zwei mal syntax error, die ich beide nicht verstehe.