32bit floating point import issue

This section is now closed.
Forum rules
Audacity 1.2.x is now obsolete. Please use the current Audacity 2.1.x version.
Cyrosis
Posts: 4
Joined: Sat Jul 26, 2008 3:11 pm
Operating System: Please select

32bit floating point import issue

Post by Cyrosis » Sat Jul 26, 2008 3:22 pm

It appears when importing 32bit floating point files into any version of Audacity, it cuts off any signal over 0db. This is a pretty major issue for me, and has forced me to use other software for a few projects, even though I find some of Audacity's simpler features much better. Is this a known issue? Any chance on a fix, or possible a setting I have overlooked?

Thanks for any feedback.

kozikowski
Forum Staff
Posts: 69384
Joined: Thu Aug 02, 2007 5:57 pm
Operating System: macOS 10.13 High Sierra

Re: 32bit floating point import issue

Post by kozikowski » Sat Jul 26, 2008 5:36 pm

We must be misunderstanding the question. There are no digital signals over 0dB. Audacity's "zero" is really 0dBFS in the ditgital world. Zero Decibels Full Scale. There is no more up from here.

There are certainly digital signals over analog zero VU and there are tricks to getting between the two.

So please tell us exactly what you're doing. I record from an analog mixing desk into Audacity all the time with great success.

Koz

Cyrosis
Posts: 4
Joined: Sat Jul 26, 2008 3:11 pm
Operating System: Please select

Re: 32bit floating point import issue

Post by Cyrosis » Sat Jul 26, 2008 7:13 pm

32bit floating point does indeed allow audio above 0, far above 0 in fact. All of the other audio editors I use support this, Wavosaur, another freeware editor does as well. If you want an example, download http://www.wavosaur.com/, and the zip file here http://www.acoustics.net/ir/ir_samp.asp?ir_id=142, import any of those files, and you will clearly see them far beyond 0 (about 60db above, though Wavosaur doesn't support metering beyond 0), and horribly clipped, but normalizing the files will bring all the data above 0 back down to a listenable range. Try the same thing in Audacity, and it will simply remove all of the data.

I started a large project of converting a huge number of impulse responses and planned to use Audacity to join the mono files to stereo, but then I realized it was clipping them improperly.

steve
Site Admin
Posts: 81649
Joined: Sat Dec 01, 2007 11:43 am
Operating System: Linux *buntu

Re: 32bit floating point import issue

Post by steve » Sat Jul 26, 2008 7:22 pm

I think that technically 32 bit float can go above 0dB because of exponent biasing, but they shouldn't.
If you play a sound that goes over 0dB it will almost certainly distort. Digital audio is only required to produce audio up to 0dB as this represent "full scale". Audio can not be recorded above full scale, but manipulation of the digital data can produce numbers above what would be 0dB (however doing so reduces the precision).

32bit audio uses a format very much like 24bit (23 bits + sign bit) except that it has an additional 8 bit exponent that gives it floating point precisions, so the actual full scale range is the same as 24 bit, but with greater precision.

With 32 bit float it is possible to represent plus or minus infinity, but for an audio signal this would obviously not be a good idea.

The dynamic range of 32bit float, audio is well beyond the capabilities of sound cards, microphones, or any other audio equipment you may have without trying to go above 0dB.

You have not said why this is an issue. If you have some 32bit float format files that go above 0dB, normalise them to 0dB with your other program before you import them into Audacity.

EDIT:
You posted while I was typing :)
I started a large project of converting a huge number of impulse responses and planned to use Audacity to join the mono files to stereo, but then I realized it was clipping them improperly.
If Wavosaur supports these files, use it to normalize them to 0dB. You will not loose any quality above what has already been lost by going over 0dB. Can you do this as a batch process in Wavosaur?
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)

Cyrosis
Posts: 4
Joined: Sat Jul 26, 2008 3:11 pm
Operating System: Please select

Re: 32bit floating point import issue

