getmusicbee.com

Support => Tips and Tricks => Topic started by: hiccup on December 07, 2021, 05:17:37 PM

Title: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on December 07, 2021, 05:17:37 PM
This is an effort to list all functions that are available for formulas in virtual tags. (and some other locations in MusicBee)

It has a brief explanation on most of them, some complemented with a short example formula.

The list is current for MusicBee v3.5
(3.5.8274 or newer is strongly recommended)

Functions that are marked with * are available if you have the
Additional Tagging & Reporting Tools (https://getmusicbee.com/addons/plugins/49/additional-tagging-amp-reporting-tools/) plugin installed.
(The AT&RT functions listed here are current for plugin version 8.0.8759. Always be sure to use a recent version of the plugin)
Just installing the plugin suffices, it's not necessary to configure anything.

Post #2 contains explanations and some examples for most of these functions.


______________________________________________________________________________________________


string functions

    name
     syntax
Contains (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_conta)$Contains(<field>,search-value)
CutLeft (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_cutl)$CutLeft(string,count)
CutRight (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_cutr)$CutRight(string,count)
IsMatch (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_ismat)$IsMatch(<field>,regex-pattern)
IsNull (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_isnul)$IsNull(<field>,text,<field>)
Left (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_left)$Left(<field>,n)
Len (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_len)$Len(<field>)
Lower (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_low)$Lower(<field>)
Pad (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_pad)$Pad(<field>,n)
RemoveSortWords (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_rems)$RemoveSortWords(<field>)
Replace (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_repl)$Replace(<field>,search-text,replace-text)
RxReplace (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_rxrep)$RxReplace(<field>,regex-pattern,replace-text)
Right (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_right)$Right(<field>,n)
RomanNumerals (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_roman)$RomanNumerals(<field>)
RSplit (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_rsplit)$RSplit(<field>,search-text,index)
RxSplit (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_rxspl)$RxSplit(<field>,regex-pattern,index)
RxMatch (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_rxmat)$RxMatch(<field>,regex-pattern)
SentenceCase (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_sent) *$SentenceCase(string)
TitleCase (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_titl) *$TitleCase(string)
Split (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_split)$Split(<field>,search-text,index)
TagContainsAnyString (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_tagcan) *$TagContainsAnyString(<URL>,tag_name,string1|string2|etc.)
TagContainsAllStrings (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_tagcal) *$TagContainsAllStrings(<URL>,tag_name,string1|string2|etc.)
Trim (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_trim)$Trim(<field>)
Upper (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_upper)$Upper(<field>)

boolean operations

    name
     syntax
If (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_if)$If(<field1>=<field2>,true-value,false-value)
    And (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_andor) / Or$If($And($Contains(<field>,search-text)=T,$Contains(<field>,search-text)=T),value1,value2)
    And / Or (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_andor)$If($Or($Contains(<field>,search-text)=T,$Contains(<field>,search-text)=T),value1,value2)
Not (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_not)$Not(<field1>=<field2>,true-value,false-value)

basic arithmetic functions

    name
     syntax
Add (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_add)$Add(number1,number2)
Sub (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_sub)$Sub(number1,number2)
Mul (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_mul)$Mul(number1,number2)
Div (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_div)$Div(number1,number2)

other arithmetic functions

    name
     syntax
Eq (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_eqnegt) *  (equal to)
Ne (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_eqnegt) *  (not equal to)
Gt (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_eqnegt) *  (greater than)
Lt (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_eqnegt) *  (less than)
Ge (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_eqnegt) *  (greater than or equal to)
Le (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_eqnegt) *  (less than or equal to)
$eq(number1,number2)
$ne(number1,number2)
$gt(number1,number2)
$lt(number1,number2)
$ge(number1,number2)
$le(number1,number2)
Abs (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_abs)   (absolute)$Abs(number)
Log (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_log) *   (logarithm )$Log(number)
Mod (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_mod)   (modulus)$Mod(number1,number2)
Random (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_rand) *$Random(max_number)
Round (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_round) *$Round(number,number_of_digits_after_decimal_point)
RoundDown (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_rddwn) *$RoundDown(number,number_of_digits_after_decimal_point)
RoundUp (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_rdup) *$RoundUp(number,number_of_digits_after_decimal_point)
Sqrt (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_sqrt) *   (square root)$Sqrt(number)

time and date

    name
     syntax
Date (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_date)$Date(<field>,format)
DateCreated (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_datcr) *$DateCreated(<URL>)
Now (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_now) *$Now()
NumberOfDays (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_nmbrd) *$NumberOfDays(datetime1,datetime2)
AddDuration (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_adddr) *$AddDuration(duration1,duration2)
AddDurationToDateTime (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_adddt) *$AddDurationToDateTime(datetime,duration)
SubDuration (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_subdr) *$SubDuration(duration1,duration2)
SubDurationFromDateTime (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_subdt) *$SubDurationFromDateTime(datetime,duration)
MulDuration (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_muldr) *$MulDuration(duration, number)
SubDateTime (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_subda) *$SubDateTime(datetime1,datetime2)

other functions

    name
     syntax
ASR (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_asr) *$ASR(<URL>,preset_id)
Char (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_char) *$Char(hexadecimal code)
CharN (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_charn) *$CharN(hexadecimal code,decimal number of times)
Count (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_count)$Count(<grouping-field>) or $Count(<field>,<grouping-field>)
First (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_first)$First(<field>)
Group (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_group)$Group(<field>,n)
LR (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_lr) *$LR(<URL>,function_id)
Min (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_min)$Min(<field>,<grouping-field>)
Max (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_max)$Max(<field>,<grouping-field>)
Name (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_name)$Name(filename)
Sort (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_sort)$Sort(<field>)
Sum (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_sum)$Sum(<field>,<grouping-field>)
______________________________________________________________________________________________


text formatting (markup)

{color: r, g, b}
{color: default}

{font: name; style; size}
{font: default}

{contrast: n}
{contrast: default}

examples (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_markup)


______________________________________________________________________________________________
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on December 07, 2021, 05:19:39 PM

  explanations and examples



$Abs(<field>)

returns the absolute of a number.
(which is the distance of that number to zero. E.g. -3 gets output as 3)
___

$Add(<field1>,<field2>)

returns the sum of two numeric fields.
___

$AddDuration(duration1,duration2)

returns the sum of two durations.

Duration can be either defined as literal (eg. 00/00/0001 means 1 year, 5:00 means 5 mins, 00/01/0000 10:05:15 means 1 day 10 hours 5 mins 15 secs, etc.)
or it can be obtained by subtracting two dates or two times. (or two datetimes in general)
Also, <Time> tag (track duration) is a valid duration.
 ___

$AddDurationToDateTime(datetime,duration)

returns the sum of a datetime and a duration.

Datetime can be either defined as literal (eg. 07/25/2022 or 07/25/2022 8:31 pm or 8:31:15 pm)
or as any date tag in MB. (eg. <Year>, <Original Year>, <Date Added>, etc.)

Duration can be either defined as literal (eg. 00/00/0001 means 1 year, 5:00 means 5 mins, 00/01/0000 10:05:15 means 1 day 10 hours 5 mins 15 secs, etc.)
or it can be obtained by subtracting two dates or two times. (or two datetimes in general)
Also, <Time> tag (track duration) is a valid duration.
___

$ASR(<URL>,preset_id)

This function makes it possible to use and integrate ASR (Advanced Search & Replace) presets in virtual tags.
(ASR is a feature of the Additional Tagging & Reporting Tools plugin, which is required for these two functions)

More detailed information and some examples can be found in the README section here (https://getmusicbee.com/addons/plugins/49/additional-tagging-amp-reporting-tools/), and in e.g. this (https://getmusicbee.com/forum/index.php?topic=3833.msg208363#msg208363) post by forum member Messiaen.
___

$Char(hexadecimal code)

returns the glyph (symbol) of the hexadecimal code entered

example:
$Char(266A) will return the symbol for a music eighth note:  ♪
___

$CharN(hexadecimal code,decimal number of times)

returns a Unicode character (defined by its hexadecimal code) repeated a specified number of times

example:
$If(<Release type>="studio album",$CharN(200b,4)"Albums (studio)",$If(<Release type>="live album",$CharN(200b,3)"Albums (live)",$If(<Release type>="compilation album",$CharN(200b,2)"Albums (compilation)",)))
adds a specific number of zero-width spaces in front of specific album types
this can be useful for creating custom and non-alphabetical sorting orders
___

$Contains(<field>,search-value)

checks if a tag contains a given value, which can be a text string or a tag.
Returns 'T' or 'F' (true or false)

example:
$Contains(<Genre>,rock)  will e.g. produce 'T' when the genre is 'Jazz-rock'

By combining this function with the $If function you can use it to output a custom text. (or the contents of another tag)

example:
$If($Contains(<field>,search-value)="T",value1,value2)
(where value1 is produced when 'true' and value2 when 'false')
___

$Count(<grouping-field>)
and
$Count(<field>,<grouping-field>)

returns the number of items in a defined group.

examples:
$Count(<Album>)     returns the number of tracks of an album
$Count(<Artist>)               returns the number of tracks of an artist
$Count(<Album>, <Album Artist>)   returns the number of albums of an album artist
___

$CutLeft(<field>,length)

returns a field with n characters removed from the left.

$CutRight(<field>,length)

returns a field with n characters removed from the right.
___

$Date(<field>,format)

returns a date field using a defined formatting, using an existing date tag as the source.

examples:
$Date(<Date Modified>,yyyy/MM/dd HH:mm)
(will e.g. output:  2021/12/31 19:30)
$Date(<Date Modified>,MMMM yyyy)
(will e.g. output:  december 2021)

Relevant formatting options:

date: d / dd / ddd / dddd
month: M / MM / MMM / MMMM
year: yy / yyyy
hour: H / HH
minute: m / mm

(the letter count defines displaying 1 or 2 digits, abbreviated, full)
___

$DateCreated(<URL>)

returns the file creation date/time.
___

$Div(<field1>,<field2>)

returns the division of two numeric fields.
___

$eq(number1,number2)
        compares 2 integer or fractional numbers, determines if number1 is equal to number2, e.g. $eq(1.0,1) returns "T"
$ne(number1,number2)
        determines if number1 is not equal to number2
$gt(number1,number2)
        determines if number1 is greater than number2
$lt(number1,number2)
        determines if number1 is less than number2
$ge(number1,number2)
        determines if number1 is greater than or equal to to number2
$le(number1,number2)
        determines if number1 is less than or equal to number2

___

$First(<field>)

returns only the first value of a multi-value tag.
___

$Group(<field>,n)

returns an alphabetical grouping string.
The number for 'n' defines the amount of alphabetical characters the alphabet will be divided in.

examples:
For the artist 'Deafheaven':
$Group(<Artist>,3)  the output will be: DEF
$Group(<Artist>,4)  the output will be: ABCD
___

$If(<field1>=<field2>,true-value,false-value)

returns one of two values depending on a comparison of two different tags.

For numerical tags, besides = (equals), also < (less than) and > (greater than) can be used.

   $And(Criterion1,Criterion2)
 
   $Or(Criterion1,Criterion2)

   are both subfunctions that can be used in combination with the $If function.
   They make it possible to have two (or more) criteria being met before returning a true or false result.

   for 'And', both criteria must be met to output 'T'
   for 'Or', at least one criterium must be met to output 'T'

   example:
   $If($Or($Contains(<Album>,live)=T,$Contains(<Title>,live)=T),Live,Studio)
   (checks if any of two different tags contains the word 'live')

tip:

As an alternative to using $Or, you can also line up two (or more) tags in $Contains.

example:
$If($Contains(<Album><Title><Keywords><Genre>,live)=T,Live,Studio)
(will check if any of these four tags contains 'live', and if so will output 'Live'.)
___

$IsMatch(<field>,regex-pattern)

checks if a tag matches a regular expression.
Returns 'T' if true or 'F' if false.

example:
$IsMatch(<Artist>,"^The\s")
(will output 'T' if the Artist tag begins with 'The')
___

$IsNull(<field>,value if empty,<field>)

checks if a tag is empty, and then outputs either that- or another tag, or a value that can be either a text string or a tag.
This can also be useful to prevent MusicBee from displaying 'Unknown' for tags used in a formula that are empty.

example:
$IsNull(<Album>,"",<Album>)
(will display blank instead of 'Unknown' for tracks without an Album tag)
___

$Left(<field>,n)

$Right(<field>,n)

'Left' returns the first 'n' count characters of a tag.
'Right' returns the last 'n' count characters of a tag.
___

$Len(<field>)
returns the amount of characters (length) of a tag.
___

$Log(number)

returns the logarithm of a number (base 10)

example:
$Mul($Log(<Track peak>),20) dB  *
(returns the peak audio value of a track in dB)

* <Track peak> is not available by default in MusicBee
See here (https://getmusicbee.com/forum/index.php?topic=40181.msg217512#post_track_peak) for how to make it available.
___

$Lower(<field>)

$Upper(<field>)

converts a tag to all lower-case or all upper-case.
___

$LR(<URL>,function_id)

This function makes it possible to use and integrate LR (Library Reports) presets in virtual tags.
(LR is a feature of the Additional Tagging & Reporting Tools plugin, which is required for these two functions)

More detailed information and some examples can be found in the README section here (https://getmusicbee.com/addons/plugins/49/additional-tagging-amp-reporting-tools/), and in e.g. this (https://getmusicbee.com/forum/index.php?topic=3833.msg208363#msg208363) post by forum member Messiaen.
___

$Min(<field>,<grouping-field>)

checks for the item in a group that has the lowest value and outputs that value.

$Max(<field>,<grouping-field>)

checks for the item in a group that has the highest value and outputs that value.

examples:
$Min(<Year (yyyy)>,<Artist>)
(returns the earliest year that is found for any track(s) of an artist)
___

$Mod(<field1>,<field2)

returns the modulo of the division of two numeric tags.
___

$Mul(<field1>,<field2>)

returns the multiplication of two numeric fields.
___

$MulDuration(duration,number)

returns the multiplication of a duration and a floating point or integer number.

example:
$MulDuration(<Time>,<Play Count>)

Where duration can be either defined as literal (eg. 00/00/0001 means 1 year, 5:00 means 5 mins, 00/01/0000 10:05:15 means 1 day 10 hours 5 mins 15 secs, etc.)
or it can be obtained by subtracting two dates or two times. (or two datetimes in general)
___

$Name(filename)

returns the file name without the extension and the path to the file.
e.g. $Name(<filename>) or $Name(<URL>)
___

$Not(<field1>=<field2>)

returns 'T' if two tags have different values or 'F' if they are identical.
___

$Now()

returns the current date/time.

date/time format depends on your Windows regional settings.
e.g.:
11/01/2022 02:30:00 pm  (for US regional settings)
01.11.2022 14:30:00  (for European regional settings)
___

$NumberOfDays(datetime1,datetime2)

returns the number of days between datetime1 and datetime2.
___

$Pad(<field>,n)

pads numerical tags to 'n' digits by adding zeros at the beginning.

example:
$Pad(<Track#>,3)
(will e.g. output '001' for track '1')
___

$Random(max_number)

outputs a random integer number between 0 and max_number (including them)
___

$RemoveSortWords(<field>)

outputs the content of a tag while removing the 'ignore words' as defined at: Preferences > Sorting/Grouping.

So e.g. 'The Beatles' can be output as 'Beatles'.
___

$Replace(<field>,search-value,replace-value)

searches a tag for a defined search value, and replaces that value with a defined replace value.

$RxReplace(<field>,regex-pattern,replace-text)

does the same, but allows for using regular expressions.

example:
$RxReplace(<Title>,"feat[\W\.]",ft.)
(replaces 'feat.' in a title with 'ft.')
___

$Round(number,number_of_digits_after_decimal_point)

returns a number rounded to a given number of digits.

examples:
$Round(4.28,1) returns 4.3
$Round(5.2,0) returns 5
___

$RoundDown(number,number_of_digits_after_decimal_point)

returns a number rounded down to a given number of digits.

example:
$RoundDown(4.28,1) returns 4.2
___

$RoundUp(number,number_of_digits_after_decimal_point)

returns a number rounded up to a given number of digits.

example:
$RoundUp(5.2,0) returns 6
___

$RxMatch(<field>,regex-pattern)

returns the text portion that is matched by a regular expression.

example:
$RxMatch(<Year>,"\d{4}")
(returns the year only, so it will e.g. produce '2021' for both '2021-12-31' and '31/12/2021')
___

$RomanNumerals(<field>)

outputs a numerical field formatted as Roman numerals.

example:
$RomanNumerals(<Movement #>)
(will e.g. display 'III' for '3')
___

$SentenceCase(string)

capitalises the first letter of the first word in a string.

example:
$SentenceCase(<Title>)
would display La chanson des vieux amants for the title La Chanson Des Vieux Amants
___

$TitleCase(string)

capitalises the first letter of every word in a string.

example:
$TitleCase(<Title>)
would display Refrain From Screaming for the title REFRAIN FROM SCREAMING
___

$Split(<field>,search-text,index)

returns a defined index section of a tag.

The search-text defines the index divider, the index is a number that counts the sections from left to right.

example:
$Split(<Title>,:,3)
(will return 'Three' for a title being: 'One: Two: Three: Four')

$RSplit(<field>,search-text,index)

does the same as $Split, but counts from right to left.

$RxSplit(<field>,regex-pattern,index)

does the same as $Split, but allows for using a regular expression to define the split value.
___

$Sort(<field>)

returns a tag in the format of a sorting field, moving 'Ignore words' (as defined at: Preferences > Sorting/Grouping) to the end of the tag.

example:
$Sort(<Artist>)
(will output 'Beatles, The' for 'The Beatles')
___

$Sqrt(number)

returns the square root of a numeric field.
May be useful for gathering some library statistics (in conjunction with ALR functions)
___

$Sub(<field1>,<field2>)

returns the subtraction of (difference between) two numeric fields.
___

$SubDateTime(datetime1,datetime2)

returns the subtraction of (difference between) two datetimes.

Datetime can be either defined as literal (eg. 07/25/2022 or 07/25/2022 8:31 pm or 8:31:15 pm)
or as any date tag in MB. (eg. <Year>, <Original Year>, <Date Added>, etc.)
___

$SubDuration(duration1,duration2)

returns the subtraction of (difference between) two durations.

Duration can be either defined as literal (eg. 00/00/0001 means 1 year, 5:00 means 5 mins, 00/01/0000 10:05:15 means 1 day 10 hours 5 mins 15 secs, etc.)
or it can be obtained by subtracting two dates or two times. (or two datetimes in general)
Also, <Time> tag (track duration) is a valid duration.
___
 
$SubDurationFromDateTime(datetime,duration)

returns the subtraction of a datetime and a duration.

Datetime can be either defined as literal (eg. 07/25/2022 or 07/25/2022 8:31 pm or 8:31:15 pm)
or as any date tag in MB. (eg. <Year>, <Original Year>, <Date Added>, etc.)

Duration can be either defined as literal (eg. 00/00/0001 means 1 year, 5:00 means 5 mins, 00/01/0000 10:05:15 means 1 day 10 hours 5 mins 15 secs, etc.)
or it can be obtained by subtracting two dates or two times. (or two datetimes in general)
Also, <Time> tag (track duration) is a valid duration.
___

$TagContainsAnyString(<URL>,tag_name,string1|string2|etc.)

checks if a tag contains any of the strings separated by |
Returns 'T' or 'F' (true or false)

$TagContainsAllStrings(<URL>,tag_name,string1|string2|etc.)

checks if a tag contains all the strings separated by |
Returns 'T' or 'F' (true or false)

Note that these functions require <URL> to be kept as is, and the name of the tag of your choice should not be surrounded by < >
___

$Sum(<field>,<grouping-field>)

returns the total count of an item in reference to a group.

examples:
$Sum(<Play Count>,<Artist>)
(returns the total play count for all tracks of an artist)
$Sum(<Play Count>,<Album>)
(returns the combined play count for all the tracks of an album)
___

$Trim(<field>)

removes any spaces from the beginning and the end of a tag.

_________________________________________


Text formating of virtual tags (markup)

It is possible to format the output of virtual tags to use specific fonts, colours or contrast. The available options are:

{color: r, g, b}
{color: default}

{font: name; style; size}
{font: default}

{contrast: n}
{contrast: default}

example:

Code
{font: Segoe UI Symbol;Regular;11}{color: 10,160,35} 🎵{font: Comic Sans MS;Italic;10}{color: default}<Title>{font: Segoe UI Symbol;Regular;10}{color: 237,122,7}{contrast: 60}    👤 {font: default}{color: default}{contrast: 80}<Artist>
will produce:

(https://i.imgur.com/7sh72Ex.png)
 

_________________________________________________________________________________________________________________________


some additional resources:

A MusicBee Wiki page that contains similar content, on which my sheet was loosely based:
https://musicbee.fandom.com/wiki/Functions

A MusicBee forum topic containing a repository of virtual tags that may be helpful to gain more understanding of what can be done:
https://getmusicbee.com/forum/index.php?topic=9317.0

A MusicBee Tips and Tricks forum topic containing a repository of all useful regex functions that can be used in virtual tags and/or AT&RT:
https://getmusicbee.com/forum/index.php?topic=38817.0
 
Another forum thread that can be a starting point to learn more about RegEx:
https://getmusicbee.com/forum/index.php?topic=20952.msg123713#msg123713
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: sveakul on December 07, 2021, 08:57:51 PM
Beautiful, thanks hiccup!
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on December 08, 2021, 05:17:26 PM
You're welcome sveakul!

I believe the very first version I posted had a problem with some double quotes.
(curly instead of straight)
On my system copying such a formula into MusicBee produced an error.
That should be fixed now.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on January 12, 2022, 06:34:15 PM
Updated with the functions that become available after you have installed Boroda's 'Additional Tagging & Reporting Tools' plugin.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: Corliss Rain on January 14, 2022, 02:57:22 AM
This is awesome, hiccup! Thanks!
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on February 21, 2022, 06:05:25 PM
The start post was updated with information on functions that were recently added to MB v3.5
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on July 24, 2022, 10:00:09 PM
Updated to be current for the most recent version of the Additional Tagging & Reporting Tools plugin.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on August 21, 2022, 10:16:27 AM
updated

Thanks Boroda, for providing explanations on the duration and datetime functions.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on August 21, 2022, 02:54:43 PM
A request to anyone using formulas that make use of more advanced date/time functions such as: AddDuration, SubDateTime, SubDurationFromDateTime etc.

It would be appreciated if you could share such a formula, and explain what its practical use is.
I could then add it as an example for these functions.
(it would be good if the formula is as brief as possible)
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on August 24, 2022, 01:44:41 PM
@hiccup, please change description:

Code
$DateCreated(<URL>)

returns the file creation date.

to:

Code
$DateCreated("<URL>")

returns the file creation date/time.

quotes allow to take into account parenthesis in URL, and "time" is for more clarity, it'not only date.

also, i've added 2 new functions to plugin:

Code
$TagContainsAnyString("<URL>",tag_name,string1|string2|etc.): returns "T" if tag
  contains any of the strings separated by |, otherwise returns "F".
  tag_name must be written without angle brackets,
  e.g. $TagContainsAnyString("<URL>",Title,a|an|the)

$TagContainsAllStrings("<URL>",tag_name,string1|string2|etc.): returns "T" if tag
  contains all strings separated by |, otherwise returns "F".
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: The Incredible Boom Boom on August 24, 2022, 03:37:50 PM
A request to anyone using formulas that make use of more advanced date/time functions such as: AddDuration, SubDateTime, SubDurationFromDateTime etc.

It would be appreciated if you could share such a formula, and explain what its practical use is.
I could then add it as an example for these functions.
(it would be good if the formula is as brief as possible)

I could share my use case, but... uh... it's... uh... not brief. 😅
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on August 24, 2022, 03:49:26 PM
i think hiccup could create the link from 1st/2nd post to large description in later post.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on August 24, 2022, 05:42:31 PM
I could share my use case, but... uh... it's... uh... not brief. 😅
Could you perhaps isolate only the date/time part(s) of it, and explain what it does?
I don't think I should add formula examples that take some severe studying to understand what they do ;-)

Else, if you can't shorten it, but think it can be useful to others, feel free to share it.
I will then do what Boroda suggested.


Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on August 24, 2022, 05:44:36 PM
@hiccup, please change…
I will do that this weekend.
(editing these posts that are full of BBcode (for formatting) is no fun, and I'm not up to that at this moment. ;-)
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on August 25, 2022, 06:50:54 AM
Code
$DateCreated("<URL>")

$TagContainsAnyString("<URL>",tag_name,string1|string2|etc.)

$TagContainsAllStrings("<URL>",tag_name,string1|string2|etc.)

quotes allow to take into account parenthesis in URL

quotes don't work, they must be removed, all works just fine without quotes, no matter what characters URL contains.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on August 27, 2022, 03:24:09 PM
$TagContainsAnyString(<URL>,tag_name,string1|string2|etc.)

… no matter what characters URL contains.
I don't think I understand the construction of that function.
Why is <URL> needed?
And should it be kept exactly like that, or could it be replaced with another tag?

Wouldn't something like this do the same and be more consistent with other functions?:
$TagContainsAnyString(<tag>,string1|string2|etc.)
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on August 27, 2022, 03:36:41 PM
you are quite right, of course it's better. unfortunately some tags cannot be used that way, e.g. <Lyrics>. tag tools plugin supports for more number of tags (you can see the full list of tags in any plugin command, e.g. 'copy tag') than mb through the usage of <Tag name> construction.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on August 27, 2022, 04:12:50 PM
you are quite right, of course it's better. unfortunately…
O.k.
I updated the sheet and the explanations by adding these new functions.
I think it's looking good, but let me know if you have any comment.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on August 27, 2022, 04:26:22 PM
you are quite right, of course it's better. unfortunately some tags cannot be used that way, e.g. <Lyrics>. tag tools plugin supports for more number of tags (you can see the full list of tags in any plugin command, e.g. 'copy tag') than mb through the usage of <Tag name> construction.
Just another thought:

Perhaps change these functions from:
$TagContainsAnyString and $TagContainsAllStrings
to simply:
$ContainsAny and $ContainsAll

That would line up more nicely with the existing $Contains function?
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on August 27, 2022, 05:41:13 PM
i wanted to emphasize that these 2 functions search for strings in a given tag (and in tag only).  

mb native function $Contains can be used not only for tags, these are still correct usage: $Contains(the door open,<Artist>) or $Contains(my sample text,sample), though the latter usage (with only static text) is useless.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on August 27, 2022, 05:54:55 PM
mb native function $Contains can be used not only for tags, these are still correct usage: $Contains(the door open,<Artist>) or $Contains(my sample text,sample), though the latter usage (with only static text) is useless.
Hmm, I'm starting to regret asking about this ;-)
So where in my sheet it says:  $Contains(<field>,search-value)
<field> is not strictly correct, since the <> indicates an existing tag should be used, while it could also be a string (text).

And in the two new functions you recently provided, the actual tag to be used must not be embraced with '< >'

I'll probably need to reconsider how I use, name and explain entities as 'field', 'string' '< >' etc. in the sheet and the explanations.
I'm guessing it won't be easy for a newBee (or myself in a few weeks) to understand or remember the exact requirements and possibilities of all this.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on August 27, 2022, 07:01:53 PM
i'm not 100% sure, it's better to ask Steven about this, but i suppose that template editor just suggests the most important function templates. but (probably) you can use everywhere literal value instead of <Tag name> and, vice versa, you can use everywhere <Tag name> instead of literal value. BUT! i haven't checked this thoroughly.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on August 27, 2022, 07:11:50 PM
again, i'm not 100% sure, but i think that using quotes allow place commas, angle brackets and parenthesis inside literal values. without quotes commas are treated as function parameter separator, angle brackets are treated as tag names boundaries and parenthesis are treated as function parameter boundaries.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on August 27, 2022, 07:29:16 PM
again, i'm not 100% sure, but i think that…
I'll have to chew a bit on that to try to fully understand. (not being a coder, and not being well-versed in the lingo)
And, perhaps Steven can confirm or contribute to this, so I can then try to mould all the info into some texts and explanations that mortals like me will be able to understand ;-)
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on August 27, 2022, 08:25:15 PM
again, i'm not 100% sure, but i think that using quotes allow place commas, angle brackets and parenthesis inside literal values. without quotes commas are treated as function parameter separator, angle brackets are treated as tag names boundaries and parenthesis are treated as function parameter boundaries.
no, it's not very difficult to understand, i mean that: $Contains(String1,String2,<Title>) probably can't be correctly parsed because it's treated as function with 3 parameters, but $Contains("String1,String2",<Title>) probably will be parsed correctly as function with 2 parameters: 1st parameter - literal "String1,String2" and 2nd parameter - tag <Title>. and so on.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on August 27, 2022, 08:37:27 PM
no, it's not very difficult to understand, i mean that: $Contains(String1,String2,<Title>) probably can't be correctly parsed because it's treated as function with 3 parameters, but $Contains("String1,String2",<Title>) probably will be parsed correctly as function with 2 parameters: 1st parameter - literal "String1,String2" and 2nd parameter - tag <Title>. and so on.
Haha, you are hurting my brain on this Saturday night.
You mention: "String1,String2"
Isn't that factually one string?
I mean, the comma there triggers no special treatment? Or does it?
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on August 27, 2022, 08:54:05 PM
You mention: "String1,String2"
Isn't that factually one string?
I mean, the comma there triggers no special treatment?
YES! that's what i mean. and quotes probably will be omitted, when passing to the function. it seems that it's safe to use something like $Contains("<Title>,text1)",<Title>), where:

<Title>,text1) is 1st literal parameter

second <Title> is 2nd paremeter, tag name.

but i haven't checked this for all native functions, only for some functions, and i don't remember, which functions i've checked.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on August 27, 2022, 09:10:02 PM
it seems that it's safe to use something like $Contains("<Title>,text1)",<Title>), where:
<Title>,text1) is 1st literal parameter
second <Title> is 2nd paremeter, tag name.
Huh, no matching brackets there? Is that intentional for your example?
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on August 27, 2022, 10:19:28 PM
the closing bracket inside quotes is a part of 1st parameter (part of string), brackets inside quoted literal may not be balanced, second closing bracket is the end of function parameters. maybe it's allowed to use balanced brackets inside literal without quotes.

all this must be carefully checked or confirmed by Steven.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: HickyPop on September 11, 2022, 01:38:01 AM
Yo, this deserves to be wiki'd or sticki'd.
In a world where user manuals still exist, this would be eppendix'd.

I'm coming from Media Monkey where I managed to come up with my own sort-of-compicated auto-organizing mask. MusicBee's is a bit more of a head-scratcher for me and this is really helping. I think this has some good explanatory power for the common end user and should be more easily referenced and found.
Nice work.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on September 13, 2022, 05:18:21 PM
Nice work.
The appreciation is appreciated HickyPop. And welcome to the forum!

About the wiki part of your comment; the wiki is free for anyone to edit, update or contribute to.
And I have no reservations or problems whatsoever with anyone copying/pasting my work in this thread.
So you or anybody else is free to use it to update the wiki if desired.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: psychoadept on September 14, 2022, 06:10:39 PM
About the wiki part of your comment; the wiki is free for anyone to edit, update or contribute to.
And I have no reservations or problems whatsoever with anyone copying/pasting my work in this thread.
So you or anybody else is free to use it to update the wiki if desired.

There is an existing wiki page, but it definitely pre-dates hiccup's excellent contributions: https://musicbee.fandom.com/wiki/Functions
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on September 28, 2022, 06:28:05 AM
hiccup, i've removed all 3 "log" functions from tag tools plugin. please correct the cheatsheet.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on September 28, 2022, 05:37:05 PM
hiccup, i've removed all 3 "log" functions from tag tools plugin. please correct the cheatsheet.
Done
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: The Incredible Boom Boom on September 28, 2022, 08:34:47 PM
These maybe aren't the most friendly of examples, so I'm not sure if you want to use them, @hiccup, but here's parts of how I use these two tags.

Code
$AddDurationToDateTime(<Last Played>,<HH:MM:SS>)

Returns track's last played datetime + the album the track belongs to's duration in HH:MM:SS format
* 9/28/2022 2:16PM + 10:45:35 = 9/29/2022 01:01:35 AM

Code
$SubDurationFromDateTime($AddDurationToDateTime(<Last Played>,<HH:MM:SS>),00:<Time>)

Returns above formula -  track duration
* (9/28/2022 2:16PM + 10:45:35) - 4:06 = 9/29/2022 12:57:29 AM
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on September 29, 2022, 06:42:38 AM
Code
$AddDurationToDateTime(<Last Played>,<HH:MM:SS>)

Returns track's last played datetime + the album the track belongs to's duration in HH:MM:SS format
* 9/28/2022 2:16PM + 10:45:35 = 9/29/2022 01:01:35 AM
do you mean 'album duration' tag?
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: The Incredible Boom Boom on September 30, 2022, 02:41:31 AM
do you mean 'album duration' tag?

Yes, pretty much. I thought I was being more clear, when maybe I was being too wordy. Lol
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on October 07, 2022, 04:33:05 PM
These maybe aren't the most friendly of examples, so I'm not sure if you want to use them, @hiccup, but here's parts of how I use these two tags.

Code
$AddDurationToDateTime(<Last Played>,<HH:MM:SS>)

Returns track's last played datetime + the album the track belongs to's duration in HH:MM:SS format
* 9/28/2022 2:16PM + 10:45:35 = 9/29/2022 01:01:35 AM

Code
$SubDurationFromDateTime($AddDurationToDateTime(<Last Played>,<HH:MM:SS>),00:<Time>)

Returns above formula -  track duration
* (9/28/2022 2:16PM + 10:45:35) - 4:06 = 9/29/2022 12:57:29 AM

Thanks, but…  for me both formulas are rejected by MusicBee.  (failed @ <HH:MM:SS>)
Could there be some syntax error in the formulae?
(I was thinking that the arrow brackets around HH:MM:SS shouldn't be there, but removing them doesn't solve it)
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on October 07, 2022, 09:38:20 PM
The Incredible Boom Boom meant by HH:MM:SS time (duration) format to be used. users must use tag <Album Duration> instead of <HH:MM:SS>
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on October 07, 2022, 10:09:53 PM
Ok, thanks.
But considering I am not using these functions myself, and as a result I am not able to present brief, working examples of them that fit the format and intentions of my cheat sheet, I'll leave it at this.
Users that desire to use these specific functions are probably able to get them to work anyway, or can now find it out by performing forum searches.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on November 27, 2022, 08:37:57 PM
@hiccup, it seems that $DateCreated(<URL>) function is implemented in tag tools plugin only (it's definitely implemented at least in plugin), but it's not marked by asterisk.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on November 27, 2022, 09:01:11 PM
@hiccup, it seems that $DateCreated(<URL>) function is implemented in tag tools plugin only (it's definitely implemented at least in plugin), but it's not marked by asterisk.
You are right.
Thanks, it's fixed now.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on January 06, 2023, 01:36:43 PM
updated
$ALR, $ASR and $Char were added
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on January 14, 2023, 04:16:19 PM
updated
$ALR, $ASR and $Char were added

but $eq ,$le, $gt, etc?
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on January 14, 2023, 06:08:54 PM
but $eq ,$le, $gt, etc?
Will do, as promised.
But it takes a clear mind to edit a BBCode formatted post like this one. (which I currently don't have ;-)
It's too easy to destroy the layout of a post like this one.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on January 15, 2023, 05:23:11 AM
i've done it for you:

$eq(number1,number2): compares 2 integer or fractional numbers, determines if number1 is equal to number2, e.g. $eq(1.0,1) returns "T"

$ne(number1,number2): determines if number1 is not equal to number2

$gt(number1,number2): determines if number1 is greater than number2

$lt(number1,number2): determines if number1 is less than to number2

$ge(number1,number2): determines if number1 is greater than or equal to to number2

$le(number1,number2): determines if number1 is less than or equal to number2

Code
$eq(number1,number2): compares 2 integer or fractional numbers, determines if number1 is [i][b]eq[/b][/i]ual to number2, e.g. $eq(1.0,1) returns "T"

$ne(number1,number2): determines if number1 is [i][b]n[/b][/i]ot [i][b]e[/b][/i]qual to number2

$gt(number1,number2): determines if number1 is [i][b]g[/b][/i]reater [i][b]t[/b][/i]han number2

$lt(number1,number2): determines if number1 is [i][b]l[/b][/i]ess [i][b]t[/b][/i]han to number2

$ge(number1,number2): determines if number1 is [i][b]g[/b][/i]reater than or [i][b]e[/b][/i]qual to to number2

$le(number1,number2): determines if number1 is [i][b]l[/b][/i]ess than or [i][b]e[/b][/i]qual to number2
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on January 15, 2023, 08:20:49 AM
i've done it for you:
Thanks a lot. I will update and integrate it later today.

But it's this kind of BBCode formatting I am talking about:

(https://i.imgur.com/vhGjOgb.png)
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on January 15, 2023, 01:43:04 PM
Ah!
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on January 15, 2023, 03:19:55 PM
updated

- new AT&RT functions were added ($eq, $ne, $gt, $lt, $ge, $le)
- virtual tag formatting (markup) functions were added
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: karbock on February 19, 2023, 08:09:01 PM
Thanks for the [anchor] codes!
Patient work at its best!
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on February 20, 2023, 06:26:55 AM
Thanks for the [anchor] codes!
Patient work at its best!
Well observed karbock ;-)

Once I discovered that this could be done (and how), this seemed the post that would benefit the most from it.
(It was just a pity it happens to have some 70 candidates for anchors ;-)

edit
Also it's a bit ridiculous, the BBcode post design now has some 16.500 characters for a post that contains some 460 words ;-)
(BBCeditor is huffing and puffing on it, icecaps melting)
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on July 16, 2023, 02:44:48 PM
Yo, this deserves to be wiki'd or sticki'd.
In a world where user manuals still exist, this would be eppendix'd.

I'm coming from Media Monkey where I managed to come up with my own sort-of-compicated auto-organizing mask. MusicBee's is a bit more of a head-scratcher for me and this is really helping. I think this has some good explanatory power for the common end user and should be more easily referenced and found.
Nice work.
Thnx HickyPop.
I agree with the sticky part of your post. I find myself searching and scrolling often when searching for it myself ;-)
It also has accumulated a lot of views, so I am guessing it is quite helpful to many others too.

edit:
I see it's done. Thnx phred!
 
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on November 04, 2023, 09:43:26 AM
updated

The functions: $CharN (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_charn) and $Lg (https://getmusicbee.com/forum/index.php?topic=35868.msg196258#post_func_log) have been added.

Note that $Lg (logarithm) is currently only available in the latest beta release (https://getmusicbee.com/forum/index.php?topic=3833.msg217492#msg217492) of AT&RT.


edit
@boroda, not important, but perhaps change $Lg to $Log?
Functions like $Mod and $Abs also have 3 characters, while functions as $Gt $Lt etc. have 2.
Users may think Lg means Less great  ;-)

(https://i.imgur.com/Ike4dYa.png)
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on November 04, 2023, 09:45:47 PM
@boroda, not important, but perhaps change $Lg to $Log?

i named it Lg because "log" is arbitrary logarithm (any base), "lg" is decimal logarithm (base 10), and "ln" is natural logarithm (base is Euler number, ~2.71...) in mathematics. .NET decimal logarithm function is named "Log10", not simply "Log".

but if you insist, I could rename it to something else.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on November 04, 2023, 10:05:12 PM
i named it Lg because "log" is arbitrary logarithm (any base), "lg" is decimal logarithm (base 10), and "ln" is natural logarithm (base is Euler number, ~2.71...) in mathematics. .NET decimal logarithm function is named "Log10", not simply "Log".
I'm sure your explanation is correct.
But all the scientific calculators that I can see (google image search TI, Casio et.al ) have a 'Log' button and a 'Ln' button.
Not 'Lg' and 'Ln' buttons.
'Log' to me just seems the most used and well understood abbreviation for this purpose.
But it's obviously for you to decide.
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: boroda on November 05, 2023, 01:51:29 AM
ok, i'll rename it "log". i'm doubtful that any logarithm base other than 10 can be useful for audio/music  ;)
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: hiccup on November 05, 2023, 06:41:46 AM
i'm doubtful that any logarithm base other than 10 can be useful for audio/music  ;)
Indeed.
Well at least, I hope not.
This 'basic' Log was already pushing my (two) mathematical brain cells to their limit ;-)
Title: Re: MusicBee functions for virtual tags cheatsheet
Post by: purplebee on November 22, 2023, 08:08:42 PM
Ty for compiling this! I didn't even know half of these functions existed