The functions in this section access field values, store and load global variables,
access file tags, and access note fields.
Field(…)
- Returns a field's value.
Description
|
Field(name, mode)
- Argument mode is optional (defaults to 1).
The Field() function returns the value stored in field name.
The format of return is selected by mode.
Available mode values:
0 | Raw, unformatted data |
1 | Formatted data |
|
Examples
|
field(album)
- Returns the formatted value of field name album. Note that this is equivalent to [album].
field(date, 0)
- Returns the raw, unformatted value stored in the date field. Note that this is equivalent to [date,0].
|
FieldQuery(…)
- Return a list of matches based on a list of fields to search, from a selected scope of files.
Description
|
FieldQuery(fieldlist, valuelist, return, mode, scope)
The FieldQuery() function returns a list of matches based on a list of fields to search, from a selected scope of files..
- Fieldlist: a semi-colon delimited list of fields to search, e.g. Director;Studio
- Valuelist: a value to search for in each field in fieldlist (could be an expression)
- Return: The single field that is returned when a match is found, values from files returned as a semi-colon delimited list
- Available mode values:
0 | Current View (faster results - only search files in the current view) |
1 | Global (searches all files) |
Important Notes
- When providing the value(s) for Fieldlist, library fields are referenced by their names only. i.e., no square brackets.
- If a library field is desired for use in Valuelist, square brackets are required.
- When performing searches in list type fields, such as [Actors], each entry in the field list is tested for either 'contains' or 'exactness', as specified, rather than the raw field data.
- The current implementation returns matches in ANY of the given fields (OR). AND is not possible at this time. [Reference]
|
Examples
|
FieldQuery(Director,Ridley Scott,Name,1,1)
- This queries the [Director] field of all files for exactly "Ridley Scott", returning a list of names for all positive results: Alien;Blade Runner;Gladiator
FieldQuery(Actors,Al Pacino,Name,0,0)
- This queries the [Actors] field of the currently listed files for any containing "Al Pacino", returning a list of names for all positive results: The Godfather;Heat;Scarface;The Irishman
FieldQuery(Director;Actors, Sean Penn;Nicole Kidman, Name, 1, 0)
- this returns all files where Sean Penn OR Nicole Kidman is in the Director OR Actors field
|
ItemCount(…)
- Counts the number of files that have the exact same value of the given expression as the file the expression runs in the context of.
Description
|
ItemCount(field)
The ItemCount() function counts the number of files that have the exact same value of the given expression as the file the expression runs in the context of.
field is the library field name, or names, with control characters escaped, for which a count is desired.
Notes:
- * ItemCount is special because it returns counts from the entire library, not just the currently filtered subset. This means all files and all media types.
- * ItemCount can only do what it does by using a cache of the library data. The cache is rebuilt every 60 seconds, so, when testing these, changes may not be immediately noticeable.
- * Special characters are required to be escaped, otherwise, they will break the expression. For example, use /[Album Artist /(Auto/)/] not [Album Artist (Auto)]
- * ItemCount counts files. This means that it cannot count, for example, the number of seasons in a series, or the number of discs in an album.
- * Pay particular attention to the first example shown below regarding list type fields.
The Interact forum has a useful thread that discusses the above notes in more detail.
|
Examples
|
ItemCount(/[Artist/])
- Returns the number files tagged with the currently associated artist.
- It is important to note that a semi-colon delimited list of artists is treated as a unique value. For any files where the [Artist] field contains Bob Dylan;Mark Knopfler, these tracks will be counted seperately, and not included in the counts where [Artist] is specifically Bob Dylan or Mark Knopfler.
ItemCount(/[Artist/]/[Genre/])
- Returns the number of files of a given artist in a given genre
|
Load(…)
- Outputs the value of a global variable.
Description
|
Load(varname)
Loads and outputs the value of the specified global variable varname that has been previously stored with Save().
|
Examples
|
load(var1)
- Loads and outputs the previous stored value of the global variable named var1.
save(math(1 + 2), sum)load(sum)
- Saves the output of the Math() function into sum, and then loads and outputs the value of sum, which is 3.
|
Note(…)
- Retrieve note fields.
Description
|
Note(field label, field type, occurrence)
- Argument field type is optional (defaults to FIRST AVAILABLE).
- Argument occurrence is optional (defaults to 0).
The Note() function retrieves information from a Media Center Note.
Specifically, it returns the contents associated with a field label, of a given field type.
The Nth occurrence may be requested.
Notes data may be simple text, or associated with defined a field label.
Currently the only type of field label is contact information.
The first line of a Note is associated with the omnipresent field label Name.
The field type selects the specific sub-type for a given field label, and occurrence selects which instance of
several field label / field type pairs is returned. The occurrence value is zero-based.
|
Examples
|
note(phone)
- Returns the value found in the first Phone field label. If no Phone label exists, nothing is returned.
note(phone, home)
- Returns the value found in the first Home field type from the Phone field label. If the Phone label, Home type does not exists, nothing is returned.
note(phone, home)
- Returns the value found in the first Home field type from the Phone field label. If the Phone label, Home type does not exists, nothing is returned.
note(phone, home, 1))
- Same as the previous example, but the second instance of the field type is selected instead of the first, since occurrence is zero-based.
|
Save(…)
- Saves a value to a global variable.
Description
|
Save(value, variable, mode)
- Argument mode is optional (defaults to 0).
This Save() function saves the value into the specified global variable, and optionally will return that value if mode is set.
Once a global variable has been created using Save(), that variable's value is available for use with either Load() or the pseudo-field "[variable]".
Available mode values:
0 | Suppress output |
1 | Output variables value |
|
Examples
|
save(Much Money, local_bank)
- Saves the value Much Money into the global variable local_bank.
save(More Money, My Bank, 1)
- Saves More Money into My Bank and outputs the variables value More Money.
save(math([duration,0] / 60), durmins)if(compare([durmins], >, 5.0), Long Track, Short Track)
- Saves the calculated duration in minutes into the variable durmins. Notice that subsequent expressions fragments such as the if(compare()...) may now use the pseudo-field [durmins] as shorthand for load(durmins).
Additional Examples
- Generating statistics
- Generating album track count
- Generating album ratings
- Highlighting playing album
- Expand a sublist into a superset
|
SaveAdd(…)
- Adds to a global variable.
Description
|
SaveAdd(variable, value, mode)
- Argument mode is optional (defaults to 0).
The SaveAdd() function adds value to a global variable either numerically or as a list item.
The mode argument indicates how variable is modified.
Available mode values:
0 | Add numeric value (integer or decimal) to variable |
1 | Append string value as a list item to variable |
2 | Prepend string value as a list item to variable |
|
Examples
|
saveadd(v, 1)
- Numerically increments the global variable v by 1.
saveadd(v, math(2 - 6))
- Numerically increments the global variable v by the outcome of the Math(), which is -4.
save(foo, v)saveadd(v, bar, 1)load(v)
- Loads value foo into variable v, then appends the value bar as a list item, and the final load(v) expression outputs the result of foo; bar.
save(That, v)saveadd(v, This, 2)load(v)
- Similar to the previous example, but using the prepend mode, resulting in the output This; That.
|
Tag(…)
- Returns a file's physical tag.
Description
|
Tag(tag name)
The Tag() function reads and returns the value of tag name directly from a file. The Media Center Library database is not used with Tag(), and instead the specified file is read for the requested tag. The spelling and letter case of the tag name must match exactly those stored in the file. Performance note: This function must open and read the actual file, so its performance is significantly slower than other functions which operate on database fields.
|
Examples
|
tag(My Personal Tag)
- This will return the value from the tag named My Personal Tag from file referenced by the [filename] field.
tag(Gapless Header)
- Returns the Gapless Header tag value, often contained in an mp3 file.
tag(exif: Date)
- Returns the raw date data from the EXIF data saved inside a jpg file.
|