Podcast and Spoken-Word Audio
How to meet ACX audiobook specs in REAPER
Published September 16, 2026
ACX checks three levels on every file you upload: RMS between -23 dB and -18 dB, peaks no higher than -3 dB, and a noise floor no higher than -60 dB RMS. Delivery is a 44.1 kHz MP3 at 192 kbps CBR or higher. REAPER 7 can measure and hit all of this with stock tools, no extensions and no paid plugins: measure with a dry run render, normalize to RMS, hold the peaks down with ReaLimit, and render CBR MP3. Two of the three numbers are a mastering job and take minutes. The noise floor is not, and that is the one that gets most files rejected.
Getting an audiobook bounced by ACX is frustrating in a specific way: the rejection is a number, not a note. The reading was fine, the edit was fine, and the file still came back. That is because ACX runs an automated check on the levels before any person listens, and a file that misses one threshold is returned even when the performance is good.
The good news is that the level specs are objective and small in number. Once you know which REAPER tool reads which number, hitting them is a repeatable end-of-session routine rather than a guessing game. This article covers what ACX requires as of today, how to measure each value in REAPER, how to correct it, and which problem you cannot fix at the mastering stage no matter what you do.
The specs, as ACX states them right now
These come from ACX's own audio submission requirements page, checked on the day this article was published. Sources are listed at the bottom.
| Requirement | What ACX says |
|---|---|
| RMS loudness | Each file between -23 dB and -18 dB RMS |
| Peak level | Peak values no higher than -3 dB |
| Noise floor | No higher than -60 dB RMS |
| Format | 192 kbps or higher CBR, 44.1 kHz MP3 |
| Channels | Mono or stereo, but every file in the book must match |
| Room tone | 1 to 5 seconds at the start and end of each file, and spacing must not exceed 5 seconds |
| File length | No file longer than 120 minutes |
| File structure | One chapter or section per file, with the section header spoken at the top |
| Narration | Human narration; unauthorized text to speech or AI voices are prohibited |
Three things the rest of the internet gets wrong
This matters because if you follow the popular numbers you can fail a spec you were trying to meet.
- Room tone is not "half a second at the head". A very widely repeated figure is 0.5 to 1 second at the start and 1 to 5 seconds at the end. That figure appears in ACX's own 2019 blog post about REAPER, but ACX's current requirements page states 1 to 5 seconds at both the beginning and the end, with a hard ceiling of 5 seconds. The requirements page is the document QA works from, so follow that one.
- Mono is not required. Plenty of guides say ACX only accepts mono. The requirements page says files may be mono or stereo, and that the real rule is consistency: mixed formats inside one book cause errors. Mono is still the sensible choice for a single voice, because it halves the file size at the same bitrate, but it is a preference and not a spec.
- There is no lower peak limit. You will see "peaks between
-3 dBand-6 dB" quoted as a spec. ACX states a ceiling only. A file peaking at-8 dBwith correct RMS is not out of spec.
ACX publishes this directly: RMS can be measured by several different methods, and readings vary depending on the DAW, the meter and the reference wave a plugin was calibrated against. So treat REAPER's number as close, not identical. Aim for the middle of every range rather than the edge, and you absorb the difference.
Measure before you process anything
REAPER 7 reads all three values without any extension. ACX's 2019 REAPER guide sends you to the SWS extension for normalizing and for RMS analysis, which was correct at the time. It is out of date now. REAPER added loudness analysis, RMS normalization and a stock brickwall limiter in the versions since, so a current install already has what you need.
Whole-file RMS and peak
The fastest route is a dry run render. It runs the render engine without writing a file and hands back a statistics window with peak, true peak, RMS and LUFS values for exactly the material inside your render bounds. Section 21.4 of the REAPER User Guide covers the dialog and its options. Set your render bounds to the whole project, run the dry run, and write down the RMS and peak figures before you change a thing.
If you would rather watch levels in real time, drop the JS Analysis Loudness Meter on the master bus and play the file through. It shows RMS alongside the LUFS readings.
Noise floor, which is measured differently
This is the step most people skip, and it is the reason a file that looks fine still fails. The noise floor is not a property of the whole file. It is the level of the quiet parts, the room tone between sentences, with nobody speaking.
Find genuine room tone
Zoom into a gap of at least two seconds where you were silent and still. Not a breath, not a page turn, not the moment your chair settled.
Make a time selection over it
Drag a time selection across that gap only. This is what you are about to measure.
Dry run render the time selection
Set the render bounds to Time selection and run a dry run render. The RMS it reports for that selection is your noise floor.
Check more than one gap
Noise is rarely constant across a two hour session. Measure a gap near the start, one in the middle and one near the end. The worst one is the one that counts.
Raising the level of the file to hit RMS raises the room tone by exactly the same amount. A take sitting at -64 dB of noise that needs +6 dB to reach ACX's RMS range lands at -58 dB and fails. Knowing this before you process tells you whether you are mastering a file or re-recording it.
Fix the noise floor first, because it limits everything else
Work out your headroom in one subtraction. Take the gap between your current RMS and your target RMS, add it to your measured noise floor, and see where it lands. If the result is worse than -60 dB, no amount of limiting or normalizing will save the file. Deal with the noise or re-record.
In order of how well they actually work:
- Remove the source. Fridge, forced air, a fan, a laptop, a window. Every dB you remove at the source is a dB you do not have to claw back with a plugin, and it costs nothing.
- Kill hum separately. Mains hum at 50 or 60 Hz and its harmonics is a narrow, steady problem with a narrow, steady fix, and it lifts the measured floor a surprising amount. Removing hum from a recording in REAPER covers the notch approach.
- Treat the room, or record somewhere smaller and softer. A wardrobe beats a spare bedroom. Recording vocals in an untreated room goes through the practical version of this.
- Denoise, last and gently. ReaFIR in Subtract mode ships with REAPER and will pull a steady floor down. Reducing background noise in REAPER walks through building the noise profile.
Pushing noise reduction until the floor reads -62 dB often leaves the voice sounding watery or swirly in the quiet moments. ACX's automated check does not hear that, but a human reviewer does, and dynamics and extraneous noise are explicitly part of the manual review. A file can clear every number and still be returned.
Set RMS and peak in REAPER
With the floor sorted, the level work is short. Do it in this order, because limiting first and normalizing afterwards changes the number you just set.
1. Even out the performance before you measure loudness
RMS is an average. A file where half the chapter is loud and half is quiet can average into spec while sounding wrong, and inconsistent audio is something ACX calls out directly. Mild compression with ReaComp, or volume envelope rides on the loud and quiet passages, gets you a steadier file. Starting points rather than rules: a ratio around 2:1 to 3:1, threshold set so you are only catching the loudest phrases by a few dB, and attack and release slow enough that you do not hear it working.
2. Normalize to RMS
REAPER's Normalize dialog can target peak, true peak, RMS, LUFS-I, LUFS-M max or LUFS-S max, the same set of measurements the JS Analysis Loudness Meter offers. Choose RMS and set the target near the middle of ACX's window, around -20 dB to -21 dB. The middle is deliberate: it leaves room for the measurement difference between your meter and ACX's, and for the small changes MP3 encoding introduces.
The same normalization options are available at render time, so you can either normalize the item on the timeline or let the render do it. Rendering is the better habit for a book, because every chapter then gets the identical treatment.
3. Hold the peaks with ReaLimit
ReaLimit is REAPER's stock brickwall limiter and is documented in section 16.14 of the User Guide. Put it last on the master chain and set the ceiling to about -3.5 dB rather than exactly -3 dB. That small margin covers the meter difference and the peaks that MP3 encoding can nudge upward on decode, which is also why ACX asks for that headroom in the first place.
Set the ceiling and leave it there. A limiter working hard on narration flattens the life out of a read, and dynamics are part of what a human reviewer assesses. If ReaLimit is pulling down several dB on a regular basis, the fix is step 1, not a harder limiter.
4. Re-measure
Run the dry run render again with the full chain active. Peak should sit at or below your ceiling and RMS inside -23 to -18. Check the room tone selection one more time as well, since normalizing moved it.
Render settings for ACX
ACX wants a 44.1 kHz MP3 at 192 kbps or higher, constant bit rate. Constant is not optional. Variable bit rate files break the encoding ACX does downstream, which is why the requirement is written the way it is.
- Format: MP3, with the encoder set to CBR, not VBR or ABR.
- Bitrate:
192 kbpsis the floor.256or320are accepted, and ACX says outright that listeners will not hear the difference. - Sample rate:
44,100 Hz. - Channels: pick mono or stereo and use it for every file in the book.
- Bounds: render the whole project so your room tone at both ends survives into the file.
- File names: standard letters, numbers, dashes and underscores. Accents and punctuation cause upload problems.
Save this as a render preset once and the rest of the book is one click per chapter. REAPER's batch file and item converter will run the same encoder profile across a folder of finished WAVs if you would rather master to WAV and encode at the end. The general mechanics of the render dialog are covered in how to export audio from REAPER.
Render a 24-bit WAV alongside the MP3 and archive it. If ACX asks for a correction, or you want to re-encode later, you are editing the master rather than re-processing an MP3 that has already been through a lossy encoder once.
Check the files before you upload
ACX has a free analysis tool, ACX Audio Lab, that measures a finished file against the submission requirements and returns a report you can download. Use it. It reads RMS, peak, bitrate, bitrate method, sample rate, mixed channels, duplicate files and spacing, which is most of the automated rejection list.
ACX states plainly that Audio Lab does not detect noise floor or editing errors. A clean report is not a pass. It means the things the tool looks at are fine, and the two things most likely to get a home-recorded audiobook returned, background noise and edit quality, have not been examined at all. ACX also says its automated findings cannot be disputed.
So do your own pass as well: listen to the whole file at least once, and listen specifically for what the automated check will miss. Mouth clicks and lip smacks are the classic example, since a close mic on a long read collects hundreds of them and none of them shows up in a level report. Removing mouth clicks and lip smacks in REAPER covers that job.
What this will not do
- It will not make a noisy room pass. If the measured room tone is close to or above
-60 dBbefore you touch anything, this is a recording problem wearing a mastering problem's clothes. - Hitting the numbers does not mean being approved. The level check is automated and comes first. Editing quality, extraneous noise, pacing and consistency are reviewed by a person afterwards, and are a separate way to be sent back.
- Normalizing does not fix uneven delivery. It moves the whole file up or down. Variation inside the file is a compression and automation job.
- Your reading will not match ACX's exactly. ACX says so itself. Aim for the middle of the ranges.
- None of this applies to podcast loudness. Podcasts are normally targeted in LUFS, which is a different measurement with a different reference. Do not carry a
-16 LUFShabit into an ACX submission. See podcast loudness and the -16 LUFS target in REAPER for that side of it.
If a file still comes back
- RMS too low or too high. The most common cause is normalizing to peak out of habit instead of to RMS. Re-normalize with RMS as the target.
- Peak over
-3 dB. Either the limiter was not last in the chain, or something after it added gain. Check the master chain order and the master fader. - Noise floor over
-60 dB. Measure the quietest gaps again after normalization, not before. If the gain you needed pushed the floor up, you have to reduce noise or re-record. - Bitrate or format error. Almost always VBR slipping through where CBR was required, or a project left at
48 kHzand rendered without conversion to44.1 kHz. - Spacing error. Room tone longer than 5 seconds at either end, or a file that starts abruptly with no tone at all.
- Channel mismatch. One chapter rendered stereo in a mono book, or the reverse. Re-render that file to match.
Measure first: whole-file RMS and peak with a dry run render, and the noise floor from a room tone only time selection. Fix noise before level, because normalizing raises the floor with everything else. Then normalize to RMS around -20 dB to -21 dB, cap peaks with ReaLimit near -3.5 dB, and render 44.1 kHz MP3 at 192 kbps CBR or better. Verify in ACX Audio Lab, then listen all the way through, because the checker does not hear noise or bad edits.
Sources
All retrieved September 16, 2026. StudioRescue has no commercial relationship with ACX, Audible, Amazon or Cockos.
- ACX, “ACX audio submission requirements” (page updated April 15, 2026) - RMS range, peak ceiling, noise floor, bitrate and sample rate, mono or stereo consistency, room tone spacing, file length, file structure and narration policy. help.acx.com
- ACX, “Check your audio quality” (ACX Audio Lab and audio analysis tool FAQ) - what Audio Lab measures, the statement that it does not detect noise floor or editing errors, that findings cannot be disputed, and that DAW measurements may differ from ACX's. help.acx.com
- ACX Blog, “Don't Fear the REAPER” (March 27, 2019) - ACX's own REAPER guidance, including the 0.5 to 1 second head spacing figure and the recommendation to use the SWS extension for normalizing and RMS analysis, both superseded. acx.com
- Cockos, REAPER User Guide, version 7.80 - section 6.18 JS Analysis Loudness Meter, 7.25 Normalizing Items, 7.40 Loudness Unit Full Scale modes, 16.14 ReaLimit: The Brickwall Limiter, 21.4 Dry Run Render Stats and Options. reaper.fm/userguide
- Cockos, REAPER Update Summary Guide - Normalize dialog targets of LUFS-I, RMS, peak, true peak, LUFS-M max and LUFS-S max, and normalization and brickwall limiting at render time. dlz.reaper.fm
- Cockos, REAPER download page - current version 7.80, released September 13, 2026. reaper.fm/download
- Cockos, REAPER purchase page - 60 day full evaluation, then a $60 discounted licence for individuals and businesses under $20,000 yearly gross revenue, or $225 commercial. reaper.fm/purchase