MinimServer

Home

Features

MinimServer 2

License options

Starter Edition

Downloads

Release notes

Quick start

MinimWatch

User guide

Support

Troubleshooting

Forum

MinimStreamer

License terms

UPnP AV

Technology

Contact

Latest news

(2021/03/13) Improvements to index artwork

Latest change

(2021/04/16) MinimServer update 193 has been released

[NEW] MinimServer 2 has replaced MinimServer 0.8 on all platforms for new installations. If you have an existing installation of MinimServer 0.8, you can continue to use it with some limitations. See the MinimServer 2 page for details.

There are important differences between MinimServer 2 and earlier versions of MinimServer. Some features that were available free of charge in earlier versions of MinimServer require payment of a license fee in MinimServer 2. For details, see the License Options page.

For details of how to install MinimServer 2, see the Quick Start page.

Other features

Table of contents

Transcoding
UPnP Search
User interface translation [NEW]
Searching for artist roles
Numeric sorting
HTTP server port
UPnP service port
UPnP subnet
Custom tag settings
Custom UPnP settings [NEW]
Delaying startup
All tags summary
Tag update
Tag update file
Server options
Index artwork [NEW]
Language [NEW]
Show all discs [NEW]
Resource information
Flow control
Custom MIME types

» User guide main contents

Transcoding

From 0.8.1 onwards, transcoding for MinimServer is provided by the MinimStreamer package. See the MinimStreamer website for details.

UPnP Search

MinimServer supports UPnP Search. If your control point supports UPnP Search, you can use your control point to do full-text searches of the contents of your MinimServer library.

User interface translation [NEW]

From version 2.0.12 onwards, MinimServer 2 supports translation (localization) of all user interface elements that can be displayed in a UPnP control point (menu selections). Other aspects of the user interface such as MinimWatch and the configuration web pages are in English only.

At present, MinimServer 2 has built-in translations for the following languages:

You can customize MinimServer's translations for these languages and you can add your own translations for other languages.

By default, the user interface language used by MinimServer is the language setting of the device you are using to run MinimServer. You can use the language option of the serverOptions property to change the user interface language to a different language (see the Language section).

To view the built-in translations, do the following:

  1. Find the translation defaults file for the language that you want to use. This file is named ServerBundle_xxx.defaults where xxx is one of the following language identifiers:
    de (German)
    en (English)
    fr (French)
    ja (Japanese)
    zh_Hans (Simplified Chinese)
    zh_Hant  (Traditional Chinese)
    These files are located in an etc folder whose location depends on the device you are using to run MinimServer, described below.
  2. On a Synology NAS or QNAP NAS, the etc folder is in the MinimServer shared folder. On Windows, the etc folder is in the
     C:\Users\your-user-name\AppData\Roaming\MinimServer
    folder. On a Mac, the etc folder is in the
     /Users/your-user-name/Library/MinimServer
    folder. On a Melco N1 (not EX series), the etc folder is in the MinimServer subfolder of the 'share' shared folder. On a Melco N10, N100 or N1/EX series, the etc folder is in the MinimServer subfolder of the 'Logs' shared folder.
  3. Use a text editor to view the contents of this file. Values that contain non-ASCII characters are encoded as UTF-8.

To customize one of the built-in translations, do the following:

  1. Find the etc folder and the translation defaults file for the language that you want to customize (see above).
  2. Create a new file in the same folder for your customized translations. This file must be named ServerBundle_xxx.properties where xxx is one of the language identifiers listed above (de, en, fr, ja, zh_Hans or zh_Hant).
  3. The new file should contain only the keys and values that you want to change from the values provided in the translation defaults file. For example, the ServerBundle_fr.defaults file contains the line
     text.folder_view = [Répertoires]
    To change the displayed text from [Répertoires] to [vue par dossier], your ServerBundle_fr.properties file should contain the line
     text.folder_view = [vue par dossier]
    All the text. settings in the translation defaults file can be customized in this way. Values that contain non-ASCII characters must be encoded as UTF-8.
  4. The lines in the translation defaults file starting with tag. provide translations for tag names in the MinimServer index. The translation defaults file contains some sample tag names with translations. You can change the translations for these tag names and you can also add new tag names with translations. For example, the ServerBundle_de.defaults file contains the line
     tag.artist = Interpret
    To change the text displayed from Interpret to Künstler, your ServerBundle_de.properties file should contain the line
     tag.artist = Künstler
    You could also add the line
     tag.comment = Kommentar
    to your ServerBundle_de.properties file to provide a translation for the Comment tag.
  5. The settings in your properties file are applied automatically when you restart MinimServer 2 with a user interface language setting that matches the language code of the properties file. You might need to restart your control point to see the new translations.

