Hacker News new | ask | show | jobs
by PaulDavisThe1st 26 days ago
Have you ever actually checked the number of actual bits your ADC can use? Most 24 bit converters struggle to get to 18 bits.

Nobody uses 32 bit float for recording (to do so is just to capture at least 10 bits of noise, most of that being brownian); its strictly a format for mixing and processing. You don't get any more resolution from 32 bit floating point than you do from 24 bit integer formats, but the result of "clipping" is less dramatic, hence the appeal of the format.

While there is some evidence that non-auditory human sensory perception may be sensitive to ultrasonic acoustic waves, it's pretty weak right now, and somewhat in the "woo" zone. It may turn out to be significant, or it may not. I wouldn't base an audio production workflow that requires 4x the cpu power and 4x the disk space on such tentative claims, but you're welcome to.

4 comments

> Nobody uses 32 bit float for recording

Yes they do, almost all high end field recorders used for film work are 32-bits now and have been for much of the last decade, often with some fancy preamp integration so that there is no expertise required for gain staging the recording. (I believe the implementations use a second matched 24bit ADC with 48 dB less gain in front of it).

The result obviously doesn't have a noise floor which is lower (as the noise of a room temperature _resistor_ gets in the way of that even at the 24-bit level) but they have more dynamic range so that your recording isn't ruined by hard clipping some unexpected loud sound.

It's a big improvement for practical usage, and also likely does improve SNR somewhat because you can run higher gains without as much fear that you'll ruin the recording. The reason it would pay off is that the SNR loss you get from splitting the signal is easily smaller than the SNR loss you would get from gain reduction to avoid clipping.

(maybe... capsule self noise is also limiting... at these levels, and usually people aren't using microphones designed for the lowest possible self noise unless they're doing something special)

There are precisely zero 32 bit ADCs in existence.

There are ADCs that will provide 32 bits per sample but that's entirely different.

Current technology limits the bit depth to 18-22 bits and going beyond that you'd be very quickly recording brownian (atomic) noise anyway.

