I have fairly large collection of classical music (approx 10k songs), that I want to clean up / restructure tags. Generally, I aim to follow the convention that is proposed in several www articles, i.e. to put the composer in the ARTIST tag, and I would like to achieve that the ALBUM name becomes identical for all songs that come from the same CD originally, without using COMPILATION (unless there were pieces of different composers on the CD).
As all CDs were ripped with iTunes, all songs/files have the ITUNES_CDDB_IDS field completed (unique value per album).
So I want to accomplish the following :
copy old ARTIST and old ALBUM to COMMENT field (e.g. separated by a | ). This is just to not loose all the information currently in the tags. I also could copy either old ALBUM or old ARTIST to COMMENT, and the other to another (not used) field. But I am a bit short of inspiration which other field to (mis-)use, and I think that keeping both in the comment field, separated with a | would allow me to easily consult the info, and also to filter out again both separate values if in the future I want to undo.
For all songs/files with the same CDDB_ID and the same COMPOSER, the COMPILATION must be set to "0" and the ALBUM value must be made identical :
2.i) if the existing ALBUM value and ARTIST value is the same for all songs with the same CDDB_ID, set the new ALBUM value as "old ALBUM" [by old ARTIST]" of the 1st song of the album (the square brackets and the "by" is just for easier reading)
2.ii) if there are different ALBUM values and/or different ARTIST values, set the new ALBUM value as in 2.i), but add "E.A." (et alii) behind either the old ALBUM and/or old ARTIST respectively.
2.iii) copy COMPOSER field to ARTIST
If CDDB_ID is identical, but there are different COMPOSER values, set COMPILATION to "1". (I don't know yet whether I could automate the ALBUM value change; if there are not too many albums, I might do this manually, otherwise it will be a variation of 1), and keep ARTIST unchanged (the album will be filed under compilations anyway, so ARTIST can remain)
and 2.iii) are not too difficult, as this are just tag/string manipulations on song level, so this I know how to do.
My question is how to accomplish 2). Is the scripting language powerful enough to work on a group of songs/files based on a common ID? How would I have to tackle that? Any hints/pointers/examples?
And 2.i) is the critical / must-have part of course, but I guess that once I know how to accomplish this, it would not be much more difficult to add the test on the ARTIST and ALBUM fields (to add or not the E.A.).
A direct (elegant) solution with actions/scripting would of course be best (but I have no ideal whether this would be possible).
In case it is not possible, I was already thinking about work-arounds / shortcuts:
- create a new directory structure based on the CDDB_IDS, and then it is maybe easier to work with files in the same directory?
- export the entire song list & tags into excel, do all the manipulation there, export as txt file, and use this to change the tags in mp3tag (this is obviously not an mp3tag solution ...)
Thanks for your help !!