Here to say I have the same exact issue on a new Thinkpad model “21kw-s49v00”. I also see that the speaker test is at full volume, but as soon as I play anything else the volume drops suddenly.
When on the internal speakers the first time I play audio its really full volume for about 0.25 seconds, then it seems like it compresses the level like crazy. Its making it very hard to hear when in meetings. This just started today after updating.
When on my external audio interface (used to play audio my stereo system) I noticed that the “Line 1-2 - Scarlett 2i4 USB” output is at full volume, but the “Direct Scarlett 2i4 USB” has the same compression issue as the internal speakers.
I am using the default Gnome desktop and there is no reference to compression or anything like that in settings. I am almost positive this is software compression/limiting/volume-normalization just by how it sounds. I’m sure there is some setting in the driver to turn it off but I cant find it anywhere.
For a second point of reference, here is the output from those commands that I see:
amixer -c0 controls | grep -i "Analog Playback"
numid=43,iface=MIXER,name='Post Mixer Analog Playback DRC bytes'
numid=44,iface=MIXER,name='Post Mixer Analog Playback DRC switch'
numid=42,iface=MIXER,name='Post Mixer Analog Playback FIR Eq bytes'
numid=41,iface=MIXER,name='Post Mixer Analog Playback IIR Eq bytes'
numid=40,iface=MIXER,name='Post Mixer Analog Playback Volume'
numid=39,iface=MIXER,name='Pre Mixer Analog Playback Volume'
amixer -c0 contents
numid=18,iface=CARD,name='HDMI/DP,pcm=3 Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
numid=24,iface=CARD,name='HDMI/DP,pcm=4 Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
numid=30,iface=CARD,name='HDMI/DP,pcm=5 Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
numid=16,iface=CARD,name='Headphone Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
numid=15,iface=CARD,name='Mic Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
numid=2,iface=CARD,name='Speaker Analog Gain'
; type=INTEGER,access=rw---R--,values=1,min=0,max=20,step=0
: values=20
| dBscale-min=11.00dB,step=0.50dB,mute=0
numid=5,iface=CARD,name='Speaker Config Id'
; type=INTEGER,access=rw------,values=1,min=0,max=1,step=0
: values=0
numid=3,iface=CARD,name='Speaker Force Firmware Load'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=17,iface=CARD,name='Speaker Phantom Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
numid=1,iface=CARD,name='Speaker Profile Id'
; type=INTEGER,access=rw------,values=1,min=0,max=2,step=0
: values=0
numid=4,iface=CARD,name='Speaker Program Id'
; type=INTEGER,access=rw------,values=1,min=0,max=0,step=0
: values=0
numid=14,iface=MIXER,name='Master Playback Switch'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=13,iface=MIXER,name='Master Playback Volume'
; type=INTEGER,access=rw---R--,values=1,min=0,max=87,step=0
: values=87
| dBscale-min=-65.25dB,step=0.75dB,mute=0
numid=7,iface=MIXER,name='Headphone Playback Switch'
; type=BOOLEAN,access=rw------,values=2
: values=off,off
numid=6,iface=MIXER,name='Line Out Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=87,step=0
: values=87,87
| dBscale-min=-65.25dB,step=0.75dB,mute=0
numid=12,iface=MIXER,name='Mic Boost Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=3,step=0
: values=0,0
| dBscale-min=0.00dB,step=10.00dB,mute=0
numid=11,iface=MIXER,name='Capture Switch'
; type=BOOLEAN,access=rw------,values=2
: values=on,on
numid=10,iface=MIXER,name='Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=63,step=0
: values=38,38
| dBscale-min=-17.25dB,step=0.75dB,mute=0
numid=19,iface=MIXER,name='IEC958 Playback Con Mask'
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0xff AES2=0x00 AES3=0x00]
numid=25,iface=MIXER,name='IEC958 Playback Con Mask',index=1
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0xff AES2=0x00 AES3=0x00]
numid=31,iface=MIXER,name='IEC958 Playback Con Mask',index=2
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0xff AES2=0x00 AES3=0x00]
numid=20,iface=MIXER,name='IEC958 Playback Pro Mask'
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0x00 AES2=0x00 AES3=0x00]
numid=26,iface=MIXER,name='IEC958 Playback Pro Mask',index=1
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0x00 AES2=0x00 AES3=0x00]
numid=32,iface=MIXER,name='IEC958 Playback Pro Mask',index=2
; type=IEC958,access=r-------,values=1
: values=[AES0=0x0f AES1=0x00 AES2=0x00 AES3=0x00]
numid=21,iface=MIXER,name='IEC958 Playback Default'
; type=IEC958,access=rw------,values=1
: values=[AES0=0x04 AES1=0x00 AES2=0x00 AES3=0x00]
numid=27,iface=MIXER,name='IEC958 Playback Default',index=1
; type=IEC958,access=rw------,values=1
: values=[AES0=0x04 AES1=0x00 AES2=0x00 AES3=0x00]
numid=33,iface=MIXER,name='IEC958 Playback Default',index=2
; type=IEC958,access=rw------,values=1
: values=[AES0=0x04 AES1=0x00 AES2=0x00 AES3=0x00]
numid=22,iface=MIXER,name='IEC958 Playback Switch'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=28,iface=MIXER,name='IEC958 Playback Switch',index=1
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=34,iface=MIXER,name='IEC958 Playback Switch',index=2
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=45,iface=MIXER,name='Analog Capture IIR Eq'
; type=BYTES,access=-----RW-,values=1024
; ASoC TLV Byte control, skipping bytes dump
numid=9,iface=MIXER,name='Auto-Mute Mode'
; type=ENUMERATED,access=rw------,values=1,items=2
; Item #0 'Disabled'
; Item #1 'Enabled'
: values=0
numid=51,iface=MIXER,name='DMIC0 Capture IIR Eq'
; type=BYTES,access=-----RW-,values=1024
; ASoC TLV Byte control, skipping bytes dump
numid=49,iface=MIXER,name='Dmic0 Capture DRC bytes'
; type=BYTES,access=-----RW-,values=1024
; ASoC TLV Byte control, skipping bytes dump
numid=50,iface=MIXER,name='Dmic0 Capture DRC switch'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=53,iface=MIXER,name='Dmic0 Capture Switch'
; type=BOOLEAN,access=rw------,values=4
: values=on,on,on,on
numid=48,iface=MIXER,name='Dmic0 Capture TDFB angle set enum'
; type=ENUMERATED,access=rw------,values=1,items=13
; Item #0 '-90'
; Item #1 '-75'
; Item #2 '-60'
; Item #3 '-45'
; Item #4 '-30'
; Item #5 '-15'
; Item #6 '0'
; Item #7 '15'
; Item #8 '30'
; Item #9 '45'
; Item #10 '60'
; Item #11 '75'
; Item #12 '90'
: values=0
numid=47,iface=MIXER,name='Dmic0 Capture TDFB beam switch'
; type=BOOLEAN,access=rw------,values=1
: values=off
numid=46,iface=MIXER,name='Dmic0 Capture TDFB bytes'
; type=BYTES,access=-----RW-,values=16384
; ASoC TLV Byte control, skipping bytes dump
numid=52,iface=MIXER,name='Dmic0 Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=45,step=0
: values=44,44
| dBscale-min=-90.00dB,step=2.00dB,mute=1
numid=43,iface=MIXER,name='Post Mixer Analog Playback DRC bytes'
; type=BYTES,access=-----RW-,values=1024
; ASoC TLV Byte control, skipping bytes dump
numid=44,iface=MIXER,name='Post Mixer Analog Playback DRC switch'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=42,iface=MIXER,name='Post Mixer Analog Playback FIR Eq bytes'
; type=BYTES,access=-----RW-,values=1024
; ASoC TLV Byte control, skipping bytes dump
numid=41,iface=MIXER,name='Post Mixer Analog Playback IIR Eq bytes'
; type=BYTES,access=-----RW-,values=1024
; ASoC TLV Byte control, skipping bytes dump
numid=40,iface=MIXER,name='Post Mixer Analog Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=45,step=0
: values=45,45
| dBscale-min=-90.00dB,step=2.00dB,mute=1
numid=39,iface=MIXER,name='Pre Mixer Analog Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=45,step=0
: values=45,45
| dBscale-min=-90.00dB,step=2.00dB,mute=1
numid=54,iface=MIXER,name='Pre Mixer Deepbuffer HDA Analog Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=45,step=0
: values=45,45
| dBscale-min=-90.00dB,step=2.00dB,mute=1
numid=8,iface=MIXER,name='Speaker Playback Switch'
; type=BOOLEAN,access=rw------,values=2
: values=on,on
numid=23,iface=PCM,name='ELD',device=3
; type=BYTES,access=r--v----,values=36
: values=0x10,0x00,0x08,0x00,0x6a,0x14,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xb3,0xc3,0x32,0x41,0x53,0x55,0x53,0x20,0x56,0x47,0x33,0x32,0x38,0x09,0x07,0x07,0x00,0x00,0x00
numid=36,iface=PCM,name='Playback Channel Map',device=3
; type=INTEGER,access=rw-v-R--,values=8,min=0,max=36,step=0
: values=0,0,0,0,0,0,0,0
| container
| chmap-variable=FL,FR
numid=29,iface=PCM,name='ELD',device=4
; type=BYTES,access=r--v----,values=0
: values=
numid=37,iface=PCM,name='Playback Channel Map',device=4
; type=INTEGER,access=rw-v-R--,values=8,min=0,max=36,step=0
: values=0,0,0,0,0,0,0,0
| container
| chmap-variable=FL,FR
numid=35,iface=PCM,name='ELD',device=5
; type=BYTES,access=r--v----,values=0
: values=
numid=38,iface=PCM,name='Playback Channel Map',device=5
; type=INTEGER,access=rw-v-R--,values=8,min=0,max=36,step=0
: values=0,0,0,0,0,0,0,0
| container
| chmap-variable=FL,FR
amixer -c0 cget name='Post Mixer Analog Playback Volume'
numid=40,iface=MIXER,name='Post Mixer Analog Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=45,step=0
: values=45,45
| dBscale-min=-90.00dB,step=2.00dB,mute=1
Let me know if I can provide any more info! Thanks in advance for any help!