The point about 32 bit float is that it is a useful format for mixing, editing and general processing, so it is widely used in digital audio tools. But it is not a format that ADCs generate "natively" via their electronics - almost all of them are generate a 24 bit integer or fixed point value and then just supplying that as a 32 bit float value because the software asked for it (the software could have done it all by itself.

[EDITED: DAC->ADC since that is what I meant and what this is all about]

The ADCs that do direct sampling of the input signal (i.e. by successive approximation or by the pipelined algorithm) become very expensive at high resolutions and they are limited to 18 bits per sample or at most 20 bits per sample.

Due to their high cost such ADCs have no longer been used in audio for many decades. They may still be encountered in some expensive measurement instruments that need high resolutions at significantly higher sampling frequencies than needed for audio.

All audio ADCs have a very low resolution per sample, e.g. 4 bits or even lower, but they sample at a very high frequency, of many MHz. Then the bit stream is digitally processed to generate whatever format is desired for output, at a lower sampling frequency and a higher resolution, e.g. 24 bits @ 192 kHz.

There is a difference between the actual resolution at the output and the effective resolution, which is limited by noise, e.g. the 24 bit samples may have an effective resolution of 20 bits or 21 bits or 23 bits, etc., i.e. they contain noise with an amplitude corresponding to those effective resolutions.

The digital algorithm that converts the low resolution input samples (e.g. 4 bits @ 5 MHz) inside the ADC can easily be modified to generate a different numeric output format, e.g. FP32.

Neither FP32 nor 24-bit is the native format of the A/D conversion. If the ADC outputs FP32, that is even more convenient for further audio processing. Obviously, the quality of the ADC is independent of whether it outputs FP32, and the FP32 samples will have a different effective resolution on each ADC, which seldom would be as high as 24 bits, due to the noise.

> There are precisely zero 32 bit ADCs in existence.

> There are ADCs that will provide 32 bits per sample but that's entirely different.

Now that requires elaboration.

There is e.g. AD's LTC2500 (https://www.analog.com/en/products/ltc2500-32.html). Not meant for audio (too slow at 32b) and not noise free, but it's a bona-fide 32b ADC.

Now there might be no ADC which provides 32b wide noise-free samples at sample rates needed for audio and given the absurdly low level of a LSB signal that might be as infeasible as it would be pointless, but that's a bit of a different statement.

I didn't say anything about DACs! I'm correcting a specific claim you made

> Nobody uses 32 bit float for recording (to do so is just to capture at least 10 bits of noise, most of that being brownian);

This is not true and not true for a good and important reason! One which has no bearing on the kind of DACs that exist.

Modern field recorders allow gains set a 'reasonable' level that maximizes SNR for recordings but still won't clip when there are much louder peaks. Not so dissimilar to how a 6-digit multimeter can achieve its advertised performance both on a 0-5v range and a 0-300v range but cannot give more than 6 digits at the higher range.

When I said "nobody uses 32 bit float for recording", I am referring to the result of the DA process that generates samples values used by a recorder.

Obviously, everyone and their mother uses 32 bit float as an internal sample format because of its fitness for purpose (except the folks who think they need 64 or 80 bit floating point, of course). But they are not using "32 bit floating point samples" - the samples come from an (at best) 18-22 bit integer conversion.

Rode NT1-A 5th gen microphone claims 32-bit float output, insisting it will not clip peaks

so maybe they do sample at 24 bit at a well chosen gain level and then convert to 32 bit float, with the max 24 bit value being above 1.0 float

or as GP said, use two separate ADCs at two different gains and combine their output

> Rode NT1-A 5th gen microphone claims 32-bit float output, insisting it will not clip peaks

Of course it does! And that's what it does, of course. But that has absolutely nothing to do with the AD process itself, which is chip-limited to 24 bits and likely physics-limited to somewhat less than that.

You can't beat the physical limit of a DA circuit by doubling them up at different gains.

And .. you don't want to. Going beyond 22 bits gets you into brownian noise pretty quickly, which is completely pointless.

The best you can do (or could do) is get a very, very, very good DA that can really do 22 bits (likely not commercially available because of the expense), and then get the samples from it in whatever format works best for your purpose (24 bit integer, some fixed point value, or 32 bit floating point).

you have 22 bits for the typical audio voltage level, which you call 1.0 float

but what if you "allow" double that voltage and call it 2.0 float? a strong pressure into the microphone generates a stronger voltage

thermal noise limits you on the quiet signals, but not on the powerfull ones

so 22 bit for typical -1.0 -> 1.0 range and you can add a few more bits on top of that for stronger audio pressures (voltages) which you would traditionally clip

Sorry, but this not how AD works. If your idea was valid, we'd have new generations of ADCs in our hands.
> use two separate ADCs at two different gains and combine their output

That's what could be done if ADCs were perfectly linear and noise free and limited only by their bit-width. Sadly, they are not. The non-linearity one can in theory measure and correct for, but the noise can be corrected for only by oversampling. And then you might as well use a single ADC of lesser bit width and higher sampling rate.

I feel like you’re arguing against a straw man.

No one is arguing that there are practical audio microphones + ADCs that produce accurate, undistorted 32-bit float output across the full representable range. But they don’t need to! For professional use, the ability to produce perceptually accurate output, with inaudible noise, across a very wide dynamic range, is extremely useful. Think of it as fancy, real-time AGC. It does not need to be perfect. If you can record a loud transient without substantial distortion, and also record sounds with 2^16-fold lower amplitude (~96dB lower) while still remaining well above the noise floor immediately after the transient is gone, this ability is useful. Plenty of real-world noises are well above 120dB, and plenty of human-audible sounds are below 20dB. You can’t play back the recording, at least not without making parts inaudible or injuring your audience, but you can edit it. And a setup like this lets you do it with one microphone and no fiddling with gains in advance.

One cannot create a noise-free, perfectly linear 32b ADC using 2 lesser ADCs as described above. That is however not needed and I suspect isn't what they are attempting.

If, say, two 24b ADC (20b noise free, non-linearity 2LSB) with one receiving the input signal with an approximate 10bit higher gain (+60dB) and one would combine their outputs with that 10b shift (and ignoring the input of the low gain path, if the signal falls below a given threshold to reduce the noise contribution of that ADC and the input of the high gain path if the signal exceeds another threshold in order to avoid clipping), then one could construct a 32b float.

This doesn't improve resolution (which arguably would be pointless) or linearity (not all that critical in audio methinks) but dynamic range, which I can see some appeal of (in extreme recording situations, say you'd want to record the breathing of a shooter followed by the gun shot -- there remains the challenge of finding a microphone capable of a 120dB range, but perhaps one could use two different ones ...).

Why are you obsessed with DAC? Its the ADC that is WHY we capture 32/192.
If I said DAC, it was a mistyping. I am (in this context) always talking about the ADC.
Note to readers, this commentary brought to you by a code writer for Ardour. Unfortunately I was unable to view any of the about information for that program, because it crashed immediately.
"Nobody uses 32 bit float for recording" - you are just displaying total ignorance here.
My comment should have been more emphatic that: nobody uses AD converters that generate 32 bit floating point values natively when recording, or anywhere close to the resolution that format implies.

