Configuring Directory and File Formats

From MediaMonkey Wiki
Revision as of 22:28, 21 April 2011 by Peke (talk | contribs) (Created page with "= Configuring Directory and Filename Formats = When <a href="Ripping%20Tracks%20from%20CDs.htm">ripping</a>, <a href="Converting%20Formats.htm">converting</...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Configuring Directory and Filename Formats

When <a href="Ripping%20Tracks%20from%20CDs.htm">ripping</a>, <a href="Converting%20Formats.htm">converting</a>, <a href="Exploring%20Tracks.htm">synchronizing tracks to a portable device</a>, <a href="Ripping%20Tracks%20from%20CDs.htm">saving tracks to the virtual CD</a>, <a href="Burning%20an%20Audio%20CD.htm">burning Tracks to a CD</a>, or <a href="Changing%20Filenames.htm">auto-organizing tracks</a>, you can select the format in which the directories and filenames will be created. When <a href="file:///F%7C/Documents%20and%20Settings/Rusty/My%20Documents/Docs/MediaMonkey/Sources/help/htmlhelp/Auto-Tag%20from%20Filename.htm">auto-tagging from filenames</a>, you can select what tags will be written based on the Directory/Filename format. This section describes Directory and File masks that allow you to define these formats.

Concepts

Generally, there are 3 elements to configure when choosing a destination format:

  1. Directory: This is chosen using the directory browser button (e.g. C:\My Music), though in some cases (e.g. for burning a CD) there's no need to choose a directory.
  2. Directory format: This is chosen using the 'masks' such as
 \<Artist>\<Album>\  . e.g.
C:\My 
Music\<Artist>\<Album>\ would result in 
C:\My 
Music\U2\The Joshua Tree\ 
  1. Filename format: This is chosen using the 'masks' such as \<Track #>
 - <Title> . e.g.
C:\My Music\<Artist>\<Album>\<Track 
#> - <Title> would result in
C:\My Music\U2\The Joshua Tree\1 - 

Where the Streets Have No Name.mp3


Similarly, when using Auto-tag from Filename, 2 elements are configured to read the filename format:

  1. Directory format: e.g. \<Artist>\<Album>\ would read \My Music\Beatles\White Album\Song.mp3 and set Artist field to 'Beatles', and Album field to 'White Album'
  2. Filename format: e.g. \<Artist> - <Title> would read \U2 - God and set Artist field to 'U2' and Title field to 'God'

Mask Reference

The table below describes most of the commonly used characters and fields in a mask.

<tbody> </tbody>

' ' (space) A space in a mask appears as a space in the path/filename
     that is written. Note that spaces automatically disappear in case they are 

in the beginning or end of a filename.

'-' A dash in a mask appears as a dash in the path/filename that is written.
'\' A slash following a mask element causes a directory to be created.
'.\' A .\ at the beginning of a mask causes whatever portions
     of the mask that follow to be written in the same directory as the source 
    file(s).  For example, a mask of C:\My Music\<Artist> 
    - <Title> would write tracks to C:\My Music, but a mask of 
    .\<Artist> - <Title> would write the new filenames into the 

directories from which the source files originate.

<Artist> Writes the Artist field to a directory or filename (depending on whether it is followed by a '\')
<Album> Writes the Album field to a directory or filename (depending on whether it is followed by a '\')
<Title> Writes the Title field to a directory or filename (depending on whether it is followed by a '\')
<Genre> Writes the Genre field to a directory or filename (depending on whether it is followed by a '\')
<Disc#> Writes the Disc Number field to a directory or filename (depending on whether it is followed by a '\')
<Track#> Writes the Track Number field to a filename (assuming it is not followed by a '\')
<Year> Writes the Year field to a directory or filename (depending on whether it is followed by a '\')
<Bitrate> Writes the Bitrate field to a directory or filename (depending on whether it is followed by a '\')
<Album Artist> Writes the Album Artist field to a directory or filename (depending on whether it is followed by a '\')
<BPM> Writes the Beats Per Minute field to a directory or filename (depending on whether it is followed by a '\')
<Composer> Writes the Composer field to a directory or filename (depending on whether it is followed by a '\')
<Custom x> Writes 1 of the 5 Custom fields to a directory or filename (depending on whether it is followed by a '\')
<Skip:x> Ignores x characters in the path. Used only for Auto-tag from Filename.
$First(<'Field'>,count,skip) Limits the number of values for multiple definition
     fields to count, optionally skipping skip values. For instance:
      <Genre> would yield: 
    Rock;Pop;Acoustic

    $First(<Genre>) would yield: 
    Rock

    $First(<Genre>,2) would yield: Rock;Pop

$First(<Genre>,1,1) would yield: Pop

<'Field':n> Can be used in conjunction with any of the above mask
     elements in order to force  alphabetic fields to a specified 
    length or to pad alphanumeric fields.  For instance:

    C:\My Music\<Artist:1>\<Artist>\<Album> - 
    <Track #> - <Title> which would yield C:\My Music\A\Abba\Gold 
    - 2 - Fernando.mp3 , useful for creating alphabetized directories. 

    <Track#:2> would yield 07 (for Track=7), and would yield 153 (for Track 153) 

<Year:3> would yield 1940 (for 1940); <Year:2> would yield 40 (this latter example is an exception--numeric fields are not otherwise truncated)

     Note: For text fields, the resultant 
    characters start from the left.  For numeric fields, the resultant 
    digits start from the right.  If n > the number of characters in the field, 
    then the resultant path is padded with spaces or 0's depending on whether 

the field is text or numeric.

<'Field':-n> Same as above except that if n > the number of
     characters in the field, then the resultant path is padded with spaces or 
    0's (depending on whether the field is text or numeric) from the opposite 

side.

<<a href="mailto:%27Field%27@n">'Field'@n</a>> Creates alphabetical
     directories grouped in sets of x letters.  For example: C:\My 
    Music\<<a href="mailto:Artist@3">Artist@3</a>>\<Title> would create directories with all 

Artists beginning with ABC, DEF, GHI, etc.

$RemovePrefix(string)

Removes a prefix from a string. e.g. $RemovePrefix(<Artist>) changes 'The Beatles' -> 'Beatles' . Prefixes are configured in Tools > Options > Library > Appearance > Ignore prefixes.

$MovePrefix(string)

Moves a prefix to the end of a string. e.g. $RemovePrefix(<Artist>) changes 'The Beatles' -> 'Beatles, The'. Prefixes are configured in Tools > Options > Library > Appearance > Ignore prefixes.

$Group(string,integer) Groups

the first letter of the string into sets of letters of length specified by (optional) integer parameter. e.g. \$Group(<Artist>,2) for 'U2' would yield \UV (similar to <Artist@2>.

$Replace(string,what,by) Replaces all occurrences in a 'string' of 'what' by 'by'.
$Left(string,n) Returns the left n characters of string.
$Right(string,n) Returns right n characters of string.
$Mid(string,i,n) Returns n characters of string starting with character i
$Trim(string) Returns string with spaces trimmed from the beginning and end of string
$Upper(string) Converts string to uppercase
$Lower(string) Converts string to lowercase
<Folder:n> This will recreate all folders in a
     source path except for the first 'n' directories.  For 
    example: C:\My Music\<Folder:2>\<Title> would create the 
    source directory structure (without the first 2 directories in the source 

paths), followed by track title.

<Folder:-n> This will recreate only the last n folders in a source
     path.  This is very useful when it is known that the source directory 

is homogeneously structured.

<Playlist> Writes the Playlist name for any Playlists that have been
     selected to a folder (assuming it is followed by a '\'). This mask 

can only be used for CD Burning and Exporting tracks.

<Filename>
<Filename:n>
This recreates the current filename, and can be used with modifiers to force the resultant text to a set length.
<Type> Writes the file type to a directory \My Music\MP3\U2... or \My Music\M4A\U2....
<Auto Number>
<Auto Number:n>
This creates a sequential number that can be inserted into
     the path. This is especially useful for inserting into the beginning 
    of a filename when exporting to a device or burning to a CD and you wish 
    for tracks in a playlist to be played in the order of the playlist (rather 
    than alphabetical order). By default, 3 digits are used, though this is 

configurable.

<Random>
<Random:n>
This creates a random number that can be inserted in the
     path.  It is most useful for inserting into the beginning of a 
    filename when exporting to a device or burning to a CD and you wish to 
    ensure that the tracks will be played in random (rather than alphabetic) 
    order. By default, 4 digits are used, though this is configurable by 

setting n.

<Path> This recreates the same path and filename as the original source file(s).
<Path:n> This recreates the same path and filename as the original source file(s), without the first n folders of the source path.
<Path:-n> This recreates the same path and filename as the original source file(s), without the last n elements of the source path.
$if(string + criteria,truevalue,falsevalue) This allows masks to be used conditionally. Several examples
     follow:

    To use a mask if 2 fields 
    or a field and a string are equal, use '=' . For example, in the 
    case of an Album Artist differing from the Artist, you may want both 
    to appear in the path:

    --- \<Album Artist> - 
    <Album>\<Track#> $If(<Artist>=<Album 
    Artist>,,<Artist> - 

)<Title>

Similarly, other operators such as <,<=,>,>= and <> can be used. For instance, to return 80's for year 1984:
--- $If(<Year><1990,80's,$If(<Year><2000,90's,2000's))

To use a mask if a field isn't empty, just enter a string without any criteria'. For example:
--- D:\My Music\$If(<Artist>,<Artist:1>,None)\<Artist>$If(<Album>, - <Album>\,)<Title>
--- \$If(<Artist>,<Artist> - ,)$If(<Album>,<Album> - ,)$If(<Track#>,<Track#> ,)<Title>

Note: Make sure to precede all control characters such as ')' or ',' with '$' if you wish them to appear as normal characters. For example:
--- \My Music\$if(<artist>,<artist> (<year>$),Unknown)\<track>

$Len(string) Returns the length of string. Useful with $If() function.
$Assign(variable,value) and $Use(variable)

Allows variables to be used several times in a mask, e.g. '$Assign(V,A)$Use(V)$Use(V)' produces string 'AA'. This is useful when a complex 'value' (i.e. a mask component) needs to be used several times within a mask.