[wdmaudiodev] Re: Understanding USB Feature Unit Descriptors

  • From: Tim Roberts <timr@xxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 14 Jan 2011 14:27:42 -0800

RYAN ALLAN wrote:
>
> I do agree that a device applying that must gain would be absurd.
> My amplifier is able to attenuate the signal in 1 dB increments from 0
> to -90 dB.

Then your MIN should be A600, your MAX should be 0000, and your RES
should be 0100.  That's the RIGHT answer.

> I would like to use the full -127db to +127db scale though, as I am
> trying to fit it to an existing volume mapping table.

But your sentence doesn't make any sense.  You don't HAVE a -127 dB to
+127 dB scale.  You have a -90 dB to 0 dB scale.  Tell Windows that.  An
audio application that sets the volume to 0 dB should get the same
audible results on every audio device.  When everyone does the kind of
magic remapping that you're doing, that becomes absolutely impossible.

> The existing table takes a volume value from 0 - 255 and maps it to my
> amplifier's +0 to -90db range.
> I figured that if the Windows OS was able to provide me with a volume
> value in the range of -127db to +127db, I could take the 2's
> complement of that value and be left with a volume value in the range
> 0 - 255.

...none of which has any any relation to reality.  You shouldn't be
using a table.  You should be using dB.

> In XP this works great. The OS sends me volume values: 0x7FFF, 6FFF,
> 5FFF, 4FFF, 3FFF, 2FFF, 1FFF, 0FFF, 0000, F000, E000, D000, C000,
> B000, A000, 9000, 8000, I take the 2's complement of these values,
> look at the MSB, and am left with my 0x00 - 0xFF range (I am just
> looking for a raw number, don't care about db).

YOU might not care, but Vista and Windows 7 do.  That's the crux of the
problem.  Professional audio applications want to be able to work in
real dB, not in some fake range.  What you're doing is subverting that.

> From Tim's summary, I got that Windows XP didn't care what my GET_MIN,
> GET_MAX, and GET_RES values were, and gave me the full range. However,
> Windows Vista/7 do care and try to limit the values to a realistic
> range. Is this the case?

Sort of.  It's more accurate to say that XP does not enforce a physical
meaning for the numbers you advertise.  Vista does.

-- 
Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

Other related posts: