| It is very much not a foolish question. The general music industry is
unfortunately rather vague about these things!
You can have 24bit integers, and 32bit integers (as used in the ADI
Sharc, among others), and so you can also have file formats which store
the data this way. The numerical range of these formats arises directly
from the number of bits - just as 16bit data has the range -32768 to +
32767, which could be written as -(2^^15) to +(2^^15)-1, so 24bit
integer data has the range -(2^^23) to +(2^^23)-1, and 32bit integer
data has the range -(2^^31) to +(2^^31)-1.
In DSP chips, 'fractional' or 'fixed-point' 24bit words are in general
use (e.g the Motorola 56K), with a quasi-floating-point range of +- 1.0
(but excluding 1.0 itself). As the 56K chips are in widespread use
(Digidesign ProTools and Audiomedia, Turtle Beach, Kyma, etc) it is
common for many effects units, and some soundcards, to be described as
'24bit'.
You can also have 32bit floating point numbers (as also used in the ADI
Sharc, among others). The conventional range for 32bit floating-point
audio samples is +- 1.0 - the so-called 'normalized' format. This is
used in the 'Type-3' WAVE format. Floating-point numbers comprise an
exponent and a mantissa ( the fractional part), thus for most normalized
floating-point audio samples, the exponent bits are unused, so that this
could also be said to be ~really~ a 24bit representation - 24bits of
'precision'. Sonic Foundry (makers of SoundForge) go to some pains to
make this point, so that although, by running on Intel processors, they
are using 32bit floating-point calculations (at least), they say that
they are performing '24bit processing'.
Thus, deliberate or accidental confusion can arise, depending on whether
the reference is to the active number of bits (precision), or to the
machine wordsize. '32bit processing' ~usually~ means '24 bit precision',
as I have described, but as the buying public has grasped the
fundamental principle that more bits is good, less bits is bad, there is
a natural tendency for everything to be described as '32bit'.
Futher confusion can arise because 24bit numbers can be stored on disk
either in 'packed' format (three bytes per sample = 24bits) or
'unpacked' (four bytes per sample = 32bits - there is am empty padding
byte in this case); the latter can be more efficient for the operating
system, as 32bit numbers are a native wordsize for the machine. The
packed format is by far the most common, simply because it saves disk
space; and 24bits in 32bit words is in any case illegal in an AIFF
file.
Now, Syntrillium (the makers of Cool Edit) have decided that having
24bit integer and 32bit 'normalized' floating-point formats is not
enough, so thay have invented a further pseudo format which they have
called "32 bit 16.8". This uses the 16bit integer range, in a
floating-point representation, i.e -32768.0 to 32767.0. This is,
apparently, the format they use internally. I have not tested this
format that closely, so maybe the upper range limit is 32768.0. I don't
really care that much, as this is an utterly specious file format which
should be avoided everywhere, IMHO. It is written to a WAVE file with
absolutely nothing in the header to distinguish it from a 32bit integer
format. Basically, they examine the samples to decide whether it is
32bit integer or '16.8'.
(You can demonstrate this by saving a 32bit integer soundfile containing
only silence (all numbers zero). Opening this in Cool Edit Pro will then
show this to be a "16.8" floating-point file. They need a non-zero
sample to determine what the format is.)
So, on the one hand, '24bits' and '32bits' describes how the audio is
stored on disk, and on the other it describes the performance of the
software, or dsp processor. In particular, while '24bits' almost always
means one thing, '32bits' might mean quite a few different things.
Just to make life even more interesting, you can also find formats which
store 20bits inside a 24bit word. I understand that this format was used
in early ADATs, when 24bit codecs were thin on the ground, but 20bit
codecs were readily available.
So the audio is 20bit, but the storage is 24bit.
Software designers can also use 'double-precision' techniques, to use,
say, 48-bit words in a 24bit DSP. The 56K chip has a 56bit accumulator
register, which has encouraged more than one manufacturer to advertise
'56bit internal precision'. We are unlikely to ever find a 56bit file
format, however!
Richard Dobson
Sergey Batov wrote:
>
> Hi,
>
> I'm trying to understand PCM formats.
> Can anybody, please, explain what does it mean when
> somebody says '24 bit' or '32 bit sound'? What kind of data?
> Float? Seems Cool Edit considers it as float...
>
> Excuse me if my question looks too foolish.
>
> Sergey Batov batov@glasnet.ru
--
Test your DAW with my Soundcard Attrition Page!
http://wkweb5.cableinet.co.uk/rwd (LU: 17th September 1999) |