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:

CommandArguments, Effect and Return ValuesVersion
getAlbumField Returns the value of a selected key for the indicated album. Parameters are:
key=nameRequired. Indicates the key being accessed
album=nameRequired. 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=nameRequired. Indicates the key being assigned
album=nameRequired. Indicates the album for which the information is being assigned. Multiple albums can be assigned by passing this parameter multiple times.
value=textRequired. 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=nameRequired. Indicates the key being accessed
artist=nameRequired. 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=nameRequired. Indicates the key being assigned
artist=nameRequired. Indicates the artist for which the information is being assigned. Multiple artists can be assigned by passing this parameter multiple times.
value=textRequired. 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=nameRequired. Indicates the key being accessed
playlist=name||pathRequired. 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=nameRequired. Indicates the key being assigned
playlist=name||pathRequired. Indicates the playlist for which the information is being assigned. Multiple playlists can be assigned by passing this parameter multiple times.
value=textRequired. 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=nameRequired. Indicates the key being accessed
song=fullpathRequired. 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=nameRequired. Indicates the key being assigned
playlist=name||fullpathAssign the key/value pair to all songs in the given playlist
song=fullpathIndicates the song for which the information is being assigned. Multiple songs can be assigned by passing this parameter multiple times.
title=nameIndicates the name of the song to assign the value to. 1.8
value=textRequired. 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.