/* mksine.c David Rowe 10 Nov 2010 Creates a file of sine wave samples. */ #include #include #include #include #include #include #define TWO_PI 6.283185307 #define FS 8000.0 int main(int argc, char *argv[]) { FILE *f; int i,n; float freq, length; short *buf; float amp = 1E4; if (argc < 4) { printf("usage: %s outputFile frequencyHz lengthSecs [PeakAmp]\n", argv[0]); exit(1); } if (strcmp(argv[1], "-") == 0) { f = stdout; } else if ( (f = fopen(argv[1],"wb")) == NULL ) { fprintf(stderr, "Error opening output file: %s: %s.\n", argv[3], strerror(errno)); exit(1); } freq = atof(argv[2]); length = atof(argv[3]); if (argc == 5) amp = atof(argv[4]); n = length*FS; buf = (short*)malloc(sizeof(short)*n); assert(buf != NULL); for(i=0; i