## 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. |