The volume control on my Thinkpad T61P is LINEAR (instead of logarithmic). This means that the lower end of the control is very sensitive, and the upper end is now (as perceived by the ear. To fix this, Windows XP as of SP2 provides a way to set a custom volume curve.

This isn't a perfect solution because, even though the volume buttons on the thinkpad work well now, the On-Screen Display doesn't reflect that. Instead, it reflects the actual linear volume level, with the result that the the display levels jump with wider gaps at the high end. Also, XP's built-in volume control is linear and continues to be so even after providing it a custom curve.

theory of operation

Windows XP as of SP2 provides a way to pass a custom curve to the volume control. The following generates a logarithmic curve suitable for pasting into a .reg file that can then be executed to update the windows registry.

You should make a backup copy of the registry entry at "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Multimedia\Audio\VolumeControl" first, before proceeding.

Please note the standard "I am not responsible if anything goes wrong" disclaimer before you execute the .reg file...

In more detail, you should:

  1. Set the appropriate values in the usage section
  2. Copy the text in the generated registry entry (new) section
  3. Paste the copied text into a new file with a .reg extension
  4. Back up the existing entry at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Multimedia\Audio\VolumeControl from within regedit.exe
  5. Execute the new .reg file by double-clicking on it

usage

Bias starts the volume control at the LOGARITHM of this percentage (i.e. the first value after zero). Limit sets the maximum volume we generate the curve to, and is the LOGARITHM of this percentage - this should be 100 unless you want a lower maximum volume. If Bias is greater than Limit, the generated curve will reverse the values. Steps determines how many values are provided to represent the curve.

The default values work well for the t61p thinkpad. Download the default .reg file.

Bias, or starting volume level (0 to Limit)
Limit, or maximum volume level (Bias to 100)
Steps (11 to 201)
 

original registry entry (old)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Multimedia\Audio\VolumeControl]
"EnableVolumeTable"=dword:00000000
"VolumeTable"=hex:00,00,00,00,0f,04,00,00,d2,04,00,00,bb,05,00,00,d0,06,00,00,\
  18,08,00,00,9f,09,00,00,6f,0b,00,00,97,0d,00,00,27,10,00,00,32,13,00,00,d1,\
  16,00,00,1e,1b,00,00,3a,20,00,00,4e,26,00,00,86,2d,00,00,1b,36,00,00,4e,40,\
  00,00,6d,4c,00,00,d5,5a,00,00,f4,6b,00,00,4d,80,00,00,7d,98,00,00,3b,b5,00,\
  00,65,d7,00,00,ff,ff,00,00

generated registry entry (new)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Multimedia\Audio\VolumeControl]
"EnableVolumeTable"=dword:00000001
"VolumeTable"=hex:00,00,00,00,54,00,00,00,5e,00,00,00,68,00,00,00,74,00,00,00,81,00,00,00,\
  90,00,00,00,a0,00,00,00,b3,00,00,00,c7,00,00,00,dd,00,00,00,f7,00,00,00,\
  12,01,00,00,32,01,00,00,54,01,00,00,7b,01,00,00,a6,01,00,00,d6,01,00,00,\
  0b,02,00,00,46,02,00,00,88,02,00,00,d2,02,00,00,24,03,00,00,7f,03,00,00,\
  e4,03,00,00,55,04,00,00,d3,04,00,00,5f,05,00,00,fb,05,00,00,a8,06,00,00,\
  6a,07,00,00,41,08,00,00,30,09,00,00,3b,0a,00,00,63,0b,00,00,ae,0c,00,00,\
  1d,0e,00,00,b7,0f,00,00,7f,11,00,00,7a,13,00,00,af,15,00,00,24,18,00,00,\
  e0,1a,00,00,ec,1d,00,00,50,21,00,00,16,25,00,00,4a,29,00,00,f7,2d,00,00,\
  2d,33,00,00,f9,38,00,00,6d,3f,00,00,9d,46,00,00,9d,4e,00,00,85,57,00,00,\
  70,61,00,00,7a,6c,00,00,c4,78,00,00,73,86,00,00,af,95,00,00,a4,a6,00,00,\
  86,b9,00,00,8b,ce,00,00,f1,e5,00,00,ff,ff,00,00

graph of curve

Graph is scaled to 300 pixels height, 3 pixel spacing

raw values in decimal

Raw values are provided for those who want to plot the curve - Excel works well.

0
84
94
104
116
129
144
160
179
199
221
247
274
306
340
379
422
470
523
582
648
722
804
895
996
1109
1235
1375
1531
1704
1898
2113
2352
2619
2915
3246
3613
4023
4479
4986
5551
6180
6880
7660
8528
9494
10570
11767
13101
14585
16237
18077
20125
22405
24944
27770
30916
34419
38319
42660
47494
52875
58865
65535

references

Audio Tapers for Windows Volume-Control Applications

Privacy Policy