Additional Tagging & Reporting Tools Plugin adds several commands to MusicBee main menu for extended tag editing, exporting them to external applications, gathering library statistics, making (auto)backups of tags, etc. November 12, 2019, 5:29 am http://getmusicbee.com/forum/index.php?topic=3833.10000 tag editing,exporting tags,tag backup,copy tag,swap tags,search,replace http://i.imgur.com/MX7ARKw.png https://getmusicbee.com/out/?type=addon&id=49&r=http%3A%2F%2Fwww.mediafire.com%2Ffile%2Fh2t08o9562efboi%2Fmb_TagTools_latest.zip%2Ffile 5.2 MusicBee 3 Win7/ Win8/ Win10 Add-ons Plugins MusicBee

Additional Tagging & Reporting Tools

5.2

by boroda

Supports Minimum MusicBee 3

Plugin adds several commands to MusicBee main menu for extended tag editing, exporting them to external applications, gathering library statistics, making (auto)backups of tags, etc.

Readme

TAGGING & REPORTING TOOLS

Copy Tag

Allows you to copy one tag to another for selected files. Its possible to append one tag to the end of another tag or add one tag to the beginning of another tag placing custom text between them. Also its possible to use pseudo tag as the source to append static text to the destination tag.

Note:

There are a number of source pseudo tags which can be copied to (for example) custom tags, e.g. is file creation date.

Swap Tags

Swaps any two tags for selected files.

