dBpoweramp Naming
Naming creates filenames dynamically, for example a
filename might be created from the artist & title name. Naming is
used by both CD Ripper and Music Converter (with Dynamic Naming).
Naming is constructed by adding Elements, for example this naming:
[artist]\[album]\[artist] - [title]
Creates 2 folders, artist name, then album and the filename comprises artist and title.
Common values are:
[artist]
[album]
[title]
[genre]
[year]
[origpath] the source file path (used when converting, not CD Ripping]
[origfilename] the source filename (minus extension, again used when converting)
When creating naming an example is shown, experiment
until the desired filename has been achieved.
Naming Examples
Preserving Source Path and Filename:
[origpath]\[origfilename]
Setting the Output to Folder to a different drive, or folder, it is possible to create a 2nd library, such as lossless to mp3
Preserving Source Path and Filename (remove first folder):
[TRIMFIRSTFOLDER][origpath][]\[origfilename]
Preserving Source Path and Filename (remove first two folders):
[TRIMFIRSTFOLDER][TRIMFIRSTFOLDER][origpath][][]\[origfilename]
CD Ripper Default Naming:
[IFVALUE]album artist,[album artist],[IFCOMP]Various Artists[][IF!COMP][artist][][]\[album]\[track] [artist] - [title]
The first folder is the album artist if present, for no album artist, if a compilation Various Artists is the folder name, otherwise the artist is used.
The next folder is album name. The filename is track number, artist name - title.
Programmable Naming
Naming can be manipulated programmatically [requires dBpoweramp Reference]:
[IFCOMP]string[] string is included if the Compilation tag is set.
[IF!COMP]string[] string is included if the Compilation tag is not set.
[IFMULTI]string[] string is included if part of a multi CD set (ie disc number > 1)
[IF!MULTI]string[] string is included if not part of a multi CD set (ie disc number <= 1)
[UPPER]string[] uppercases string
[LOWER]string[] lowercases string
[RIGHT]count,string[] uses last x characters from a string, ie [RIGHT]3,abcdefg[] gives 'efg'
[GRAB]from,to,string[] extracts a portion of string. If to is omitted then the string is grabbed to the end, ie [GRAB]2,4,abcdefg[] gives 'bcd'
[TRIM]string[] trims spaces from beginning or end of string
[DEL]from,to,string[] removes a portion of string. If to is omitted then the string is deleted from 'from', ie [DEL]2,4,abcdefg[] gives 'aefg'
[SETLEN]count,pre,post,string[] sets a string length, if count is more the string length then string is extended, if less than then string is shortened. When extending a string
if pre (a character ascii code) is present, the string is extended by inserting characters to the front of the string, otherwise to the end. Examples:
[SETLEN]4,,,abcdefg[] gives 'abcd'
[SETLEN]14,65,,abcdefg[] gives 'AAAAAAAabcdefg'
[SETLEN]14,,66,abcdefg[] gives 'abcdefgBBBBBBB'
[IFEQUALS]tag,equals,string[] tests the tag value, if the same as equals then string is included, example: [IFEQUALS]genre,pop,The Genre Is Pop[],
[IF!EQUALS] as above except string is included if tag value does not match,
[IF]tag,condition,match,stringmatch,stringnomatch[] allows condition checking, condition can be =, len<,
len>, len=. For example: [if][artist],=,blur,maches,nomatch[] the string matches will be inserted if the artist is blur. Another example:
[if][artist],len<,5,lessthanfivechars,fivecharsormore[] will insert lessthanfivechars if the arist length is less than 5 characters.
[IFVALUE]tag,strifvalue,strnovalue[] if tag has a value (ie not "") then strifvalue is used, otherwise strnovalue is used, example [IFVALUE]artist,Artist Has a Value,Artist
Has no Value[]
[TRIMFIRSTFOLDER]string[] removes the first folder, example [TRIMFIRSTFOLDER]f1\f2\f3[] returns 'f2\f3'
[TRIMLASTFOLDER]string[] removes the last folder, example [TRIMLASTFOLDER]f1\f2\f3[] returns 'f1\f2'
[FRONTFOLDER]position[] returns just the folder
in position X from the source path
[BACKFOLDER]position[] returns just
the folder in position Count-X from the source path, where 1 is last
folder, 2 is last but one.
[MAXLENGTH]len,string[] shortens string if it is over len number of characters
[REPLACE]search,replacement,string[] string is searched for the search string and is substituted with the replacement. To use tags write string as [tag]tagname[].
[WORD]string,wordcount[] limits string to set word count, for example is string is 'A Quick Brown Fox' and wordcount is 2, then 'A Quick' is returned.
It is possible to nest programmable actions (ie working of the output of the other one, for example to take the artist, uppercase the first character and lowercase the rest:
[UPPER][GRAB]1,1,[artist][][][LOWER][GRAB]2,,[artist][][]
Common Requests:
To create a folder name using the first character from Artist:
[GRAB]1,1,[artist][]\
To pad disc number to 2 characters:
[SETLEN]2,48,,[disc][]