Exemple #1
0
        private void CreateFilters()
        {
            for (int bandIndex = 0; bandIndex < bandCount; bandIndex++)
            {
                EqualizerBand band = bands[bandIndex];

                for (int n = 0; n < channels; n++)
                {
                    if (filters[n, bandIndex] == null)
                    {
                        filters[n, bandIndex] = BiQuadFilter.PeakingEQ(
                            sourceProvider.WaveFormat.SampleRate,
                            band.Frequency,
                            band.Bandwidth,
                            band.Gain);
                    }
                    else
                    {
                        filters[n, bandIndex].SetPeakingEq(
                            sourceProvider.WaveFormat.SampleRate,
                            band.Frequency,
                            band.Bandwidth,
                            band.Gain);
                    }
                }
            }
        }
Exemple #2
0
        public void Update(EqualizerBand highPass, EqualizerBand lowPass)
        {
            updated = true;

            HighPass = highPass;
            LowPass  = lowPass;
        }
Exemple #3
0
 /// <summary>
 /// イコライザの設定値を変更する
 /// </summary>
 /// <param name="bandIdx"></param>
 /// <param name="channels"></param>
 /// <param name="sampleRate"></param>
 /// <param name="band"></param>
 private void Update(int bandIdx, int channels, int sampleRate, EqualizerBand band)
 {
     for (int channelIdx = 0; channelIdx < channels; ++channels)
     {
         this._filters[channelIdx, bandIdx].SetPeakingEq(sampleRate, band.Frequency, band.BandWidth, band.Gain);
     }
 }
Exemple #4
0
    /// <summary>
    /// イコライザの設定値を変更する
    /// </summary>
    /// <param name="band"></param>
    public void Update(EqualizerBand band)
    {
        int bandIdx = this._bands.IndexOf(band);
        var format  = this._sourceProvider.WaveFormat;

        this.Update(bandIdx, format.Channels, format.SampleRate, band);
    }
Exemple #5
0
        public PassFiltersSampleProvider(ISampleProvider sourceProvider, EqualizerBand highPass, EqualizerBand lowPass)
        {
            this.sourceProvider = sourceProvider;

            this.HighPass = highPass;
            this.LowPass  = lowPass;

            CreateFilters();
        }
Exemple #6
0
        public void AddBand(EqualizerBand eqBand)
        {
            var band = new EqualizerBandViewModel();

            band.EqualizerBand = eqBand;

            band.RemoveBandEvent += RemoveBandEvent;
            band.PropertyChanged += EqualizerBandViewModel_PropertyChanged;

            Items.Add(band);
        }
        public void LoadInto(IEqualizer equalizer)
        {
            equalizer.IsEnabled = IsEnabled;

            foreach (EqualizerBand band in Bands)
            {
                if (band.IsFixedOffset)
                {
                    EqualizerBand bandToUpdate = equalizer.Bands.FirstOrDefault(b => b.IsFixedOffset && (Math.Abs(b.Offset - band.Offset) < 0.01));
                    if (bandToUpdate != null)
                    {
                        bandToUpdate.Value = band.Value;
                    }
                }
                else
                {
                    equalizer.AddBand(band.Offset, band.Value);
                }
            }
        }
 public EqualizerBandChangedEventArgs(int bandIndex, float value, EqualizerBand band)
 {
     BandIndex = bandIndex;
     Value = value;
     Band = band;
 }