public static float[] GenerateAudioTestData(int sampleRate, int secondsToSample) { int totalNumberOfSamples = sampleRate * secondsToSample; float[] audioData = new float[totalNumberOfSamples]; BasicOscillatorProvider basic = new BasicOscillatorProvider(); int length = (int) MathUtils.RoundDown(totalNumberOfSamples / 22); int offset = 0; int startFrequency = 110; basic.Amplitude = MathUtils.DecibelToAmplitude(-33); basic.SetFrequency(startFrequency*1); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SINE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-30); basic.SetFrequency(startFrequency*2); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SAW); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-27); basic.SetFrequency(startFrequency*3); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SQUARE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-24); basic.SetFrequency(startFrequency*4); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.TRIANGLE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-21); basic.SetFrequency(startFrequency*5); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SINE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-18); basic.SetFrequency(startFrequency*6); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SAW); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-15); basic.SetFrequency(startFrequency*7); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SQUARE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-12); basic.SetFrequency(startFrequency*8); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.TRIANGLE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-9); basic.SetFrequency(startFrequency*9); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SINE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-6); basic.SetFrequency(startFrequency*10); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SAW); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-3); basic.SetFrequency(startFrequency*11); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SQUARE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(0); basic.SetFrequency(startFrequency*12); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.TRIANGLE); offset += basic.Read(audioData, offset, length); // Down again basic.Amplitude = 1.0f; basic.SetFrequency(startFrequency*11); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SINE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.9f; basic.SetFrequency(startFrequency*10); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SAW); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.8f; basic.SetFrequency(startFrequency*9); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SQUARE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.7f; basic.SetFrequency(startFrequency*8); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.TRIANGLE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.6f; basic.SetFrequency(startFrequency*7); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SINE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.5f; basic.SetFrequency(startFrequency*6); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SAW); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.4f; basic.SetFrequency(startFrequency*5); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SQUARE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.3f; basic.SetFrequency(startFrequency*4); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.TRIANGLE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.2f; basic.SetFrequency(startFrequency*3); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SINE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.1f; basic.SetFrequency(startFrequency*2); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SAW); offset += basic.Read(audioData, offset, length); return audioData; }
public static float[] GenerateAudioTestData(int sampleRate, int secondsToSample) { int totalNumberOfSamples = sampleRate * secondsToSample; float[] audioData = new float[totalNumberOfSamples]; BasicOscillatorProvider basic = new BasicOscillatorProvider(); int length = (int)MathUtils.RoundDown(totalNumberOfSamples / 22); int offset = 0; int startFrequency = 110; basic.Amplitude = MathUtils.DecibelToAmplitude(-33); basic.SetFrequency(startFrequency * 1); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SINE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-30); basic.SetFrequency(startFrequency * 2); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SAW); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-27); basic.SetFrequency(startFrequency * 3); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SQUARE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-24); basic.SetFrequency(startFrequency * 4); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.TRIANGLE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-21); basic.SetFrequency(startFrequency * 5); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SINE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-18); basic.SetFrequency(startFrequency * 6); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SAW); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-15); basic.SetFrequency(startFrequency * 7); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SQUARE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-12); basic.SetFrequency(startFrequency * 8); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.TRIANGLE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-9); basic.SetFrequency(startFrequency * 9); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SINE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-6); basic.SetFrequency(startFrequency * 10); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SAW); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(-3); basic.SetFrequency(startFrequency * 11); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SQUARE); offset += basic.Read(audioData, offset, length); basic.Amplitude = MathUtils.DecibelToAmplitude(0); basic.SetFrequency(startFrequency * 12); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.TRIANGLE); offset += basic.Read(audioData, offset, length); // Down again basic.Amplitude = 1.0f; basic.SetFrequency(startFrequency * 11); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SINE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.9f; basic.SetFrequency(startFrequency * 10); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SAW); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.8f; basic.SetFrequency(startFrequency * 9); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SQUARE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.7f; basic.SetFrequency(startFrequency * 8); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.TRIANGLE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.6f; basic.SetFrequency(startFrequency * 7); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SINE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.5f; basic.SetFrequency(startFrequency * 6); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SAW); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.4f; basic.SetFrequency(startFrequency * 5); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SQUARE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.3f; basic.SetFrequency(startFrequency * 4); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.TRIANGLE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.2f; basic.SetFrequency(startFrequency * 3); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SINE); offset += basic.Read(audioData, offset, length); basic.Amplitude = 0.1f; basic.SetFrequency(startFrequency * 2); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SAW); offset += basic.Read(audioData, offset, length); return(audioData); }
private static void GenerateTestAudioFiles() { // Generate test audio file section AudioUtilsNAudio.GenerateAudioTestFile(44100, 5, "sine-test.wav"); int sampleRate = 44100; int secondsToSample = 3; int totalNumberOfSamples = sampleRate * secondsToSample; float[] audioData = new float[totalNumberOfSamples]; BasicOscillatorProvider basic = new BasicOscillatorProvider(); basic.Amplitude = 0.8f; basic.SetFrequency(11025); basic.SetOscWaveshape(BasicOscillatorProvider.WAVESHAPE.SINE); basic.Read(audioData, 0, totalNumberOfSamples); AudioUtilsNAudio.WriteIEEE32WaveFileMono("sine-hi.wav", sampleRate, audioData); }