예제 #1
0
파일: wTest.cpp 프로젝트: Phryxia/PWave
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;
}
예제 #2
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;
}