Home User Forums SongKong Music Tagger Jaikoz Music Tagger Albunack Music Service

Song Tagging and Metadata Blog

Monday, 24 July 2017

SongKong, Another way to install License

The usual procedure to install a SongKong License is to

  • Start SongKong
  • Select File:Update License
  • Copy/paste the three lines from your license email into  the license dialog

This is fine but with SongKong 4.10 we moved license details into a new license.properties file. You can now edit the file  directly instead. This can be useful if you are running SongKong without using a Gui such as on a remote linux server, or if there is a license issue.

Simply open the existing license.properties file in your User Folder with your favourite text editor and replace the three lines with the new values


If no such file exists just create a new license.properties file and add the three lines, then start SongKong  and it will use your new license details.

What is the User Folder

The only difficulty can be finding the SongKong User Folder, this is not the same as the Installation Folder. The SongKong User Folder is where we store your user specific settings, and this location varies for different operating systems.


On Windows the SongKong User Folder is C:\Users\username\AppData\Roaming\SongKong where username is your username. But the AppData folder is hidden by default, to see it you need enable Show Hidden Files on Windows Explorers View tab

See how AppData appears when you enable 
Show Hidden Files

AppData Missing

AppData Visble

  • Navigate to  C:\Users\username\AppData\Roaming\SongKong
  • Edit license.properties and save
  • Start SongKong 


On Macs the SongKong User Folder is C:\Users\Paul\AppData\Roaming\SongKong

But the Library folder is hidden by default, to make it visible
from the Finder hold down Option Button and select Go menu, then it will appear in the list

  • Select Library from the list 
  • Go to Preferences:SongKong folder
  • Edit license.properties and save 
  • Start SongKong


The SongKong User Folder  is the .songkong folder within the Installation Folder. Folders beginning with a dot are not shown in linux with a regular ls command, instead you need to use ls -a to see them

  • cd .songkong
  • Edit license.properties and save
  • Start SongKong

Wednesday, 19 July 2017

SongKong 4.10 Release, 19th July 2017: Support can now be sent directly from within SongKong itself

With this new release we have a mixture of small improvements and fixes.

Create Support Files

Notably we had an ongoing issue with SongKong support files that they could be too large to send by email, so then customers had to use a 3rd party file sharing service such as DropBox and if they did not have such a service setup already this could be difficult. 

Now  Create Support Files uploads the support files directly to the JThink server, and an email notification is sent to me informing me when it is done. This is much simpler, but it is still helpful if this is the first communication you have had with Jthink to send an email to support detailing the issue and why you have sent the support files.


Your license is now stored in license.properties rather than songkong.properties. This change should occur unnoticeably. But it paves the way to allowing multiple different SongKong configuration files in the near future, for example we could have a configuration files for using SongKong with MinimServer and another for use with iTunes.

Fix Song Preferences

We have reduced the number of tabs from twelve tabs to eight tabs. Hopefully this should be a bit less daunting for new users, remember the defaults work well for most customers.

Windows 1730 God mode bug

The latest version of Windows exposed a bug in Java, for some users this caused a serious issue when opening folder dialogs. Oracle fixed this a while ago but we have been waiting for some time for them to actually release the fix, but now they have done so and it is incorporated into this release.

Classical Track Artist Error

For Classical Music the artist field was not always being set with the correct value according to the Classical Track Artist option, this is now fixed.

Add composer to album title

We have improved how this option works so that it acts more sensibly when your songs are matched to just one disc of a multi disc multi composer box-set, and we have also improved adding composers from multi composer single disc releases as well.

MP4's with 64bit data lengths

Usually Mp4s use a 4 byte field to store the length of the audio metadata, but it has become possible to use an 8 byte field instead. This is only required when the data is longer than 4GB and is primarily for use in video but some applications use this field for audio that is less than 4GB. Until now SongKong could not read such files, but now it can.

Tuesday, 18 July 2017

Organize songs by Original Release Year using a new SongKong Rename mask

I received the following request on the forum today:

I am looking to take my entire collection and using SongKong fix, get rid of dups, and then finally end up with all songs characterized like this:

[Songname][Artist][original release year]

and have each song go into a separate subdirectory that is the year

So I would have subdirectories that would look like this:


and in each subdirectory would be all songs that were released that year.

Is this doable? If so, how?

If not, how close can I get before having to do manual work?


Creating new mask is a common request so it is worth going through the steps

Activate File renaming

By default files are not renamed, so if you want this on the Basic tab you need to set Rename Files based on Metadata to something not leave it as No. I would usually suggest setting it to Yes if matched to a release but since the customer is not interested in releases only songs a better setting would be Yes if matched to a release or a song. You can find more about this option in this article

Create a new mask

