Editing Foobar2000:Components/Masstagger (foo masstag)

Jump to: navigation, search

Warning: You are not logged in.

Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
{{DISPLAYTITLE:foobar2000:Components/Masstagger (foo_masstag)}}
+
{{fb2k}}
 
{{Foobar Component Infobox
 
{{Foobar Component Infobox
| name                 = Masstagger
+
| name = foo_masstag
| screenshot           = [[Image:Foobar2000-Masstagger.png|256px]]
+
| screenshot =  
| caption             =  
+
| caption = Masstager
| module_name          = foo_masstag
+
| maintainer = Official
| developer            = Peter Pawlowski
+
| stable_release = 1.6
| stable_release      = 1.8.4
+
| preview_release =  
| stable_release_date  = 2009-09-18
+
| foobar_version = 0.9.4.x
| foobar2000_version  = 1.1
+
| use = Tagging
| use                  = Tagging
+
| license = -
 +
| website = [http://www.foobar2000.org/components/]
 +
| discussion_thread =  
 
}}
 
}}
 +
'''Masstagger'''
  
'''Masstagger''' is an advanced tool for editing the information of tags in multiple files.
+
Masstagger is an advanced tool for editing the information of tags in multiple files.
 +
'''Note:''' It's not available as part of foobar2000 0.9.5 or newer installers. It is still however available from the [http://www.foobar2000.org/components/ official components page].
  
Masstagger's main limitation is lack of <abbr title="What You See Is What You Get">WYSIWYG</abbr> editing of tags, making it inefficient for typical tag editing scenarios. You should use the [[Foobar2000:Properties|Properties dialog]] instead unless you want to be able to quickly run predefined complex tagging tasks on your files.
+
The Masstagger component is no longer under active development - most of its functionality has been split between the File Operations component (included with foobar2000 0.9.5 and newer), the [[Foobar2000:Properties|Properties dialog]] and the [http://www.foobar2000.org/components/ Quick Tagger component].
  
{{panel|'''Note:''' Masstagger is not available as part of foobar2000 0.9.5 or newer installers.|color=yellow}}
+
Masstagger's main limitation is lack of the ability to preview results of tag processing operations before writing new tags to your files. The [[Foobar2000:Properties|Properties dialog]] on the other hand lets you see new tag contents first so any mistakes are easily corrected without having to backup your tags/files or verify whether you're getting correct results on a smaller sample first.
 
+
== Basic usage ==
+
[[Image:Foobar2000-Masstagger-howtoactivate.png|thumb|Accessing the main Masstagger dialog]]
+
To open the main Masstagger dialog, select the tracks you want to work with and choose the "Manage Scripts" command from the context menu, under the "Tagging" submenu.
+
 
+
The left box displays a list of actions that are about to be performed on your tags. The actions are performed in descending order - actions placed lower on the list will operate on tags already altered by actions placed higher on the list.
+
 
+
The "scripts" box contains commands that allow you to save the current chain of actions or restore a chain of actions that was saved earlier.
+
 
+
There are two ways to store Masstagger scripts:
+
* In foobar2000 configuration - by using the "Save" / "Load" etc buttons - you can quickly load those scripts later, as well as access them directly from the "Tagging" / "Scripts" submenu of the context menu, as well as access them with [[Foobar2000:Preferences:General:Keyboard Shortcuts|keyboard shortcuts]].
+
* In external files - by using the "Export to file..." and "Import from file..." buttons - such scripts can be easily interchanged between users or between different foobar2000 installations.
+
  
 
== Available actions ==
 
== Available actions ==
  
 
=== Add value ===
 
=== Add value ===
Adds a new value to the specified metadata field. If the field already exists, a new value is added to its values; if it does not, it's created with a single value.
+
Adds desired tag field and sets it to whatever you enter in the masstagger input window.
 
+
This is particularly useful when working with fields that often have more than one value, such as "ARTIST" or "GENRE".
+
 
+
For an example: an Add "GENRE" = "Rock" action will add "Rock" to the list of genres on affected tracks - if any of these tracks don't have a "GENRE" field yet, such field will be created, with one value equal to "Rock".
+
  
 
=== Auto track number ===
 
=== Auto track number ===
Line 44: Line 32:
 
=== Copy value ===
 
=== Copy value ===
 
Copies one tag field to another.
 
Copies one tag field to another.
 
===Embed cuesheet===
 
This action looks for a cuesheet named %filename%.cue or %filename_ext%.cue in the same folder as the file being processed and embeds it.
 
  
 
=== Format value from other fields ===
 
=== Format value from other fields ===
This action lets you enter a specific [[Foobar2000:Title Formatting Introduction|title formatting]] pattern for any tag field you wish to edit or create.
+
This is where it becomes interesting. This option lets you enter a specific [[Foobar2000:Titleformat_Introduction|title formatting]] pattern for any tag field you wish to edit or create.
  
In addition to standard title formatting fields, starting with version 1.8.2 you can use %now% to fetch current system time.
+
'''Note''' that when using complex formatting patterns I would recommend to first format a temporary %temp% tag with the desired pattern and then copy that one into the value that you wish. Afterwards you can remove the temp value. When processing a large batch of files you could probably just do a test run on one of the files and then do the rest in one go. Think about what you are doing beforehand though. After all I don't want to be held responsible for messing up anyones music collection.
  
=== Guess values from filename ===
+
''I will explain how to create formatting strings for different situations further down .''
Automatically fills metadata values according to file paths, according to a guessing pattern that you specify.
+
  
Note that this is similar to the [[Foobar2000:Properties/Automatically Fill Values|Automatically Fill Values dialog]].
+
=== Guess values from filename ===
 +
Guesses values from filename and lets you enter a certain formatting pattern for it. For example if your files are named artist - album_title.
  
The guessing pattern syntax is NOT based on title formatting - functions or field remappings do not apply here.
+
Enter
 
+
%artist% - %album%_%title%
You can put slash characters in the guessing pattern to also retrieve data from names of folders containing your files.
+
as formatting pattern.
 
+
For an example, if your directory structure is formatted as "Artist\(Date) Album\N. Title.ext" - eg. "Muse\(2006) Black Holes & Revelations\01. Take A Bow.mpc", you can transfer all relevant information from file paths to tags using the following pattern: "%artist%\(%date%) %album%\%tracknumber%. %title%".
+
  
 
=== Guess values from other fields ===
 
=== Guess values from other fields ===
Similar to "Guess values from filename", except it uses other fields - through a [[Foobar2000:Title Formatting Introduction|title formatting string]] - as a source, instead of file names.
+
Guesses values from other tags and lets you enter a certain fromatting pattern for it. For example if your files are tagged artist / title in the title field.
  
 
=== Input data (one line per track) ===
 
=== Input data (one line per track) ===
Line 71: Line 54:
  
 
=== Remove all fields ===
 
=== Remove all fields ===
Removes all tag fields.
+
Removes all tag fields (who would have guessed)
  
 
=== Remove all except for... ===
 
=== Remove all except for... ===
Removes all fields except for the ones that you specify. For an example, specify "title;album;artist" to remove all fields other than title, album and artist.
+
Does just as it says, removes all values and lets you specify wich ones not to remove in a second field in the following pattern ie.:
 +
 
 +
%artist%;%title%;etc
  
 
=== Remove field ===
 
=== Remove field ===
 
Removes desired tag field.
 
Removes desired tag field.
  
=== Remove values... ===
+
=== Set value ===
Opposite of "Add value". Removes matching values of the specified field. Useful when dealing with multiple genre values for an example.
+
Sets desired tag field (artist, album,custom,etc) to whatever you enter in the masstagger input window.
 +
 
 +
=== Split multiple artist field ===
 +
 
 +
 
 +
 
 +
'''Note''' that it is possible to perform several of these actions at once and in that case the order of those actions can be very important. So removing field A before copying it to field B is probably a bad Idea and should be performed the other way around, etc.
 +
 
 +
== Writing format strings for the masstager ==
 +
 
 +
 
 +
'''Extracting Information from Relative File Paths:'''
 +
 
 +
As suggested I have included a small section on how to extract different values from their relative file paths. To do so I will use the following example path to extract information from
 +
 
 +
''...\Genre\Artist\Album[Date]\01_Title.mpc''
 +
 
 +
 
 +
'''sets title:'''
 +
 
 +
%_filename% returns title as 01_Title.mpc and
 +
 
 +
$puts(char,_)$puts(tag,%_filename%)
 +
$puts(spacer,$strchr($get(tag),$get(char)))
 +
$trim($right($get(tag),$sub($len($get(tag)),$get(spacer))))
 +
returns title as Title.mpc
 +
 
 +
'''sets album:'''
 +
 
 +
$directory(%_path%,1) returns title as Album[Date]
 +
 
 +
$puts(char,'[')$puts(tag,$directory(%_path%,1))
 +
$puts(spacer,$strchr($get(tag),$get(char)))
 +
$trim($left($get(tag),$sub($get(spacer),1)))
 +
returns album as Album
 +
 
 +
'''NOTE:''' that the [ is quotes as '[' , the reason for this is for it to be recognized as a character and not as a command syntax, you will probably have to ommit the quotation marks for most other characters.
 +
 
 +
 
 +
'''sets artist:'''
 +
 
 +
$directory(%_path%,2) returns artist as Artist
 +
 
 +
 
 +
'''sets genre:'''
 +
 
 +
$directory(%_path%,3) returns genre as Genre
 +
 
 +
'''
 +
sets tracknumber:'''
 +
 
 +
$num($left(%_filename%,2),2) returns tracknumber as 01
 +
 
 +
 
 +
 
 +
Obviously a lot more is possible, but then this was just supposed to be a short introduction. I would say simply copy a few of your files, and play around with it.
 +
 
 +
 
 +
 
 +
== The Rename Files Dialog ==
 +
 
 +
The rename files dialog enables you to automatically rename your files according to your metadata tags in an automated way. You will first need to select all the tracks you want to rename and then right click and select: Masstagger/rename files.
 +
 
 +
Select in the masstagger dialog which output directory you mant to use and wether to generate subdirectories according to the / \ characters. I will give a few examples for renaming strings below.
 +
 
 +
 
 +
'''Examples:'''
 +
 
 +
To rename your files to "tracknumber_title.ext (i.e. 08_The Glass Bead Game.mpc)" you will need to enter the following syntax in the Output file name format field
 +
 
 +
%tracknumber%_%title%
 +
No need to create subdirectories in this case.
 +
 
 +
 
 +
To rename your files to "/artist - album/title.ext (i.e. Thievery Corporation - Sounds of the Thievery Hi-Fi/08_The Glass Bead Game.mpc) and create the appropriate subdirectories you will need the following syntax
 +
 
 +
/%artist% - %album%/%tracknumber%_%title%
 +
In this case make sure the "create subdirectories" checkbox is ticked.
 +
 
 +
 
 +
To rename your files to "/artist/album/tracknumber_title.ext (i.e.: /Thievery Corporation/Sounds of the Thievery Hi-Fi/08_The Glass Bead Game.mpc) use the following syntax
 +
 
 +
/%artst%/%album%/%tracknumber%_%title%
 +
 
 +
 
  
=== Replace values... ===
+
In case you generally make use of "album artist" tags (or anything similar) for various albums files you can replace %artist% with
Replaces matching values of the specified field with the specified value. Useful for mass-fixing inconsistent tagging, especially when dealing with multi-value fields such as artist or genre, since only the matching value gets altered.
+
  
=== Set value... ===
+
$if2(%album artist%,%artist%)
Sets desired tag field (artist,album,etc) to the specified value.
+
in any of the above strings.
  
=== Split field by separator... ===
 
Splits values of the specified field according to the specified separator string. For an example, if your tags have ARTIST fields formatted as "person1 & person2" instead of correct multiple values, you can use this action to split generate multiple values, by specifying "&" as the separator string.
 
  
=== Split multiple artist fields ===
+
'''Note:'''
If the artist field value contains characters such as "," or "&", the value gets split into multiple values accordingly.
+
One reason why it is convenient to use the masstaggers rename files function is that this way Foobar2000's Media Library will automatically get updated to the current changes.
  
Note: This is equivalent to having two "Split field by separator..." actions, both with field set to "ARTIST", one with separator set to "," and the other with separator set to "&".
 
  
== Notes on upgrading from older (pre-1.7) Masstagger versions ==
+
== Links ==
Various functionality that is now available through other components has been removed.
+
* File moving functionality - now available through the [[Foobar2000:File_operations|File Operations component]].
+
* Copying tags between tracks - see: [[Foobar2000:How to transfer tags between two sets of tracks|How to transfer tags between two sets of tracks]].
+
  
== Command line interface ==
+
This page is based on picmixer's [http://www.hydrogenaudio.org/forums/index.php?showtopic=12302 Unofficial masstagger guide] on the foobar2000 forum.
Masstagger provides extra [[Foobar2000:Commandline_Guide|command line switches]] for tag modifications. Version 1.8.4 of the component shows this information:
+
  Usage:
+
 
+
  /tag:help - displays this message
+
 
+
  /tag:<command1>[;<command2>;<command3>...] <file1> [<file2> <file3>...]
+
 
+
  Commands:
+
 
+
  <NAME>=<VALUE>
+
      Sets <NAME> field to <VALUE>, e.g. "/tag:title=test <file>".
+
      You can erase particular field by specifying empty value, e.g. "/tag:comment= <file>".
+
      You can also specify multiple values by separating them with \ character, e.g. "/tag:artist=name1\name2 <file>".
+
  AUTOTRACKNUMBER
+
      Sets TRACKNUMBER field of multiple files according to their order in commandline.
+
      E.g. "/tag:AUTOTRACKNUMBER <file1> <file2> <file3>" will assign TRACKNUMBER=1 to <file1>, 2 to <file2> and 3 to <file3>.
+
  FORMAT:<FIELD>:<SPEC>
+
      Formats <FIELD> using <SPEC>; see title formatting manual for more info how to use it.
+
      E.g. "/tag:FORMAT:COMMENT:"%ARTIST% - %TITLE%" <file>".
+
  GUESS:<PATTERN>:<SPEC>
+
      Guesses field values using <PATTERN>, according to <SPEC>.
+
      To perform "guess values from filename" action, use "/tag:GUESS:<PATTERN>:%_FILENAME% <file>".
+
      E.g. "/tag:GUESS:"%TRACKNUMBER%. %TITLE%":%_FILENAME% <file>".
+
  
==External links==
+
You can find a tutorial with videos here [http://eolindel.free.fr/foobar0.9/masstut.php Unofficial masstagger tutorial]
* {{foobar2000|http://www.foobar2000.org/components/view/foo_masstag|Masstagger}}
+

Please note that all contributions to Hydrogenaudio Knowledgebase are considered to be released under the GNU Free Documentation License 1.2 (see Hydrogenaudio Knowledgebase:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)