Note that Mp3Tag does not use %artist% as a substitute for %album artist% in the script in case there's no %album artist% present in the tag.
Here's my "Tag -> Filename" script, maybe it's of use to you:
$if(%album artist%,%album artist%\,%artist%\)%year% - %album%\$if(%disc%,CD %disc% - ,$if(%discnumber%,CD %discnumber% - ,))$num(%track%,2) - $if($eql(%album artist%,Various Artists),%artist% - ,)%title%
It works for all major scenarios in my collection, so I don't have to choose from the drop-down list:- folder structure consists of three parts: 2x directories & 1x file. There's no redundant information saved in any three of them. First directory contains artist info, second directory contains album info, and the file name contains track info.
- (if present) saves multiple disc info into the file names
- (if present) uses album artist for the first directory
- (if present) saves multiple artists in the file name if album artist is "Various Artists" (i.e. a "pure" compilation, if album artist is a real artist but some tracks were credited for another artist then this info is not saved into the file name.
- pads track numbers less than 10 with a leading zero for better filesystem sorting
As a secondary script for when I have changed the track titles of an already "treated album" and I want to update the file names, I just use the last part (file names):
$if(%disc%,CD %disc% - ,$if(%discnumber%,CD %discnumber% - ,))$num(%track%,2) - $if($eql(%album artist%,Various Artists),%artist% - ,)%title%
Other additions could be to add more $if clauses:- in case there's no %year% don't write "%year% - "... you get the idea
- or in case there's no album info (%album%), always include %artist% in the filename instead of creating an artist and album sub-directory.
But actually I don't have any need for that, because I almost solely have mp3s ripped from albums. And those mp3s that are not, I don't rename them anyway nor do I edit their tags.