Synchronizer selection

The mm-sync service contains many synchronizers designed for various media and storage devices. When it receives a synchronization request, mm-sync selects the best synchronizer for the content being synchronized and for the device and media types.

For example, for a CDDA, mm-sync first checks if the CD device supports CD-Text. If so, mm-sync uses the synchronizer most appropriate for extracting the metadata of the CD files. If no such synchronizer is available, mm-sync uses its default synchronizer.

After mm-sync has selected the synchronizer, the service begins updating media information in the database in a multipass process.

Synchronizer ratings

Synchronizers rate themselves based on their ability to handle different types of mediastores, files, and playlists. The mm-sync service queries synchronizers for their ratings and compares them to identify the best one for the task.

Internally, ratings are expressed as integer values of 0 or greater. A value of 0 means the synchronizer doesn't support the mediastore. A value of 1 means it supports the mediastore but is the worst choice. Higher values mean it's a better choice. There's no official highest rating, but typically values are between 0 and 100.

The rating values used by the built-in mm-sync synchronizers are similar to those used by metadata plugins, which are libraries that define their own synchronizers, some of which retrieve metadata from third-party sources such as MusicBrainz. In the configuration file, you can override the default ratings for metadata plugins but not for built-in synchronizers.

Manually selecting a synchronizer

You can instruct mm-sync to use a specific synchronizer to bypass the automated selection based on ratings. To do so from a client application, set the use_synchronizer or force_synchronizer option in the mm_sync_start() API call or sync_start command.

The built-in synchronizers are:
  • audiocd
  • bfsrecurse
  • custom
  • dbm
  • devb
  • dvdaudio
  • dvdvideo
  • internet
  • mediafs
  • mediafs2wire
  • vcd