Configuration – Spy – Play counts

The page describes configuration options for the Playcount processing module when in Spy mode. The configuration file was initialised by the configuration wizard. Any changes will need to be done manually using the desktop shortcut named “Configuration (MyScrobble.ini)”

See here for an description of the application’s configuration framework.

See here for a description of the configuration wizard which created the configuration file for this mode

See here for a Quick Start guide to Spy mode configuration

See here for a Quick Start guide for the configuration steps to turning on AlbumPlays scrobbling Sonos owners only

See here for a description of the configuration options for the other module (“Observation & Detection”).

Option settings

The main options used in SPY mode are listed below. Some notes follow, and further details can be found at the Configuration documentation shortcut on your desktop or task bar:

Configuration for your email credentials (optional) are not held in the ini file for security reasons. That topic is covered here.
Google Play Music credentials (optional) are not held here either. That topic is covered here.

Task Option name Section
Location settings
– AlbumPlays database _database [general section]
– MediaMonkey database _MM_db_path [general section]
– communicate with Spy _nas_path [general section]
– SPY transfer database _external_spy_database [general section]
– MissedTracks playlist _playlist_directory [general section]
– Spy text transfer dir _spy_txt_export_directory [general section]
– match by location – Sonos _track_location_prefix_sonos [general section]
– match by location – MM _track_location_prefix_mm [general section]
– backup repository location 1 _bu_lan_path [gui]
– backup repository location 2 _bu_lan_path2 [gui]
Data source settings
– LFM vs SPY LFM versus SPY _source_lfm [general section]
– override to text conduit _spy_data_from_txt [get]
Scrobble settings
– scrobble? .. scrobble whom? _scrobble_mode [gui]
– scrobble radio tracks? _scrobble_radio [crunch]
Listeners: list _lfm_id_list [general section]
Streamed track settings
– suppress confirmation pause _suppress_pause_for_streamed_confirmation [gui]
– force confirmation pause _force_pause_for_streamed_confirmation [gui]
– do not default as streamed _suppress_default_unmatched_to_streamed [massage]
Application backup settings
– frequency? (in days) _backup_cycle [gui]
– PC or LAN repository location _bu_lan_path [gui]
– PC or LAN repository location _bu_lan_path2 [gui]
Playlist settings
– genre fragments _playlist_genre_filters [general section]
– location override – Sonos _playlist_directory_sonos [general section]
– location override – NAS _playlist_directory_nas [general section]
– Translate track location – NAS _playlist_track_location_prefix_nas [general section]
– location override – USB _playlist_\directory_\usb [general section]
– Translate track location – USB _playlist_track_location_prefix_usb [general section]
Match on just artist & track _allow_match_ignoring_album [massage]
Supress auto-application of fuzzy logic tag corrections when matching scrobbles _suppress_auto_fuzzy [massage]
Enable lost scrobble resurrection _resurrect_lost_scrobbles [gui]
Missed Tracks playlist settings
– playlist name _missed_playlist_file_name [general section]
– album cut off _missed_playlist_album_cutoff [general section]
– track cut off _missed_playlist_track_cutoff [general section]
– auto-generate? _generate_missedtracks_playlist [general section]
Non-Sonos scrobbles
“Other” scrobbles: suppressed? _others_suppressed=Y [gui]
“Other” scrobbles: which LFM account _user [get]
Date & time settings
Override date format _locale_date_format [general section]
Override time format _locale_time_format [general section]
Miscellaneous settings
Limit rows read from LFM _limit [get]
Ignore your historic scrobbles _when_limit_use_newest [get]
Override rule grid row limit _remap_rule_grid_limit [gui]
Suppress duplicate scrobble warning _suppress_lfm_duplicate_warning [gui]
If you have no blank album tags _no_blank_album_tags [general section]
Override MediaMonkey version _mm_version [general section]
Transfer individual scrobbles to MM _mm_update_contents [crunch]
Override MM album play count column _mm_col_for_album_play [general section]
Override MM album last play column _mm_col_for_album_last_play [general section]
Override logging level _debug [general section]
Location settings
  • use the tilde character to specify the home directory for your Windows profile folder (ie. ~/My Documents/AlbumPlays for c:\Users\<your_profile>\My Documents\AlbumPlays)
  • the _nas_path setting specifies an override location for the directory used by this application to store some temporary files it reads and writes. If you are using the “Observe & Detect” Spy component, the directory location needs to be available to both components, and it must the same directory specified in that other component’s own _nas_path option. By default this directory will be used for:
    • hold the optional transfer database for Spy track play observations
    • the export location for AlbumPlays playlists
    • the export location for the optional text transfer file of Spy track play observations
    • where you will find the html menu allowing you to control the “Observe & Detect” component from within the browser on your main computer
    • where the “Observe & Detect” component will export its log file to, so you can observe what is going on in there
    • the default location for AlbumPlays’ application backup repository
  • each of these may be overridden to their own location, or may be written to a directory relative to that specified by _nas_path, by specifying a relative directory (one not starting with neither a slash, nor a drive letter) in their own option setting
  • you can also use the token {nas}, in a path definition, as a shortcut to refer to the above path, eg:

        [gui]
        _bu_lan_path2 = {nas}\Backups_level_2
    
  • the _database setting for the application is required, all the other are overrides, and are optional. You must supply the full path to your database, ie. this option does not use the _nas_path path prefix. AlbumPlays will usually work best if your database is stored the same PC which is running MediaMonkey and this Play Counts AlbumPlays component.

  • the _external_spy_database is an optional override to the default location (_nas_path), and|or to the default file name (AlbumPlays_Spy.db) used for the optional transfer database, where track play observations may be received from the Spy module. You may either specify an alternative file name for the database, or provide a path relative to the path specified in the _nas_path setting, or provide an independent absolute path to the database file.

  • by default, playlists are written to a directory named AlbumPlays_playlists, in the path resulting from your _nas_path choice.

  • you can override this generic location with the _playlist_directory option, which will override the default base location for all playlists. You may specify a full path, or you can specify a directory relative to _nas_path, by using a non-absolute path, ie. one not starting with a slash nor a drive letter (eg. _playlist_directory=playlists).
  • in either case, AlbumPlays creates the generic playlist folder if it doesn’t already exist

    • If you are using AlbumPlays’ multi-target facility for playlists, you will want to provide a separate location for some or all of the playlist targets. Non-absolute paths will be be relative the generic playlist location, or you may specify absolute paths. … In the following example the Sonos playlist folder is relative, and will therefore be \your_NAS/your_share/AlbumPlays_playlists/playlists_for_sonos. The usb one is absolute, and will therefore be H:\MyPlaylists

      [general section]
      _nas_path = \\your_NAS/your_share/
      _playlist_directory_usb = H:\MyPlaylists 
      _playlist_directory_sonos=playlists_for_sonos/
      _playlist_directory_nas=playlists_for_nas/
      
    • target playlist folders are also auto-created if they don’t already exist, excepting for the _playlist_directory_usb. There is no AlbumPlays requirement to keep your usb drive mounted, so AlbumPlays is unable to be sure whether that directory exists … if you are using a usb target, you need to manually create its playlist folder
    • the Missed Tracks playlist is written to each of the target playlist folders that you define, and also to the generic playlist directory if one or more of the target locations is not defined

    • Sonos owners: Playlist paths will need to be indexed by Sonos to enable it to see your playlist (ie. in the Sonos DeskTop controller, press the Add button in the Folders tab of Manage|MusicLibrarySettings)

  • the _spy_txt_export_directory is an optional override to the default export location (_nas_path) for the text transfer file of Spy observations

  • the track location options (_track_location_prefix_sonos & _track_location_prefix_sonos) are only required if AlbumPlays requires translation assistance to match your Sonos Spy observations back to MediaMonkey. There is a utility to show you whether this is needed, and how to configure this option.
  • the two backup location options (_bu_lan_path & _bu_lan_path2) are discussed here

  • you only need to use the _MM_db_path option if you have moved the MediaMonkey database away from its default location

        [general section]
        _mm_db_path = ~\My Documents\AlbumPlays\MM.DB
    
