Workflow for simple sorting

Hope someone can assist.

I have a very simple case. And I can’t figure out how to:

  1. Create a script with subdirectories, and
  2. Generally optimize the workflow.

My Scenario: I have about 100 directories that are each allegedly filled with top songs of a particular year. Also, a heck of a lot of duplicates. I’m in Windows.

My goal: I don’t care about albums. I also don’t care about having all albums or songs of a particular artist appear under that artist in an album sub-sub-directory, except that I do want songs to appear under the subdirectory of a given year. I would like to just have my directories appear as follows:

e:/1971/Carol King/I feel the earth move

and then have each Carol King song of 1971 appear in that artist subdirectory in that year. Not sure how to make it do that. Every time I do slashes I get an error message from Picard.

Also, the dups. I first killed all exact dups with DupeGuruME (Yes, I know it’s old, but it’s all I got). I also have an up-to-date Similarity, so that I can weed out lower quality songs (which may be a function of significantly lower bitrate).

Assuming I have the right script, I guess I load a directory, Alt-A everything on the right side, click on Lookup, wait, and then after that click on Scan. Not sure of what else to do, or if that’s the right approach.

Thank you!

For your file naming script, you might try something like:


As for workflow, it sounds like the best match for your situation is “When files are not grouped and have little or no existing metadata”.

Finally, Picard isn’t really set up to de-duplicate your random collection of songs. I’m not sure, but you may be able to spot duplicates when matching files to tracks in the right-hand pane, or later by reviewing the files in your artist directories.


Thank you. But when I run this script, no subdirectories are created. I get some songs in the form:

Song-Artist, and most just Song

If it’s not creating the directories, then I suspect that you don’t have “Move files when saving” enabled in your configuration settings. See the File Naming Options section of the documentation for more details. Also, you have the script set up as a File Naming Script and not as a Tagging Script, right?

As for the titles, it sounds like you are not matching the files to tracks in the information retrieved from MusicBrainz when you do your scan/lookup. Either that or perhaps you don’t have the “Rename files when saving” option enabled. Are you following the instructions that I suggested earlier, in particular Step 3 which is described in detail in the “Matching Files to Tracks” section of the documentation? This is how Picard knows which metadata to use when processing the file naming script. If you don’t do this, then Picard will try to use whatever metadata it finds in your existing files.

Thank you. That worked in creating subdirectories under Artist directories. I had not done a Move. But I didn’t see why a Move was needed.

My logical issue is why does there need to be a Move, in order, for example, to create a set of subdirectories? What is the logical connection? Why could it not, if so directed, change the original directory without a Move into the same directory structure it creates when a Move is requested?

Also, I noticed that while all the songs in my directory were released as top 40 songs in the year which is the same of the directory, when it did the Move the subdirectories your formula created were all over the place, some much later. That’s probably because the album identified was released much later, even though the song itself is earlier.

I’m sure others have raised this before. Is there a solution?

The closest thing that I can suggest is to change your file naming script to:


By definition, what you are describing is “Moving” from the current location to the newly constructed folders.

Go into OPTIONS and find METADATA \ PREFERRED RELEASES. Push Compilations to the far left, and Singles\Albums to the far right.

What you are likely seeing is lots of compilation matches. In fact, it sounds like what you want is an “original release date” script. (as shown in @rdswift’s post above).

Picard is designed to find actual releases, what you are requesting is Original Release details.

1 Like