How many MP3 files can you merge into one, and in what order?
Short answer: the number of files is not what stops a merge; the total length is. In our tests the audio joiner merged 100 MP3 files into one track in the order we gave them, with no samples lost or added between them:
- 2 to 100 files (10 s each) all merged. 100 files took 5.4 s to open and 5.2 s to save as WAV, or 157 s as a 128 kbps MP3.
- 16 min 40 s in total (100 files) and 15 min (5 files of 3 min) worked. 30 min (10 files) and 33 min 20 s (200 files) opened, but the tab was killed for lack of memory when we pressed Merge. That was on a machine with about 2 GB of memory free (2,026 to 2,638 MB).
- Order: clips play top to bottom in the order your browser hands them over; the page does not sort them by name. Files you add later go to the end.
To combine MP3 files: choose them all at once in the audio joiner, check the list, move clips with the arrows or the ☰ handle, then pick MP3 (or WAV if you will edit again) and press Merge and download.
Why length matters and the number of files does not
A browser cannot stick MP3 files together as they are. The joiner decodes each file to plain samples, keeps all of them in memory, lays them end to end, and writes one new file. A clip costs memory by its length: one second of stereo audio is 44,100 samples for the left side and 44,100 for the right, stored as 4-byte numbers, so 352,800 bytes, or about 21 MB per minute. Whether those minutes come from 5 files or 100 makes little difference.
Pressing Merge needs more memory again: the joined track is built as one more full-length copy, then turned into 16-bit samples and written into the file. So the merge step, not opening the files, is where a long job runs out.
How we tested
- Tool: this site's audio joiner, run in Chromium 153 through Playwright 1.63 on a local copy of the page, on a 4-core server (Intel Xeon E5-2699 v4) with 9,941 MB of memory, of which 2,026 to 2,638 MB was free before each job (1 MB = 1,048,576 bytes in memory figures). Each job used a fresh browser, picked the files, waited for all of them to open, and pressed Merge and download.
- Music: a 30 s excerpt of Mozart's Symphony No. 40, first movement, played by the Musopen Symphony, in the public domain on Wikimedia Commons, converted to 44.1 kHz, 16-bit stereo. We looped it from a different starting point for every clip, so no two clips were the same and a clip in the wrong place would show up.
- Files: 200 clips of 10 s and 20 clips of 3 min, saved as 128 kbps MP3 with FFmpeg 4.4.2 (libmp3lame, which writes the LAME header that tells a decoder how much silence to skip). Also 100 clips of 10 s saved with the encoder this site uses, which writes no such header, and three mono M4A (AAC) files of 20, 25 and 30 s at 48 kHz.
- Checks: time to open all files and time to export; memory used by the page's scripts and by all Chromium processes; for every WAV export, each clip compared sample by sample with FFmpeg's own decode of the same MP3, at the place where it should be.
Results by number of files
| Files (10 s each) | Total length | Open all files | Save as WAV | Save as MP3 128 kbps | Merged MP3 size |
|---|---|---|---|---|---|
| 2 | 0:20 | 0.3 s | 0.2 s | 3.8 s | 320,574 bytes |
| 10 | 1:40 | 0.6 s | 0.6 s | 16.4 s | 1,600,783 bytes |
| 50 | 8:20 | 2.7 s | 2.8 s | 71.4 s | 8,000,574 bytes |
| 100 | 16:40 | 5.4 s | 5.2 s | 157.3 s | 16,000,731 bytes |
| 200 | 33:20 | 11.0 s | tab killed | tab killed | none |
Opening time grew with the number of files at about 0.05 s per 10 s clip, and nothing failed to open. Every WAV export from 2 to 100 files was exactly 441,000 samples per clip long, and every clip matched FFmpeg's decode of the same file within 2 steps of the 16-bit scale (out of 65,536), in the order we chose. So the joins were gapless: these MP3s carry the LAME header, and the browser used it to drop the encoder's padding.
The MP3 export is the slow part: 8.6 to 9.8 s of encoding per minute of audio on our server. That is the encoder, not the number of files.
Where it stopped: total length
| Merge | Total length | Script memory after opening | Result |
|---|---|---|---|
| 50 × 10 s | 8:20 | 179 MB | merged |
| 5 × 3 min | 15:00 | 326 MB | merged: WAV in 5.0 s, MP3 in 130.6 s |
| 100 × 10 s | 16:40 | 347 MB | merged |
| 10 × 3 min | 30:00 | 631 MB | opened in 7.6 s; tab killed on Merge (WAV) |
| 200 × 10 s | 33:20 | 712 MB | opened; tab killed on Merge (WAV and MP3) |
Script memory followed the length, not the file count: 15 minutes in 5 files used about the same as 16 min 40 s in 100 files. During the 100-file MP3 merge and the 15-minute MP3 merge, all Chromium processes together peaked at 2,019 MB and 2,029 MB. In the three failed merges the system log shows the kernel stopping the browser's page process for lack of memory, while it held 1,883 to 2,414 MB.
Your limit will be different: a computer with more free memory will go further, and a phone may stop sooner. We did not test phones. Splitting the job into batches does not get round it, because the final merge still has to hold the whole length at once.
MP3 files without the LAME header add a gap each
Not every MP3 says how much padding it carries. We merged 100 copies of the same kind of 10 s clip saved without the header. Each one opened 1,368 samples (31.0 ms) longer than 10 s, so the merged track came out 3.10 s longer, 16:43.102 instead of 16:40.000, with a short silence at every join. Why that happens, and how to remove it before merging, is in why there are gaps between joined MP3 files.
Getting the order right
- Pick all files in one go if you can. We handed four files over in a mixed-up order (7, 2, 10, 1); the list showed them exactly in that order, not sorted by name.
- Add the rest later if you need to. Two more files added afterwards (5, then 3) went to the end of the list.
- Check the list before you merge. The arrow buttons move a clip one place per press; for long moves, drag the ☰ handle. Each clip shows its length, and the total length is shown under the timeline.
- Pick the format. MP3 to share or keep, WAV to edit again; how big a merged audio file is has the sizes. Clips with different sample rates are fine; see combining files with different sample rates.
Questions
How do I merge voice memos on an iPhone?
Get the recordings into the Files app first. Apple's iPhone User Guide (iOS 27 version) says recordings are exported from Voice Memos in .m4a format: tap the recording, tap the More button, then Share, then scroll down and tap Save to Files (Export a Voice Memos recording to Files on iPhone). To share several at once, tap Select above the list of recordings (Share a recording in Voice Memos on iPhone). Both pages were read on 2026-10-08; neither describes joining recordings inside the app. Then open the audio joiner in Safari, tap Choose audio files, pick the recordings from Files, and merge.
We did not test on an iPhone or in Safari. In Chromium, three mono M4A (AAC) files of 20, 25 and 30 s, which we made as stand-ins (not real Voice Memos files), opened in 0.9 s and merged to a mono WAV of 75 s, 2 samples short of the exact length after conversion from 48 kHz to 44.1 kHz.
Can I combine two MP3 files the same way?
Yes. Two is the minimum; our two-file merge opened in 0.3 s and saved as WAV in 0.2 s.
Are the files uploaded?
No. The joiner opens and merges them in your browser; see how to check whether an online tool uploads your file.