Data source

The _source_lfm option is not required in Spy mode because Spy mode is the default. If it is specified it should be set as:

[general section]
_source_lfm=n    

The default Spy conduit is via the database (see here for a description of the transfer options).

The Spy source may be temporarily overridden to the text file via the “Set Options” button on the application’s front panel.

Alternatively the Spy source may be permanently overridden to the text file with the _spy_data_from_txt option

[get]
_spy_data_from_txt=y    
Listeners

Each Listener needs to be enrolled in the application database. See here for more information about Listeners, including database enrolment.

The _lfm_id_list specification is optional. It is a blank separated list of the valid Listener IDs in use for the household. The option causes AlbumPlays to check whether all of the listed Listeners are enrolled into the database, and will offer to auto-enrol any missing ones. It is a requirement that identical IDs (including use of upper|lower case characters) are used for each active Listener across both the Observe & Detect and the Playcounts components. This option setting line may be copied across from the Observe & Detect component’s configuration file, to help ensure that have specified all IDs correctly. …. As use of this option is optional, there is no complaint if the database already contains Listeners who are not contained in the option list.

The _user setting is optional. You can only specify a single Listener ID for this option. It is required if you want to supplement Sonos plays, with plays made on non-Sonos devices, or plays made at other locations. This option specifies the Listener ID of the person whose Last.fm account will be searched for any non_Sonos plays to be imported into the MediaMonkey database.

