SoundCloud traded frequencies above 17 kHz for cleaner AAC streams

The 2025 encoder swap made spectrograms look worse at 256 kbps, while SoundCloud left its testing methodology undisclosed.

By · Published

Why it matters

SoundCloud is choosing perceptual quality over a full-looking spectrogram. That choice affects creator uploads at scale and exposes how little codec marketing reveals about audible tradeoffs.

Deconstructed audio stream components illustrating frequency loss (Exploded-view technical diagram — clean isolated parts on white, callout labels with leader lines)

SoundCloud, the audio platform Alexander Ljung and Eric Wahlforss built to make recordings easier for musicians to share, replaced its decade-old AAC encoder in 2025 with one that deliberately rolls off frequencies around 17 kHz. In a June 18, 2026 engineering post, SoundCloud software engineer Joe Reid explained why removing data can produce a better-sounding stream, even when the resulting spectrogram appears to show a downgrade.

The migration returns SoundCloud to its founding problem. Ljung, a sound designer, and Wahlforss, a musician, started SoundCloud in 2007 as a simpler way for creators to upload and exchange audio. Nearly two decades later, SoundCloud still has to move creator recordings efficiently, only at a scale where small encoding decisions are repeated across a catalog SoundCloud says connects listeners with more than 40 million creators.

A spectrogram that looks like a downgrade

The visible change is straightforward. When a creator uploads a lossless master, SoundCloud transcodes the recording for playback rather than serving the original file. Its previous AAC encoder could retain energy up to roughly 20 kHz. The replacement, Fraunhofer's libfdk_aac, produces a shelf around 17 kHz, including in SoundCloud's highest-quality 256 kbps stream.

SoundCloud comparison of its old and new AAC encoders

That shelf can look alarming to an artist inspecting a downloaded file in a spectrum analyzer. The graph shows information disappearing. It does not show whether a listener can perceive the removed information or whether preserving it forced the encoder to introduce errors elsewhere.

Lossy encoding gives the encoder a fixed bit budget for each section of audio. Bits spent reproducing the highest frequencies cannot be spent on the midrange, where human hearing is more sensitive and where vocals, guitars and other prominent elements compete for precision. SoundCloud says most adults cannot reliably perceive tones above 17 kHz under ideal conditions, while hearing is especially sensitive between 2 and 5 kHz.

SoundCloud's chosen trade is to remove the least perceptible portion of the signal, then allocate the freed capacity to frequencies listeners are more likely to hear. Bass is a poor substitute target because low frequencies require relatively few bits and can also be felt physically.

SoundCloud's case for throwing data away

SoundCloud compared its old encoder with the Fraunhofer implementation by measuring differences between encoded output and the original recording. According to Reid's post, the old encoder lost information across the upper midrange and introduced artifacts in the low end. The new encoder concentrated its loss in a band at the top of the spectrum, with fewer measured errors below it.

Those results remain SoundCloud's account of its own testing. SoundCloud says the Fraunhofer encoder delivered higher perceptual quality across every metric it tracks, but the post does not name those metrics, publish scores or describe the listening panel and methodology. The graphs illustrate the intended trade clearly; they do not provide enough underlying data for an independent comparison.

The choice of encoder carries credible technical history. Fraunhofer IIS says it has worked on audio coding for more than 35 years, and versions of its FDK AAC library have been included in Android and the Android Open Source Project since 2012. SoundCloud attributes the cutoff points to decades of Fraunhofer listening tests, though the specific studies behind SoundCloud's configuration are not identified.

The 256 kbps question

The harder argument concerns 256 kbps AAC, the format SoundCloud offers to Go+ subscribers when an eligible track was uploaded from a sufficiently high-quality source. At that bitrate, the encoder has close to enough capacity to preserve the full frequency range. SoundCloud still applies a gentler rolloff around 17 kHz because complex passages can force compromises in the midrange.

SoundCloud calls that decision at 256 kbps "genuinely debatable". The measured improvement is smaller than it is at lower bitrates, and listeners with unusually sensitive high-frequency hearing may prefer full bandwidth. SoundCloud included a blind comparison between an original recording and two 256 kbps encodes, one with the filter and one without, rather than claiming that a graph alone settles the question.

That concession is the strongest part of Reid's explanation. Codec engineering deals in constrained choices, and a technically defensible default can still produce edge cases. SoundCloud is arguing that its default serves the broad listener population, not that every creator or trained listener will choose the same compromise.

A wider move toward AAC

The encoder replacement happened during a broader overhaul of SoundCloud's delivery formats. On September 15, 2025, SoundCloud added 96 kbps and 160 kbps AAC streams to its developer API and told integrators to move away from legacy MP3 and Opus streams. SoundCloud scheduled those older API formats for removal after December 31, 2025. SoundCloud has not tied that timetable to a precise deployment date for libfdk_aac, so the two changes should not be treated as the same migration.

The explanation also arrived as large streaming services pushed lossless audio as a premium feature. Spotify began rolling out lossless playback at up to 24-bit/44.1 kHz FLAC in September 2025. SoundCloud's 256 kbps AAC serves a different bandwidth and product choice. A spectrogram can confirm that the outputs differ, but it cannot determine whether listeners will prefer the full-bandwidth lossless file under ordinary playback conditions.

For creators, SoundCloud's post provides a useful warning against treating visual bandwidth as a complete quality score. A hard shelf can be intentional, while a file that reaches 20 kHz can still contain audible errors below it. The unanswered issue is whether SoundCloud's undisclosed quality measurements justify applying the cutoff to every eligible 256 kbps encode.

The 17 kHz shelf shows how SoundCloud still handles the problem Ljung and Wahlforss started with: move creator audio efficiently, then spend the available bits where listeners are most likely to notice them.

Reader comments

Conversation for this story loads after sign-in.