I am extremely aware that as a data format in DAWs and other recorders, 32 bit floating point is completely common.

While the best that ADCs can provide is linear 24-bit audio samples, the following audio processing is better done after converting the samples to FP32, and keeping this format until the final 16-bit encoded audio suitable for listening is generated.

For the same reason, video processing is preferably done on FP16 samples of the color components even if both the input ADCs and the output video signal may use only 10-bit or 12-bit per sample, at most.

Moreover, most high-resolution audio ADCs do not really sample the input audio at a 24-bit resolution, but they use only a sigma-delta method where the actual samples have only a few bits, possibly only even 1 bit.

Then DSP techniques are used to convert the audio stream with a high sampling frequency and a low resolution per sample into an audio stream with a low sampling frequency and a high resolution per sample, which is the external output of the ADC.

If you had access to the raw audio bit stream as actually captured by the ADC, you could modify the decimation algorithm to really output FP32 samples, though no existent ADC could actually have a so high dynamic range (except if the output bandwidth would be reduced a lot, to filter the input noise).

> the following audio processing is better done after converting the samples to FP32

Or, in some cases, FP64.

Dude I've been doing sound design on films using these techniques for years. There is zero 'woo' involved, it is ALL practical evidence based use. I've been using 32bit float multitrack field recorder by Sound Devices MixPre10-II professionally for many years now. The recorder has three preamps per mic input, each gain staged to provide optimum signal to the 32bit float AD. Read this to clarify your thinking: https://www.sounddevices.com/32-bit-float-files-explained/

Surely you understand a recording made at 48kHz has a max freq response of 24kHz and played at half speed that max freq is 12kHz and at quarter speed only 6kHz. You can very clearly hear the filter cut off due to Nyquist. Record at 192kHz with mics capable of 100kHz capture and when played at quarter speed, the sound is full spectrum because there is no truncated frequency response. And when I load a 192kHz recording to izotope RX I can literallu see the harmonics going up to 96kHz. (not with every sound of course)

I repeat, i am not talking about 'normal' listening. I am talking about an industruy you have no knowledge or lived experience with, so spare me the incorrect claims about what can & cant be heard.

> I am talking about an industruy you have no knowledge or lived experience with

I'm the original/lead developer of Ardour, a cross-platform DAW, and have been working with digital audio for more than 25 years.

There are no 32 bit ADCs - your SD MixPre's are giving you (at best) 22 bits packaged as a 32 bit float value. The preamps make absolutely zero difference to the AD conversion (though they might sound real nice).

> Surely you understand a recording made at 48kHz has a max freq response of 24kHz and played at half speed that max freq is 12kHz

This is a very naive version of what "played at half speed" might actually mean. If properly and correctly resampled, this is not true.

> And when I load a 192kHz recording to izotope RX I can literallu see the harmonics going up to 96kHz

Well, I'd certainly hope so! But the question is: what are the energy levels associated with the partials above Nyquist? If you recorded at 384kHz with sensitive enough equipment, you'd see partials above 96kHz - but at extremely low energies because ... well, that's just how physics works.

[EDITED to remove AD/DA confusion]

I do not use the DACs in the MixPre. Its a recording device. The field recordings & studio recordings are transferred as data and used in a 32bit float 192kHz Protools session. So the recorders DAC is completely irrelevant. The sounds are then used as source material, for processing and manipulation at 192k, 96k and 48k. There is no debate to be had. This is how film sound designers work & have worked for years now.

The half speed you call naive is again just showing your ignorance. Sound editors have been using this technique since the days of recording on a Nagra at 15ips and literally replaying at 7.5ips half speed, and at 3.75ips for quarter speed. There is nothing naive about it, it is a very well know technique. To be able to achieve the same result digitally with full spectrum has impacted every feature film you have experienced in recent years. Again I speak from decades of lived experience.

Running tape at half speed has almost nothing to do with digital resampling, which is what playing digital audio at half speed is generally all about.

My use of DAC was a thinko, I've edited at least post to correct it since in the current context we're always talking about ADC. Apologies for that.

Wrong again. As a sound designer I can choose to import a 192kHz file into a 48kHz PT session in two ways, one as resampled audio which means pitch & duration stay the same, OR I can choose to import it without SR conversion, in which case the audio plays at quarter speed & pitch is 2 octaves lower. We use both techniques ALL the time, every day. It's a common technique every sound designer uses.

You are arguing about techniques you have no experience with.

I wrote a DAW that does precisely what you describe. I've been doing it for 25 years.