private static int test01_ReadWrite8BitsMonoWAVFile() { WAV_file my_wav_file = new WAV_file(); my_wav_file.File_name = "dog_bark.wav"; Console.WriteLine( "Nome: " + my_wav_file.File_name ); my_wav_file.Path = ".\\"; // my_wav_file.Path = ".\\Debug\\wav_files\\"; Console.WriteLine( "Path: " + my_wav_file.Path ); my_wav_file.loadFile(); Console.Write(my_wav_file.toWAVHeaderString()); System.Byte[] buffer_8_bits_Mono; uint numberOfSamples = (uint) my_wav_file.getBuffer_8_bits_mono( out buffer_8_bits_Mono); // Buffer processing. Console.WriteLine(); Console.WriteLine(); for (uint i = 0; i < numberOfSamples; i++) { // Console.Write( buffer_8_bits_Mono[i].toString() + "."); } Console.WriteLine(); Console.WriteLine(); // We are going to save the file on the hard drive with another name. my_wav_file.File_name = "test01_dog_bark_saved.wav"; my_wav_file.initializeWaveHeaderStructBeforeWriting(); my_wav_file.setBuffer_8_bits_mono(buffer_8_bits_Mono); my_wav_file.writeFile(); return 0; }
private static int test02_generate8BitsMono440HzWAVFile() { WAV_file my_wav_file = new WAV_file(); my_wav_file.File_name = "test02_A440_8_Bits_Mono.wav"; Console.WriteLine("Nome: " + my_wav_file.File_name); my_wav_file.Path = ".\\"; // my_wav_file.Path = ".\\Debug\\wav_files\\"; Console.WriteLine("Path: " + my_wav_file.Path); const System.UInt32 C_SAMPLES_PER_SEC = 8000; const System.UInt32 C_TIME_SEC = 5; my_wav_file.BitsPerSample = WAV_file.BITS_PER_SAMPLE.BPS_8_BITS; my_wav_file.NumOfChannels = WAV_file.NUM_CHANNELS.ONE; my_wav_file.SampleRate = C_SAMPLES_PER_SEC; my_wav_file.NumberOfSamples = C_SAMPLES_PER_SEC * C_TIME_SEC; // 5 segundos my_wav_file.initializeWaveHeaderStructBeforeWriting(); System.Byte[] buffer_8_bits_Mono; // Allocate the memory for the buffer. my_wav_file.getBuffer_8_bits_mono(out buffer_8_bits_Mono); // Fills the buffer with a sinusoidal. float alphaAngle = 0; const System.UInt32 C_SIGNAL_FREQUENCY = 440; // 440 Hz La (A) for (uint i = 0; i < my_wav_file.NumberOfSamples; i++) { buffer_8_bits_Mono[i] = (System.Byte) ( ( (Math.Sin(alphaAngle) * (System.Byte.MaxValue / 2)) + (System.Byte.MaxValue / 2) ) ); alphaAngle += (2 * (float) (Math.PI) * C_SIGNAL_FREQUENCY) / C_SAMPLES_PER_SEC; } my_wav_file. setBuffer_8_bits_mono(buffer_8_bits_Mono); my_wav_file.writeFile(); return 0; }