Configuration examples

Configuration location is ${XDG_CONFIG_HOME}/mpd_sima/mpd_sima.cfg usually ${XDG_CONFIG_HOME} is in ${HOME}/.config/.

Default configuration

MPD_sima runs without explicit configuration as long as your MPD server is easy to discover (localhost:6600 or exposed via environment variables MPD_HOST/MPD_PORT).

The default configuration is to run in track mode with suggestions from last.fm. In addition to Lastfm plugin set in [sima] section (within internal option) there is a Crop plugin (keeps 10 tracks behind the currently playing track) and a Random plugin (acting as a fallback if Lastfm did not find any track to queue).

[MPD]
# Change MPD server here
#host = mpdserver.example.org
#port = 6600

[sima]
internal = Crop, Lastfm, Random
history_duration = 8
queue_length = 2

[crop]
consume = 10

[lastfm]
queue_mode = track
single_album = False
track_to_add = 1

Album mode

One of the first request added to MPD_sima was album mode. It allows to queue whole album instead of single tracks.

Here the configuration keeps the queue plugin Lastfm but configures it to queue albums (queue_mode = album) and ask for 2 albums to be add.

The configuration of MPD_sima in sima section is also modified for queue_length. The value of 10 is to trigger album queueing when there are 10 tracks or less in the queue.

[sima]
internal = Crop, Lastfm, Random
history_duration = 24
queue_length = 10

[crop]
consume = 10

[lastfm]
queue_mode = album
album_to_add = 2

Offline auto-queuing

In addition to LastFm there are other plugins you can mix together or use alone to have a specific queue mode.

Genre auto-queuing

With this mode MPD_sima is trying to queue tracks with genre tag similar to previously played tracks.

[sima]
internal = Crop, Genre, Random
history_duration = 8

[genre]
queue_mode = track
track_to_add = 1

Random queuing

This mode allows random queuing with different flavour pure (total randomness) or sensible (use play history to filter chosen tracks). The sensible flavour will then tend to play track not in recently played.

The history duration is important for this plugin when running in sensible flavour since you might exhaust possible tracks to queue if the history_duration is larger than the total play time you have in your music library.

[sima]
internal = Crop, Random
history_duration = 168

[random]
flavour = sensible

Tag queuing

This is the most complex and versatile offline mode. “Tags” plugin allows to queue track based on actual tags value.

Here is an example to have MPD_sima to queue only electronic music tagged with genres electronica or IDM or glitch:

[sima]
internal = Crop, Tags

[tags]
# Look for files with tagged with genre "electronica" OR "IDM" OR "glitch"
genre = electronica, IDM, glitch

There are other supported tags, mainly date, originaldate or comment (cf manual for the exact list). You can use more than one, entries in tags sections are ANDed within a single MPD filter to look for titles.

For instance setting “genre=rock” and “date=1982,1983,1984,1985,1986,1987,1988,1989” will end up looking for track tagged with genre rock and date within 1982 through 1989:

[sima]
internal = Crop, Tags

[tags]
genre = rock
date = 1982,1983,1984,1985,1986,1987,1988,1989

In case you want to make complex search in MPD library you can provide an MPD filter. This is a powerful feature, it comes at the cost of a different syntax, some might find it more readable some wont :D

For instance in the previous example you can simply replace date with the current filter “(date =~ ‘198[2-9]+’)”:

[sima]
internal = Crop, Tags

[tags]
genre = rock
filter = (date =~ '198[2-9]+')

And even go further and merge genre in the filter using “(genre == ‘rock’) AND (date =~ ‘198[2-9]+’)”.

[sima]
internal = Crop, Tags

[tags]
filter = (genre == 'rock' ) AND (date =~ '198[2-9]+')

Since the setup for the filter can be tricky and it can be useful to validate the syntax and have a look at what kind of artists the filter would return.

You can call MPD_sima to controls the configuration file. For instance with a config in sima.cfg run:

./mpd-sima --log-level info --config sima.cfg config-test