The Well-Tempered Computer, an introduction to computer audio

Saturday, January 29, 2011

Software upsamplers

Why? And you thought NO oversampling supposed to be best? OK, yes when you can avoid it.  Today, most d/a chips - including the best ones - are of the sigma-delta types which up/oversampling is embedded into the design, otherwise you would be left with horrendous noise in the output signal.


Upsampling itself can not create information that was not already there, just like blowing up 1m pixels file to poster proportions.  So here the point is not to create faux information, but it is there to move noises out of the audio band.  All of this usually happens in the oversampling digital filter (usually an integral part of the d/a chip, some are custom and external).  The noises, now moved high up out of the audio band, are then filtered out.  The filter can be a brick wall type, at say 22kHz ( good frequency response, but bad phase response), or a slow roll off minimum phase type.  In multi-bit DAC, this filter is normally analog, but for a sigma-delta dac, it is done in the digital domain.


Hardware oversampling in digital filters are not the best, even in the best DACs, because of all the computations that has to be done in real time.  The more sophisticated DACs uses custom, outboard digital filter to do the job, but since we're sending music to DACs from our computers - there's also the software upsampler route.  Sending the DAC an already up-sampled high resolution file gives the hardware digital filter an easier job, sometimes bypass its upsampling work almost completely.


Industry standard software upsamplers or sample rate converters (SRCs) are Weiss Saracon and Izotope RX.  They are used in mastering studios and expensive.  For PC users, there are quite a number of other alternatives, including on-the-fly upsamplers such as the XXhighend player (design to work in conjuction with the Phasure NOS no filter DAC) and Sygnalist's HQplayer.  For a Mac user like me, there is the Wave Editor from Audiofile Engineering for $79.



Wave Editor uses Izotope's upsampling algorithm with options to adjust, among other things, bit depth, sampling rate, filter slope, pre-ringing.   There is also the Sample Manager, a batch processor from the same company but with less options.  However, the only thing Wave Editor does not do is real time on-the-fly upsampling.  Wave editor takes about a minute to convert a file.  If you want to do on-the-fly upsampling, Apple CoreAudio is good, but not good enough.  Check out src.infinitewave.ca which shows charts of various SRCs.

iZotope SRC sweep
iZotope SRC minimum pre-ring
Pure Music and Amarra supposedly has better built-in SRCs and are worth the price they are charging for their hard work.  There are also the new Audirvana (still in alpha stage, open source, and free) utilizes Secret Rabbit Code libSampleRate algorithm which also open source, free, and sounds great.

Audirvana
As I am writing this blog, I am running Audirvana, which upsamples to 32-bit/ 192kHz, via 32-bit asynchronous USB transfer to Calyx Audio DAC (16 x ESS 9018 32-bit DAC chip, the only chip that can accept true 32 bit data path).  The sound? It's a glimpse of audio nirvana!


Calyx DAC