public void Update(EqualizerParams eqParams) { updated = true; leftBands = eqParams.LeftChannel.ToArray(); rightBands = eqParams.RightChannel.ToArray(); }
public ISampleProvider SampleProvider(ISampleProvider sourceProvider) { EqualizerParams eqParams = GetEqParams(); float adjustVolume = CalcAdjustVolumeFromEq(eqParams); adjustedSampleProvider = new ChannelsVolumeSampleProvider(sourceProvider) { LeftChannelVolumeInDB = adjustVolume, RightChannelVolumeInDB = adjustVolume }; return(equalizerSampleProvider = new EqualizerSampleProvider(adjustedSampleProvider, eqParams)); }
private float CalcAdjustVolumeFromEq(EqualizerParams eqParams) { float maxEqGain = 0; foreach (EqualizerBand eb in eqParams.LeftChannel) { if (eb.Gain > 0) { maxEqGain = Math.Max(eb.Gain, maxEqGain); } } foreach (EqualizerBand eb in eqParams.RightChannel) { if (eb.Gain > 0) { maxEqGain = Math.Max(eb.Gain, maxEqGain); } } return(-maxEqGain); }
public EqualizerSampleProvider(ISampleProvider sourceProvider, EqualizerParams eqParams) : this(sourceProvider, eqParams.LeftChannel.ToArray(), eqParams.RightChannel.ToArray()) { }