Then go to Filenaming tab. Although SongKong comes with a number of predefined mask we do not have this particular one so select Add to add a new mask

Now give the mask a Name that will help you recognize it

Original Year/Title - Artist - Original Year

and then enter the Mask itself

+ ifnotempty(title, ' - ')
+ ifnotempty(artist, ' - ')
+ substring(originalyear,4)

Then tab out of the mask and you can see an example mask is now displayed showing how files would look using this mask. 

The substring function shortens a value but also allows for when the value is shorter than the length you want to shorten it to.

The ifnotempty function lets you specify a value and a separator value, it only outputs anything if the value is not empty.

Since some songs may not have an original year we provide an alternative of unknownyear and make use of the ifempty2 function, this provides a second value to use if the first value is empty.

Click OK to create the mask

Use the Mask

Now we need to actually use the mask, in this case we want to use the same mask for all our songs so we need to select it for both the Rename Mask and the Compilation Rename Mask

Run Fix Songs

Select Start to fix your songs, and as the report shows the files are now organized by original year with an unknownyear folder for when the year is not known.

SongKong rename masks have full access to your songs metadata, and it makes use of the Javascript Expression language so there is no limit on how complex you require your rename mask to be.

Tuesday, 11 July 2017

MinimServer with SongKong Part 12: Showing Composer in Group name using DisplayFormat option

Part 11:MinimServer Configuration

SongKong has an option to always add the composer name to the album, even if it not listed as part of the album name on the online databases that SongKong uses.

So as long as you have the Add Composers to Start of Album Title enabled 

You should get the composer(s) listed in the album title
such as here.

But composer name is not added to the MinimServer group so if you just elect to play a group the Composer is not displayed

MinimServers tagFormat option (on the second tab of MinimServers configuration) lets you change what is displayed when playing music using the displayFormat option. Essentially its let you configure certain fields so that display different data, and since we already have the composer stored in the composer field we can modify group to display the composer and then the group as follows:


 Now we can see the composer name is displayed as part of the group field.

But it would be nice if we could display it using the same ': ' separator as we use on the album name. We can do that using this value instead.

Group.displayFormat={$composer^^: $group}

This replaces the default ', ' separator with ': ' . (The ^^ indicate a prefix and suffix, we do not set them to anything so they are just left as an empty value).

The displayFormat  can be used for the following fields:

  • Album
  • Artist
  • Comment
  • Genre
  • Group
  • Label
  • Title

Monday, 26 June 2017

SongKong 4.9.1 Release, 26th June 2017

A bug was introduced into SongKong 4.9 that affected a few of you. If you have:
  • Rename Files enabled 
  • Include album name as a part of your rename mask 
  • Have albums that contain '.' character in their name
it can cause SongKong to go into an endless loop, so we needed to get that fixed.

We also fixed an issue whereby if a songs could not be loaded from a folder it could prevent any other songs being loaded from the same folder.

We also fixed some issue in the reports.
  • The Matched to MusicBrainz Song Only links were broken
  • The report was missing blue section dividers
  • The summary chart did not correctly label Matched Song only and Matched to Acoustid Song Only part of the MusicBrainz bar when hovering over the bar

Wednesday, 21 June 2017

MinimServer with SongKong Part 11: MinimServer Configuration

Part 12:Showing Composer name in Group format using displayFormat
Part 10: MultiDisc Albums

Today we provide a sample MinimServer configuration that provides the functionality discussed in parts 1 - 10.

You should consider your existing configuration and your own particular circumstances but essentially if you are running MinimServer on a local computer you simply:
  • Open MinimServer properties tab
  • Copy and Paste the values below for the correct fields
  • Run Rescan
To modify the configuration of  MinimServer running  on a remote system such as a Melco N1 you need to:
  • Install MinimWatch
  • Connect to the Melco instance
  • Open MinimServer properties tab
  • Copy and Paste the values below for the correct field
  • Run Rescan

MusicBrainz Album Type:Album Type, Artist, All Artists, Album_Artists, BPM, +Date, +OriginalDate:Original Date, Choir, Composer, Conductor, Ensemble, Genre, Instrument, is_classical=1:Is Classical, is_classical_copy=0:Is Non Classical,Orchestra, Performer_name:Performer,Overall_work:Work,

composersort, conductor_sort, artists_sort, albumartistsort,album_artists_sort, choir_sort, ensemble_sort, orchestra_sort, performer_name_sort


Composer.value.sort={ComposerSort},Conductor.value.sort={Conductor_Sort},artist.value.sort={artists_sort},albumartist.value.sort={albumartistsort},album_artists.value.sort={album_artists_sort},Choir.value.sort={choir_sort}, Ensemble.value.sort={ensemble_sort},Performer_name.value.sort={performer_name_sort},is_classical_copy.default={is_classical}

