Batch editing Metadata

Any plans to add EDIT METADATA to the repertoire of commands that my be used in a Chain?


Not as yet.
Thanks for the suggestion. Could you explain what the purpose of that would be? Chains are primarily to allow a series (chain) of commands to be run without requiring user interaction, so adding “EDIT METADATA” to a chain would seem to undermine the purpose of using a chain :confused:

I wish to change the GENRE in a large number of files.

When I started into building a digital music library (some years ago) I didn’t realize that one could choose any genre – I thought one was limited to the ones provided in the menu. As a result I’m using some inappropriate genre names that I’d like to change to appropriate ones.

For example, when I first saved a piece of Christmas music, I was surprised to find that CHRISTMAS wasn’t on the menu. (I figured it must be a “politically correct” thing.) So all my Christmas music is in genre CHANSON, since that’s on the menu and begins with the same two letters.


Ah, I see.
Audacity is not really very suitable for that type of job, particularly if your files are in a compressed format such as MP3. Because Audacity is designed for manipulating sounds in all kinds of wonderful ways, before Audacity can do anything it needs to decode the audio data and make a copy of it. When a file is exported, the audio data is re-encoded into whatever format you chose and written to disk. Encoding “compressed” formats such as MP3 always loses a bit of sound quality (which is why we recommend working with uncompressed formats such as WAV).

As you are only wanting to change the metadata and not the audio, you can do that with no loss of sound quality by using a dedicated “metadata editor” such as MP3Tag (

Alternatively, Foobar2000 ( is an excellent audio player that includes tag editing.

I think it’s still a reasonable suggestion (at least for WAV files) - you might want to change tags and edit the audio at the same time.

There is a way already to add the same tag values to files exported using a Chain, which is to set Metadata Editor up before running the Chain. Just enter the tags you want to add to each file then press “Set Default”.

However if there is already a tag in the file you can’t change its value with “Set Default” because Audacity will export with the existing value. I’m not sure that’s the best decision or how often you would want to set a default but not change existing tags. I think that should be an option not default behaviour of “Set Default”.


Perhaps I’m missing something.
If you want the export process to be interactive, why would you want it in a Chain?

If this feature was added, there would be a high risk of breaking existing user Chains. (it would be extremely annoying to set off a batch process, then come back some hours later to find that Audacity was waiting for Metadata for the first file of the batch).

The feature wouldn’t be worth having if there was user input required after starting the Chain.

So as I see it, the Export Metadata command in a Chain would set the same metadata for each file to be exported, adding the tag/value if that tag does not exist, and overwriting an existing tag if the tag already existed. It would be no use for adding individual metadata to files that did not have it already, unless Audacity eventually supports MusicBrainz or a similar open database. If it did, then the Export Metadata command would use that database unless specified to do something else for specific tags.

Even if Metadata Editor was tweaked so that “Set Default” did overwrite, so you could use that before a Chain to batch export metadata, there would still be an advantage in having an Export Metadata Chain command because it would be independent of the current content of Metadata Editor.


That’s what I though.

OK, thanks.
I rarely use Metadata so I don’t know how useful that might be, but I do now see why it might be useful.

I suppose that ideally, if this is the only command in the chain, then it should edit the metadata without importing the audio (so no need to decode/re-encode).

Yes indeed, or anything else that can usefully done in the headers or metadata.