コード例 #1
0
        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;
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: Mir.cs プロジェクト: remy22/FindSimilar
				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);
				}