MusicIP Mixer Help - Custom Tags
Version 1.5 supports custom tagging of songs. This is a highly
extensible system for arbitrarily adding information to your database.
At this point, the feature is experimental. User feedback will help
determine how best to take advantage of this feature.
At the most basic level, you can associate an arbitrary number of
keywords and values with any song. This lets you, for example, import
metadata which is not directly supported in the current version of
MusicIP Mixer. This import must be done via the HTTP API. The data can be seamlessly integrated into Power Searches by defining custom Power Words.
You may find it easiest to start with the examples at the bottom of this page.
HTTP API
Additional API methods:
Command | Arguments, Effect and Return Values | Version |
getAlbumField |
Returns the value of a selected key for the indicated album. Parameters are:
key=name | Required. Indicates the key being accessed |
album=name | Required. Indicates the album for which the information is being retrieved. |
| 1.8 |
setAlbumField |
Assigns the key/value pair to the indicated albums. Parameters are:
key=name | Required. Indicates the key being assigned |
album=name | Required. Indicates the album for which the information is being assigned. Multiple albums can be assigned by passing this parameter multiple times. |
value=text | Required. Indicates the value being assigned to the given key. Omit the text portion to delete a key. |
| 1.8 |
getArtistField |
Returns the value of a selected key for the indicated artist. Parameters are:
key=name | Required. Indicates the key being accessed |
artist=name | Required. Indicates the artist for which the information is being retrieved. |
| 1.8 |
setArtistField |
Assigns the key/value pair to the indicated artists. Parameters are:
key=name | Required. Indicates the key being assigned |
artist=name | Required. Indicates the artist for which the information is being assigned. Multiple artists can be assigned by passing this parameter multiple times. |
value=text | Required. Indicates the value being assigned to the given key. Omit the text portion to delete a key. |
| 1.8 |
getPlaylistField |
Returns the value of a selected key for the indicated playlist. Parameters are:
key=name | Required. Indicates the key being accessed |
playlist=name||path | Required. Indicates the playlist for which the information is being retrieved. |
| 1.8 |
setPlaylistField |
Assigns the key/value pair to the indicated playlists. Parameters are:
key=name | Required. Indicates the key being assigned |
playlist=name||path | Required. Indicates the playlist for which the information is being assigned. Multiple playlists can be assigned by passing this parameter multiple times. |
value=text | Required. Indicates the value being assigned to the given key. Omit the text portion to delete a key. |
| 1.8 |
getSongField |
Returns the value of a selected key for the indicated song. Parameters are:
key=name | Required. Indicates the key being accessed |
song=fullpath | Required. Indicates the song for which the information is being retrieved. |
| 1.5 |
setSongField |
Assigns the key/value pair to the indicated songs. Parameters are:
key=name | Required. Indicates the key being assigned |
playlist=name||fullpath | Assign the key/value pair to all songs in the given playlist |
song=fullpath | Indicates the song for which the information is being assigned. Multiple songs can be assigned by passing this parameter multiple times. |
title=name | Indicates the name of the song to assign the value to. 1.8 |
value=text | Required. Indicates the value being assigned to the given key. Omit the text portion to delete a key. |
| 1.5 |
User Power Searches
You can access custom tags using the following syntax:
field key
The field will be automatically treated as a string or number
depending on context. Fields you will be using repeatedly
should be added to your powerwords.txt file for convenience.
Quotes around the key are optional unless the key is multiple
words, has unusual characters, or is also defined as a keyword.
Examples
Example 1: Beats Per Minute
If your files have BPM stored from external tools, you could
write a program to archive this info into the MusicIP Mixer cache.
The URLs would look something like this:
/api/setSongField?song=filename&key=bpm&value=120
To use BPM in a Power Search, you can do this:
field "bpm"
Adding the following alias to your powerwords.txt file:
bpm: field "bpm"
will let you simply refer to this as bpm. Now you can do
higher level queries like:
120 < bpm and bpm < 130
or define more Power Words:
fast: bpm > 180
which would let you search for "fast songs".
Example 2: Mood Tags
If you want to define your own tags which describe the mood of certain
tracks, (metadata based moods instead of acoustical ones), you could
create a custom tag called "moods", and associated whatever
moods you want. Using the mmmexec program, it would look like this:
mmmexec -set mood=sad file.mp3
To access this from a Power Search, use something like this:
field "mood" contains "sad"
The powerwords.txt definition would look like this:
sad: field "mood" contains "sad"
And now you can search for "sad songs".
Further Ideas
Any metadata you can associate with your songs can be stored in
your MusicIP Mixer cache. For instance, you could make accessible
your Comments tags, your ReplayGain tags, Billboard Positions of
songs, whatever you can imagine. By combining custom tags and Power
Words, you can create your own personal search vocabulary, which you
can share with others.