It option is also be required if you are using user mode scrobbling (see _scrobble_mode=user in the following section)

[general section]
_lfm_id_list=BJM AKM HMP
_user=BJM
Scrobbling

The Scrobbling Quick Start guide is the best way to get overview of scrobbling configuration. There is more required than just the ini file setting illustrated below.

The option default is to not scrobble, meaning that this application will update play data into MediaMonkey, but assumes that if you have a Last.fm account, you are still using your Sonos equipment to handle any scrobbling requirement.

The _scrobble_mode options are described here

Here is how to override this default setting with group scrobbling:

[gui]
_scrobble_mode=group

Or here is how to specify user scrobbling:

[general section]
_user = BJM
[gui]
_scrobble_mode=user    

Remember that you need to turn Sonos scrobbling off to avoid double scrobbling.

Application backups

Set the application backup cycle frequency, in days, as shown below. Example: a setting of 7 would cause a fresh backup of the AlbumPlays & MediaMonkey databases to taken every 7 days.

There will be no application backups if this optional setting is not set, or is set to a value of 0.

[gui]
_backup_cycle = 5

On its own, this option will just cause each successive backup to overwrite the last backup. See here an explanation of AlbumPlays’ application backup facility, and for the additional steps required to set up a multi-level backup repository.

The following three settings allow you to override the default paths for optional level(s) within your backup repository. You may use neither, either or both of these options.

[gui]
_bu_lan_path = ~\My Documents\AlbumPlays\Backups
_bu_lan_path2 = \\your_NAS\your_share\AlbumPlays\Backups_level_2
_bu_lan_path3 = \\your_NAS\your_share\AlbumPlays\Backups_level_3

If you make no location override configuration, the backups will be stored in the default repository locations, as documented towards the end of the “Location” section found here

nb: see here for the options available when configuring path values for AlbumPlays.

The built-in application backup facility also has provision for automatic transfer of backup copies to an offsite location at Dropbox. Configuration details are found here.

It is important that you “firedrill” your backup set up, ie. restore both databases at least once, to verify that they are usable.

“Other” non-Sonos scrobbles

“Other” scrobbles are your non-Sonos scrobbles, ie. scrobbles from your other equipment or locations, which are downloaded from your free Last.fm account into MediaMonkey. AlbumPlays automatically filters out any Sonos plays which are already already known to MediaMonkey.

The _user option specifies which the Listener, whose Last.fm account will be used as a source for “other” scrobbles. Only one Listener may be specified.

The _others_suppressed option specifies whether or not the “other” scrobbles are suppressed by default. This is just a convenience option to ease the task of handling any tracks which are unmatched against MediaMonkey when the LFM scrobbles are imported.

  • if the majority of your non-Sonos plays are from streaming sources, then you could set to “y”, so that “other” scrobbles are auto-suppressed, and then you only have to manually un-suppress plays of any material sourced from, or duplicated in, your own library
  • if the majority of your plays are of your own music, you should not use this option (or set it to “n”), so that by default your “other” scrobbles are not suppressed.

Here is an example:

[get]
_user=BJM
[gui]
_others_suppressed=n
Allow ignore of album tag during scrobble match

