Why is 16 to 24 bit no big deal - no popups for conversion?

Audio Plugin Hosts and other audio software applications discussion
RELATED
PRODUCTS

Post

Hi

Just noted that as soon as there is sample rate conversion on something you import - you get a popup dialog to confirm usually. This in a range of daws.

Why is there never something about importing a 16 bit file into 24 bit project?

How is that handled and what kind of artifacts can you expect doing that?

24-bit is 256 times more step levels than 16-bit, and how exactly is this converted?
So you can multiply every sample by 256 - but what happends then when you mix this and apply dither on bit reduction to 16 again later????

When doing 24 to 16 bit there is always dither and stuff to consider, and nothing ever pops up regarding 16 to 24 bit.

Just puzzled over this.

Is there basically just one way to do 16->24 conversion?
Is there interpolation then, or how do you make +/- 32000 steps into 8 miljon steps?

Would be interesting to know.

Apart from own old projects started as 16-bit, I record soundtracks from DVD over spdif which are 16 bit usually and thinking if I really should make 16 bit projects all the way.

Thanks for any input or links to readup on this.
Best regards

Post

Bit depth conversion is fundamentally different than sample rate conversion. Only SRC has interpolation going on. BDC is more about applying a "finer grid" on the amplitude values themselves. It doesn't really change anything when you go from 16 to 24-bit, because a 16-bit value is not lost then and CAN be represented with 24 bits perfectly as it was. However, if you go from 16 bits to 12 or 8, then you lose some precision in amplitude.


Conversion is easy and is a matter of scaling. So with 16 bits, you have −32768 to +32767 values for amplitude. When you convert that to 24 bits, that just means that -32768 goes to -524288, and other values are scaled appropriately.

Post

I guess there is no popup dialog because the DAW is keeping it as 16bit file and process it at higher bitrate. However samplerate conversion is best to do when importing to get best quality.
Last edited by sonicpowa on Wed Jul 26, 2017 5:20 pm, edited 1 time in total.

Post

lfm wrote:Is there basically just one way to do 16->24 conversion?
Is there interpolation then, or how do you make +/- 32000 steps into 8 miljon steps?
The original sample makes up the most significant bits of the 24bit word, with the lowest 8 bits set to zero.

Post

Ok, thanks guys.

So you shift 16-bit stuff left 8 position, and get silly big 256 steps in 24-bit for each step in 16-bit.
No interpolation or something with a curve from one level to the next.

At least when recording from dvd as spdif, I think I will stay with projects as 16-bit storage so no bit depth reduction or dither then at mixdown. Levels are often not so matched, so a limiter is usually needed. I dare not think what I did to some recordings, moving 16-bit to 24-bit project and then dither at mixdown.

Old projects are usually one instrument each file, so less complicated frequency content most of the time. At least compared to a full mix. I usually re-record everything eventually before done, so just a starting point these old stuff from portastudio days.

Post

lfm wrote:So you shift 16-bit stuff left 8 position, and get silly big 256 steps in 24-bit for each step in 16-bit.
No interpolation or something with a curve from one level to the next.
Those 'silly big steps' are at something like -96dB.

In any case, what is it going to interpolate between? Adjacent samples with bigger steps?

I hate to have to break it to you, but your DAW is silently converting all that audio data to 32bit floats without you knowing while it's working on them. If it's Pro Tools, they might even be 64bit. Dun, dun, dun.

Post

PT used to use integer mixing internally, not FP. I think they have an option to do either, now. Reaper is even more flexible in that regard:

Image

Post

EvilDragon wrote:PT used to use integer mixing internally, not FP. I think they have an option to do either, now.
PT moved to 64bit floats around version 11. Native was 32bit floats but HD was 48bit fixed-point because of the DSPs they used in their hardware. HDX then moved to floating point. There are lots of HD cards out there, so it's all a bit "it depends".

I didn't realise Reaper had the option to select mixing resolution though. 16bit for that oldskool bit-glitter charm.

Post

Gamma-UT wrote:
lfm wrote:So you shift 16-bit stuff left 8 position, and get silly big 256 steps in 24-bit for each step in 16-bit.
No interpolation or something with a curve from one level to the next.
Those 'silly big steps' are at something like -96dB.