Giving something similar to 


Monday, 19 June 2017

MinimServer with SongKong Part 10: MultiDisc Albums

Part 11: MinimServer Configuration
Part 9: Is Classical and other boolean fields

All Albums

MinimServer identifies songs to be part of the same album if they have the same value for the AlbumArtist field and Album field. 

By default MinimServer does this check at a folder level but if your albums are organized so they traverse multiple folders you can find matching albums in different folders by setting mergeFolderAlbums to true. But I would certainly advice that unless you have a very good reason you should organize albums so that each is stored in a different album folder that is within an album artist folder.

Multidisc Albums

The same applies for Multidisc albums but MinimServer is also clever enough to identify if you have each disc in a separate folder within a main folder without you having to set mergeFolderAlbums to true. You need to ensure the discno and trackno fields are completed as well, but they always are if identified with SongKong.

But by default MinimServer displays all the tracks on the release as if they are on a single disc.

So here we have actually have a 2 disc release, the first disc has 17 tracks and the second disc has 19 tracks but MinimServer shows it as a single 36 track release.

The reasoning behind this is that for Classical releases the work can sometimes bridge multiple discs and that makes playing a single work awkward. So removing the disc boundaries solves that issue.

But I want to show the discs

But where the bridging work is not an issue, it is often preferable to show the discs. This better represents the physical release that you are already familiar with, and breaks down larger releases into more manageable sections.

Configure the Album name

Earlier we said that the Album Name must be the same for all tracks, actually MinimServer does some special parsing of the album name that means that if extra per disc information is stored at the end of the album name that MinimServer will parse it and use it to display each disc.

SongKong can add this data automatically by setting the Multi Disc Releases option to Always add Disc No to the release title

Note that the album name now has (disc 1) added.

 If you rescan the files in MinimServer you can see the tracks are now grouped by disc with track numbers per disc. Also note that MinimServer parses the extra information added to the release title but does not display it (of course it would not really be able to in a sensible way since it is different for different discs).

Using the Disc Subtitle

There is another way to show a release as multi-disc albums and this is with the Disc Subtitle field. If the disc subtitle field has a value then the release is shown as multi-disc without having to make any differences to the release title field.

Some releases have an actual disc name rather than just Disc 1.. N. For these releases SongKong will automatically fill in the Disc Subtitle field such as this one which displays as multi-disc with MinimServer.

This usually makes sense since when releases have labelled their discs individually they usually can exist as standalone work. For example in this release the album Tolerance / Bop by Blue Aeroplanes is actually a compilation of two albums previously released called Tolerance & Bop.

SongKong doesn't use the Disc Subtitle field for multi-disc releases that don't have a disc title since that would not meet the metadata standards. But if you wanted to use this approach for all your releases you could manually enter data for this field with another tag editor such as Jaikoz.

SongKong 4.9 Release with improved support for libraries with multiple transcoded versions of same album

SongKong 4.9 released 19th June 2017.

Reports have got a little Funkier

We have split the Summary into a Summary section and an Options section.

The Summary section now summarizes results using a bar chart, this is much simpler to understand then the previous text only method.

Matched to Release, Matched to Discogs and Matched to AMG have been improved, artwork is shown, songs are grouped by discno, and multiple groups matched to the same album are now grouped in their own group. 

Transcoded versions of the same file

Its is becoming more common for customers to have multiple versions of the same album, typically a lossless hi-end version and a lossy version for the car or iPod.  

We have made a number of improvements to SongKong to help with this.

File rename keeps album together

Before if you had two copies of the same album and you had SongKong configured to rename files based on metadata you could end up with a single folder containing both sets of files. Now SongKong intelligently recognizes the same album has been matched more than once and creates separate folder for each set of matching files. This happens automatically without any user configuration changes required.

Add audio format to release title

We can also easily add the audio format to the release metadata itself, this helps you to identify different versions of the same release when viewing within your player or UPnP control point.

Find Duplicates within same audio format only

We have also improved Delete Duplicates so that searches can be restricted to be within a particular format. This makes it easy to keep multiple versions of the same file but with different formats whilst still finding actual duplicates.

The full list of improvements and fixes can be found here

Monday, 12 June 2017

MinimServer with SongKong: Part 9: Is Classical and other boolean fields

Part 10: Multi Disc Albums
Part 8 : Configuring the Date Index

Problem:Most of us have a mixed Classical/Non Classical music library and sometimes its nice to be able to simply browse one category or the other. The way this is usually done is by using the genre field, but then this means that all our Classical music has to be given the same genre when what we probably want to do is categorize by subgenres within Classical.

