This post is my relaying what I’ve learned in two days about MusicBrainz Picard’s Tagger Scripting. It is formatted in a way those who are new can reflect on. (Those who are experienced are welcome to contribute their knowledge, I just invite you to keep it simple for those who are new to understand.)
I’ve been playing with MusicBrainz Picard for a while now. I started using iTunes when I was young and got used to iTunes sorting my music for me. Now that’ve decided to convert to a different music player, the daunting task of reorganizing existing files and organizing future files seemed unreasonable. But, luckily, I found out that MusicBrainz Picard (Picard for short) apparently had the capability to organize your music for you.
Resources: Here is Picard’s own scripting dictionary. Its quite confusing, but can help you figure out what something generally does; Appendix E: Scripting Functions Listed Alphabetically — MusicBrainz Picard v2.13.3 documentation
The scripting tool in question can be found in the File Naming settings are under: Options>Options>File Naming>Edit file naming script… (Note: It’s important to allow Picard to actually move your files for this to work.)
(Optional Setup):
- You might want to write down what type of organization hierarchy you want. This gives you a good place to start. (Ex: release type/ artist first letter/ artist/ yyyy.mm.dd, release type, album name, extension/ disc number, track number, title)
- Create a new script to work in. This can be done in the editor via: Script>Add a new script>Empty / Blank Script
- Name your new script: “Preset #: info on hierarchy” (Ex: Preset 4: [Release Type]/[Artist First Letter]/[Artist]/[yyyy.mm.dd, Release Type, Album Name, and Extension]/ [Disc Number] - [Track Number] [Title]) This makes it easier to find and acts as a good description for future use.
My Script
$noop("$noop()" is what we use for comments. They do not effect the Script unless done incorrectly.
The percentages call the information or "get" the information to use in the file naming. The forward slashes indicate a folder.
They create a new folder with the name of the information called inside that of the previous folder.)
$substr($upper(%releasetype%),7)/ $noop(Gets the release, but because it displays: "album; Soundtrack" I've subtracked the word 'album' from the release type.)
$left(%albumartist%,1)/ $noop(Returns the first left most letter from the album artist's name.)
$if2(%albumartist%, %artist%)/ $noop(Artist Folder: Gets the first 'album artist'. If there is none to be found then the first name listed under 'artist' will be used.)
$dateformat(yyyy.mm.dd)%date% (%_primaryreleasetype%) %album% [%_extension%]/ $noop(Album forlder: Sets the date format to yyyy.mm.dd. Pulls the date, and displayed in parentheses the release type, or the type of album; Single, ep, etc. Lastly the Album name followeed by the file type.)
$if($gt(%totaldiscs%,1), %discnumber%-)$num(%tracknumber%,2) %title% $noop(Song file: Pulls the disc number, if applicable, followed by the track number; limited by 2. Lastly, the song title.)
I hope this helps in any regard. My script is simple, but feel free to use my tagger script if you feel so inclined. I only request you actually read and learn what everything does.