AlbumPlays matches your imported scrobbles to your MediaMonkey database via the Artist, Album & Track tags. Where no full match is found AlbumPlays has an optional facility to try and obtain a match using only the Artist & Track name tags.

AlbumPlays is installed with this option turned on, as it can greatly reduce the drudgery during the database seeding process.

A potential problem with this optional settings can occur if you have multiple versions of the same artist|track tag set, maybe in separate albums. This could cause AlbumPlays to attribute the play to the wrong version of the track, although it is not as bad as it sounds because it can only happen where there is no match using the full artist|ALBUM|set.

If you chose to turn this time-saving option off, you would then need use the action lists to create a remapping rule for any unmatched scrobbles, which is probably a better option once you have fought your way through the database seeding task. Either of the following options will turn OFF this time-saving option.

[massage]
_allow_match_ignoring_album = N

or

[massage]a
#_allow_match_ignoring_album = Y
Suppress auto-application of fuzzy logic while scrobble matching

By default, AlbumPlays will automatically attempt to resolve any fresh scrobbles, which cannot be matched against your current track tags for some reason. It does this trying to find the correct track, by looking at them all, and using fuzzy logic to see if any track has a tag set which is a close enough match to the scrobble. You can suppress this default assistance with the following configuration option.

If suppressed, AlbumPlays will still make suggestions for scrobble tag corrections, but you will need to review and authorise them before they are used. The combo-boxes in the Edit|ActionList menu items will be pre-populated with the fuzzy logic suggestions, but these will not be used until you press the Update button, and then rerun the Approve action.

[massage]
_suppress_auto_fuzzy=Y
Enable lost scrobble resurrection

If you typically listen to whole albums, rather than mixed track playlists, you may want to enable the lost scrobble resurrection logic, which is off by default.

If you are listening to mixed track playlists scrobble resurrection will add overhead, but mostly generate false positives. For this reason it is turned off by default.

The use of the following option will turn scrobble resurrection on. During the *Approve” action you will be presented with a list of proposed lost scrobble resurrections. You may reject any of these, and those that you accept will be uploaded into MediaMonkey.

[gui]
_resurrect_lost_scrobbles=Y
Streamed tracks

AlbumPlays has optional logic to handle scrobbles obtained from Last.fm, and which are suspected as being played from a music streaming service. These tracks may, or may not, be in your own collection. There are two ini file settings to override the default behaviour.

The first can stop the GUI Express Wizard from pausing for confirmation whenever the fresh batch of scrobbles obtained from Last.fm contains any unmatched tracks which are suspected as being streamed. (See here for the aim of the confirmation step).

[gui]
_suppress_pause_for_streamed_confirmation=Y

The second option will suppress the logic which defaults as being streamed, any unmatched scrobble freshly obtained from Last.fm, where neither the artist nor the album title are found in MediaMonkey. (See the same link for more information)

[massage]
_suppress_default_unmatched_to_streamed=Y

There is also an option which can modify the default behaviour regarding Sonos Spy observations which cannot be matched back to your MediaMonkey database. By default these are excluded from the upload to MediaMonkey, without requiring your confirmation. You can force the requirement for confirmation via the following option. More information is available here

[gui]
_force_pause_for_streamed_confirmation=Y
AlbumPlays playlists

See the Location settings section above for settings regarding the export locations for all playlists, including the Missed Tracks playlist

The following section not address the special Missed Tracks playlist – see the bottom of this.

You can restrict a subset of your tracks from ever being considered as candidates for playlist inclusion by specifying the _playlist_genre_filters option. This is a blank separated list of genres, or a fragment of the name of any genres, whose tracks you never want to see in an AlbumPlays playlists (does not impact the Missed Tracks Playlist). The following example would exclude any tracks which were tagged with any of the following genres; “Kids”, “Duplicates”, “duplicates” & “Audience Taped”

[general section]
_playlist_genre_filters=Kids Duplicates Taped

nb: MediaMonkey allows you to tag any track as being part of more than one genre; you need to separate the genres with a semicolon and then a blank. eg. Jazz; Favourite
So you could elect to create a dummy genre, just for the purpose of excluding some of your tracks from ever appearing in a playlist:

You can translate the track locations, as known by MediaMonkey, to an alternative location. This is primarily intended to handle a situation where you have replicated your music collection onto a WiFi USB drive which you use while travelling away from home.