Solution:SongKong music identification album categorizes albums as non-classical/classical and helpfully writes an Is_Classical boolean field to the files themselves so we can use this to split our albums into two groups for easier browsing.

Boolean fields in MinimServer 

A boolean value is simply a field that has only two values. So if we just add IS_CLASSICAL to indexTags we can then browse by two values 

But MinimServer provides a nice shortcut to go straight to a value by using the fieldName:MapValue:NewName syntax



So now when you click on IsClassical it takes you to the classical only albums. The only trouble with the approach is that there is no no way to go to only the non-classical albums.

Browsing both values of a Boolean field

But there is a way to do this as well. It is slightly convoluted you need to add another mapping to the zero value from a pseudo field which is then populated from the original field



 Now we can browse by both IsClassical and IsNonClassical easily.


Wednesday, 24 May 2017

MinimServer with SongKong: Part 8: Configuring the Date Index

Part 9: Is Classical and other boolean fields
Part 7: Album Artist

The Date field generally stores the release date of the album. Note ID3v24 formats also have a ReleaseDate field but it is not generally used. By default MinimServer lists the date in descending order as follows:

But Date or any other field can easily be shown in ascending order by adding a '+' sign before the field name in the indexTags option

This now shows the date ordered the other way round

The Date value can be in dd-mm-yyyy, mm-yyyy or yyyy formats. Your file metadata may contain all three types , browsing can be made simpler by simply displaying only the year part and this can be done by adding 


Now we have a grouping by year only which is more readable.

We may wish to browse by Original Date as well, this stores the date of the first release the song was released on, this is particularly useful when you have compilation albums or reissued albums.

We can add Original Date in the same way

You may only be interested in the Original Date and would like it as the Date, in this case you can map to Date using an aliasTag.

This works nicely within MinimServer but if you need to do this so your files metadata outside of MinimServer use Original Date as date then you can configure SongKong to always put Original Date into the Date field by enabling Use Original Release Date on the Album Format tab.

Sunday, 14 May 2017

hi-fi News - SongKong King of Apps ?

We got a nice mention in the latest edition of hi-fi news
as part of a review of the second generation Melcos.

.. with particular benefits for those whose collection goes beyond the usual artist/song/album norm, such as jazz and classical music enthusiasts. What's more, it allows a high degree of user-customization to suit specific needs

Thanks guys.

JThink will be at Hi End Audio show at Munich with Melco

The Hi-End Audio show in Munich is one of the largest and most important in the World. Its runs from the 18th to 21st of May at the MOC in Munich, and has exhibitors showing just about anything connected to Hi-Fi

As part of the recent partnershop with Melco I will be at the show demonstrating SongKong and available to have a chat about anything metadata related or not metadata related !

Please come and visit, I should be at Atrium 3 D102-105 for most of the four days.

Friday, 12 May 2017

MinimServer with SongKong: Part 7: Album Artist

Go forward to  Part 8: Date
Go back to      Part 6: Classical Track Artist

The Album Artist stored in MusicBrainz replicates what is written on the spine or front of the disc.This represents the the main people that the release is credited to. 

For Pop/Rock this is quite straight forward, usually a single performer or band is credited for the release as a whole and all the tracks, with perhaps an additional performer credited on a couple of tracks.

For Classical music its more complex since first of all more people are involved such as composers, conductors, performers and orchestras. Secondly these people are not all involved in all tracks, certainly when multiple works by different composers exist on a single album

The Album Artist can be used as a way to correctly identify a release, allowing us to differentiate between different releases with the same or similar names. But for Album Artist to work correctly with MinimServer it must use a single field for the albumArtists rather than one per album artist


ALBUMARTIST= Dallas Wind Symphony, Frederick Fennell

instead of  

ALBUMARTIST= Dallas Wind Symphony
ALBUMARTIST= Frederick Fennell

Album Artist is automatically configured for MinimServer, we just need to add sorting.

But we can also browse by the individual album artists as we do for track artists by adding an additional Album_Artists index

Then we can configure as follows

Add Album_artists to indexTags 
Add albumartist_sort, album_artists_sort to itemTags
Add albumartist.value.sort={albumartistsort}, album_artists.value.sort={album_artists_sort} to TagValue

This leaves the Artist index as the default configuration, this is useful for differentiating between similarly named albums. 

It then adds a Album_Artists index that lets us browse by the individuals credited on the release and is useful for viewing all releases that they were a principal person or group.

Composer in Album Artist

The other thing to consider is if we want the composers to be part of the album artist fields since they may not be actively involved in the actual performance. We can easily strip these out with SongKong using the Remove Composer from Album Artist option

Jthink blog Jthink Facebook page google_plus Jthink YouTube channel Email Paul at Jthink Subscribe to Weekly Newsletter