Ok, that's what I thought. How does taps differ from resolution? And can you point me in some direction to where I can find info about taps and what number is considered to be audible or not?
How much maths have you studied?
The filters we're talking about can be represented as y(n) = b0 * x(n) + b1 * x(n - 1) * b2 * x(n - 2) ... bM * x(n - M), where x(n) is the input value of sample number n and y(n) is the corresponding output. Put differently, output sample n is a linear combination of the input sample and the M prior input samples. The constants b0 ... bM are the coefficients, and they are also equal to the impulse response of the filter. Graphically, the filter can be represented like this:
Here we can easily see that the input signal is "tapped" at M+1 places in order to produce the output. The number M is also known as the order of the filter. Without going into detail, the higher the filter order, the closer it can be made to approximate a desired response.
An ideal low-pass filter, which is what we're aiming for, has a perfectly flat frequency response up to the cut-off, above which the input is fully attenuated. This is only possible with an infinitely long sinc filter, so some compromise is necessary. The deviation from the ideal can be described in terms of passband flatness (ripple), stop-band attenuation, and width of the transition band.
Suppose we want to resample CD audio to twice its original rate. We want to minimise ripple below 20 kHz and maximise attenuation above 22 kHz (half the input sample rate). The interval between 20 kHz and 22 kHz, transition band, is unimportant. It is inaudible, and besides, the recording/production process has probably already mangled the content in that range.
First, consider a case with modest requirements, 0.1 dB passband ripple and 80 dB stopband rejection. Plugging these constraints into the Matlab filter designer using the equiripple method, we get a filter of order 147 (that's 148 taps) with this magnitude response:
Zooming in on the passband, we can see that the ripple meets the requirement:
This might be good enough for, say, a portable audio player where cost and power consumption are more important than extreme performance. We are, however, building a high-end system and want something better. Hence, we tighten the specification to 0.0001 dB passband ripple and 180 dB stopband rejection. This produces a filter of order 394, and the magnitude response looks exactly as requested:
This level of performance far exceeds all established limits of audibility. Furthermore, it exceeds the capabilities of any amplifier. This is where any reasonable person would stop and call it good enough. But what if, like Rob Watts, we are not reasonable and believe we can hear things at -300 dB? Matlab can help. The equiripple design method doesn't work with this constraint, so we switch to the window method. Using a cut-off frequency of 21 kHz and suitable window parameters, we get a filter of order 1000 with this response:
Passband ripple is virtually non-existent (note the scale on the y axis):
Given the analogue limitations imposed by physical reality, overkill doesn't begin to describe this. And yet Rob Watts wants to use a filter that is ONE THOUSAND times longer again. It's beyond ludicrous.
It should also be noted that in the M-scaler tests published by Stereophile, it doesn't come anywhere close even to the second filter shown above, so all those taps are essentially wasted.