In this post, an experiment will be conducted on the effects of MP3 quality in relation to dithering and sample rate conversion which are done in the mastering process. The tools used are the following:
a.) Reaper digital audio workstation with LAME encoder functionality for converting to MP3 and doing test dithering.
b.) Voxengo R8brain free – for doing sample rate conversion and test dithering.
c.) Adobe Audition 1.5 – for doing spectral analysis of the converted result.
d.) The 24-bit/96KHz WAV sweep test tone signal provided here.
Objective and Methodology of the Study
This study will aim to investigate the results on the following combinations (using free/open source tools):
Test Flow#1: The quality of the MP3 as result of direct conversion
24-bit/96KHz sweep tone signal == > Reaper LAME MP3 encoder == > Assess spectral quality results of MP3
Test Flow#2: Sample rate conversion and dithering is being done first before MP3 conversion
24-bit/96KHz sweep tone signal == > Sample rate conversion using Voxengo R8brain to 44.1KHz == > Dithering and noise shaping using Reaper built-in dither functionality == > 16-bit/44.1KHz wav input to Reaper LAME MP3 encoder == > Assess results
Test Flow#3: Sample rate conversion and dithering to be done entirely by R8brain
24-bit/96KHz sweep test tone signal == > Sample rate and dithering by Voxengo R8brain == > 16-bit/44.1KHz WAV input to Reaper LAME MP3 encoder== > Analyze results
Test Flow#4: SRC (Sample rate conversion) is done first but no dithering has been externally applied. Then the 24-bit wav is inputted directly to the LAME encoder.
24-bit/96KHz sweep test tone signal == > SRC by R8brain == > 24-bit/44.1KHz WAV input to Reaper LAME MP3 encoder== > Analyze results
Spectral result of the original source audio
Using Adobe Audition 1.5 Spectral graph analysis, the original/unaltered 24-bit/96KHz WAV sweep tone plot is shown below:

The x-axis is the time in seconds while the y-axis is frequencies. The curve blue line is trending upward (because it’s as sweep tone) indicates the change of frequency content with respect to time. So we can say approximately by looking at the plot that at 4 seconds; the signal frequency of the content is at 10,000Hz. The black background/region indicates the absence of signal frequency content.
Since the sample rate is 96 KHz, it can accommodate signals up to 48 KHz as the maximum depicted in the plot. According to Nyquist theory on the post on 44.1 KHz vs. 48 KHz audio recording sample rate.
Maximum frequency content = Sample rate/2
Beyond 20 KHz, human ear cannot anymore distinguish or detect these ultra-sonic frequencies but flying bats do.
Test Flow#1: Direct Encoding
In this test, a high resolution test tone of 24-bit/96KHz is directly feed to the Reaper LAME encoder (File – Batch File/Item converter). In Reaper, these are the options: [sample rate=source, channels=source, re-sample if needed=best, Output format=MP3, mode=maximum bit rate/quality]. If you are new to Reaper, you can add MP3 functionality by reading this guide on Reaper DAW Tutorial. And then go to the “Using MP3 with Reaper” section.
For the above test; this is the spectral result of the MP3:

As you can see, very small artifacts are now present and the background is not anymore pure black. This indicates the presence of slight aliasing distortion (those light hazy blue lines) brought by the MP3 encoder sample rate conversion. It is worth noting that LAME encoder converts a 24-bit/96 KHz sample rate to a 16-bit/48 KHz mp3. If it’s directly converted to a standard 16-bit/44.1KHz MP3 using the same process, this is the result:

