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)
[origdrive] drive source files are on, example C:\
When creating naming an example is shown, experiment until the desired filename has been achieved.
If a tag value is non-common, you can specify it with [tag]you_unique_tag_name[].
Normally the first item of a multi-artist is used for [album artist] or [artist], however if the list of all the artists are needed then can use [multitag], for example [multitag]album artist[] and it would return Artist1; Artist2
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[]. To replace comma enter <comma_>, for example: [REPLACE]<comma_>,@,[artist][] would replace , with @
[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.
[GROUP]count,string[] takes the first letter from string and groups in a-d, e-h, ideal for folders, for example [GROUP]4,[artist][] gives a-d, e-h and [GROUP]3,[artist][] is a-c, d-f.
[SPLIT]letter or string,string,position[] Splits a string based on a single letter or a string match, for example if Artist was A1/A2/A3/A3 [split]/,[artist],3[] would return A3. To split on comma enter no string: [split]<comma_>,[artist],3[]
[MULTITAG]tag name[] if have multiple album artists and want the whole list in the filename then can use [multitag]album artist[] and it would return Artist1; Artist2

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][][]

To use the values ',' and '[' in a programmable action, for example to replace ',' with _ you can use: [REPLACE]<comma_>,_,[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][]

Put the source creation date in the filename:

[source_date]yyyymmdd hh.xx.ss.ms[]

Main Index