public IBGCStream ApplyEffects(IBGCStream input) { if (prior is null) { return(ApplyEffect(input)); } return(ApplyEffect(prior.ApplyEffects(input))); }
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()); }