Opened 4 years ago

Closed 3 years ago

#12588 closed defect (fixed)

XO-4 max volume produces distortion

Reported by: dsd Owned by: dsd
Priority: blocker Milestone: 13.2.0
Component: kernel Version: Development build as of this date
Keywords: XO-4 Speaker Audio Cc:
Blocked By: Blocking:
Deployments affected: Action Needed: no action
Verified: no


Play the shipped audio samples in Browse with the volume turned all the way up on 13.1.0 build 33. You will hear distorted sounds from the speakers, or headphones if you have them connected.

Identified as XO-4 blocker by Quanta.

Change History (16)

comment:1 Changed 4 years ago by greenfeld

#12527 may be related.

comment:2 Changed 4 years ago by dsd

  • Action Needed changed from never set to add to build

I have verified the DAC_VOL_2 and SPK_OUT_VOL registers compared to XO-1.75 where we don't see distortion. At max volume, the XO-1.75 actually lets DAC_VOL_2 run a tiny bit louder. The headphones are allowed to be run to the same max volume on both platforms.

The difference is in the gain, specified in the general purpose register (40). I have reduced this on XO-4 from 7.40dB to 3.86dB, to match XO-1.75. Fixed in arm-3.5 f80b9e7.

comment:3 Changed 4 years ago by greenfeld

The new kernel (f80b9e7) still distorts audio badly towards the high end, although not as badly.

A XO-1.75 with os30 does not distort anywhere nearly as much when playing the "Victory" music sample in Browse at full volume.

Complicating the issue is that we have two types of speakers to support: Those in touch units and those in older/non-touch units.

Alternatively this could just be a speaker mounting issue, but I would have no idea how such an issue would sound compared to generic overdriven distortion.

comment:4 follow-up: Changed 4 years ago by wad

  • Priority changed from blocker to high

"distorts audio badly toward the high end" ? That phrase needs clarification.

My testing shows that the kernel in 13.1.0 build 34 is an improvement. There is still some speaker clipping in both the touchscreen and non-touchscreen models, but not much. Testing with headphones shows no amplifier clipping.

The speakers on non-touchscreen models (used in all previous XO laptops) sound tinny compared to the ones on touchscreen models, due to less frequency response peaking at roughly 1KHz.

I would prefer to see effort go into fixing 12527, which will allow users to lower the volume SLIGHTLY to eliminate the clipping. right now the first volume step below full volume is a significant drop in volume.

comment:5 in reply to: ↑ 4 Changed 4 years ago by greenfeld

Replying to wad:

"distorts audio badly toward the high end" ? That phrase needs clarification.

I meant towards the high end of the volume control, not the high end of the audible frequency range.

comment:6 Changed 4 years ago by wad

  • Action Needed changed from add to build to code
  • Keywords XO-4 Speaker Audio added
  • Milestone changed from 4-software to 13.2.0
  • Priority changed from high to blocker
  • Version changed from not specified to Development build as of this date

Fixing 12527 was a great improvement, along with the partial reduction done in reaction to this ticket.

I have to ask for one more "notch" of volume reduction, as the levels are still high enough to cause distortion over the speakers when playing back media (use Sample Media from the default Browser Homepage). TamTam doesn't cause the distortion.

comment:7 Changed 4 years ago by wad

I should mention that any testing on a laptop other than a production ramp C2 is not valid on this problem. The production XO-4 laptops use different speakers and slightly different circuitry than pre-production models.

comment:8 Changed 4 years ago by dsd

  • Action Needed changed from code to add to build

XO-1.75 and XO-4 use different volume control techniques.

The XO-1.75 driver effectively hardcodes the speaker volume (reg 2, actually it can be changed in alsamixer but not in regular UI) and drives the DAC volume register (reg 10) to change volume levels.

The XO-4 driver hardcodes the DAC volume register and the volume control slider exposed in the UI controls the speaker/headphone volumes (reg 2 and reg 4).

So matching the registers as I had tried to do before is not a valid way to approach this bug.

I don't have an XO-4 C2 unit to test, but I have pushed a kernel change (4016fa1d6) which should help, it disables the speaker gain and drops the hardcoded DAC volume a bit, it sounds better on my B1.

comment:9 Changed 4 years ago by dsd

  • Action Needed changed from add to build to test in build

Test in 13.2.0 build 11.

comment:10 Changed 4 years ago by mavrothal

On an XO-4 HS-Touch with 13.2.0 build12 the problem persists. The entire upper casing resonates/trembles in max volume. Limiting volume a bit, "fixes" it.

comment:11 follow-up: Changed 4 years ago by pgf

this sounds a bit like your speakers aren't fastened properly. is this a B1 unit?

comment:12 in reply to: ↑ 11 Changed 4 years ago by mavrothal

Replying to pgf:

this sounds a bit like your speakers aren't fastened properly. is this a B1 unit?

It says C2 #SHC31100017
Compared to XO-1.75HS running same build and sound file, the level of the XO-4 maybe marginally louder.
Regarding the resonance of the casing, I was wondering if the extra distance for the touch hardware could be the reason for that.
(My XO-4 is too "young" to open it up to check the speakers. Maybe in a couple of weeks ;)

comment:13 Changed 4 years ago by Quozl

The speakers are meant to vibrate the air, and as a side-effect they do vibrate the upper casing, since the upper casing is full of air. This is an intentional side-effect.

To find the resonant frequency of the upper casing and speakers, inject noise:

speaker-test -t pink -c 2

and observe whether you can hear any particular tone. An excessive resonance will make a tone from this pink noise. Use Control/C to stop the test.

Speakers, driving amplifiers, and assembly vary slightly across production.

We don't want the maximum volume setting to produce distortion in a significant number of laptops. We have a test for this in production. You may have a statistical outlier in your hands.

To check the speaker fastening, find a quiet location, wear hearing protection, set the volume to maximum, generate a sine wave output at 500 Hz:

speaker-test -t sine -c 2 -f 500

and during the test use your thumbs to cover and press on individual speaker grills, one at a time, and observe:

  • the total sound volume (which should be reduced by a thumb when the speaker is being driven),
  • the tonal purity (whether you are hearing a single frequency like a flute or a mix of frequencies with buzzing),

This test switches between speakers. I'm interested to know if the distortion is following a specific speaker, and if the distortion reduces radically when pressure is applied to the speaker grills.

You might also try other frequencies.

comment:14 Changed 3 years ago by mavrothal

It appears that the right speaker is the problematic one.
Has a lower tone (more "basso") and extensive "hiss" at 500Hz.
I will "opperate" on the XO but I'll close the ticket

comment:15 Changed 3 years ago by mavrothal

I mean, "I would close the ticket"

comment:16 Changed 3 years ago by Quozl

  • Action Needed changed from test in build to no action
  • Resolution set to fixed
  • Status changed from new to closed

Okay, thanks. We also saw 6 out of 200 failure rate of speakers in a recent test batch, (which were intercepted and reworked), so your one report does fit within that statistical range.

Note: See TracTickets for help on using tickets.