Integer Mode

Discuss Decibel, a high quality audio player.
Post Reply
misterrogers@mac.com
Posts: 3
Joined: Sun Jun 05, 2011 9:18 pm

Integer Mode

Post by misterrogers@mac.com » Sun Jun 05, 2011 9:21 pm

Any chance you can implement integer mode if a dac supports it? I've found it to make a subtle but noticeable improvement (to me). Thanks for a great player!

User avatar
sbooth
Site Admin
Posts: 2445
Joined: Fri Dec 23, 2005 7:45 am
Location: USA
Contact:

Re: Integer Mode

Post by sbooth » Sun Jun 05, 2011 9:50 pm

Just to clarify what you're asking for- would you like Decibel to sent integers to the DAC if the DAC supports such a format, or do you want Decibel to do all internal processing with integers?

misterrogers@mac.com
Posts: 3
Joined: Sun Jun 05, 2011 9:18 pm

Re: Integer Mode

Post by misterrogers@mac.com » Sun Jun 05, 2011 9:58 pm

Thanks for following up with me on a Sunday :-) Through CoreAudio, you can check capabilities of a device/dac and if it supports integer mode, you can pass music data as integers. I suppose that to realize the benefit, the entire path would need to be be integers (to avoid float precision loss). Audirvana does this, and has become my main player over Decibel for this reason alone. He's doing very little other signal processing - just using integer mode makes a difference (to my ears). This is also functionality that's recently been added to Pure Music and the new BetterMusic play.

Mike

User avatar
sbooth
Site Admin
Posts: 2445
Joined: Fri Dec 23, 2005 7:45 am
Location: USA
Contact:

Re: Integer Mode

Post by sbooth » Mon Jun 06, 2011 1:08 am

If the exclusive access preference is enabled, Decibel will send audio to the DAC in the DAC's native format (which is typically 24-bit integer of some sort). Not all DACs support integer output, though- it depends on the capabilities of the device itself and on the driver implementation.

The question of an all-integer signal path is a separate issue. It isn't correct to say that one has to avoid floating point numbers in order to avoid float precision loss. For example, all 24-bit integer sample values can be converted to a 32-bit float representation (IEEE 754 single precision) and back to integer with no loss in precision. The conversion is lossless. Obviously, if a gain is applied or any other signal processing is performed then the conversion won't be lossless, but this is true regardless of the numerical format chosen. This is the express reason why the digital volume can be disabled in Decibel-to ensure bit-perfect output.

The current versions of Decibel handle everything as 64-bit floating point numbers (IEEE 754 double precision). Internally, a file on disk is converted to 64-bit normalized PCM, which is then converted to the desired output format of the DAC. A Wavelength Proton, for example, accepts audio as 24-bit integers. Decibel simply converts the 64-bit doubles into 24-bit integers if exclusive access is enabled. If exclusive access is not enabled, then the 64-bit doubles are converted to 32-bit floats and send to the audio subsystem for possibly more processing.

misterrogers@mac.com
Posts: 3
Joined: Sun Jun 05, 2011 9:18 pm

Re: Integer Mode

Post by misterrogers@mac.com » Tue Jun 07, 2011 9:01 pm

Hey - Thanks for the detailed discussion on the subject. Good point on 24bit Int to 32bit float and back conversions not losing precision. I wasn't aware of the integer precision supported by most dacs. If it's 24, then we're more than safe with you using 64bit float internally. One last question - will DAC integer mode always be used if available? Is it possible that float would be used when integer mode is available? Just curious if you've seen DACs return caps that indicate float as native when integer is available.

So assuming integer is usually the native mode, then Decibel essentially supports integer mode when exclusive is is set, digital volume is off, and the device supports it - correct?

Thanks again for your time - great product!

User avatar
sbooth
Site Admin
Posts: 2445
Joined: Fri Dec 23, 2005 7:45 am
Location: USA
Contact:

Re: Integer Mode

Post by sbooth » Wed Jun 08, 2011 3:28 am

If hog mode is enabled, Decibel will use any integer format available in preference to a floating-point format.

Decibel still supports integer mode if the digital volume is on, because the gain is applied to the audio when it is represented as 64-bit floats. The output in that case would not be bit-perfect with respect to the original file, though.

Bob Stern
Posts: 2
Joined: Sat Aug 20, 2011 12:39 am

How tell if Integer capability recognized?

Post by Bob Stern » Sat Aug 20, 2011 12:43 am

How can I tell whether Decibel recognizes my Firewire DAC as being capable of playing in integer mode?

User avatar
sbooth
Site Admin
Posts: 2445
Joined: Fri Dec 23, 2005 7:45 am
Location: USA
Contact:

Re: Integer Mode

Post by sbooth » Sat Aug 20, 2011 6:39 pm

Right now the only way to determine this is to enable logging, and then examine the log output. http://forums.sbooth.org/viewtopic.php?f=22&t=3756 tells how to enable logging, and if integer mode is enabled your log should indicate that the virtual format is 24-bit signed integer (most likely).

Bob Stern
Posts: 2
Joined: Sat Aug 20, 2011 12:39 am

Thanks!

Post by Bob Stern » Sat Aug 20, 2011 11:01 pm

The log confirms virtual format = Integer.

Post Reply