Hacker News new | ask | show | jobs
by nok22kon 30 days ago
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

2 comments

> 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.
> In a 32-bit float recorder, you have two ADCs working in tandem to create a single audio file. One “low gain” ADC is optimized for high-level audio, and the other “high gain” ADC is optimized for low-level audio. If the high gain ADC clips due to loud sounds, the low gain ADC does not. And if sounds are too quiet for the low gain ADC to capture clearly above its noise floor, the high gain ADC still has plenty of headroom above its noise floor. Said another way, the low-level ADC handles the quieter sections, and the high-level ADC handles loud sections.

https://tascam.jp/int/feature/32-bit_float

The first diagram in that article is pretty ironic in an HN comment thread about Monty @ Xiph's stuff. Have you never seen his takedown of the "stairstep" drawing?
I have seen it.

This is a marketing page after all, explaining point-wise samples, reconstruction filters and "staircases" is way beyond scope.

Same as in images, pixels are not "little squares"

It's discontinuous.

You have some low noise amplifier. There is a signal. You split it. The result on each side has >=1 bit worse noise floor, probably somewhat worse as we're not using superconductors :P-- as you expect: there is no free lunch.

Now: take one copy and attenuate it 48dB, further degrading its noise floor. Sample both. The attenuated copy is mostly useless, except when the input goes high enough that it would have hard clipped the other ADC.

So the tradeoff is that you lose a small amount of noise floor constantly-- out at the 20th bit, that you probably didn't care about (microphone self-noise is limiting you out there anyways at normal volume levels), in exchange for never clipping.

To turn this into a better ADC generally, you'd need the splitting stage to not hurt the noise floor, but it does.

The reason it's not the same as just lowering the gain so that you won't ever clip is that to get the same dynamic range you'd have to lower it by 48dB and now your ADC doesn't achieve its potential for typical signals. You could lower the gain by 3dB (or whatever the splitting cost you) and get the same results for the low gain signal and a little more headroom, but you would not get the massive headroom increase of this approach.

For this to work one must also have amplifiers with much wider dynamic range and SNR than ADCs, but we do.

The natural output for this approach is a float-- the most natural would be a weird float where instead of an exponent one bit tells you which ADC is in use and represents a factor of 256 or whatever, but in practice these recorders just output 32-bit floats. I haven't looked but I wouldn't be surprised if there were only two exponent values ever used in their output.

> So the tradeoff is that you lose a small amount of noise floor constantly-- out at the 20th bit

So, basically, no better than the best AD converters we already have?

My understanding of the fundamental limit to AD performance is that the brownian noise level is around the 22nd bit level. So even if you come up with techniques to successfully measure down to that level, you're basically picking up .. inevitable, irremovable, irrelevant noise.

Possibly there are gains to be made by not worrying about the noise floor and caring more about the lack of clipping, but I'm not seeing people screaming about that. The "noise" seems to be "N bits of dynamic range", not "slightly less dynamic range but it will never clip!"

Yeah people describe the benefits incompletely/inaccurately. This approach has a worse theoretical SNR, but an effect that improves the delivered SNR in real usage: Without the clipping protection the user would massively lower the gain, hurting the SNR.

A common experience for someone doing field recording of performers (my experience is music) is you twiddle your setup to get the gains reasonably high to get good SNR even for quiet parts. ... and then you record the actual performance, and you find that the tuba player really got into it for the real performance and the new peaks are 10dB over where they were in the practice. And now your recording is screwed up with a bunch of hard clipping you have to deal with. So then experience tells you in the future to take whatever you thought was safe and lower gains another dozen db.

The multi-ranged recorders eliminate that problem and the result is that you don't need to use precautionary gains, and you get a better SNR in your recordings. You probably don't need to adjust gains at all: The gain can be whatever makes the self-noise of the microphone dominate the SNR of the process, ... which would be too high for the loudest samples, but the clipping handling deals with that.

The samples that need to use the extended range have worse SNR (and probably poor linearity due to mismatches between the converters), but human hearing is much less critical to noise with loud signals anyways.

> 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 ...).