Chris@1: #include Chris@1: #include Chris@1: #include Chris@1: #include Chris@1: Chris@1: void usage(){ Chris@1: fprintf(stderr,"tone ,[] [,[]...]\n"); Chris@1: exit(1); Chris@1: } Chris@1: Chris@1: int main (int argc,char *argv[]){ Chris@1: int i,j; Chris@1: double *f; Chris@1: double *amp; Chris@1: Chris@1: if(argc<2)usage(); Chris@1: Chris@1: f=alloca(sizeof(*f)*(argc-1)); Chris@1: amp=alloca(sizeof(*amp)*(argc-1)); Chris@1: Chris@1: i=0; Chris@1: while(argv[i+1]){ Chris@1: char *pos=strchr(argv[i+1],','); Chris@1: Chris@1: f[i]=atof(argv[i+1]); Chris@1: if(pos) Chris@1: amp[i]=atof(pos+1)*32767.f; Chris@1: else Chris@1: amp[i]=32767.f; Chris@1: Chris@1: fprintf(stderr,"%g Hz, %g amp\n",f[i],amp[i]); Chris@1: Chris@1: i++; Chris@1: } Chris@1: Chris@1: for(i=0;i<44100*10;i++){ Chris@1: float val=0; Chris@1: int ival; Chris@1: for(j=0;j32767.f)ival=32767.f; Chris@1: if(ival<-32768.f)ival=-32768.f; Chris@1: Chris@1: fprintf(stdout,"%c%c%c%c", Chris@1: (char)(ival&0xff), Chris@1: (char)((ival>>8)&0xff), Chris@1: (char)(ival&0xff), Chris@1: (char)((ival>>8)&0xff)); Chris@1: } Chris@1: return(0); Chris@1: } Chris@1: