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); } } } }
public void Update(EqualizerBand highPass, EqualizerBand lowPass) { updated = true; HighPass = highPass; LowPass = lowPass; }
/// <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); } }
/// <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); }
public PassFiltersSampleProvider(ISampleProvider sourceProvider, EqualizerBand highPass, EqualizerBand lowPass) { this.sourceProvider = sourceProvider; this.HighPass = highPass; this.LowPass = lowPass; CreateFilters(); }
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; }