Metadata editing

Audio metadata editor

Tags are rewritten while the audio stream is copied through untouched. Nothing is re-encoded, so editing metadata costs no quality at all — a 320 kbps MP3 stays exactly the file it was.

MP3M4AFLACOGGOpusWAVAIFFMP4M4R

…or drag files and folders here. Add as many as you like — everything is processed on this device.

.aif .aifc .aiff .flac .m4a .m4r .m4v .mp3 .mp4 .oga .ogg .opus .wav .wave

The important property of a metadata editor is that it must not touch the audio. Sonic Batch copies the encoded stream verbatim and rewrites only the tag containers, which means you can retag a lossless archive or a carefully-encoded MP3 without a single sample changing. The file panel reports the path used, so you can confirm it was a remux rather than a re-encode.

Tag formats differ by container and that matters in practice: MP3 uses ID3v2, MP4/M4A uses iTunes-style atoms, FLAC and Ogg use Vorbis comments, and raw ADTS AAC supports no metadata whatsoever. The compatibility table below shows what survives where, and the editor disables fields the target container cannot store rather than silently dropping them.

Does this change the audio quality?

Completely lossless. The audio stream is copied bit-for-bit and only the tag data is rewritten. This is the one page on the site where the output audio is guaranteed identical to the input.

  • Raw ADTS .aac files cannot store metadata at all. Convert them to M4A first if you need tags.
  • Unicode works, but some very old players and car stereos display only Latin-1 and will show question marks. That is the player, not the file.
  • Strip-all removes cover art too. There is no undo — keep an original if the artwork matters.

A worked example

Retagging an album that ripped with wrong track order

  1. Drop the album files in and drag them into the correct order in the queue.
  2. Set Album, Album artist and Date once, then use Apply to all.
  3. Set the Title and Track number per file — the queue keeps your per-file edits separate from the shared fields.
  4. Convert all. Each row confirms “remux, no re-encode”, and the files are downloaded with the audio untouched.

Fill album artist, and use strip-all before sharing

Album artist is the field that stops compilations scattering across your library, and almost every rip tool leaves it blank. Set it. In the other direction, strip-all is worth knowing about before you share files: tags can carry the ripping software, encoder settings, comments, purchase identifiers and sometimes a name or email address. If you are sending audio to someone outside your organisation, strip it.

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 formats accepted by this page
InputWhat it isChromeFirefoxSafariiOS
MP3The universal lossy format. Plays on essentially every device made since 1998.NativeNativeNativeNative
M4AApple’s default AAC container. Better quality than MP3 at the same bitrate.NativeNativeNativeNative
FLACLossless compression, typically 50–60% of WAV size, bit-identical when decoded.NativeNativeNativeNative
OGGRoyalty-free lossy codec. Standard in game engines, Godot, Unity and Wikimedia.NativeNativeEngineEngine
OpusThe best-sounding lossy codec below 128 kbps. Used by WhatsApp, Discord and YouTube.NativeNativePartialPartial
WAVRaw PCM samples with a small header. Perfect fidelity, roughly 10 MB per stereo minute.NativeNativeNativeNative
AIFFApple’s uncompressed PCM format — the WAV equivalent for Logic and Pro Tools.PartialPartialNativeNative
MP4The standard video container. Its audio track is almost always AAC.NativePartialNativeNative
M4RAn M4A file with a .m4r extension. iOS only lists it as a ringtone if it is ≤ 40 seconds.PartialPartialNativeNative
Output formats this page can write
OutputEncoderBitrates / depthSample ratesTags
MP3libmp3lame32–320 kbps8–48 kHzYes + artwork
M4Aaac32–320 kbps8–48 kHzYes + artwork
FLACflac16, 24-bit8–96 kHzYes + artwork
OGGlibvorbis32–320 kbps8–96 kHzYes
Opuslibopus16–256 kbps8–48 kHzYes
WAVpcm_s16le16, 24, 32-bit8–96 kHzYes
AIFFpcm_s16be16, 24-bit8–96 kHzYes
M4Raac32–320 kbps8–48 kHzYes
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.

What each format can store

Tag and artwork support per container
FormatTagsCover artNotes
MP3YesYesID3v2.3 plus an ID3v1 fallback. Cover art stored in an APIC frame.
M4AYesYesiTunes-style MP4 atoms. Cover art fully supported.
FLACYesYesVorbis comments plus a METADATA_BLOCK_PICTURE for artwork.
OGGYesNoVorbis comments. Artwork support across players is too patchy to write.
OpusYesNoVorbis comments. Artwork support across players is too patchy to write.
WAVYesNoRIFF INFO chunk. Many players ignore it; keep names in the filename.
AIFFYesNoID3 chunk inside the AIFF container. Support varies by player.
MP4NoNoRead-only format in Sonic Batch — tags can be inspected but not written.
M4RYesNoiTunes-style MP4 atoms. Cover art fully supported.

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.

Read the full privacy detail

Troubleshooting

My player still shows the old tags.

Most players cache metadata in a library database. Remove and re-add the file, or force a library rescan.

Cover art did not appear.

Check the target container supports it — Ogg and raw AAC are the awkward cases. Also check the image is a JPEG or PNG; other formats are rejected.

Non-Latin characters show as question marks.

The tag is written as UTF-8 correctly. Older hardware players and some car stereos only render Latin-1. Nothing in the file can fix a player limitation.

Frequently asked questions

Does editing tags re-encode the audio?

No. The audio stream is copied through unchanged and only the metadata is rewritten. The result is bit-identical audio in a file with different tags.

Which tags can I edit?

Title, artist, album, album artist, composer, genre, date, track, disc and comment, plus embedded cover art. The compatibility table shows which of those each container supports.

Can I remove all metadata for privacy?

Yes — the strip-all option writes the file with no tags and no artwork. Worth doing before sharing audio, since tags often carry more identifying information than people expect.

Can I batch-edit a whole album?

Yes. Shared fields use Apply to all, and per-file fields like title and track number stay independent.