That reminds me I have heard the argument that 48k is better than 44.1 for the reason of allowing a smoother falloff for an anti-aliasing filter. I don't really believe it matters, I've tested both and can't hear a difference. The filtering in either case happens above the audible range. But mathematically it's technically true. So I guess that's +1 theoretical point towards Yisheng's question lol.
"the non-linear effects will be filtered on input and output to reduce aliasing" Sorry this bit doesn't really make sense to me though. You can't distinguish whether a signal has aliasing or is just an intentionally nasty waveform. So it's not technically filtering the non-linear artifacts as much as its just filtering everything above the cutoff frequency. That's why oversampling works so well, because you extend your signal bandwidth with a new region that had no frequency content originally. You're adding extra frequency headroom for harmonics to be generated without hitting the nyquist frequency. You can then filter that out and be confident you're removing mostly artifacts and inaudible material while not affecting the original signal bandwidth very much. But if you have a signal that actually utilizes the full bandwidth of, let's say 192k, you would be filtering out desired parts of your signal. Resampling up/down by an integer amount is really simple. The filtering is the most computationallly expensive part. If you want to downsample by a factor of 2 you use a lowpass filter and then just skip every other sample. For a factor of 4 you lowpass filter and then take 1 sample, skip 3. So if you're already going to be doing the filtering then doing the sample decimation is likely cheaper than not doing it. You do avoid needing extra filtering each upsampling step. But unless your other effects are computationallly simpler than a lowpass filter, taking the extra effort to only upsample/downsample when a plugin warrants it will be more efficient than running the entire project at a higher sample rate. As for your idea of dynamically choosing when to oversample, some plugins do that. I know Monark will apply a 2x oversample if running below 88.2k. Otherwise it will use the session sampling rate.
