Sample MP3 audio files for testing, free, CC0 and hotlinkable

mp3/sine-440hz-3s.mp3 is the baseline, 128 kbps stereo at 48 kHz, and its measured 3,024 ms are three seconds plus the padding MP3 adds to fill whole frames, which a duration check that expects exactly three seconds gets wrong.

mp3/stereo-lr-5s.mp3 measures 440 Hz in the left channel and 880 Hz in the right, so a pipeline that swaps or downmixes channels changes which tone comes out where. mp3/silence-5s.mp3 is a valid MP3 with no tone in either channel, for code that treats silence as a failed decode.

mp3/with-id3v2-tags-3s.mp3 carries ID3v2 tags and a 100x100 PNG cover, which ffprobe reports as a video stream: an upload validator that refuses audio with a video stream refuses an ordinary tagged MP3. mp3/sine-440hz-30s.mp3 runs 30,024 ms, long enough to test seeking and scrubbing.

mp3/1mb.mp3 is 996,116 bytes at a constant 128 kbps, so its 62,232 ms follow from its size. mp3/10mb.mp3 is 9,950,996 bytes and 621,912 ms of the same stream, for upload limits and players that must stream rather than load.

7 files. The same list as JSON: https://loremfile.dev/mp3/index.json

MP3 files
FileSizePropertiesDescription
10mb.mp3 10 MB (9,950,996 bytes) 621.912 s, mp3 About 10MB of 440 Hz sine at a constant 128 kbps, roughly ten minutes of audio.
Snippets
<audio src="https://loremfile.dev/mp3/10mb.mp3" controls></audio>
curl -O https://loremfile.dev/mp3/10mb.mp3
1mb.mp3 996.1 KB (996,116 bytes) 62.232 s, mp3 About 1MB of 440 Hz sine at a constant 128 kbps, so the duration follows from the size rather than the other way round.
Snippets
<audio src="https://loremfile.dev/mp3/1mb.mp3" controls></audio>
curl -O https://loremfile.dev/mp3/1mb.mp3
silence-5s.mp3 81 KB (81,044 bytes) 5.04 s, mp3 Five seconds of digital silence: a valid MP3 with nothing in it, for code that treats silence as failure.
Snippets
<audio src="https://loremfile.dev/mp3/silence-5s.mp3" controls></audio>
curl -O https://loremfile.dev/mp3/silence-5s.mp3
sine-440hz-30s.mp3 480.8 KB (480,788 bytes) 30.024 s, mp3 A 440 Hz sine wave, thirty seconds, 128 kbps stereo, long enough to test seeking and scrubbing.
Snippets
<audio src="https://loremfile.dev/mp3/sine-440hz-30s.mp3" controls></audio>
curl -O https://loremfile.dev/mp3/sine-440hz-30s.mp3
sine-440hz-3s.mp3 48.8 KB (48,788 bytes) 3.024 s, mp3 A 440 Hz sine wave, three seconds, 128 kbps stereo. The smallest useful audio sample. Measured duration is 3024 ms: 1152 samples past three seconds at 48 kHz, which is exactly one MP3 frame.
Snippets
<audio src="https://loremfile.dev/mp3/sine-440hz-3s.mp3" controls></audio>
curl -O https://loremfile.dev/mp3/sine-440hz-3s.mp3
stereo-lr-5s.mp3 81 KB (81,044 bytes) 5.04 s, mp3 440 Hz in the left channel, 880 Hz in the right. If your pipeline swaps or downmixes channels, this is the file that shows it.
Snippets
<audio src="https://loremfile.dev/mp3/stereo-lr-5s.mp3" controls></audio>
curl -O https://loremfile.dev/mp3/stereo-lr-5s.mp3
with-id3v2-tags-3s.mp3 51.5 KB (51,480 bytes) 100x100, 3.024 s, png, mp3 Three seconds of 440 Hz carrying ID3v2.3 tags: title, artist, album, year and a PNG cover image taken from the published 100x100 fixture.
Snippets
<audio src="https://loremfile.dev/mp3/with-id3v2-tags-3s.mp3" controls></audio>
curl -O https://loremfile.dev/mp3/with-id3v2-tags-3s.mp3

Every MP3 file in one command, each checked against its hash: npx loremfile get --format mp3, or loremfile get --format mp3 after pip install loremfile.

File names follow the naming grammar. Verify a download against sha256sums.txt.