Exemple #1
0
        public void Start(int deviceIndex = 0, int fftPower = 14, string preLoadWavFile = null)
        {
            int sampleRate = 8000;
            int fftSize    = (int)(Math.Pow(2, fftPower));

            int tenMinutePixelWidth = 1000;
            int samplesInTenMinutes = sampleRate * 10 * 60;
            int segmentSize         = samplesInTenMinutes / tenMinutePixelWidth;

            spec = new Spectrogram.Spectrogram(sampleRate, fftSize, segmentSize);
            spec.displaySettings.brightness     = 5;
            spec.displaySettings.freqLow        = 1000;
            spec.displaySettings.freqHigh       = 1500;
            spec.displaySettings.tickSpacingHz  = 50;
            spec.displaySettings.tickSpacingSec = 30;

            formBrightness = new FormBrightness(spec);
            formFreqRange  = new FormFreqRange(spec);
            formFFT        = new FormFFT(spec);

            pbSpec.Width  = tenMinutePixelWidth;
            pbSpec.Height = spec.displaySettings.height;

            if (preLoadWavFile != null)
            {
                spec.AddExtend(Tools.ReadWav(preLoadWavFile));
            }
            else
            {
                int bitRate            = 16;
                int channels           = 1;
                int bufferMilliseconds = 20;
                wvin = new NAudio.Wave.WaveInEvent();
                wvin.DeviceNumber       = deviceIndex;
                wvin.WaveFormat         = new NAudio.Wave.WaveFormat(sampleRate, bitRate, channels);
                wvin.DataAvailable     += OnDataAvailable;
                wvin.BufferMilliseconds = bufferMilliseconds;
                wvin.StartRecording();
            }
        }