To add a translation for a new language, do the following:

  1. Find the etc folder as described above.
  2. Copy one of the translation defaults files in the etc folder to a new file in the etc folder. This new file must be named ServerBundle_xxx.properties where xxx is an ISO 639-1 or ISO 639-2 language code as listed on this page. For languages that have both a two-letter ISO 639-1 code and a three-letter ISO 639-2 code, the two-letter code must be used. For example, Italian has the two-letter code 'it' and the three-letter code 'ita', so you need to specify 'it'.
  3. Edit the copied file to provide the translations that you want to use. Values that contain non-ASCII characters must be encoded as UTF-8.
  4. The settings in your properties file are applied automatically when you restart MinimServer 2 with a user interface language setting that matches the language code of the properties file. You might need to restart your control point to see the new translations.

Please consider contributing your new or improved translations so that they can become part of MinimServer 2. To do this, post to the MinimServer forum. Many thanks!

Searching for artist roles

MinimServer supports UPnP Search queries for artist roles. If your control point supports this capability, you can search your library for matches based on artist roles such as Composer or Conductor. For example, a control point could send MinimServer any of the following search queries:

The dCS Mosaic control point supports UPnP Search queries for artist roles.

As a further enhancement, MinimServer supports grouping search results by artist roles. For example, a control point could send MinimServer a search query for composers that match "Gabrieli" with results grouped by composer name. This query would find all items with the composer "Andrea Gabrieli" or "Giovanni Gabrieli" but would not find any additional items with the artist "Gabrieli Consort". The search results would be a list of matching composer names and selecting any of these composer names would show all matching albums, items and index tags for the selected composer.

Numeric sorting

MinimServer uses a combination of alphabetic and numeric sorting. Positive integers in tag values are sorted in numeric order, so "Symphony 2" is sorted before "Symphony 10". Adding a leading zero to a number produces a smaller sort value, so "02" is sorted before "2" and after "1".

HTTP server port

