예제 #1
0
        private void cbWindow_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (spec is null)
            {
                return;
            }

            settings.window = cbWindow.Text;
            settings.Save();

            double[] window = FftSharp.Window.GetWindowByName(cbWindow.Text, spec.FftSize);
            spec.SetWindow(window);
        }
예제 #2
0
        private void StartListening()
        {
            try
            {
                int sampleRate = 6000;
                int fftSize    = SelectedFftSize;
                int stepSize   = fftSize / 20;

                SpectrogamImageSource = null;
                listener?.Dispose();
                listener = new Listener(DeviceCapabilities.IndexOf(selectedDevice), sampleRate);

                spec = new Spectrogram.Spectrogram(sampleRate, fftSize, stepSize);
                spec.SetWindow(FftSharp.Window.Rectangular(fftSize));
                SpectrogramHeight = spec.Height;

                VerticalScaleImageSource = null;
                VerticalScaleImageSource = ImageHelpers.BitmapToImageSource(spec.GetVerticalScale(LEGEND_WIDTH));
            }
            catch (Exception ex)
            {
                Console.WriteLine("Exeption when attempting to start to listen: " + ex.Message);
            }
        }