Rockbox

  • Status Unconfirmed
  • Percent Complete
    0%
  • Task Type Bugs
  • Category Music playback
  • Assigned To No-one
  • Operating System Sansa Clip+
  • Severity Medium
  • Priority Medium
  • Reported Version Release 3.15
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by mayreg - 2022-11-16

FS#13375 - Distortion near peak level, specific to OGG, OPUS and AAC

I noticed that some tracks converted to Vorbis, OPUS and AAC will become distorted at higher volume levels, especially when used with compressor and makeup gain (default compressor settings with Threshold -24 dB).

I was trying my best to make reproduction as easy as possible, so created some audio samples that are constantly problematic on my Sandisk Sansa Clip+ using Rockbox 3.15. The samples contain a 200 Hz sine wave every half a second and silence at every other half, each at -1 dB level. Listen to attached files starting with “200hz”.

  1. Copy all samples to the player
  2. Go to Sound Settings → Compressor → Threshold and set it to a very low value (-24 dB is perfect).
  3. Start playing back the samples.
  4. You’ll notice the distorton, the same kind at Vorbis and OPUS but a slightly different at AAC.

I also attached the output from my Sansa (playback.mp3) recorded from its headphone jack. I played the samples in the following order: m4a (!), ogg (!), opus (!), wav (ok)

Other formats (tested: WAV (pcm_s16le), FLAC, MP3, AC3, MP2) are OK and have no distortion at all with the same volume and compressor setting.

It seems something goes wrong (a bit overamplified?) between the decoder and the compressor (maybe a floating point precision issue with base output volume from the decoders?). Also, this isn’t necessarily specific to the compressor. I’ve also heard these distortions without the compressor during playback of various Vorbis tracks, however at those it’s harder to hear and distinguish the distortion.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing