Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: wav 32bit fixed-point to FLAC (Read 7650 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: wav 32bit fixed-point to FLAC

Reply #25
New fb2k beta out, you can now convert to 32bit fixedpoint properly.

I still don't see the point of this though, as a storage format. Makes sense only as intermediate processing format for specific purposes. Last bits are either badly compressing noise or well compressing zeros.

Thank you. The converter works with 32bit int output files (I checked flac, wav and wavpack - all fine).
But I just discovered something strange. I use FB2 beta29 64 bit on Win10 64 bit. I just tried to play 32bit int file with built-in laptop speakers through built-in Realtek soundcard (which is, as far as I know, capable of 192/24, so no 32bit). No DAC, no USB, no external speakers, pure laptop. I used Defult:Speakers....(exclusive) and Default: Primary Sound...(exclusive) and set both to 32bit in Preferences-Output-Devices in FB. And it somehow played the sound. How is it possible? I expected error saying "endpoint creation failed", "file format unsupported" or something like this. How is it possible to output 32 bit int file to 24 bit hardware? Do I miss something? Is Realtek capable of 32 bit audio now (and it is not visible in Windows sound panel (which shows 192/24 as max)). I then tried to do exact the same but on FB 1.16 through HDMI to AVR (which is 192/24) and it "properly" showed error because my AVR is not 32bit compatible. Also tried on second laptop with FB2 32bit beta 24 and built-in speakres and it also failed as expected.
Edit: I just read that Intel HD Audio (is it the same as Realtek HD audio?) is capable of 32 bits. Windows shows only 24 bits but maybe "exclusive" option overrides this and makes it 32bit capable?

 

Re: wav 32bit fixed-point to FLAC

Reply #26
The difference in 24bit files and 32bit is unnoticeable for human hearing. But only if there is no processing done with bits. I mean No volume change and resampling in foobar, no digital volume change in DAC.

But if for example you play 24bit file in foobar and change volume -12 or -24 dB, foobar will convert 32bit floating output to 24bit int without dithring, and there will remain only 20bits of data, 4 MSB bits will be lost. The DAC has its own processor and if volume is changed in DAC some information will be lost further.

If foobar will convert 64bit floating output to 32bit int and DAC has 32bit input, then all original 24bits will be preserved and DAC will receive them all, even if foobar change volume down to -48dB (wich is -8bits). Then DAC will process volume control in 42bits internaly, then it will make conversion to final 32bits with special dithering. After that DAC chip will do 16x resampling with full 24bits (not 20bits like in first examle). RME claims that in such a way their digital volume control is one of the best and is even better than analog volume control


Most modern good quality DACs have 32bit input and 32bit D/A chip.
It is only true if your RME driver is only capable of receiving 24-bit data from the playback software, which is not the case when using ASIO, even when using foobar2000 x86. A 24-bit signal converted to 32-bit float with 4 shifted bits, a factor of 0.0625, or -24.0824dB, will retain all 24 bits when received by the ASIO driver's 32-bit fixed point input.

ASIO driver is an abstracted hardware, which means the playback software treats the ASIO driver itself as the hardware. Many budget or older audio interfaces themselves don't have any 32-bit DAC or additional hardware DSP, but the ASIO driver can still accept 32-bit fixed point input and convert the signal to the hardware's native bit-depth. 24-bit ASIO drivers are actually less common as 24-bit is not a primitive data type for many programming languages.

The same applies to WASAPI exclusive as well, if the driver allows 32-bit fixed point input, and your RME's upgradable firmware is responsible to how it deals with WASAPI input.

You can see that the digital data path is not truncated to 24-bit when using foobar2000 x86's ASIO output.
X

More info:
https://hydrogenaud.io/index.php/topic,121447.msg1009024.html#msg1009024