Some may not agree but Amarok lacks a convenient tagging solution. Below I'd like to sketch a proposal for another tagging solution, arguably a better one.
- The following tags should be supported: title, artist, composer, album, genre, track, year, comment.
- It should be possible to change tags for an individual file.
- It should be possible to change selected tags for a whole bunch of files at once.
- It should be possible to create tags from a complete file name (i.e., including path).
- It should be possible to change a complete file name using the tags.
- Autonumbering should be available for both tag and file renaming patterns.
- undo operation should be supported
There may be a rollout block just bellow the playlist with the following fields:
- Filename match pattern,
- Filename replace pattern,
- Title, Artist, etc,
and two buttons: Rename (Alt+Enter), Undo. Both Filename match pattern and Filename replace pattern should apply to complete filenames (including path).
Filename match pattern should accept regular expressions and provide a user with the parts that were matched against (I mean those that were in brackets in the regular expression), name them %1, %2, ...
The program should provide a user with the tags, name them %a, %t, ...
Also there should be something like %0, %00, %000 for automatic numbering (that starts from 1 and increments with every call).
Tag fields as well as Filename replace pattern should accept %1, %2, ... as well as %a, %t, ... and %0, %00, %000.
When rename is clicked, selected files (selected in the playlist) are matched against Filename match pattern and for every file that is matched its filename and all the tags are changed according to the correspondent fields. Default values for patterns may be:
- Filename match pattern: (.*)/([^/]*)
- Filename replace pattern: %1/%2
When a set of files is selected in the playlist, if a tag has the same value for all the files, then this value is shown in the correspondent field, if not then % notation is used, say %t for title when tracks have different titles.
I think in this way the interface is not going to be overloaded, it will be the same for different tagging operations and yet quite powerfull.
I see only two drawback here:
- It may be frightening for those unfamiliar with regular expressions, though it may have a simpler version, where pattern fields are hidden (thus disabling filename renaming functionality).
- It may be frightening to work on complete filenames (including paths), though there may be a switch to a mode without paths.