[general section]
_playlist_track_location_prefix_usb=\\192.168.60.1\Public\your_music_share
_playlist_track_location_prefix_nas=\\your_NAS\\your_music_share

You can influence how tracks, with multiple artist or albumartist tags, are sorted and displayed in your playlists.

A playlist entry may only have a single value for each tag type, so if your track has been tagged with multiple separate artist tags, only one will be used when the playlist entry is generated.
eg. MediaMonkey allows you to list the album Raising Sands both under Robert Plant, and also under Alison Krause, but for playlists purposes you have to chose one of these artists if you have them as separate tags.
A Sonos owner will probably have placed the most significant artist as the last tag, as Sonos only indexes the last tag for tracks which have multiple tags.

By default, AlbumPlays will produce playlist entries using the 1st Artist tag. The same thing with the AlbumArtist tags.

You may override this with the following option.

[general section]
_playlist_seq_multi_artist=last
Missed Tracks PlayList

The aim and configuration of the MissedTracks facility is discussed here

Date and time formats

Miles Davis was born on the May 26th, 1926. By default this application would describe this date as 26/05/1926. By default times are shown in 24 hour format.

You can modify the defaults as shown here.

Miscellaneous Settings
Limit quantity of scrobbles downloaded from Last.fm

Only applicable when using the Get action with the “Source” radio button set to LFM, ie. getting “other” non-Sonos scrobbles.

A limit can be applied to the number of fresh scrobbles which are downloaded by a single Get action. The limit is only of any use during the process where a new database is seeded with historic scrobbles. In regular use you are unlikely to have sufficient fresh scrobbles to warrant use of this option. If it has been left on, you may want to turn it off.

It is discussed here.

Ignore your historic scrobbles; start fresh from today

You can chose to ignore your historic scrobbles at Last.fm. This would mean that AlbumPlays and MediaMonkey only have new scrobbles, starting from now.
This topic is covered here, and the configuration settings are:

    [get]
    _limit = 2
    _when_limit_use_newest=Y
Action list grid limit; scrobble mismatches

The action list grid where you work with mismatched scrobbles (discussed here) has a size limitation. The application will become sluggish, and may break, if this limit is set too high.

You can override the limit each time that you use this facility, or you can rest the default as shown below. The default limit is 50 rows.

[general section]
_remap_rule_grid_limit=100
Suppress duplicated scrobble warning

AlbumPlays provides a warning notification if the fresh batch of scrobbles downloaded from LFM contains multiple plays of any track; “Tracks played more than once”.

The following option can be used to suppress this warning notification.

[gui]
_suppress_lfm_duplicate_warning=Y
Blank album tags

If your collection contains no tracks with blank album tags, you should set this option.

AlbumPlays works best with a traditional collection, where all tracks belong to specific albums. This are some compromises and extra overhead to accommodate collections which have some blank album tags. You can tighten up validation, and avoid some small overhead if you know that your collection has none, or minimal blank albums tags.

    [general section]
    _no_blank_album_tags=Y    
MediaMonkey version

I use version 4 of MediaMonkey. It is the default for this application, and for that version you need no configuration file entry.

MediaMonkey changed their default database location and the storage format for some dates in version 4. I haven’t used this application with version 3 for some time, so some issues may have crept in. It should still work. Contact me if you have any problems. To use version 3 you need the following

[general section]
_mm_version=3 
Level of detail to transfer to MediaMonkey

By default AlbumPlays transfers just play history summaries to MediaMonkey, as that is all that it uses.

You can override this default to also transfer all individual scrobbles to MediaMonkey with the following ini file setting:

[crunch]
_mm_update_contents = details

See considerations about this, and important warnings, here.

Override the MediaMonkey columns used by this application

The MediaMonkey database has no column for album play counts or last play dates. This application takes a couple of MediaMonkey columns, which are not used in a music context, and uses them to fill the gap.

See here for further information (read the “technical details”).

You can override which MediaMonkey fields are appropriated for this purpose. Here is an example:

[general section]
_mm_col_for_album_play=BPM
_mm_col_for_album_last_play=Custom1
Alter this application’s logging level

The amount of information which is output to the log file can be increased. Set debug logging on as follows:

[general section]
_debug=Y