int main(void) { WaveFile myFile; myFile.loadWave("DAFT.wav"); WaveFIR::LPF(myFile, 100, 100, 0, myFile.length-1); //myFile.normalize(); myFile.saveWave("TEST.wav"); return 0; }
int main(int argc, char **argv) { // Parsing printf("%s\n%s\n", argv[0], argv[1]); char targetName[256]; strcpy(targetName, argv[0]); for(int n=strlen(targetName)-1; n>=0; --n) { if(targetName[n] != '\\') { targetName[n] = '\0'; } else { targetName[n] = '\0'; break; } } strcat(targetName, "\\Data\\Test.dat"); FILE *myFile = fopen(targetName, "wb"); WaveFile myWave; if(myFile == NULL) { printf("Something is wrong\n"); getchar(); fclose(myFile); return 0; } if(argc != 2) { printf("Drag a WavFile on this icon.\n"); getchar(); } else { myWave.loadWave(argv[1]); myWave.normalize(); printf("File Name : %s\n", argv[1]); int buffer; buffer = myWave.length; fwrite(&buffer, sizeof(int), 1, myFile); printf("Length : %d\n", buffer); if(ferror(myFile)) { printf("Something is wrong...\n"); } buffer = myWave.sample_rate; fwrite(&buffer, sizeof(int), 1, myFile); printf("Sample Rate : %d\n", buffer); for(int n=0; n<myWave.length; ++n) { if(myWave.data[0][n] >= 1.0) { buffer = int32_max - 1; } else if(myWave.data[0][n] < -1.0) { buffer = -int32_max; } else { buffer = int(int32_max*myWave.data[0][n]); } fwrite(&buffer, sizeof(int), 1, myFile); } printf("Done!\n"); } fclose(myFile); return 0; }