Post by Cyrosis » Sat Jul 26, 2008 8:05 pm

I have been using Wavosaur to do just that, so it's not a show stopper by any means, but I do much prefer the basic work flow of Audacity, and would quicker to do everything all in one editor, I think it would be a good thing to be in Audacity, as its standard fare in other editors. As far as batch, that's the place where I run into bigger problems with this project, the files are headerless PCM, so the only real way to batch the files is to first identify them one by one and save them as wav. Regardless, I have been making do, but having to use a few different apps to do it. ;)

mkoijn9
Posts: 2
Joined: Sun Jul 27, 2008 4:27 pm
Operating System: Please select

Re: 32bit floating point import issue

Post by mkoijn9 » Sun Jul 27, 2008 4:38 pm

Hi Cyrosos,

That's a coincidence, because just last night I discovered the very same thing as you, importing impulse responses into Audacity with the idea of normalising them and editing them, I discovered that any values in a signal greater than 1.0 are set to 1.0 in Audacity. I thought that was the whole idea about floating point was that if you do overload, you don't lose the peaks, however, Audacity chops off any floating point values greater than 1.0 I agree that this should really be changed.

Regards

Albert

kozikowski
Forum Staff
Posts: 69384
Joined: Thu Aug 02, 2007 5:57 pm
Operating System: macOS 10.13 High Sierra

Re: 32bit floating point import issue

Post by kozikowski » Mon Jul 28, 2008 1:00 am

<<<I thought that was the whole idea about floating point was that if you do overload, you don't lose the peaks,>>>

Certainly not. The whole idea is to make the entire rest of the audio response curve enormously more accurate. Somebody posted a demonstration where they reduced a show level by some 40dB or 50 dB and then amplified it back up to normal. In 16 bit, the signal had all kinds of digital errors, grittiness, and distortion, whereas the 32-bit floating signal was all but untouched. Special effects and production below digital zero benefits a great deal from 32-bit floating.

This is literally the first time I've encountered the "over zero" thing. Fine as long as you never need to leave the land of 32-bit. Broadcast gets around this by making the nominal show level -20dBFS. Plenty of room for effects and transients and still have a 60dB noise floor. Actually, noise floor is sixty, what, eight?

Koz

mkoijn9
Posts: 2
Joined: Sun Jul 27, 2008 4:27 pm
Operating System: Please select

Re: 32bit floating point import issue

Post by mkoijn9 » Mon Jul 28, 2008 9:50 am

Yes you're right kozikowski . but still, 32 bit float can accomodate an overloaded signal, it seems senseless to set any values above 1.0 to 1.0

steve
Site Admin
Posts: 81649
Joined: Sat Dec 01, 2007 11:43 am
Operating System: Linux *buntu

Re: 32bit floating point import issue

Post by steve » Mon Jul 28, 2008 12:02 pm

If Audacity did not do that it would create inconsistencies as Nyquist truncates samples to 0dB. You would then have a lot of confusion with "my audio is fine and not clipped, but every time I apply an effect it ends up horribly distorted".
I don't know if there are any other technicals issues concerning this, but it's quite possible that there are.

As koz said, 32bit float offeres enormouse accuracy, but starts to loose this benefit above 0dB, so keeping below full scale give the best accuracy, fidelity, SNR and avoids clipping problems.
9/10 questions are answered in the FREQUENTLY ASKED QUESTIONS (FAQ)

Cyrosis
Posts: 4
Joined: Sat Jul 26, 2008 3:11 pm
Operating System: Please select

Re: 32bit floating point import issue

Post by Cyrosis » Mon Jul 28, 2008 4:44 pm

If there are indeed negatives in audio quality over 0db in 32bit float files, I find it quite strange that Waves engineers have seemingly done it on purpose here, and also Tascam, within their convolution reverb, there must be something more to it. :?:

Stranger still, is that both examples are impulse responses, along with a possible third IR source from mkoijn9 peaking over 0db.

Locked