|
XO Wave: Resolution in XO Wave (Technical Note)
This technical note briefly describes XO Wave's approach to
digital audio sample resolution. XO Wave has two audio engines,
a 32-bit audio engine, which uses IEEE 754 32-bit floating point
arithmetic, and (in XO Wave
Pro) an optional 64-bit audio engine, which uses IEEE 754
64-bit floating point arithmetic, also known as "double precision"
floating point. The term "internal format" will be used
below to refer to these data types.
Dither is used by default when resolution is
reduced. These cases are described below. See our technical note
Dither in XO Wave
for more details on the dither used in XO Wave.
QuickTime is used for a number of conversions
on the Macintosh platform. For example, importing an MP3 file into
XO Wave requires conversion to an uncompressed format (AIFF or WAV)
using QuickTime. All QuickTime conversions are done
entirely by the QuickTime libraries, not by XO Wave, and therefore
may produce files that have been reduced in resolution, or even truncated.
To import high resolution audio into an XO Wave session, it is best to
use AIFF, AIFC or WAV file formats because they do not need to be converted.
For QuickTime output, an effort is made to deliver the highest
possible resolution to QuickTime (which may then perform its own conversion).
Input: XO Wave converts all incoming data into its own
internal format before doing any processing. This includes
source files as well as input from sound
devices. No arithmetic operations are performed on incoming
data streams before this conversion takes place. Although this generally
results in bit-transparency and minimal truncation and noise, there are
some (very unusual) circumstances when bit-transparency cannot be
guaranteed. For example,
a 32-bit input file cannot be processed transparently using 32-bit
floating point internal format.
Intermediates: In general, all intermediates are maintained
using at least internal format. In some cases, such as in recursive
filters, some values are stored at even higher resolution, because
of the sensitivity to cumulative noise on these values. During normal
operation, XO Wave
does not produce low resolution intermediates for any purpose. All
cross fades, effects, automation and other processing is performed in
real-time using at least internal format. The only exception to this
is when a file's format needs to be converted as it is being imported
into XO Wave by Apple's QuickTime library.
Output (Playback): XO Wave normally passes
32-bit (single-precision) floating point numbers to the operating
system or sound card driver. Because the final resolution and
bit-reduction method used by the operating system and sound-card
is often unknown, and because there may be further processing of the
audio after it is output by XO Wave (for example, XO Wave's output
may undergo sample rate
conversion or be combined with other sounds), output dither can
be controlled explicitly
in the Audio Hardware window.
The default dither is appropriate for 16-bit output, and is also
generally appropriate for simulating 16-bit output on higher resolution
hardware. Possible settings are 16-bit, 8-bit and off.
Output (Export): For output to QuickTime formats, XO Wave
delivers internal format audio to QuickTime, without dither, since
pre-dithering is not appropriate for most commonly used QuickTime codecs.
8- and 16-bit AIFF and WAV files are, by default, appropriately
dithered before bit-rate reduction. 24- and 32-bit files do not require
dither.
Output (CD Mastering): CD Masters, like 16-bit AIFF exports,
default to dither appropriate for 16-bit data.
|