MinimServer includes an HTTP server for use by music browsers and music players to retrieve audio files and image data. By default, this HTTP server listens on port 9790. If you want to change this port number to some other value (for example, to avoid a conflict with another application that's using the same port), you can set the http.port property to any available port number.

This port is also used for viewing the MinimServer status page in a web browser. For details, see the Web browser status page section.

UPnP service port

MinimServer uses the value of the ohnet.port property as the preferred port number for UPnP service communication that will be advertised to control points using the standard mechanisms in the UPnP discovery protocol. If the specified port number is not available, MinimServer allocates a port number dynamically. The default value for the ohnet.port property is 9791.

It's important to set the ohnet.port property to a different port number than the http.port property. Also, after changing the ohnet.port setting, you need to do a complete restart of the MinimServer application, not just a media server restart from the minim icon. For example, if you're running MinimServer on a QNAP NAS, you need to disable and enable MinimServer from the QNAP administrator console. This is because a restart from the minim icon doesn't restart the ohNet UPnP stack.

UPnP subnet

MinimWatch communicates with MinimServer using a single subnet only. If you have multiple active network adapters (real or virtual) on the machine running MinimWatch and these adapters are configured to use different subnets, it is unpredictable which adapter and subnet will be chosen by MinimWatch. If the wrong adapter and subnet is chosen, MinimWatch might not be able to discover and communicate with MinimServer. You can solve this problem by setting the ohnet.subnet property on the MinimWatch properties page (not the MinimServer properties page) to the subnet you want MinimWatch to use. To display the MinimWatch properties page, select Options followed by Properties (watch) from the minim icon.

By default, the MinimServer media server communicates with control points and media renderers on all available subnets except for the loopback subnet. In some situations, you might want to configure the MinimServer media server with access to a single specific subnet, which could be the loopback subnet. You can do this by setting the ohnet.subnet property on the MinimServer properties page to the specific subnet you want MinimServer to use. To display the MinimServer properties page, select Properties from the minim icon.

The ohnet.subnet property value must be a valid IPv4 address (n.n.n.n with 0 ≤ n ≤ 255). This value is compared with the masked addresses of all available subnets. The first available subnet that produces a match is used. If there is no matching available subnet, an error is raised.

As an example, if the devices you want to access from MinimWatch or MinimServer are are in the range between 192.168.1.1 and 192.168.1.254, the ohnet.subnet property should be set to 192.168.1.0.

Custom tag settings

[NEW] The tagCustom property has been removed in MinimServer 2 and replaced with the new upnpCustom property. The upnpCustom property works in a different way than tagCustom and only needs to be set in some very unusual cases. For more information about the upnpCustom property, see the Custom UPnP settings section.

The remainder of this section describes the tagCustom property (used by MinimServer 0.8)..

There are variations in how different control points interpret the XML metadata that MinimServer sends to the control point. To accommodate these differences, MinimServer provides settings that allow you to customize some aspects of this XML metadata.

The settings described in this section control the format of the XML metadata for tracks and albums that MinimServer sends to the control point. For most control points, this metadata is used to display track and album information on the Now Playing screen and for playlists and album contents.

These settings don't affect the contents of the index lists that MinimServer creates and sends to the control point when you are browsing your library. However, some control points (for example, the LUMIN app) create their own index lists using XML metadata information and these index lists might be affected by these settings.

You can use the tagCustom property to specify a comma-separated list of settings for special handling of XML metadata sent to the control point. Each setting consists of the audio tag name to which it applies (such as Composer or AlbumArtist) followed by the setting name. If the setting requires a value, the setting name is followed by an equals sign and curly braces enclosing the value. For example, Composer.displayRole={artist} specifies the value 'artist' for the 'displayRole' setting for the Composer tag.

For settings that don't have a value, the setting can optionally be preceded by '+' to enable the setting or '-' to disable it. If neither of these is specified, '+' is assumed. For example, -AlbumArtist.display.multiTag disables the 'display.multiTag' setting for the AlbumArtist tag.

A setting can be applied to all audio file tags by using the special value 'all' or '[all]' as the audio tag name. For example, all.display.multiTag enables the 'display.multiTag' setting for all audio tags. This 'all' setting can be overriden for individual audio tags. For example,
 all.display.multiTag, -Genre.display.multiTag
enables the 'display.multiTag' setting for all audio tags except Genre.

The following settings are available:

display.multiTag  If this setting is disabled (the default value) and there are multiple values for the same audio file tag (such as Artist or Genre), these values are combined and sent to the control point as a single XML tag. The contents of this XML tag can be customized using the displayFormat setting of the tagFormat property (see the Tag formatting section).

If this setting is enabled and there are multiple values for the same audio file tag (such as Artist or Genre), these values are sent to the control point as separate XML tags. This setting is useful for control points that can handle multiple XML tags of the same type, such as the LUMIN app. In this case, the displayFormat setting of the tagFormat property can't be used for this audio tag.

displayRole  This setting requires a value. The value is a string containing 'artist' or 'author or both of these separated by a comma. MinimServer sets an initial default value of 'artist' for AlbumArtist and also sets an initial default value of 'artist' for Composer if this appears in the indexTags or itemTags property. You can change or remove these settings if necessary.

If 'artist' is present, MinimServer sends the audio file tag value using the XML tag <upnp:artist role="tagname"> where tagname is the name of the audio tag. If 'author' is present, the tagged value is sent as the XML tag <upnp:author role="tagname">.

This setting is useful for customizing the way composer information is sent to the control point. For example, if you don't see composer information in your control point when using the default setting of 'artist', you can change the setting to 'author'. (This setting is needed for ChorusDS.) If you're using multiple control points that expect this information to be sent in different formats, you can use the setting 'artist, author' to send both XML tags.

Custom UPnP settings [NEW]

The tagCustom property has been removed in MinimServer 2 and replaced with the new upnpCustom property.

The upnpCustom property can be used to enable MinimServer to work correctly with some control points that don't implement the UPnP protocol according to commonly accepted industry standards. At the time of writing (February 2020) there are very few such control points still in use. This means that only a very small number of users will need to set this property.

If MinimServer is displaying unexpected information in your control point, please post to the MinimServer forum for advice. It is possible that you might be asked to set this property to a suggested value to see if this solves the problem. In all other cases, you should not set this property,

Delaying startup

You can use the delayStart property to delay MinimServer or MinimWatch by a specified number of seconds during the startup phase. For example, this can be useful when a MinimServer content directory is on an external or networked disk which isn't yet mounted when MinimServer is started (for example, when resuming or restarting a Mac).

All tags summary

You can see a summary of all the tags in your audio files by setting the writeAllTags property to the name of an "all tags" file into which MinimServer will write a sorted list of all tag names and values in your audio files.

By default, the "all tags" file will be written in the log file default location (see this section). For example, specifying the filename alltags.txt will cause MinimServer to write the file alltags.txt in the log file default location.

To write the file in a different location, you can specify a fully qualified filesystem path for some other location on the computer or NAS where MinimServer is running. For example, specifying the path /Users/myuser/alltags.txt will cause MinimServer to write the file alltags.txt in the folder /Users/myuser.

The data written doesn't include any tag changes made by the aliasTags and tagUpdate properties. This file is written or rewritten every time MinimServer rescans the library. You can initiate a rescan by selecting Rescan from the minim icon (see this section) or by using the rescan command from the console interface (see this section). MinimServer also does a rescan on startup if the startupScan property is set to true or full.

Note: Restarting MinimServer by selecting Restart from the minim icon or by using the restart command from the console interface does not perform a rescan. Similarly, relaunching MinimServer by selecting Relaunch from the Packages tab or by using the relaunch command from the console interface does not perform a rescan.

The contents of the "all tags" file can be useful as a template for copying the correct format of tag values into a tag update file.

Tag update

When MinimServer reads tag data from your audio files, you can apply tag updates (changes, additions and deletions) to the tag data that MinimServer uses internally. This is similar to performing a global search and replacement operation on all the tag data in all your music files, expect that the changes are made internally within MinimServer and don't affect the contents of your audio files on disk.

The tag update facility can be useful for making experimental changes to your tags without changing your audio files. For example, if you're considering reorganizing some aspects of the way you index your library, you might find it helpful to try out the effect of these changes before you apply them permanently to your audio files.

To use the tag update facility, you need to set the tagUpdate property to the name of a tag update file. By default, MinimServer will look for this file in the log file default location (see this section). For example, specifying the filename tagupdate.txt will cause MinimServer to use the file tagupdate.txt in the log file default location.

You can use a different location for this file by specifying a fully qualified filesystem path for some other location on the computer or NAS where MinimServer is running. For example, specifying the path /Users/myuser/tagupdate.txt will cause MinimServer to use the file tagupdate.txt in the folder /Users/myuser.

The tag update file contains one or more groups of search and replacement operations. For example, to replace all Composer tags for 'J. S. Bach' with the value 'Johann Sebastian Bach', your tag update file would contain the following lines:

@COMPOSER=J. S. Bach
=COMPOSER=Johann Sebastian Bach

This performs a simple one-for-one replacement of one tag value by another. You can also add tag values. For example, if you want to replace the single tag
 ARTIST=John Eliot Gardiner, The Monteverdi Choir
with separate tags for Artist and Conductor, you can put the following in your tag update file:

@ARTIST=John Eliot Gardiner, The Monteverdi Choir
=ARTIST=The Monteverdi Choir
+CONDUCTOR=John Eliot Gardiner

We've seen how to replace a single tag value. In some cases, you need to be able to look for a combination of tags. For example, to invert the above change by replacing the pair of tags
 CONDUCTOR=John Eliot Gardiner
 ARTIST=The Monteverdi Choir
with the single tag
 ARTIST=John Eliot Gardiner, The Monteverdi Choir
in all your audio files that have both these tags, you can use the following lines in your tag update file:

@ARTIST=The Monteverdi Choir
&CONDUCTOR=John Eliot Gardiner
=ARTIST=John Eliot Gardiner, The Monteverdi Choir
@CONDUCTOR=John Eliot Gardiner
&ARTIST=The Monteverdi Choir
-CONDUCTOR=John Eliot Gardiner

This file contains two groups of update instructions. The first update group looks for the combination of ARTIST=The Monteverdi Choir and CONDUCTOR=John Eliot Gardiner and replaces ARTIST=The Monteverdi Choir with ARTIST=John Eliot Gardiner, The Monteverdi Choir. The second update group looks for the same combination and removes the tag CONDUCTOR=John Eliot Gardiner. You need two update groups to do this because tag changes and removals can only be applied to the tag name specified in the '@' line.

You might want to apply the same changes for multiple values of a tag. For example, you might want to replace alternative spellings of a composer name with a single consistent name. You can do this by repeating the '@' line, as in the following example:

@COMPOSER=J. S. Bach
@COMPOSER=Bach, Johann Sebastian
@COMPOSER=J. S. Bach (1685-1750)
=COMPOSER=Johann Sebastian Bach

If you'd like to see a detailed list of tag changes made by the tag update file, you can set the writeTagChanges property to the name of a "tag changes" file into which MinimServer will write a list of tag changes. This file will be written every time MinimServer is started.

By default, the "tag changes" file will be written in the log file default location (see this section). For example, specifying the filename tagchanges.txt will cause MinimServer to write the file tagchanges.txt in the log file default location.

To write the file in a different location, you can specify a fully qualified filesystem path for some other location on the computer or NAS where MinimServer is running. For example, specifying the path /Users/myuser/tagchanges.txt will cause MinimServer to write the file tagchanges.txt in the folder /Users/myuser.

IMPORTANT: MinimServer makes these tag changes internally when it reads your audio files. You'll see the changes in your control point, but MinimServer doesn't write any tag changes to your audio files. To do this, you need to use a separate tagging program such as Mp3tag.

In this section, we've given some examples of the changes you can make to your tags using the tag update facility. For a formal description of how the tag update file works, see the following section.

Tag update file

To enable tag updating in MinimServer, you need to set the tagUpdate property to the name of a tag update file. This file can be in any folder on the computer or NAS that's running MinimServer. The tag update file consists of a sequence of text lines, where the first text character of each line identifies the line as a match instruction, filter instruction or update instruction, using the syntax:

<instruction-type><tag-name>=<tag-value>

The tag update file is encoded using the UTF-8 character set. The tag match values in this file must match tag values in your audio files using an exact case-sensitive comparison. You might find it helpful to use the writeAllTags property to see the correct format for the entries in this file.

[NEW] In MinimServer 2, you can use special tags such as #AudioData and #AudioChannels as match and filter values in @ and & instructions. You can't update special tags using =, - or + instructions.

Match instructions, filter instructions and update instructions are combined into update groups. Each update group starts with one or more match instructions. The update group can be either a simple update group or a filter update group (see below).

A simple update group has one or more update instructions after the match instructions. These update instructions are applied to all files that match any of the match instructions.

A filter update group has both filter instructions and update instructions after the match instructions. It consists of a sequence of one of more filter sections, where each filter section contains one or more filter instructions followed by one or more update instructions.

For each filter section, all its filter instructions are checked to see if they match the file. If all these filter instructions match, the update instructions in the filter section are applied to the file. If any of these filter instructions doesn't match, the next filter section is checked until a match is found or all filter sections have been checked.

For example, this update group:

@ALBUM=Greatest Hits
=ALBUM=Great Hits

is a simple update group with a single match instruction followed by a single update instruction. For each file with an ALBUM tag of "Greatest Hits", this tag will be changed to "Great Hits".

This update group:

@ALBUM=Greatest Hits
&ALBUMARTIST=Lenny Kravitz
=ALBUM=Greatest Hits - Lenny Kravitz
&ALBUMARTIST=Robbie Williams
=ALBUM=Greatest Hits - Robbie Williams

is a filter update group with a single match instruction followed by two filter sections. The first filter section matches all files with an ALBUM tag of "Greatest Hits" and an ALBUMARTIST tag of "Lenny Kravitz" and changes the ALBUM tag in each of these files to "Greatest Hits - Lenny Kravitz". The second filter section matches all files with an ALBUM tag of "Greatest Hits" and an ALBUMARTIST tag of "Robbie Williams" and changes the ALBUM tag in each of these files to "Greatest Hits - Robbie Williams".

The following instruction types are supported:

@   This line is a match instruction and starts a new update group that applies to all audio files containing a tag matching this line. If other '@' lines immediately follow this instruction, they must all have the same tag name as the first '@' line and are used to provide alternative matches for the value of this tag. Tag values are matched using an exact case-sensitive comparison. Repeating the same '@' line elsewhere in the tag update file is not allowed.
& This line is a filter instruction and can optionally appear after an '@' line to specify a filter condition for the update instructions that follow it in the same filter section (see above). If this line is present, the update group is an filter update group (see above). Any number of '&' lines can appear after an '@' line and these can be followed by one or more update instructions. This combination of filter instructions and update instructions is known as a filter section. The update instructions in a filter section are applied only to files that match the filter instructions. There can be any number of filter sections in a filter update group.
= This line is an update instruction to replace the value of a tag. It must be the first update instruction in an update group or filter section (that is, directly following an '@' line or an '&' line). The rest of the line specifies the tag name (which must be the same tag name used in the '@' line or lines in the update group) and the replacement value for this tag, using the syntax:
=<tag-name>=<new-tag-value>
- This line is an update instruction to remove a tag. It must be the first update instruction in an update group or filter section (that is, directly following an '@' line or an '&' line). If the '-' line specifies a tag value:
-<tag-name>=<tag-value>
the update group must have s single '@' line and the tag value in the '-' line must exactly match the tag value in the '@' line. If the '-' line does not specify a tag value:
-<tag-name>
the update group can have one or more '@' lines and the tag name in the '-' line must exactly match the tag name in the '@' line or lines.
+ This line is an update instruction to add a new tag. The rest of the line specifies the new tag name and its value. This instruction can be the first update instruction in an update group or filter section or it can follow an '=' line, a '-' line, or another '+' line.

Any lines that don't start with one of the above characters (including blank lines) cause the current update group to be ended and are otherwise ignored.

Server options

You can use the serverOptions property to specify additional options for controlling various aspects of MinimServer operation. The value of the serverOptions property is a comma-separated list of option settings, where each option setting has the format name=value.

The following options can be specified in this property:
 indexArtwork [NEW]
 artworkFolder [NEW]
 language [NEW]
 showAllDiscs [NEW]
 resourceInfo
 flowControl
 mimeType.dsf
 mimeType.dff

See the sections below for descriptions of these options.

Index artwork [NEW]

By default, MinimServer displays artwork for albums, tracks, groups, playlists and folders, with no artwork for index selection entries such as artist and composer names. From MinimServer 2 update 173 onwards, you can enable artwork images for index selection entries. These images can either be selected automatically by MinimServer or customised by the user. Further enhancements have been made in MinimServer 2 update 188 and the following description includes these enhancements.

If you set the indexArtwork option of the serverOptions property to auto, each index selection entry will have an artwork image chosen automatically from its selection contents. For example, the Artist index entry for Pink Floyd will show an album cover from one of the Pink Floyd albums in your library. Similarly, the Composer index entry for William Byrd will show an album cover from an album that includes a work composed by Byrd. As far as possible, the search for an image follows the order in which the albums or items in the selection for the index entry are presented to the user.

If you want to customise the image that is shown, you can set the indexArtwork option to folder. With this setting, MinimServer looks in a designated artwork folder for a custom image file whose name matches the index entry. For example, the index entry for the composer Anton Bruckner shows the image Anton Bruckner.jpg or Anton Bruckner.png if either of these files is available in the designated artwork folder. Similarly, the index entry for Composer shows the image Composer.jpg or Composer.png. For index entries starting with '>>', the '>>' is omitted from the artwork filename. For example, to provide an image for the >> Show All index entry, you would use a Show All.jpg or Show All.png file.

For index entries that are translated (see the User interface translation section), the translated name is used. For example, if the user interface language is set to German, the [Ordneransicht] index entry (folder view) would show artwork from the file [Ordneransicht].jpg, not the file [folder view].jpg.

The auto and folder options can be used to show artwork for almost all menu choices you see when browsing your library, including the "letter" index entries provided by the alphaGroup property.

When browsing using [folder view], the auto option looks for artwork in the folder referenced by each index entry and also in any folders below that folder. For example, if your Pink Floyd folder contains subfolders for your Pink Floyd albums and no other files, am image from one of these album folders will be used.

By default, the folder option searches a folder named indexArtwork located at the top level of your music library, immediately under the content directory. For example, if your content directory is /share/Music, the default artwork folder is /share/Music/indexArtwork. You can change this name and location by setting the artworkFolder option of the serverOptions property to a folder path. For example, if you set the artworkFolder option to images/myArtwork, the artwork folder is changed to /share/Music/images/myArtwork.

The artwork folder must be within your content directory so that it can be scanned by MinimServer. If you have more than one content directory, the artwork folder can be within any of these content directories. If more than one content directory contains a folder whose path matches the artwork folder path, images in all matching artwork folders will be found by MinimServer.

If you want to use a combination of custom images and automatic image selection, you can set the indexArtwork option to all. This setting looks for a custom image first and falls back to an automatic image if no custom image is available.

Enabling index artwork images (either automatic or custom) is likely to make it slower to browse your library. This is because each browsing selection requires the control point to load these images from the server across your local network and then render and display them. If your artwork images are very large, the performance impact will be greater.

Language [NEW]

You can use the language option of the serverOptions property to change the user interface language used by MinimServer. By default, the user interface language is the language setting of the device you are using to run MinimServer.

The value of this property is an ISO 639-1 or ISO 639-2 language code as listed on this page. For languages that have both a two-letter ISO 639-1 code and a three-letter ISO 639-2 code, the two-letter code must be used. For example, Italian has the two-letter code 'it' and the three-letter code 'ita', so you need to specify 'it'.

For Chinese (zh), the two-letter code isn't sufficient to uniquely identify the language, so you also need to specify the script. The setting for simplified Chinese is zh-Hans and the setting for traditional Chinese is zh-Hant.

The language setting is used by MinimServer to control user interface translation (see the User interface translation section). For Danish, Norwegian and Swedish, the language setting also changes the collation sort order and the alphabetical groupings used by the alphaGroup property.

Show all discs [NEW]

From MinimServer 2 update 173 onwards, you can use the showAllDiscs option of the serverOptions property to prevent the merging of tracks from multiple discs of the same album into a single combined list. If the showAllDiscs option is set to true, all multidisc albums in your library are shown as separate discs with no disc merging. If the showAllDiscs option is set to false or omitted, disc merging is applied to selected albums as described in the Multidisc albums section.

Resource information

You can use the resourceInfo option of the serverOptions property to control whether resource usage information will be displayed in the log. The value of this property is a number that specifies how frequently resource information will be displayed in the log during MinimServer startup. For example, if the value is 500, resource information will be displayed at intervals of scanning 500 files.

If the resourceInfo property is used to display resource information during MinimServer startup, resource usage will be monitored while MinimServer is running, and resource information updates will be displayed at regular intervals during MinimServer activity.

Flow control

You can use the flowControl option of the serverOptions property to set a maximum data rate for streaming audio data from MinimServer to the renderer (player). This can be useful to work around problems with some renderers that don't function correctly if audio data is sent to the renderer at a higher rate than the renderer is able to process correctly. Most renderers don't have this problem and you shouldn't use this option unless you are experiencing problems without it. An example of such a problem is a small gap in audio playback between tracks when using a renderer that claims to support gapless playback.

The value of this option is a positive integer followed by the letter 'x'. The integer value is a multiplier that specifies the maximum streaming data rate as a multiple of the playback data rate of the audio stream. For example, a lossless WAV audio stream with 2 channels, a sample rate of 44100 Hz and a bit depth of 16 bits has a playback data rate of 2 x 44100 x 16 = 1411200 bits per second (176400 bytes per second). The setting flowControl=2x specifies a multiplier of 2, so the maximum streaming data rate for this stream would be 2 x 176400 bytes per second (352800 bytes per second). A lossy MP3 audio stream with a bit rate of 128 kbps has a playback rate of 128000 bits per second (16000 bytes per second), so the same 2x setting would give a maximum streaming data rate for this stream of 32000 bytes per second.

The minimum value for the flowControl option is 2x. If this setting causes dropouts on some tracks, try increasing it to 3x or 4x. There is no maximum value but using too large a value will make flow control ineffective.

If the flowControl option isn't specified, no maximum streaming data rate is applied by MinimServer and audio data is streamed to the renderer as fast as MinimServer can read it and the renderer can receive it.

Custom MIME types

You can use the mimeType.dsf and mimeType.dff options of the serverOptions property to set custom MIME types for streaming DSF and DFF files in native format (i.e., without DoP/WAV transcoding). This customization is required to play DSF and DFF files on some Sony and Onkyo renderers that don't support the industry standard MIME types (audio/x-dsf and audio/x-dff) for these streams.

For each of these options, the value is the custom MIME type that you want MinimServer to send. For example, to make MinimServer send the MIME type audio/x-dsd for all native DSF streams, you can specify mimeType.dsf=audio/x-dsd in the serverOptions property. You can specify any value to be used as the MIME type and MinimServer will send the exact value that you specify.

You should only set these options if you are having problems playing DSF and DFF files on your renderer. It's a good idea to ask on the MinimServer forum for advice about whether you should set these options and what values you should specify for the custom MIME types.