REW Java drivers

Greetings

Messing around with different devices for output and capture in REW I found something I don't understand. When using multichannel devices for output on HDMI, I have to choose Java drivers. The manual says Java drivers only work with 16bits, but there is an alternative called EXCL witch changes the output to 32bit. I have tried searching but cant find any related information. Does anybody know anything regarding this?

REW java.PNG
REW java output input.PNG


REW java EXCL.PNG
REW java EXCL output input.PNG
 
So I did a test in exclusive mode. Indeed it shows up as 24-bit at the display
REW input data.PNG


Hovering pointer over data line it a window pops up saying "input data". So this is data on capture device? Is it possible to get the same monitoring on output device?
 
Last edited:
Data is sent out in the format shown to the left of the bit display. If the "Treat 32-bit data as 24-bit" option on the Soundcard preferences is selected the bottom 8 bits of data sent in 32-bit integer formats will be zero. Bar some software loopbacks I haven't come across any devices that provide or accept genuinely 32-bit data, but there may be some.
 
  • Like
Reactions: Lalaland
You should also be aware that REW states on the treat 32bit as 24bit window that it uses 32bit floating point (IEEE) only. This means there's 1 bit of sign, 8 bits exponent and 23 bits of mantissa. So in short the maximum REW can support is 24 bit maths.

If there was a 64bit maths option then it could support 32bit ADC output without rescaling or losing information. It does have a 64bit FFT maths option but I think that means the 32bit data is truncated.
 
32-bit floats have 25-bit integer-equivalent precision. Floats are normalised, so there is always a leading 1 bit which doesn't need to be stored but is part of the overall precision. There are as yet no devices which manage 24-bit precision, the best ADCs and DACs have around 21-bit performance.
 
All audio data REW receives is converted to 32-bit floats. That doesn't mean data is truncated. For small values float32 has higher precision than 32-bit integer. For large values it has lower precision, but still has greater dynamic range in its mantissa than any current device can achieve so the lost precision is below the noise floor of the device.