Hi,
imho, floatingpoint summing is nice as long as singal scales are almost identical.
(For 32 bit floatingpint signals, you have a audiosignal -24 bit and a scale - 8bit)
If you are summing floating-signals with different scales (loud and quiet signals), fixed point seems to be better.
Cahrly Steinberg wrotes:
Words by Charlie Steinberg (about mix engine technology and sound)
-------------------------------------
The 'Logic sounds better' thing is not new and always comes down to pan
law
beeing 0 dB in Logic, as opposed to the defaults of -3dB in Nuendo and
-6 dB
in Cubase. this also explains why 'Nuendo sounds better than Cubase',
because
higher panning law makes centered signals (such as bass and bass drum)
sound
louder (= 'better') and 'more punchy'. one can argue either methods
endlessly,
i think the -3 dB default of Nuendo is a good compromise because most
desks
appear to use this. however punchy your mix sounds is entirely up to
you,
regardless of the panning law you choose; and if your mix sounds better
when
you switch to a different panning law, then you should think twice
about how
you mix in general

at least, in Nuendo and Cubase, you can adjust
the
panning law so to fit your 'taste'.
the idea behind -6 dB panning law is that when you would put your 2
stereo
speakers into 1 box, wherever you set the pan, there wouldn't be any
difference
in volume (loudness), and this becomes obvious when you listen to the
mix in
Mono, because the sum of left and right when panning a channel is
always equal.
this is not true for any other panning law than 6dB.
using 0 dB on the other hand, when you are all to the left or right,
the sum
will be 0dB, but when you pan to the middle it will become +6dB.
personally this
feels plain wrong to me (despite the math, just listening to it) and
makes me
insecure as to how much panning to apply, but it is really a matter of
taste
(and what you are used to; if you come from Logic, you'd probably be
much better
off choosing 0 dB). as said above, -3dB appears to be a good
compromise, but
whichever law you choose, your ears are the one and only final resort
to jugde
how 'punchy' you want your mix to be.
Goobers perfect summing bus. (simplified example)
Input from channel 1
Input from channel 2 =3
Input from channel 4 =1
Add inputs together...
Output= 14
Now, how could any data massaging algorhythm improve on this? All
integer summing
busses should sound exactly the same until ditherd.
The only problem is that the VST engine uses a 32bit float, meaning
that mixing large and
small numbers could cause smaller signals to be lost due to mantissa
priority confusion!
sorry but this needs explanation...
the nominal range of VST floating point is -1.0 to + 1.0.
any signal going in or out the VST system is converted to this range.
as 'external' signals are always integer currently, they are limited to
maximum numbers (both positive or negative). so whatever
the integer format (16 or 24 bit), the maximum and minimum values that
those bits can represent are + 1.0 and -1.0 expressed in floating point
terms.
in a 32 bit floating point value, this will cover the mantissa
of 24 bit, so it is always *at least* as precise as a 24 bit integer
value (so it is at least 'as good'). the exponent is always 0.
considering a signal of 0dB peak, this means the largest values will
be + 1.0 and - 1.0 resp. smaller signals will go down to -144 dB with
100% precision, because the mantissa is 24 bits large (also there
is a sign bit). going below -144 dB is also possible, where the
farther you go, the less precise will the numbers become; not that
this could ever have any impact, because a) there are currently and
commonly no converters to deal with more than 24 bits nor b) is there
any analog equipment that i know which can deal with dynamic ranges
of over 144 dB anyways.
only when you drive signals above 0dB will the exponent get
changed. in this case the unbeleiveable headroom of the IEEE floating
point mechanism becomes active. it works like a VCA: when
you exceed 0 dB, the control voltage will rise, where below 0dB it
will be constant (actually it changes to a negative 'voltage' when
you get below -144 dB). as with the lower numbers, at a certain point,
there is a loss of precision, but this is very small unless you go
crazy with your signals.
this gets us to
This is where a small number dissapears when added to a larger one as
the integer has too
few bits to hold both values.
I'm assuming they use a 24bit number with 7 bit mantissa and sign.
It would have to a fairly extreme situation for this to happen, and I'm
sure it could not be
audible, but who knows? Using a floating point number may give better
results for sperate
channels in theory, but could cause problems when many are added.
'extreme situation', you can say that. for a signal of -140 dB
to be masked, you would probably need some +140 dB on the other end.
not only will this never happen in anybodys' studio (unless a plug
goes mad

, but even if it happened would you not really be able
to hear that your -140 dB signal is gone, because your speaker mebrane
has arrived at the opposite wall meanwhile.
the bottom line of all of this is:
- first off we are dealing with numbers. we don't want any
colorizing so we 'only' need to be precise. maths can not be
cheated. if any digital system sounds 'better' or 'worse' than
another when playing back an unaltered signal and using the same
hardware, either there is some bug, or there is colorization
applied by intention.
- second, the nominal range of 32 bit floats is always 100% precise
within 144 dB (or 24 bits) (i think it's even 25 bits because we
have an extra sign bit but it's late and i'm too lazy to look it
up).
- third, there is an incredible headroom with floats as opposed to
integer values. there is loss of precision however when you exceed
the range of the mantissa (those 24 bits), but that only happens when
you exceed that range big time and even then, the change of the
numbers that result is in the range of 1 bit which is again inaudible.
and when you bring it all down again to the range that your converter
can handle, the 'imprecise bits' usually fall outside that range
anyways.
- fourth and finally, there may be problems when *converting* those
floating point numbers from and to integer numbers. we are currently
double-checking this so to make sure that when you render to file
(export audio), the outcome is exact. but even if we dumb programmers
create errors in this area would you not be able to tell the difference
(at least with 24 bit files), because again the error would be in the
range of 1 bit, which is measureable but no equipment can reproduce
it anyways. but yes, we certainly need to be 100% correct for your
convenience and we will.
that gets us to 'bus summing'. as somebody pointed out
earlier, this is in fact nothing but adding values; and this adding
operation is just as precise as your pocket (or scientific) calculator.
would you trust it?
BTW, Ksmith, did you hear about the test when the same tracks were
summed in a PT Rig
and the Oxford? The results could be put out of phase giving zero.
[
http://www.virtualstudio.org/VS_AUTO_DI ... -02-15/117 ]http://
www.virtualstudio.org/VS_AUTO_DIGEST/00-02-15/117
I think both PT and the sony use integer busses though.
Either they both use the same 'summing bus' or we are all caught up in
some invented
problem.
possibly
in theory, you should not overdrive the channels more than +6dB and of
course
keep your master at 0 dB. this puts you on the 'mathematically prooven
exact
side of the fence', so to speak. in practice, even if you drive many
channels
much into the red, it doesn't make for more than an inaudible (albeit
possibly
measureable) difference.
actually, floats behave a bit like analog equipment: if you overdrive
it,
it does something on its own. but for what a float does then to become
perceivable, you would have to write a plug which drives your signal up
a few hundred dB's....certainly more than your analog tape recorder
at +6dB, which is clearly audible.
charlie