Many audio related applications are known to have a not really nice ID3 editing capabilities. Often they provide either very few fields or too many. Let’s take for example SoundJuicer.
What is good? UI is simple. What is not so good? There is no way to edit more tags that are possibly available. You can’t tell if there is a “Year” field. And you can’t add a composer, if “Artist” represents only performer (classical music, jazz etc.).
So here is my simple proof-of-concept mockup:

I don’t claim to follow HIG in all aspects as of now. Here is just a concept how it should work.
The basic idea is that user usually knows better what ID3 fields/tags he needs to be present.
- This dialog shows as many ID3 fields as the file has.
- If you need to change some of them, simply edit the value to the right of the label representing name of that field.
- If you need a new field, add it from a combobox, fill in the value and click “Add” button. A new row will appear above.
- If no tags are present at all, start with a minimal default set of tags (Title, Artist, Genre) ready to be filled.
- If more than X fields are present (with X like 6 or 7), vertical scrollbar appears to prevent the dialog from growing too high.
- If you need to delete some field, click “Delete” button.
- Once you added a new field, it cannot be used again. So combobox should “stay tuned” to what is happening above him.
This mockup was done basically with Audacity in mind. Remembering SoundJuicer, “Next Track” and “Previous Track” buttons should be added.

Another detail: whether amount of preset ID3 fields should be infinite or not. Probably developer should make a default set of fields/tags and let users edit it.
A default set of fields/tags would look like:
- Title
- Artist
- Composer
- Conductor
- Album
- Number of track
- Year
- Genre
- License