Re: Use of non 8/16/24-bit audio, like 12-bit audio
Reply #59 – 2022-03-09 20:31:06
Yes. For example my Sound Blaster with 24-bit AD/DA converters and advertised as 24-bit in marketing materials uses 32-bit ASIO. ASIO supports (or at least supported) these: LSB/MSB is about bit endianess. The first number is bitdepth of the bytes, and the second, if present, is the bitdepth of the actual audio See that it had values for 16, 18, 20, 24 and 32 bits. Also note that some hardware could opt to use 24bits even if it could only provide 20bits of precision. case ASIOSTInt16LSB: case ASIOSTInt32LSB16: // 32 bit data with 16 bit alignment case ASIOSTInt16MSB: case ASIOSTInt32MSB16: // 32 bit data with 16 bit alignment fullname = fullname + " : 16 bit"; break; case ASIOSTInt32LSB18: // 32 bit data with 18 bit alignment case ASIOSTInt32MSB18: // 32 bit data with 18 bit alignment fullname = fullname + " : 18 bit"; break; case ASIOSTInt32LSB20: // 32 bit data with 20 bit alignment case ASIOSTInt32MSB20: // 32 bit data with 20 bit alignment fullname = fullname + " : 20 bit"; break; case ASIOSTInt24LSB: // used for 20 bits as well case ASIOSTInt32LSB24: // 32 bit data with 24 bit alignment case ASIOSTInt24MSB: // used for 20 bits as well case ASIOSTInt32MSB24: // 32 bit data with 24 bit alignment fullname = fullname + " : 24 bit"; break; case ASIOSTInt32LSB: case ASIOSTInt32MSB: fullname = fullname + ": 32 bit"; break; case ASIOSTFloat32LSB: // IEEE 754 32 bit float, as found on Intel x86 architecture fullname = fullname + ": 32 bit float"; break; case ASIOSTFloat64LSB: // IEEE 754 64 bit double float, as found on Intel x86 architecture fullname = fullname + ": 64 bit float"; break; case ASIOSTFloat32MSB: // IEEE 754 32 bit float, Big Endian architecture case ASIOSTFloat64MSB: // IEEE 754 64 bit double float, Big Endian architecture