Propellerhead Forum Support for 32 bit float audio export (see article inside)

 Thread Tools Display Modes
#1
2005-03-17, 07:11
 anthro94 Join Date: May 2001 Posts: 8
Support for 32 bit float audio export (see article inside)

I found this article in the Steinberg Knolidge Base. Exporting files in 32 bit float format seems like the way to go. Scroll to the bottom of the article to find out why.

32 bit floating point files

What is 32-bit mode? What is a floating-point number?

Warning, this complicated stuff. I will try and answer and try and do justice to those who understand the technical background, and say what it means to everyone.

To start with I have to clear up a misunderstanding. Cubase's internal audio paths are all native-floating-point paths. That means that we use the floating-point type supported by our compiler and your platform combination.

But what are floating-point numbers?
Floating point number are just one of many possible way to represent a value with a small chunk of memory in your computer, or a section of your disk drive. Simple but there are two types: Integer numbers and floating-point types.

Floating-point numbers differ from Integer numbers in that they can scale themselves internally to be able to represent very big and very small numbers without losing significant detail. The other kind, integers have a fixed finite range: a 16-bit integer can represent 65535 different discrete values. A 24-bit number can represent 16777216 different discrete values. And a 32-bit INTEGER number can represent 4294967296 different discrete values. Sounds great but all these integer number have the same disadvantage that as the number they try and represent get smaller, the number of bits that the number uses to represent itself, falls. Therefore the SIGNIFICANT ERROR in representing a small analogue sample increases as the number gets smaller as the number can only be 1, 2, 3 .... n. There is no 1 and bit, just a bit less than 2 etc.

Floating-point numbers offer exactly that: A number with a decimal point where the point can move, A number can be represented as fractional parts. That is the number can be 1.00001, or 2.55555, or 95522041.1456, it doesn't matter. Internally inside a 32 bit floating point number 24 bits are just to represent the number required between 0.0000000 and 0.999999, and the remaining 8 bits are used to scale the number to the right range. (a gross simplification!) If you ever did maths where numbers were represented as...

2.3 * 10^3
4.4589 * 10^-4 (sorry that does not work well in text)

... then you will see an analogy here.

So a floating-point number has the capacity to represent HUGE numbers and maintain accuracy with very small numbers.

Cubase VST uses a nominal operating level inside this floating point range, such that there is a more than sufficient accuracy to represent the finest detail BUT still have a massive head room. (Someone once calculated 1500 dB headroom - but I think that gives false impression)

The massive headroom is what enables you to pile on tracks, and lower the master fader when the summed signal cannot be represented anymore by the INTEGER bits of your sound card. Lowering the master fader is changing the scaling value as the floating point values are converted to integer bits for the audio card. The advantage is that you can pile on the tracks and if the FINAL output clips you can just turn down the master fader, and not be forced to reduce each fader in tern until the clipping at the output disappears.

The accuracy at lower levels is why you don't need to really worry about optimising auxiliary-send levels etc. With analogue equipment it would potentially lead to noise build up, with VST is not really critical.

So to sum up a 32 bit floating point representation for audio can define very small signals, and is practically OVERLOAD proof.

Cubase actually uses many more bits when working on the calculation within the main processor: where 80 or 96 bits (or 151 bits on a PowerPC!) of information represent the result of adding or multiplying a series of floating point numbers.

But what's new in Cubase VST/32 is that Audio files can exist in 32-bit point format! A 32-bit floating-point file has all the characteristics of a 32 number in memory. It maintains accuracy a when representing very small numbers, but has a huge headroom over the nominal operating level.

The question everyone asks is, "what has that to do with recording audio when my sound card is only 16/24 bits?" It is sure that recording 16 or 24 bit data into a 32-bit file gains nothing, at first sight, it can't MAKE more accuracy for example.

But the advantages lie elsewhere.

Consider the action of exporting your song. In previous Cubase versions and anyone else's 16/24 bit application for that matter, as soon as you leave the VST floating point world and make a decision to set the conversion to integer numbers (the master fader) and pack the result into a file. Get it wrong and the file is clipped or not using the full range of values, increasing distortion. With a floating point export file you are exporting without having to make a decision about the level of the conversion to integer numbers. That means either you can further process the file in you favourite mastering package, or make the final level matching of multiple tracks etc, without first having squeezed your music through a thoroughly unnecessary quality reduction stage.

Consider the action making a MIXDOWN, because it's obviously related to exporting audio. The main reason from mixing down is that the computer cannot cope with the tracks and synths you want to run simultaneously. While performing this mixdown you have to choose a conversion level so the mixed file doesn't clip. Too low and you introduce quantising artefacts. But mixing down to a floating-point file means it's practically irrelevant. Just Do it. You loose FAR less than when mixing to integer file and you can't clip them. As a side line subjectively speaking apart from the removal of the clipping issue, the main thing is that they just sound damn good. - Wonderful dynamics. I'll stop there before someone accuses me of trying to sell this to you.

Now on to a new recording mode that comes with the VST/32: TrueTape. This is a part of the concept, as a process is sits precisely at the point where the 24/16 bit signal is converted into the internal VST BIG floating point number. It is generating MORE detail, than the original signal contained. That sounds impossible and it is of course, TrueTape models the transfer process of a analogue tape recorder, and as it is a process, it generates data direct in the floating point world that is more detailed than the original signal. But of course yes it has a sound! - Because that what is supposed to do. So if you are interested in the TrueTape process, it's a very good reason to record as 32 bit float files.

David Nicholson
Cubase Project Manager
Steinberg Media Technologies 2000