Formats & checks · How we test and maintain this guide
Controlled signals, not a sample of Suno's catalogue
We generated ten deterministic audio signals and processed each with both Original and MP3. Five inputs were PCM WAV, three AAC in M4A, and two existing MP3 files. Their intended lengths range from 12 to 150 seconds; sample rates and channel counts vary. These are test signals created for this measurement, not downloaded songs, listening recommendations, or evidence of permission to download somebody else's music.
The test calls the same audio preparation, MP3 encoder, filename and manifest functions used by the workspace. Source bytes are supplied locally to an isolated desktop browser. No Suno resolver or media service is contacted. Consequently, the processing column in the CSV measures local preparation under that setup, not public-site download speed or the time a visitor will wait on a different machine.
What each output contained
| Sample | Input | Signal | Original | MP3 | MP3 bitrate | Duration difference |
|---|---|---|---|---|---|---|
| signal-01 | wav | 12 s | 1.01 MiB | 0.28 MiB | 192 kb/s | 0.042 s |
| signal-02 | wav | 24 s | 4.39 MiB | 0.55 MiB | 192 kb/s | 0.033 s |
| signal-03 | wav | 36 s | 6.06 MiB | 0.83 MiB | 192 kb/s | 0.049 s |
| signal-04 | wav | 48 s | 2.93 MiB | 1.10 MiB | 192 kb/s | 0.039 s |
| signal-05 | wav | 60 s | 10.99 MiB | 1.37 MiB | 192 kb/s | 0.029 s |
| signal-06 | m4a | 75 s | 1.16 MiB | 1.72 MiB | 192 kb/s | 0.050 s |
| signal-07 | m4a | 90 s | 1.39 MiB | 2.06 MiB | 192 kb/s | 0.044 s |
| signal-08 | m4a | 105 s | 1.62 MiB | 2.40 MiB | 192 kb/s | 0.038 s |
| signal-09 | mp3 | 120 s | 2.29 MiB | 2.29 MiB | 160 kb/s | 0.000 s |
| signal-10 | mp3 | 150 s | 2.86 MiB | 2.86 MiB | 160 kb/s | 0.000 s |
Sizes use MiB, where one MiB is 1,048,576 bytes. The bitrate column comes from an independent media probe, not from the filename. Duration difference compares the probed MP3 output duration with the probed source duration. Encoder framing can add a small duration difference even when the complete output decodes successfully; this is different from a partially transferred song.
All ten Original outputs matched their source SHA-256 values. The two MP3 inputs also remained byte-identical in MP3 mode: the workspace does not encode an MP3 again merely to apply the same extension. The other eight inputs went through the 192 kbps MP3 encoder. Keeping an existing MP3 explains why a bitrate in the table can differ from the conversion setting.
We independently inspected and fully decoded all twenty outputs with FFmpeg. That check establishes that these particular files can be read to the end by the test decoder. It does not establish perceived musical quality, perfect playback in every application, preservation of every metadata tag, or equivalence to an official lossless export.
Archive assembly is a separate measurement
| Mode | Audio files | Total entries | ZIP size | Assembly time |
|---|---|---|---|---|
| original | 10 | 12 | 34.71 MiB | 274.3 ms |
| mp3 | 10 | 12 | 15.47 MiB | 119.1 ms |
Each archive contains ten audio files plus tracks.csv and manifest.json. JSZip uses STORE, the same no-compression setting as the application. We reopened each ZIP and compared every extracted audio hash with its prepared output. The timing covers archive generation after the audio is ready; it excludes generating the source signals, transfer, audio conversion, and the browser's final save-to-disk action.
Reproduce the inputs and inspect the records
- Download the signal generator. Place it in a
scriptsfolder inside a new working directory. It uses Python's standard library plus FFmpeg and ffprobe on your path. - Run
python scripts/generate-audio-fixtures.py. It writes deterministic sources and a fixtures.json record beneath that working directory'sartifacts/runtime/content-trust/audiofolder. - Compare source hashes, durations, codecs and sizes with the 20-row measurement CSV. Local processing timings will vary.
- Read the full measurement JSON for browser, CPU, encoding settings, generator hash, per-output hashes and archive checks.
Choose for compatibility, not a bigger number
The sample mix deliberately contains large uncompressed sources, so the totals are not a typical Suno-download size forecast. A smaller MP3 can be convenient for a player; an Original file avoids this extra conversion. Neither a larger file nor a higher nominal bitrate restores detail that was missing earlier. Compare one permitted file in your actual destination application before preparing a collection.
This is one recorded run per mode on one Windows desktop, not a repeated performance study. Browser version, CPU load, sample content and available memory affect timings. Use the CSV as a reproducible example and a way to understand the output fields, rather than a speed guarantee or a comparison with another service.