Recently, I’ve moved from 44.1kHz up to 96kHz sampling rate for my current production. I would have loved to do this step earlier but it wasn’t possible with the older DAW generation in my case. With the newer stuff I was easily able to run a 44.1kHz based production with tons of headroom (resource wise – talking about CPU plus memory and disk space) and so I switched to 96kHz SR and still there is some room left.
I know there is a lot of confusion and misinformation floating around about this topic and so this small article is about to give some theoretical insights from a developer perspective as well as some hands-on tips for all those who are considering at what SR actually to work at. The title already suggests working ITB (In The Box) and I’ll exclude SR topics related to recording, AD/DA converters or other external digital devices.
Why favor a higher SR at all?
Working in the digital audio domain, there are quite a number of reasons to increase the underlying sampling rate of the system. First of all, most feedback based algorithms are taking advantage of a higher SR resulting in a better perceived audio quality. Most prominently, all types of IIR filters are affected especially but not limited to the case where very steep slopes are computed. As an added sugar, the curve warping gets moved outside the hearing spectrum at higher SR.
Whenever modulation at audio rate occurs, there will be serious distortion. This can be minimized to some extend at higher SR and so a wide range of digital audio applications is capitalizing from it: FM oscillators, ring modulation, compression and limiting – just to name a few. The so-called IMD (inter modulation distortion) is even worse in the digital domain since also aliasing gets introduced. This occurs when the additionally created distortion content exceeds the Nyquist frequency and gets folded back into the spectrum below. Increasing the SR, immediately relieves this effect. In general, this applies to all kind of non-linear processing and therefore all types of saturation and distortion algorithms are benefiting from higher SR.
Choosing a SR to work at
In practise, this is basically a matter of how much resources are available (computational wise). If your DAW allows to work at a very high SR I would simply say: Go for it. There are several constraints, though. First and foremost, you are limited to what your host (a sequencer, a sample editor) actually supports which (in most cases) basically is exactly what the underlying audio hardware supports. Secondly, the same goes for all the instrument and effect plug-ins you are using, which leads to the question:
Why are some plug-ins limited to work at certain SR’s?
Some plug-in developers pre-compute certain algorithm coefficients, e.g. for a filter network to save DSP resources. Or, they pre-calculate look-up tables for complex functions, just as an example. In case where such parameters are SR dependent, they have to choose a set of specific SR’s that they gonna support. VoS plug-ins don’t use such techniques and they run on any arbitrary SR above 44.1kHz.
Oversampling a plug-in vs. changing the projects host SR
Some plug-ins are offering internal oversampling (re-sampling of the audio signal to a higher SR) as an alternative to a globally higher SR in the host. As always in life, there is a serious tradeoff though. Re-sampling a signal requires steep filtering at Nyquist which in general is a tradeoff between computational cost, steepness of the filter, ripple in the passband and resulting impulse response of the filter. For instance, if a plug-in uses a FIR filter to obtain very steep filtering, pre-ringing occurs. On the other hand, if IIR filtering is used, the filter might be not steep enough to eliminate aliasing content. However, the additional computational cost is a “local” phenomenon opposed to an overall higher SR which causes a higher CPU demand in all software running in the host.
Running an overall higher SR on the other hand avoids tons of up and down sampling and all the artifacts that are typically introduced by doing so and just requires some down sampling at the end which can be done with an high quality offline sample rate converter. If computing power is not an issue my vote goes clearly to use a higher SR instead of local re-sampling.
Realtime vs. offline SR conversion
The usual plug-in internal realtime up and down sampling is typically based on a “double/half sampling” approach which simply doubles and afterwards halfs the sampling rate and leads to 2x, 4x, 8x, 16x (and so on) effective internal sampling rates. This is computational wise a little bit cheaper than re-sampling between arbitrary SR’s. In an offline re-sampler this is not an issue and they can also invest way more CPU cycles into high quality interpolation/filtering. Some quality comparisons are online available at http://src.infinitewave.ca/. Note that with r8brain and SoX you’ll get highest quality SR converters already in the freeware domain and there is no need for commercial solutions (quality wise).
88.2kHz vs. 96kHz when coming from 44.1kHz
The aforementioned offline re-samplers quality is actually so good that there is no reason to stick to the a simpler double sampling approach when coming from 44.1kHz. If CPU allows, go 96kHz right away.
Migrating a project
In theory, one might expect to migrate an existing project from lower to higher SR w/o any further issues or manual intervention. In reality it’s not that easy. I’ve converted entire projects from lower to higher SR and the difference is not that much dramatic but the mix needed to be revised and fixed after the conversion.
This is mostly related to filter coefficient computation and filter warping near to Nyquist frequency which moves after a SR change. As an example, the main filter in NastyDLA changes slightly nearby Nyquist after SR change causing slightly more self oscillation. There are countless other examples in all kinds of available plug-ins, whether being free or commercial so better check your project after conversion.
Higher SR just during mastering?
If one can’t handle an overall higher SR production, is it still valid to use a higher SR limited to the mastering process? Absolutely yes! Just up-sample the mix and perform all the mastering tasks such as equalizing, compression and maximizing. As already discussed they all benefit from oversampling. At the end of the chain render the file with your host and then down-sample the file with a high quality offline SR converter down to 44.1kHz.