More > Media Center 15 (Development Ended)
Create Letter Folders Using the Rename Move Copy Tool?
glynor:
So... I have a fairly large library. Not the biggest, but large enough certainly. My M:\Music\ folder is organized using this Folder system currently:
[Artist]\[Album]\if(isempty([Disc #],1),,[Disc #]
Which simply creates [Artist]\[Album] folders, and then includes [Disc #] subfolders if a disc number exists. Unfortunately, I have so many artists in my library that this has slowly become somewhat ungainly when you try to browse it using Windows Explorer or via my SFTP site. I'd like to now change it to have a new top-level folder structure based on the first letter of the artist's name, like so:
M:\Music\B\Beastie Boys\The In Sound From Way Out\12 - Transitions.mp3
However, I see two problems with trying to accomplish this...
1. Most of my artists that start with an article are formatted like "Beatles, the". However, some are not. MC auto-organizes these properly anyway, ignoring the articles when sorting, so it doesn't bother me. For the rename operation, though, I want these to show up "properly" under the right letter. If I use a simple Left() expression, then won't it return "T" for things that start with "The"?
2. I'd also prefer to have a "catch all" folder for my artists that have non-alphabetic names, like 2pac and 2 Live Crew. I basically want to replicate the functionality of an Artist Pane with Grouping set to 1, which would show a 0-9 for those non-alphabetical files.
Has anyone sorted out a way to do this? Is there some special grouping-like expression I can use to accomplish my goal, or should I give up on it?
marko:
First of all, there's a closing parenthesis missing from your expression above, at the end, right after [Disc #]. The expression may still work without it, but you will definitely run into problems if you try to build on that expression any further.
As for your question, here's one I made earlier that might fit the bill for you as it is without any editing. I use it as the first category in my main audio view scheme, and you can see it in action here:
If that looks like it will do the job for you, my advice would be to save the expression as a new calculated library field, I called mine Artists, and the use that in your renaming template.
You don't mention "Multiple Artist" albums. This expression keys off the [album artist (auto)] field and lumps all the "Multiple" fellows under "(Various)"
My proposal for your new library field goes like so:
if(isequal([album artist (auto)],multiple,8),/(Various/),if(isequal(mid([album artist (auto)],0,4),the/ ,1),mid([album artist (auto)],4,1),if(isequal(Mid([album artist (auto)],0,1),1,6),0 - 9,Mid([album artist (auto)],0,1)))
What it does:
[x] Checks for Multiple Artists, and places any found under (Various Artists)
[x] Checks for [album artist (auto)] values that start with "the " (note the trailing space) and if found, returns the first letter of the next word.
[x] Checks to see if the first character of [album artist (auto)] is greater than or equal to 1, and if so, return 0 - 9.
[x] Finally, if all the previous checks have returned as false, return the first character of the [album artist (auto)] value.
So, assuming that works for you, and your new library field is called Artists, your new folder template would be:
[artists]\[Artist]\[Album]\if(isempty([Disc #],1),,[Disc #])
Any good?
glynor:
--- Quote from: marko on November 15, 2010, 01:30:27 am ---First of all, there's a closing parenthesis missing from your expression above, at the end, right after [Disc #]. The expression may still work without it, but you will definitely run into problems if you try to build on that expression any further.
--- End quote ---
That was a copy/paste failure into the forum, but thanks.
glynor:
--- Quote from: marko on November 15, 2010, 01:30:27 am ---What it does:
[x] Checks for Multiple Artists, and places any found under (Various Artists)
[x] Checks for [album artist (auto)] values that start with "the " (note the trailing space) and if found, returns the first letter of the next word.
[x] Checks to see if the first character of [album artist (auto)] is greater than or equal to 1, and if so, return 0 - 9.
[x] Finally, if all the previous checks have returned as false, return the first character of the [album artist (auto)] value.
So, assuming that works for you, and your new library field is called Artists, your new folder template would be:
[artists]\[Artist]\[Album]\if(isempty([Disc #],1),,[Disc #])
Any good?
--- End quote ---
Well... That is pretty darn good. I don't use the Multiple Artist/Album Artist features at all. I prefer my "multiple artists" albums to show up separately under their respective Artist's "categories" under all circumstances. There is nothing that bothers me more than seeing a (Various) or (Multiple) option under "Artist", for some reason. If I want to listen to just that Soundtrack Album (or whatever) I'll just go find the album itself, but that's just me. So I'd have to modify that expression to use [Artist] instead of [Album Artist (auto)]. No biggie.
The article checking system you came up with is clever. However, I'd still have to worry about other articles ("a" and "an", mostly). These are, of course, less common, but still could be an issue. I don't know if it is worth bothering to modify the expression for these, though...
marko:
It's worth bothering about because if the expression allows even just one single file to slip through, it's unreliable, and it will annoy you! Once you save this new field, it should fall slap bang into the "set-it-and-forget-it" category.
So, keyed off the [artist] field, taking "the " "an " and "a " into account, the tweaked expression looks like so:
if(isequal(mid([artist],0,4),the/ ,1),mid([artist],4,1),if(isequal(mid([artist],0,3),an/ ,1),mid([artist],3,1),if(isequal(mid([artist],0,2),a/ ,1),mid([artist],2,1),if(isequal(Mid([artist],0,1),1,6),0 - 9,Mid([artist],0,1))))
Any better?
Navigation
[0] Message Index
[#] Next page
Go to full version