public static ISampleProvider ApplyEffects(this IWaveProvider waveProvider, Effects.Effect effectsChain) { if (effectsChain is null || effectsChain is Effects.NoEffect) { //Bypass conversion return(waveProvider.ToSampleProvider()); } return(effectsChain.ApplyEffects(waveProvider.ToBGCStream().EnsureMono()).LimitStream().ToSampleProvider()); }