Notes:

  • "Smart swap"/"Smart copy" option is important only for working with multiple artists/composers (it will convert list of artists/composers to ";" delimited string if destination tag doesn't support multiple values). Unchecking this option will preserve each byte of source tag, but it may be useful only if destination tag is used for temporary storage.
  • Its possible to use the same source and destination tags for "Artist"/"Composer" tags in "Swap tags" command with "Smart swap" option enabled to convert ";" delimited tag to the list of artists/composers and vice versa.

Change Case

Changes letter case of a tag according to rather sophisticated rules for selected tracks.

Notes:

  • Excluded words (if this option is ticked) remain unchanged, not become lowercased!
  • You can make two or more steps changing casing rules and clicking "Reapply rules to new tag" button without saving changes to tags.

Library Reports

Allows to export some library statistics for currently displayed tracks to external file: HTML document (as a table), tab delimited text, M3U playlist (its only possible to export file paths to playlists, but considering filtering capability of command this option may be useful). This may be used for reimporting table in spreadsheet editor (including HTML table - its the easiest way to import track list to MS Excel) for printing statistics or just content of your library, filtered content of library or your playlists.

Notes:

  • Command supports for two types of exported fields: grouping tags and aggregated functions. Every aggregated function is calculated for every unique combination of grouping tags. "Count" function counts the number of different values of a given tag. Other functions are obvious and should be applied only to numeric or duration tags (e.g. "Time", "File size", etc.).

  • Any aggregated function can be saved to physically stored custom tag (of course this custom tag wont be updated automatically), so that this aggregated function could be used by MusicBee for sorting/filtering.
  • For all aggregated functions except for "Count" function please make sure that all tag values used by function have the same measurement units (KB, MB, etc.) or adjust units in "Edit> Preferences> Plugins" window (not required if both MusicBee and Windows localizations are English or Russian).

Example 1

If you want just to export some tags then define only grouping fields in preview table (don't use aggregated functions and untick "Calculate subgrouping totals" checkbox, which is senseless in this case).

Example 2

If you want to get the number of albums of each artist, i.e. the number of albums (function "Count" of tag "Album") per artist (tag "Album Artist"), you should add grouping tag "Album Artist" in the table and required function "Count(Album)".

Example 3

If you want to get the number of releases of each artist per year, i.e. the number of albums (function "Count" of tag "Album") per year (tag "Year") per artist (tag "Album Artist"), you should add grouping tags (in order) "Album Artist" and "Year" in the table and required function "Count(Album)".

Example 4

If you want to get the total duration of all tracks of every artist, i.e. the sum of track durations (function "Sum" of tag "Time") per artist (tag "Album Artist"), you should add grouping tag "Album Artist" and function "Sum(Time)".

Auto Library Reports

Mostly the same command as "Library Reports", but allows to calculate several presets and save results to (custom) tags at startup and/or after a given number of tag changes. Useful for autosaving such values as "Summary play counts of albums" or "Number of tracks for each artist", etc. to (custom) tags, i.e. it's some analog of virtual tags with the ability to operate not only on tags of current track, but on tags of all tracks.

"Auto Library Reports" command adds new virtual tag function:

$ALR(,function_id)

To use this function open auto-library reports window, create one or several presets, each with one or several aggregate functions and assign a function id for functions. Probably you will want to write all aggregate functions to tag (i.e. do not write them to any tags at all).

ALR virtual tag functions allow to gather and display in the main panel some library statistics for currently displayed tracks.

Notes:

  • Main ALR window supports for two types of fields: grouping tags and aggregated functions. Every aggregated function is calculated for every unique combination of grouping tags. "Count" function counts the number of different values of a given (function parameter, not grouping) tag. Other functions are obvious and should be applied only to numeric or duration (parameter) tags (e.g. "Time", "File size", etc.).
  • All ALR virtual tag function are calculated, updated and displayed dynamically.
  • For all aggregated functions except for "Count" function please make sure that all (parameter) tag values used by function have the same measurement units (KB, MB, etc.) or adjust units in "Edit> Preferences> Plugins" window (not required if both MusicBee and Windows localisations are English or Russian).

Example 1

If you want to get the number of albums of artist of displayed track, i.e. the number of albums (function "Count" of (parameter) tag "Album") per artist (tag "Album Artist"), you should add grouping tag "Album Artist" in the table and required function "Count(Album)".

Example 2

If you want to get the number of releases of artist (of displayed track) per year, i.e. the number of albums (function "Count" of (parameter) tag "Album") per year (tag "Year") per artist (tag "Album Artist"), you should add grouping tags (in order) "Album Artist" and "Year" in the table and required function "Count(Album)".

Example 3

If you want to get the total duration of all tracks of artist of displayed track, i.e. the sum of track durations (function "Sum" of tag "Time") per artist (tag "Album Artist"), you should add grouping tag "Album Artist" and function "Sum(Time)".

See two predefined presets "LIBRARY TOTALS" and "LIBRARY AVERAGES" of (not auto) "Library Reports" command for more examples.

ALR virtual tag functions may be even more useful if they are used in grouping header in "Albums and Tracks" view.

Auto Rate

Calculates auto rating on the basis of the number of plays per day for selected tracks. Also its possible to auto rate all tracks of your library on MusicBee startup or update auto rating if currently played track is changed.

Another option is to calculate auto ratings defining the percentage of tracks of your library that should be assigned certain rating level (e.g. 1 star, 2 starts, etc.)

Reencode Tag

Even ID3V2 tags are usually stored not in UTF encoding (which is independent of language), so in most cases reading ID3 tags is only useful if tags use the same encoding (in general - language) as your windows default encoding. This command allows you to convert any incorrectly interpreted not UTF tags to UTF tags. In this command "initial encoding" is the suggested actual encoding of tag and the "used encoding" is incorrectly interpreted encoding of tag (Usually its your default windows encoding. The only sense to change "used encoding" is if you get music file from another computer with different regional settings).

Reencode Tags

Command to re-encode all tags of selected tracks at ones. Cuesheets are supported.

Advanced Search & Replace

  • "Advanced Search and Replace" works only with regular expressions.
  • "Advanced Search and Replace" has savable/customizable presets.
  • You can choose, which "Advanced Search and Replace" presets to automatically apply if any tag is changed and/or if new tracks are to library/inbox.
  • "Advanced Search and Replace" can search in one tag and make replacement in another tag.
  • Single "Advanced Search and Replace" preset can make up to 5 subsequent replacements.

Notes:

  • You need to import any new presets to ASR command using "Import new" or "Import all" buttons (including presets unpacked to "ASR Presets" folder from "official" plugin's .zip).
  • You cannot edit "official" presets, but you can copy them and edit copy and/or delete them.
  • Any ASR preset can be used as virtual tag function (also as a function in file organization templates, etc.).

Go to main ASR window, select preset and define virtual tag function id (any string containing a-z chars, numbers and symbols . : - _ ).

Then use function

$ASR(,preset_id)

where preset_id is the id entered in ASR window. ASR preset function will return last written tag in preset. To see last written tag click "Edit/Rename" button in ASR window or (if "Edit/Rename" is disabled) click "Copy" button and view the content of preset copy. Most preset functions will return exactly what you expect.

Multiple Search & Replace

Multi-step search and replace. You can make unlimited number of replacements in the same source tag and write result to a given destination tag. MSR presets can be saved as special ASR presets and can be ticked in ASR for auto-applying if any tags are changed or if new tracks are added to the library.

Calculate Average Album Ratings

Command averages all the ratings of the individual tracks on the album writing result in an Album rating. Any tags can be used as album and track ratings. This may be useful for calculating average album rating for auto rating stored in custom tag.

Compare Tracks

Command provides easy way to compare tags of 2 (or more) tracks.

Copy Tags to Clipboard

Copies specified tags for selected files to clipboard.

Paste Tags from Clipboard

Pastes copied to clipboard tags to selected files from clipboard.

Notes:

  • It's possible to copy tags from one file and paste them to more than one file.
  • It's possible to copy tags in MusicBee and paste them to another application like Microsoft Excel or Notepad++.

BACKUP & RESTORE

These commands allow to (auto)backup tags of all tracks in your library and restore them.

Note:

There is one "hidden" command: Tag History. It's available in track context menu only.


VIRTUAL TAG FUNCTIONS

This plugin introduces several new virtual tag functions (they also can be used in various filename templates, e.g. in the file organizer).

Notes:

Use these functions like native MusicBee functions (i.e. without any setup required by ALR and ASR functions).

$Random(max_number)
$Add(number1,number2)
$Sub(number1,number2)
$Mul(number1,number2)
$Div(number1,number2)
$Round(number,number_of_digits_after_decimal_point)
$Abs(number)
$Now(): returns current date/time
$AddDuration(duration1,duration2): duration format is similar to date/time format 
     without "am/pm" suffix, but allowed values are different, 
     e.g. 00/01/0000 00:00:00 is valid duration, but not valid date/time. Either 
     date part or time part can be omitted, it will be defaulted to zero value.
$SubDuration(duration1,duration2)
$SubDateTime(datetime1,datetime2): returns duration between datetime1 and 
     datetime2. Date/time format depends on your Windows regional settings, 
     e.g. 12/31/2018 11:59:59 pm. For datetime1 and datetime2 either date part or 
     time part can be omitted, it will be defaulted to current date or 
     time 00:00:00 am.
$NumberOfDays(datetime1,datetime2): returns number of days between 
     datetime1 and datetime2 rounded down to nearest integer value.
$AddDurationToDateTime(datetime,duration)
$SubDurationFromDateTime(datetime,duration)
$And(parameter1,parameter2) is MusicBee native function
$Or(parameter1,parameter2) is MusicBee native function
$Xor(parameter1,parameter2)
$Not(parameter)
$Log(number,base)
$Lg(number): decimal logarithm
$Ln(number): natural logarithm
$Sqrt(number): square root. May be useful for gathering some library 
     statistics (in conjunction with ALR functions).
$Len(string): length of string
$Name(filename): returns file name without extension and 
     path to file
$CutLeft(string,count): removes number of chars from 
     the left of the string
$CutRight(string,count): removes number of chars from 
     the right of the string
$RoundDown(number,number_of_digits_after_decimal_point): $RoundDown(4.28,1) 
     returns 4.2
$RoundUp(number,number_of_digits_after_decimal_point): $RoundUp(5.2,0) 
     returns 6
$Mod(number1,number2): returns the remainder of division

APPENDIX

License

Do all you want with plugin binary and source code at your own risk.

Installation and Usage

Extract content of archive to plugins sub-folder of MusicBee installation folder (e.g. to "C:\Program Files (x86)\MusicBee\Plugins"). See "Tools> Tagging Tools" menu. To configure plugin go to "Edit> Preferences> Plugins".

Uninstallation

Go to "Edit> Preferences> Plugins". Click "Uninstall" button. Plugin will delete all automatically created files (e.g. settings), but you will need to exit MusicBee and manually delete all files that were included in plugin .zip.

Additional UI languages

Additional support for French, German and Polish languages. See readme inside archive. Support for English and Russian is native for plugin.

Source code

MS VS 2019 project, C#. Most people don't need this.

Backup download

Google Drive, all my plugins and their sources

Name Additional Tagging & Reporting Tools
Author boroda
Version 5.2
Category Plugins
Published on September 3, 2016
Updated on November 12, 2019, 5:29 am
Supports Minimum MusicBee 3
tag editing exporting tags tag backup copy tag swap tags search replace

More from boroda

Unless mentioned by the Author, all add-ons and screenshots are licensed under cc by-sa 3.0