CAF → MP3
CAF to MP3 converter
The audio inside the Core Audio Format container — usually ALAC, IMA4 ADPCM or raw PCM — is decoded and encoded to MP3.
…or drag files and folders here. Add as many as you like — everything is processed on this device.
.aif .aifc .aiff .amr .caf .m4a
In one paragraph
CAF is Apple’s answer to the 4 GB limit in WAV and AIFF. It shows up in older iOS Voice Memos backups, Core Audio exports, Logic project bundles and some iPad recording apps. Outside the Apple ecosystem almost nothing opens it: Windows Media Player, VLC on some builds and most Android players all decline.
Because CAF is a container rather than a codec, what is inside varies. Sonic Batch inspects the file, reports the actual codec, and decodes ALAC, IMA4 and PCM payloads with its self-hosted engine before writing an MP3.
Does this change the audio quality?
If the CAF holds ALAC or PCM this is a first-generation lossy encode and the result is clean. If it holds IMA4 ADPCM — common in older voice recordings — the source is already lossy and fairly rough, so the MP3 inherits that.
- CAF can contain codecs this engine cannot decode. Those files are reported as unsupported with the codec name rather than failing silently.
- Voice-memo CAF files are usually mono. Keep them mono.
- CAF supports very long recordings; a multi-hour file may exceed the memory budget and will be rejected before it can crash the tab.
A worked example
Recovering voice memos from an old iOS backup on a Windows PC
- Drop the .caf files from the backup folder into the queue.
- Check the detected codec column — ALAC files will convert cleanly, IMA4 ones will sound like the original recording did.
- Use 128 kbps mono with LUFS normalisation at −16 so the whole set plays back evenly.
- Download the ZIP and keep the manifest; it records the source codec for each file.
Let the inner codec decide the bitrate
ALAC or PCM inside the CAF means you have a lossless source: use 192 kbps for speech or 256 kbps if there is music. IMA4 ADPCM is already coarse, so 96–128 kbps mono captures everything that is actually there. The detected codec is shown for every file before you commit.
Supported formats, limits and browser notes
Sonic Batch decodes with the browser when it can (faster, no engine download) and falls back to the self-hosted WebAssembly engine when it cannot. Every combination below works in every listed browser; the column only tells you which decoder does the work.
| Input | What it is | Chrome | Firefox | Safari | iOS |
|---|---|---|---|---|---|
| CAF | Apple container used by older iOS Voice Memos. Usually holds ALAC, IMA4 or raw PCM. | Engine | Engine | Partial | Partial |
| AIFF | Apple’s uncompressed PCM format — the WAV equivalent for Logic and Pro Tools. | Partial | Partial | Native | Native |
| M4A | Apple’s default AAC container. Better quality than MP3 at the same bitrate. | Native | Native | Native | Native |
| AMR | Phone-call speech codec: 8 kHz mono, 4.75–12.2 kbps. Decode only — nothing should be created in it. | Engine | Engine | Engine | Engine |
| Output | Encoder | Bitrates / depth | Sample rates | Tags |
|---|---|---|---|---|
| MP3 | libmp3lame | 32–320 kbps | 8–48 kHz | Yes + artwork |
- Max per file
- 400.0 MB
- Max per queue
- 4.00 GB
- Max duration
- 4:00:00
- Max archive
- 1.50 GB
These are enforced ceilings, checked before any decoding starts, not measured maximums — a file over the limit is rejected rather than allowed to exhaust the tab’s memory. Real-world capacity is lower on older phones, which is why the scheduler runs one file at a time on iOS and Safari.
Where your audio goes
Nowhere. Your file is read from disk into this browser tab with the File API, decoded and encoded by code running in that same tab, and handed back to you as a download. It is never transmitted.
That is a structural property of the application, not a policy promise: there are no API routes, no server actions and no third-party processing services in this project, so there is nothing capable of receiving a file. The page’s Content-Security-Policy also restricts connections to this origin, and the automated test suite includes a browser test that fails if any network request during import, preview, conversion or download carries media bytes.
The trade-off, stated plainly:results live in your tab’s memory until you download them. Closing or reloading the page discards them. There is nothing on a server to recover, because nothing was ever put there.
Troubleshooting
Safari plays my CAF but Chrome does not.
Only Apple’s media stack understands CAF, and only for some payloads. Sonic Batch does not depend on it — the WASM engine decodes the file on every platform.
The conversion says unsupported codec.
CAF can wrap exotic Apple codecs. The error names what was found. If it is ALAC, IMA4, PCM, AAC or Opus it will work; anything else is genuinely outside this engine.
The file has no extension.
Container detection uses magic bytes, so a CAF without an extension is still identified as CAF.
Frequently asked questions
What is a CAF file?
Core Audio Format — an Apple container designed to hold very long or very large recordings with any Core Audio codec inside. It is a wrapper, not a codec.
Is CAF lossless?
It depends entirely on the payload. CAF holding PCM or ALAC is lossless; CAF holding IMA4, AAC or Opus is lossy. Sonic Batch tells you which you have.
Can I convert to WAV instead to keep it lossless?
Yes, use the batch converter and choose WAV or FLAC as the output. If the CAF holds PCM or ALAC that path is bit-faithful.
Do I need iTunes or a Mac?
No. This runs in any modern browser on any operating system, and the file is processed locally.