And now you have much bigger problems of aliasing distortion; fully obvious and more audible. See those lines crossing the ideal signal which are not present in the original test tone? These are distortions/artifacts that can make your MP3 sound bad.
10 Responses
Thanks Eduardo for sharing your findings 🙂
Dear Mr. Maningo.
I work as a researcher at UNICAMP (State University of Campinas), Brazil, and I like to study some audio technologies in my free time. I have some high resolution audio sources (24-bit/96KHz) that I used to encode in MP3 format. I found your article quite interesting and it has helped me in getting better MP3 encoding. I have made some experiments by myself with your source file (“Swept_24.wav”) and foobar2000 plus LAME 3.99.5 and found almost same conclusions. It seems that it is better to first down sample if compared to a direct input in LAME. Foobar have a “simple mode” and a “ultra mode” for sample rate conversion. In “simple mode” it was better to down sample to 48 KHz instead of to 44.1KHz (once the source file has a sample rate of 96KHz), but I presume that for an original 88.2Khz it is better to down sample to 44.1Khz. In “ultra mode” I found practically no difference for both sample rates. Regarding to dithering, I’ve seen many articles on the Internet saying that dither (or not dither) is irrelevant since there is no “bit-resolution” for MP3 as there exists for WAV or FLAC, for example. Their basic explanation is that MP3 is not encoded in time domain (amplitude x time) but in frequency domain, so “bit-resolution” has no application. Other articles state that MP3 is always encoded in 16-bit resolution. I am not sure what is the correct assumption but I think it deserves a further explanation for the right use (or no use) of dithering.
Best regards,
Eduardo Ono
Thank you so much Jeremy M. for sharing your findings! It looks like we both arrive at the same conclusions and recommendations BUT using different tools (e.g. you are using Audiofile Engineering software samples and Izotope Dither tools). This is interesting 🙂 I am sending you a reply about your email. Cheers!
Emerson
Great Article!
I also reran the same test using a Mac with os Lion (10.7.4). I also used different software just for comparison. I used iZotope’s RX for the spectral images, dithering (MBIT+), and Resampling from 96Hz to 44.1Hz. I then used Sample Manager by Audio Engineering to batch encode to 320kbps MP3 using the LAME encoder. I have the same conclusions. See images below (click the images for zoomed version).
1.) This is the original Wave File. I used the “Swept_24.wav” from the test signals provided at the top of this article.
2.) This is the Wave File resampled from the 96Hz to 44.1Hz using isotope RX Advanced Resample plug in.
3.) This is the wave file dithered from 24 bit to 16 bit but the sample rate is the same 96Hz.
4.) This is the wave file dithered from 24 bit to 16 bit and the sample rate is resampled to 44.1Hz.
5.) This is the encoded mp3 file using the LAME encoder and Sample Manager by Audiofile Engineering software. This is a straight encode with no dithering nor any resampling.
6.) This is the encoded mp3 file using the LAME encoder and Sample Manager by Audiofile Engineering software. This is MP3 encode had no dithering but was resampled at 44.1Hz.
7.) This is the encoded mp3 file using the LAME encoder and Sample Manager by Audiofile Engineering software. This is MP3 encode which was dithered using iZoptope RX dither module and was resampled to 44.1Hz.
8.) For giggles this MP3 encode was dithered using iZoptope RX dither module and was not resampled to 44.1Hz.
Observations:
1. It is better to down sample from 96 KHz sample rate to 44.1 KHz before doing mp3 encode
2. Do not dither as it adds too much noise and artifacts
3. The LAME MP3 encoder does a form of down sampling already. SO be aware.
I’ve bounced back on this question for some time -“To dither or not to dither for MP3”. My project is converting my old vinyl to uncompressed audio wave format so I can archive but then also keep a 2nd compressed audio copy (MP3) for playing out on Serato Scratch Live. I’ve recorded some records at 16 bit and others at 24 bit. Going forward Ill rip my vinyl at 24 bit to keep as faithful copy as possible. If I don’t plan on adding to a CD then I assume I can play the higher bit depth and skip the question in the first place. Anyways thought I’d share my findings as well.
Thanks Scotty, this keeps me pondering also. As a background of the above test, I’m not using the Reaper rendering tool. I’m using the Reaper Batch converter that allows the user to set the output sample rate. In test 1 above, I set the output sample rate to be the same as the source file. So yes, I am directly feeding the 24/96 source to the LAME encoder, this is the screenshot:
Obviously If I tell Reaper that the output sample rate should be the same as the source file, then Reaper should not automatically perform SRC right? Otherwise this Reaper option in the Item Converter would be pretty useless and should be remove from that tool.
Granting it won’t automatically convert sample rate, the audio data would then be handled by LAME resample function that convert it to MP3 format along with SRC,etc. The first graph in test 1 is the LAME result (no SRC done by REAPER):
But when I set the Reaper to do the SRC, this is the result:
That is obviously different from LAME resample processing.
Don’t forget that Reaper has built-in sample rate conversion that becomes active as soon as a different sample rate is specified for an output file. Therefore, it is not necessarily LAME that’s adding aliasing, noise, etc., but Reaper itself. Have you tried feeding the 24/96 file directly to LAME and using its own resample function?
Probably, I have not seen the actual LAME MP3 encoding source code. It would be exciting to know some LAME developers commenting on this topic. It could also possible that they implement their own dithering during the MP3 conversion process. To my ears, MP3 created from LAME using high resolution digital audio (e.g. 24-bits) sound better than converting from 16-bit.
Is it possible that LAME does a “great job in eliminating dither noise” because it is not really adding dither at all, but simply truncating when going from a higher to lower bit rate? That could explain the results in #1 and #4.
Hi Scott,
Yes, at first I didn’t explore much about Adobe Audition 1.5. I did deeper and found out it does include a spectral analysis tool which can be useful in any audio frequency spectrum related study. Thank you for dropping by. Cheers..
Cool. I didn’t know Audition had a spectral analysis tool in it. Good study.