In any case, what is it going to interpolate between? Adjacent samples with bigger steps?

I hate to have to break it to you, but your DAW is silently converting all that audio data to 32bit floats without you knowing while it's working on them. If it's Pro Tools, they might even be 64bit. Dun, dun, dun.
You are right obviously, it just feels so horrible. ;)
And worst is dithered stuff I did that is empty in the area just adding noise.

I was thinking, or not, that some kind of bezier curve could be used to approximate what is happening between each sample. Also creating something on level 128 with that, upsampling and then downsampling again. But maybe that add more artifacts than we want to.

Post

"Between each sample" does NOT apply to bit depth conversion. I thought we've covered that.

Post

lfm wrote:I was thinking, or not, that some kind of bezier curve could be used to approximate what is happening between each sample. Also creating something on level 128 with that, upsampling and then downsampling again. But maybe that add more artifacts than we want to.
I get the impression you're confusing sample rate with sample depth. You have the same number of samples, the digits are just sitting in a bigger box. The reconstruction filter on the audio output will behave the same way whether it's presented with 16bit streams or 16bit values conveyed in a 24bit box.

Post

EvilDragon wrote:"Between each sample" does NOT apply to bit depth conversion. I thought we've covered that.
If you upsample 8 times, you can put 8 spots to interpolate. And that in turn could when downsampling again decide which level is the most accurate as 24-bit.

Once bit reduction on this material to 16-bit , if not recorded as 16-bit, this was truncated once before from any level withing a 256 step range.

That was part of my reasoning, anyway.

Since rise time of a waveform express frequency content therein, it might be all wrong though - you add more artifacts.

Or are there some high end converters that do this kind of operation?

When reducing bitdepth, you apply dither to introduce some randomness to which level each 16-bit sample gets. Out brain is really good at finding patterns - so you apply randomness to what same level get as 16-bit. 24bit to 16-bit make every 256 steps one step.

Can this be restored with high end math maybe?

We know that certain rise time of a sample will contain frequency content above normal hearing - so this could be removed and sample level adjusted so this does not occur.

Post

lfm wrote:
EvilDragon wrote:"Between each sample" does NOT apply to bit depth conversion. I thought we've covered that.
If you upsample 8 times, you can put 8 spots to interpolate. And that in turn could when downsampling again decide which level is the most accurate as 24-bit.
Interpolate between what? There's only one value per sample.
my other modular synth is a bugbrand

Post

I think I see where lfm is going with this: that there is some 'right' value for each sample that, after the dithering and truncation process, is lost but might be recoverable on restoration to 24bit or higher. The reality is, unless you are dealing with a highly predictable signal or make heroic assumptions about it, no algorithm is going to be able to recover that missing data.

You do no (further) damage by just filling in with zeroes - because that has no audible effect whatsoever. OTOH, interpolation runs the risk of doing the same as bad dither, where you get artificial periodic signals appearing just above the noise floor.

Post

whyterabbyt wrote:
lfm wrote:
EvilDragon wrote:"Between each sample" does NOT apply to bit depth conversion. I thought we've covered that.
If you upsample 8 times, you can put 8 spots to interpolate. And that in turn could when downsampling again decide which level is the most accurate as 24-bit.
Interpolate between what? There's only one value per sample.
If you upsample 8 times - you got 8 values that could get a different value.
When you look ahead maybe many samples until the next high or something, you can figure out what might be the better level of each 24-bit sample.
So you always got a previous sample and a next sample - each 8 samples - 24 samples to make approximation between.

Then some kind of average or so on those 8 samples from the original - might create a better approximation than just picking 256 x orignal sample.

It's not impossible that there is math for this.

You have math to add nice harmonics to any waveform to emulate what high end analog gear do. Some college students created Softube from that knowledge.

If doing upsampling, knowing that samples are zero in the first 8 bits - you could take this into account knowing this is truncated stuff - and do appropiate math.

That's why I curious if daws use or not use this kind of better approximation conerting 16-bit to 24 bit.

Post Reply

Return to “Hosts & Applications (Sequencers, DAWs, Audio Editors, etc.)”