User:BrianFreud/CrazyPicardQTStrings: Difference between revisions

From MusicBrainz Wiki
Jump to navigationJump to search
(Might as well update to my current Ubuntu use :) (Imported from MoinMoin))
 
m (13 revision(s))
(No difference)

Revision as of 08:18, 15 March 2009

The Insanely Long PicardQT File Naming String

Ok, one of the things people know about me is that I have a ton of music. Another is that I hate clumsy music player interfaces. I like my Nautilus/Audacious combo just fine.  :)

I also use my files to clean the database, which in turn lets me name and tag my files better.

This has led to the Insanely Long File Naming String.

Non-Various Artists

$if($eq(%BrianGenre%,),Not Assigned to Release/)$if($not($eq([non-album tracks],%album%)),$if2($if($not(%releasetype%),No Type/),$if($not(%releasestatus%),No Status/),$if($eq(%releasestatus%,official),$if2($if(%barcode%,$if($not(%asin%),No asin - Has Barcode/)),$if($not(%asin%),No asin/),$if($not(%date%),No Date/))),$if($eq(%releasestatus%,promotion),$if2($if($not(%date%),No Date/))),$if(%asin%,$if($not(%barcode%),No Barcode - Has asin/))))$if2($if($eq(%releasetype%,soundtrack),Soundtracks/%album%$if(%releasestatus%, [%releasestatus%])$if(%date%, [$left(%date%,4)] )/$if($gte(%totaltracks%,1000),$num(%tracknumber%,4),$if($gte(%totaltracks%,100),$num(%tracknumber%,3),$if($gte(%totaltracks%,10),$num(%tracknumber%,2),$num(%tracknumber%,1)))). %artist% - %title%),$if($eq(%BrianGenre%,classical),$if2($if($not(%composer%),No Composer/),$if($not(%performer%),No Performer/),$if($not(%conductor%),No Conductor/))Classical/$if(%composer%,%composer%/)$if(%conductor%,%conductor%, )$if(%performer%,%performer%)/%album%/),$if($eq(%BrianGenre%,bogusartists),BogusArtists/,%BrianGenre%/)$if(%overartist%,%overartist%/)%artist%/$if(%releasetype%,[%releasetype%] )$if(%releasestatus%,[%releasestatus%] )$if(%date%,[$left(%date%,4)] )%album%/$if($eq([non-album tracks],%album%),%title%,$if($gte(%totaltracks%,1000),$num(%tracknumber%,4),$if($gte(%totaltracks%,100),$num(%tracknumber%,3),$if($gte(%totaltracks%,10),$num(%tracknumber%,2),$num(%tracknumber%,1)))). %title%))

UPDATED: August 29, 2007: Now supports dynamic zero-padding in track numbers, from 1 to 9999 tracks per release.

  • Note that one trick used here, to separate duplicate files in releases, stopped working with alpha 14.

Various Artists

$if($eq(%BrianGenre%,),Not Assigned to Release/)$if($not($eq([non-album tracks],%album%)),$if2($if($not(%releasetype%),No Type/),$if($not(%releasestatus%),No Status/),$if($eq(%releasestatus%,official),$if2($if(%barcode%,$if($not(%ASIN%),No ASIN - Has Barcode/)),$if($not(%asin%),No ASIN/),$if($not(%date%),No Date/))),$if($eq(%releasestatus%,promotion),$if2($if($not(%date%),No Date/))),$if(%asin%,$if($not(%barcode%),No Barcode - Has ASIN/))))$if2($if($eq(%releasetype%,soundtrack),Soundtracks/%album%$if(%releasestatus%, [%releasestatus%])$if(%date%, [$left(%date%,4)] )/$num(%tracknumber%,2). %artist% - %title%),$if($eq(%BrianGenre%,classical),$if2($if($not(%composer%),No Composer/),$if($not(%performer%),No Performer/),$if($not(%conductor%),No Conductor/))Classical/$if(%composer%,%composer%/)$if(%conductor%,%conductor%, )$if(%performer%,%performer%)/%album%/),$if($eq(%BrianGenre%,bogusartists),BogusArtists/,%BrianGenre%/)$if(%overartist%,%overartist%/)%artist%/$if(%releasetype%,[VA %releasetype%] )$if(%releasestatus%,[%releasestatus%] )$if(%date%,[$left(%date%,4)] )%album%/$if($eq([non-album tracks],%album%),%title%,$num(%tracknumber%,3). %title%))

It's a great example of the power of PicardQT's extensible file naming string capabilities.

It's complex enough, though, that I have to manipulate it via its own spreadsheet, just to keep it straight.

It now handles classical correctly too! (Not sure if "No Conductor", "No Performer", and "No Composer" work right yet - haven't run enough classical through to give that part a good testing.)

Please note, you will need luks' disc number plugin for this to work right. UPDATE: Disc number bug is fixed (via workaround). Only taggerscript needs to be updated for this fix.

Tips for debugging complex PicardQT strings:

  • Some variable not working like it should? Check your case - %asin% and %releasestatus%, not %ASIN% and %ReleaseStatus%.

New version with fixed ASIN will be put up eventually - re-writing some of the VA stuff at the moment. If you use this, for the moment, just replace all %ASIN% with %asin%.

TaggerScript5.txt QTSpreadsheet4.xls

Comments