If you like this plugin, consider making a donation.
NOTE: The current version of the plugin is designed for MusicBee 3.1. If you are using MusicBee 2.4 or 2.5, try to download previous plugin version (without 'Backup & Restore' functionality).
Additional Tagging Tools Edit
Copy tag Edit
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 'Null' pseudo tag as the source to append static text to the destination tag.
- There are a number of source pseudo tags which can be copied to (for example) custom tags, e.g. 'Date Created' is file creation date.
- It's possible to copy 'Null' pseudo tag to 'Lyrics?' tag to mark track as having no lyrics. Copy '+' pseudo tag to clear this mark.
Swaps any two tags for selected files.
- '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 Edit
Changes letter case of a tag according to rather sophisticated rules for selected tracks.
- 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 Edit
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.
- 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 Edit
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:
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 'null' tag (i.e. do not write them to custom tags).
ALR virtual tag functions allow to gather and display in the main panel some library statistics for currently displayed tracks.
- 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 are even more useful if they are used in grouping header in 'Albums and Tracks' view.
Auto rate Edit
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 Edit
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).
Command to re-encode all tags of selected tracks at ones. Cuesheets are supported.
Advanced search and replace Edit
- 'Advanced search and replace' works only with regular expressions.
- 'Advanced search and replace' has savable/customizable presets.
- Some of 'Advanced search and replace' presets can be automatically applied if any tag is changed.
- '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.
- Plugin includes several ASR presets and new presets will be available for download later.
- 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(<URL>,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*.
Calculate average album ratings Edit
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 Edit
Command provides easy way to compare tags of 2 (or more) tracks.
Copies specified tags for selected files to clipboard.
Pastes copied to clipboard tags to selected files from clipboard.
- It's possible to copy tags for 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.
Backup & Restore Edit
These commands allow to (auto)backup tags of all tracks in your library and restore them.
Notes: You must make manually baseline backup first. Then you can make manual or auto incremental backups.
Virtual Tag Functions Edit
This plugin introduces several new virtual tag functions (they also can be used in various filename templates, e.g. in file organizer).
- 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 $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
Do all you want with plugin binary and source code at your own risk.
Installation and Usage Edit
Extract content of archive to plugins sub-folder of MusicBee installation folder (e.g. to 'C:\Program Files\MusicBee\Plugins'). See 'Tools/Tagging tools' menu. To configure plugin go to 'Edit/Preferences/Plugins'.
Go to 'Edit/Preferences/Plugins'. Click 'Uninstall'. Plugin will delete all automatically created files (e.g. settings), but you need to exit MusicBee and manually delete all files that were included in plugin .zip.