Example #1
0
        protected override void OnEnable()
        {
            base.OnEnable();

            this.spectrumVisualizer = this.target as SpectrumVisualizer;
            this.numberOfBands      = this.serializedObject.FindProperty("numberOfBands");
        }
 private void VisualizerProcess()
 {
     using (Visualizer = new SpectrumVisualizer(1280, 720, "CSharpNation_V2.0", Analyzer, Waves, textureManager, LogoOffset))
     {
         Visualizer.Run();
     }
 }
 private void VisualizerProcess()
 {
     using (Visualizer = new SpectrumVisualizer(1280, 720, "CSharpNation_V2.0", Analyzer, windowManager.GetWaves(), windowManager.GetTextureManager(), new float[4]))
     {
         Visualizer.Run();
     }
 }
Example #4
0
        public TabEffects()
        {
            InitializeComponent();

            renderedSpectrumVisualizer           = new SpectrumVisualizer();
            renderedSpectrumVisualizer.Opactity  = 0.2f;
            loopbackCaptureController            = new LoopbackCaptureController();
            loopbackCaptureController.OnCapture += loopbackCaptureController_OnCapture;
        }
Example #5
0
        void SetupSampleSource(ISampleSource sampleSource)
        {
            FftSize fftSize = FftSize.Fft4096;

            SpectrumProvider spectrumProvider = new SpectrumProvider(sampleSource.WaveFormat.Channels,
                sampleSource.WaveFormat.SampleRate, fftSize);

            //spectrum = new BlobSpectrum(this, spectrumProvider, FftSize.Fft4096);
            spectrum = new RLSpectrum(this, spectrumProvider, FftSize.Fft4096);

            SingleBlockNotificationStream notificationSource = new SingleBlockNotificationStream(sampleSource);
            notificationSource.SingleBlockRead += (s, a) => spectrumProvider.Add(a.Left, a.Right);

            source = notificationSource.ToWaveSource(16);
        }
        private void SetDataFFT(WaveInEventArgs args)
        {
            int bytesPerSample  = _wi.WaveFormat.BitsPerSample / 8;
            int samplesRecorded = args.BytesRecorded / bytesPerSample;

            Int16[] dataPcm = new Int16[samplesRecorded];
            for (int i = 0; i < samplesRecorded; i++)
            {
                dataPcm[i] = BitConverter.ToInt16(args.Buffer, i * bytesPerSample);
            }

            // the PCM size to be analyzed with FFT must be a power of 2
            int fftPoints = 2;

            while (fftPoints * 2 <= dataPcm.Length)
            {
                fftPoints *= 2;
            }

            // apply a Hamming window function as we load the FFT array then calculate the FFT
            NAudio.Dsp.Complex[] fftFull = new NAudio.Dsp.Complex[fftPoints];
            for (int i = 0; i < fftPoints; i++)
            {
                fftFull[i].X = (float)(dataPcm[i] * NAudio.Dsp.FastFourierTransform.HammingWindow(i, fftPoints));
            }
            NAudio.Dsp.FastFourierTransform.FFT(true, (int)Math.Log(fftPoints, 2.0), fftFull);

            double[] dataFft = new double[fftPoints / 2];
            byte[]   data    = new byte[fftPoints / 2];

            for (int i = 0; i < fftPoints / 2; i++)
            {
                double fftLeft  = Math.Abs(fftFull[i].X + fftFull[i].Y);
                double fftRight = Math.Abs(fftFull[fftPoints - i - 1].X + fftFull[fftPoints - i - 1].Y);
                dataFft[i] = fftLeft + fftRight;
                data[i]    = (byte)(fftLeft + fftRight);
            }

            /*if(SpectrumVisualizer.GetType().Name == "CircleSpectrumVisualizer")
             *  SpectrumVisualizer.Set(GetNiceCircleFFT(data));
             * else
             *  SpectrumVisualizer.Set(data);*/

            SpectrumVisualizer.Set(GetNiceFftData(data, SpectrumVisualizer.GetType().Name == "CircleSpectrumVisualizer"));
        }
        private void SetDataAmplitude(WaveInEventArgs args)
        {
            int bytesPerSample  = _wi.WaveFormat.BitsPerSample / 8;
            int samplesRecorded = args.BytesRecorded / bytesPerSample;

            Int16[] lastBuffer = new Int16[samplesRecorded];
            for (int i = 0; i < samplesRecorded; i++)
            {
                lastBuffer[i] = BitConverter.ToInt16(args.Buffer, i * bytesPerSample);
            }
            int    lastBufferAmplitude = lastBuffer.Max() - lastBuffer.Min();
            double amplitude           = (double)lastBufferAmplitude / Math.Pow(2, _wi.WaveFormat.BitsPerSample);

            if (amplitude > peakAmplitudeSeen)
            {
                peakAmplitudeSeen = amplitude;
            }
            amplitude = amplitude / peakAmplitudeSeen * 100;

            //_spectrumdata.Clear();
            if (_spectrumdata.Count >= NumberOfLines)
            {
                _spectrumdata.RemoveAt(0);
            }

            double regleDe3 = amplitude * 255 / 100;
            int    y        = Convert.ToInt32(regleDe3);

            if (y > 255)
            {
                y = 255;
            }
            if (y < 0)
            {
                y = 0;
            }
            _spectrumdata.Add((byte)y);



            SpectrumVisualizer.Set(_spectrumdata.ToArray());
        }
Example #8
0
 public void TestInit()
 {
     sut = new AudioVisualizer.SpectrumVisualizer();
 }