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

Song Tagging and Metadata Blog

Friday, 24 March 2017

SongKong 4.7 for Melco released 24th of February 2017

We have added some important improvements to the ability of SongKong for Melco to read All Music Guide data from the Naim proprietary WAV metadata format and embed the metadata in the files themselves so that can be read by non Naim applications.

Fix Songs Report - All Music Guide section

We now have a separate section in the Fix Song report called All Music Guide, this works in a similar way to Matched to MusicBrainz Release and Matched to Discogs Release  

Selecting All Music Guide opens up an alphabetical index:

Then selecting a letter lists the Album Artist of releases that have been matched to All Music Guide metadata, together with a count of the number of songs that had been matched.

Selecting an Album Artist updates the right hand side of the report with the All Music Guide album(s) that have been matched  

Selecting one of these albums lists more information about the album together with a list of all the songs that have been matched on the album and file that has been matched for each track.

Unlike Matched to MusicBrainz Release and Matched to Discogs Release SongKong is not trying to search for a possible match it is simply taking the amginfo.xml file for the files in the folder, parsing this file and embedding the metadata in the files themselves. There should be the same number of music files in the folder as on the release and therefore all the songs on the release should be matched.
Please note we talk about the All Music Guide in this article but when the Naim UnitiServe rips a CD and it cannot find a match to the All Music Guide it does a lookup from CDDB instead and creates a cddbinfo.txt file. SongKong also parses and embeds these files as well, but they contain less metadata information than the All Music Guide.

Fix Songs Report - Song Change section 

The song changes report now indicates for each song when they have been matched to the All Music Guide.  In this example all songs have been matched to All Music Guide, MusicBrainz and Discogs !


SongKong 4.7 now with View Metadata as Spreadsheet

Today we release SongKong 4.7,this new release has some major improvements to the Fix Songs report, some new options for classical matching and fixes for a number of niggling issues.

View Metadata as Spreadsheet

An often requested feature is now here. The Fix Songs Report now has a new option called View Metadata as Spreadsheet, clicking on this will open a spreadsheet (.xlsx format) in your preferred spreadsheet application listing the complete set of metadata within the set of files processed by SongKong. 

This shows the metadata as it currently is, if in Preview mode it shows the metadata as it would be if not in Preview mode.This spreadsheet view enables you to very quickly view multiple changes on multiple files.
Because SongKong can typically add a lot of different metadata we group the metadata into logical groupings over a number of sheets. The sheets are Basic, Release, Classical, People, Sort Fields, MusicBrainz & Discogs, MusicBrainz Work and AcousticBrainz - every sheet lists songs alphabetically by filename, the filename is in the first column of each sheet.

When SongKong has added a metadata for a field that did not have any metadata for that field it is shaded yellow, when the field did already have metadata but it has now changed then it is highlighted green, if a field is deleted it is highlighted red.

Classical Improvements

Before this release you could force all releases to be considered not classical but you could not force all releases to be considered. Also you could not allow SongKong to set the IsClassical field without applying Classical options. we have now replaced one option with the two below. 

Identify Classical releases

SongKong uses various way to identify Classical tracks, if a song does appear to be a Classical piece then the IsClassical field is set. Usually it is best to let SongKong to decide if a release is classical or not by keeping the default option of Classical releases identified by SongKong . But some releases are difficult to assess. If you know all the releases you are matching in this run are Classical then you can set this option to All releases treated as Classical to force SongKong to treat all matched songs as classical and set the isClassical field. Alternatively if you consider none of the releases to be Classical then you can set this option to None, no releases treated as Classical to force SongKong to treat all the songs to none classical, clearing any values previously set for the IsClassical field.

Apply these options to releases identified as Classical

If this option is enabled then whenever a song is identified as Classical the options on this tab are applied to it, they are not applied to releases identified as non-Classical.



When SongKong decides if a release is classical or not there are still ambiguities regarding if a release is Classical or not since it is a little subjective.So we have also added an exception list . Adding the MusicBrainz Release Id of a release to the not_classical_release.txt file ensures they are not treated as Classical releases.

Improvements to Song matching

Various improvements and fixes have been made to single song matching, single song matching occurs when an attempted match of a group songs failed to find a match. But then depending on customer options an attempt can  be made to match individual songs. 


Other Fixes and Improvements

We have made a number of minor improvements in many areas of SongKong, the full list of fixes can be found on the SongKong News page

Monday, 20 March 2017

Introduction to UPnP AV using MinimServer

In the Introduction to UPnP I explained that there are three components to UPnP AV, the media server, media controller (better known as control point) and media renderer. The metadata displayed in the control point is defined by what is provided to it by the media server rather than the control point itself. A control point cannot display data that the media server doesn't provide it with, although poor control points can limit the data displayed further.

I also said 
We think MinimServer is by far the most flexible media server, offering a significantly more powerful approach to metadata then the others that let you harness all that metadata added by SongKong and Jaikoz, and we will explain how to do just that in a series of blog posts in the near future. 

So in this post I going to explain the advantage of using MinimServer, in a nutshell MinimServer lets you serve up any metadata to your control point in the way you want. In contrast other servers tend to restrict to the standard Pop/Rock conventions of Artist/Album/Track/Genre/Year.

MinimServer was developed with Classical Music in mind, but there is nothing in the design that limits its use to Classical Music it is just that Classical Music simply better demonstrated the problems with other uPNP AV servers.

Jaikoz and SongKong have always provided one of the most comprehensive metadata coverage of any tagging application. But one frustration is that players such as iTunes, Winamp and MediaMonkey do not support many of the fields that are supported by Jaikoz and SongKong, the only way to make this data visible to users within these applications is using the data as part of the filename, and hope they will eventually improve their metadata field support.

But with MinimServer this data can be served to the customers control point, we just have to configure MinimServer correctly. So we can index songs by fields such as performers, groups, movements, orchestras, engineers, conductors, record labels. We can make use of the sort fields we have for not just artists and composers but other roles such as conductors and producers

In fact MinimServer has many configurable aspects, but lets start with the basics, in the next post we show a vanilla MinimServer installation and compare with another popular media server.

Friday, 17 March 2017

A Potted History of Jaikoz and SongKong

Jaikoz was originally released back in 2005, over ten years ago. It got me thinking where has the time gone, and what have we achieved ?

I have always tried to have original ideas rather than take other people ideas and I realized that actually there are quite a few features of Jaikoz and SongKong where I got their first. So at the risk of being self-indulgent here is a chronological list of some of these.

Jan 2005 Jaikoz is released with full spreadsheet interface, this meant instead of having to edit tracks one by one changes could be made rapidly.

June 2005 Jaikoz approach MusicBrainz to become the first commercial tagger to use MusicBrainz for tag matching and help setup the Tagger affiliate program. From the start we always stored the MusicBrainz Ids as well as the song metadata to allow users libraries to be fully MusicBrainz enabled.

June 2007 JThink open source our tagging library for reading and writing metadata to files for different audioformats called jaudiotagger. Jaudiotagger has been very popular and as well as being popular on Pc, Macs and Linux is now the No 1 tagging library for Android devices.

Sep 2008  Jaikoz is the first tagger to add support for Discogs matching when they opened up their metadata without restrictions.

Nov 2008  Jaikoz adds tools for submitting collection to MusicBrainz and seeding MusicBrainz releases.

Feb 2010 Jaikoz takes spreadsheet support further by allowing metadata to be exported to a spreadsheet, edited and then imported back into Jaikoz and hence the files. No other application can do this.

Nov 2011  SongKong released, the only totally automated tag editor with no options for manual editing. SongKong is the first application to use Acoustid for acoustic fingerprinting. 

May 2012 SongKong adds a database based Undo facility that allows metadata changes to be reverted even after a reboot, this feature is unique to SongKong.

July 2014 We create the first combined MusicBrainz/Discogs database server called Albunack. This combines data between the two datasets, includes all metadata that could be used for tagging. It is optimized to provide much better performance than be achieved using MusicBrainz or Discogs directly. Shortly after Jaikoz and SongKong move to use this database.    

Dec 2014 SongKong supports both release based matching and song only matching when the release cannot be accurately determined. Song only matching updates song details such as track title and track artist but not release metadata such as track no or album title. This is in contrast with other applications that either treat songs independently and take no care over their album metadata or applications that do consider songs as parts of albums but then prevent matches when the albums cannot be determined. Im not aware of any other application that can currently do this.

Feb 2015  SongKong is the first application to use AcousticBrainz to support Bpm, Key and Mood analysis. Jaikoz adds support shortly after.

Oct 2016 We release the first version of SongKong to solve many of the metadata issues people have when trying to identify Classical music. Solving issues with identification of Classical, Works, Movements, Composers, Performers and Artists.
Dec 2016 SongKong and Jaikoz become the only applications to support automatic updating of the new works and movement fields newly introduced within iTunes 

March 2017 We team up with Melco to solve an issue for Naim UnitiServe customers, namely parsing the proprietary metadata used by Naim and embedding into the files themselves using standard metadata.Unique to SongKong for Melco.

Thursday, 16 March 2017

Introduction to uPnP AV for streaming Audio to Hi-Fi

What Used to Happen

A few years ago digital music was usually confined to a single machine. For example you might download files from iTunes on your Apple mac and then play them on the same mac. You may well have an iPod, in which case you would copy your files onto to your iPod and they would exist as separate files.

At the same time Hi-end audio system typically consisted of a CD player, a DAC (Digital to analogue converter), Amplifier and Speakers.

There was little cross-over between the two

Better networking 

Then we started to get hi-speed internet and wi-fi throughout are homes. Network  attached storage (NAS) allowed us to just have one copy of our music , videos and photographs which could then be accessed by multiple devices. 

Everything then started to become networked, not just computers but TVs, set-top boxes, Cd players and stereo systems. A way of having this wide range of different devices talk to each other was required. Microsoft had already developed Universal Plug and Play or UPnP for computers, gaming consoles and network devices such as routers. So it became the obvious choice as a standard for providing services between devices

What is uPnP AV

AV refers to Audio Visual  - this takes UPnP and develops standard for audio and visual, i.e hi-fi systems, televisions, set-top boxes and the like. When people talk about uPnP they usually mean uPnP AV, on this blog we are interested in the A part.

Hi-end audio manufacturers such as Naim and Linn started to see the potential of using hard drives to store music rather than always playing from the original CD. But customers wanted to play music in multiple rooms this meant a way was required to stream music to players that could reside in different locations to where the music was stored, and they wanted to be able to control this from a single point, uPnP AV addresses these issues.


uPnP AV has three main components

1. Media Server
2. Media Renderer
3. Media Controller

The media server streams music to media renderers, control of the media renderers is via the media controller

Media Server

The media server is software that could be running on a computer, a NAS or a purpose built hi-fi server such as the Melco N1 or the Naim UnitiServe

The most popular media servers are Asset, MinimServer, Twonky and JRiver . The choice of media server is important because the Media controller can only see the metadata that the media server presents it with, and the media renderer can only play the files that the server provides.

We think MinimServer is by far the most flexible media server, offering a significantly more powerful approach to metadata then the others that let you harness all that metadata added by SongKong and Jaikoz, and we delve into MinimServer in more detailing starting here

Media Renderer

The Media Renderer either plays the music itself or converts it so it can be played by something else further down the line. So the media renderer is usually a piece of hi-fi hardware such as the Linn - DS Series or the Naim NDS

Media Controller

The Media Controller is better known by the curious title of Control Point. Since customers want to be able to control their music where-ever they are in the house the focus of media controller development is definitely for iPads and Android based tablets. But control points are available for
the Mac and PC as well.

Control Points fall into three categories:

1. General purpose software that is designed to work with any compatible server and renderer such as PlugPlayer and SongBook

2. Hi-Fi Branded software that actually seems to work fine with any server, an example of this is Linn Kinsky

3. Hi-Fi software tied to particular hardware such as the Naim App

The choice of control point is not as critical as the other components, at the moment they all work in quite a similar way with not much to distinguish between them.

Sunday, 12 March 2017

Hints and Tips:Updating JRiver Media Center with SongKong and Jaikoz

A SongKong customer asked me about a problem he was having with SongKong and JRiver Media Center this weekend. Although SongKong appeared to have updated his songs correctly when he looked at the songs in JRiver there was no change, restarting JRiver made no difference.

The problem is that JRiver (just like iTunes) build an index of all the metadata the first time the files are added to JRiver. The advantage of creating an index is speed, you can now browse your file metadata within JRiver very quickly without JRiver having to go back to the files themselves, it only has to go back to the file when you actually want to play the file.

The disadvantage is that if you modify the files with some other tool such as SongKong then JRiver does not know that anything has changed, you have to tell it.

Luckily this is easy enough, just use Edit:Select All to select all your songs within JRiver. Then select Tools:Library Tools:Update Library (from tags). This may take a few minutes depending on how large your JRiver library is. If your library is really large and you have only changed a few files then you can just select the modified files instead of all your files.

Monday, 27 February 2017

Helping out Hi-end audiophiles with SongKong Melco and Naim solution

On Friday 24th of February we jointly announced a new version of SongKong for Melco, simply called SongKong for Melco. Melco are recognised worldwide for their high quality music library systems made with the highest quality audio specific components that allow music to be stored in digital format and then streamed to a music player or connected directly to a DAC (Digital Audio Converter) for connection to a conventional hi-fi system.

This was announced at the Bristol Sound & Vision show, click here to view the press release.

Alan Ainslie from Melco, recognising the difficulty their customers had with poor quality metadata from previously ripped and downloaded songs, came to SongKong for help with devising a simple solution for customers. In partnership with Melco we have already made many improvements for all SongKong customers, especially those with large collections including Classical and Jazz. 

Additionally with SongKong for Melco we have solved an issue for customers with collection of Naim wav rips. The popular Naim Uniti defaults to ripping to Wav format, it then looks up metadata from AllMusicGuide and Cddb. But this metadata is stored in a file called amginfo.xml or cddb.txt within the same folder as the wav rips for the album rather than stored within the Wav files themselves. This is fine as long as you only play them via Naim but if you copied the files anywhere else no metadata would show up for the Wav files, regardless of if the amginfo.xml or cddb.txt files were copied as well since only Naim Uniti could parse them.

Add caption

When the above option is enabled if you have any Naim wav folders that contain the Wavs and the Amginfo.xml/cddb.txt file then the metadata can now be embedded into the Wav files themselves, this can now be read and used by most applications and players such as MinimServer and Foobar2000. Of course you can additionally use SongKongs standard MusicBrainz and Discogs functionality to find additional metadata such as high resolution artwork.

Wednesday, 22 February 2017

Rename any file based on existing metadata with SongKong

SongKong 4.6 released with a number of improvements. 

Most notably the Rename files based on Metadata when Matched checkbox has now become a combo called Rename files based on metadata.  

Previously SongKong would only rename files when your files were matched to either a MusicBrainz or Discogs release. This ensured we only renamed files when were sure we had a good match, we had album metadata and all the songs of the same release were matched.

But the drawback of this approach was that if you had songs with perfectly good metadata but not matched by SongKong then you could not use SongKong to rename them.

Also if SongKong could identify the song but just not decide on the release then again you could not use SongKong to rename them. This was a particular problem for DJ's where often the album metadata was not really important anyway.


Rename Files from Metadata Options

By default this option this set to No. It can be very useful to name files based on the current metadata but this can cause problems for any other applications that index files by their file name. For example if you are using a music manager application and rename a file that is under the music managers control then it will not be able to find it, it is usually better to use SongKong on songs before adding them to a music manager. But if you are using iTunes then SongKong can inform of iTunes of changes that SongKong makes so that iTunes does not lose the file.

This option is not simply Yes or No, you can decide to rename songs based on how and/or.if they have been matched. Often the best choice is Yes if matched to a release this ensures that songs are only renamed if matched to a MusicBrainz or Discogs release, this in turn ensures that complete albums of songs are renamed and therefore kept together.

Alternatively the Yes if matched to a release or song option can be used, this additionally allows songs that have been matched to a MusicBrainz song but not a release. This ensures that all the songs renamed will have reliable basic metadata, but if you have a folder of songs representing an album and they have only been matched to a song it could cause them to be put into different folders.

The Yes if has metadata option allows any song to be renamed even if not matched by SongKong as long as it contains the basic metadata of Title, Album and either Artist or Album Artist. This option allows SongKong to be used for any collection of songs even when the songs could not be found in the MusicBrainz or Discogs databases.

The Yes, for all files option takes this a step further allowing any song to be renamed regardless of the status of it's existing metadata.

Wednesday, 18 January 2017

SongKong 4.5 released with Classical and iTunes improvements

We start the New Year with a new SongKong release, this one concentrates on two aspects, Classical music and iTunes.


New Option:Only use Artist Type to categorise groups as ensembles, choirs or orchestra

Every artist in MusicBrainz is categorised as either a choir, orchestra, group or person. But sometimes a group may be a credited as an orchestra or choir on a particular release, and when this occurs we credit that artist as an orchestra or choir for the particular songs in that release. However this can mean that within your songs metadata the same artist is sometimes added to the Orchestra or Choir field and sometimes the Ensemble field depending on what release the song is from, if instead you wish a particular artist to be categorised the same way throughout your collection enable this option.  

New Option:Allow changes to songs existing metadata fields if song only match

When SongKong can match a song but not determine the album it will update song metadata such as song title but not album metadata such as Album Title or Track No regardless of any existing metadata. This means that the song is identified and updated with useful metadata without making any changes that would prevent it being identified as part of the same group on a subsequent run of Fix Songs

However even modifying only Song Only metadata such as the Song Title or Track Artist could still change values significantly so that there is a difference between these songs and the totally unmatched songs. This difference is more likely when dealing with Classical release since there is not a single standard way that these fields are used with Classical music, for example you may have some songs where the work has been included in the song title and others where only the movement is used. If you disable this option then it will only update fields that are currently empty and this may better preserve consistency if some songs in an album are matched song only and some are not matched at all. The disadvantage of disabling this option is this can prevent SongKong replacing existing incorrect metadata with correct metadata.

Advanced modification of Classical Identification

One way that SongKong identifies classical releases is looking for releases that have credits to particular people known to work only on Classical music. This list is available within classical_people.txt, here is a small section, each line has the MusicBrainz Artist Id and then Artist Name

               1f9df192-a621-4f54-8850-2c5373b7eac9 = Ludwig van Beethoven
               d01c08ad-f09f-4396-b8a7-e27ae146ea27 = Ludwig von Széchényi
               5a4ae8d0-7ee4-4e83-bb89-1cfc9cf63d8b = Ludwik Osiński
               676bf1b0-b834-4117-86d2-ceba42fac051 = Luigi Badia
               688986c3-da7b-4465-92cb-f4736c94f2cd = Luigi Balestra
               cc272df6-a476-4d30-9ede-a47db04d8813 = Luigi Bassi
               5c1a3f8f-d5e5-4dcd-9e44-9443f06bb77d = Luigi Boccherini
               d6077dc7-7bdb-4cc8-9425-fb80bf2dff41 = Luigi Caracciolo
               375d52ad-5b7a-4f96-80e2-6d9ad13f5160 = Luigi Cherubini
               63b22cde-9b11-4465-83bf-ecf374eb490e = Luigi Gordigiani

The term Classical is used here in the most general sense so that anyone who died before music could be recorded is included plus Classical composers and conductors of the 19th and 20th century, in total there are about 6000 people listed. If you are finding that certain releases credited to a particular person are being classified as Classical when you do not want them to be you can search this file for that person and remove that line, you can also add people to this file using the format MusicBrainz Artist Id = Name

There is also a classical_composers.txt file, like all automated music taggers SongKong is always dealing with incomplete databases, a particular problem for classical music is that the database may have the list of credits for a release but not their particular role, e.g. Is Person B a composer, performer or conductor. SongKong has created a list of people who principal activity is composing so when we find this person credited on a release we can usually assume that they are the composer even if they do not have a composer credit on that particular release.

The smaller classical_conductors.txt list works the same way for conductors, both these files can be edited in the same way as the classical_people.txt file in order to fine tune your classical metadata requirements. If a person is a composer and conductors (or performer) then they will not be included in the composer/conductor list unless the vast majority of their credits are for one particular role


Working with iTunes is difficult since it can be configured many different ways. For example multiple libraries can be created in different locations. iTunes can make copies of every music file added (the default on OSX but not on Windows) and it can rename files automtically when their metadata changes. The configuration of these iTunes options are not available in the API that iTunes provides developers with so some guesswork is required.

One particular problem is that a customer may have iTunes configured to copy media files but when using SongKong open the location of the original file rather than the one now under iTunes control. We now warn the user when we detect this to try and prevent this common mistake that can cause to duplicate songs to be added to iTunes.

We also now have an iTunes summary that details the location of the iTunes media location plus a count of how many new songs were added to iTunes and how many songs already known to iTunes have been updated.

The library we use to talk to iTunes on Windows has been replaced with a newer one that is btter supported.

Full List of Fixes

The full list of fixes can be found on the News page

Monday, 19 December 2016

Updating iTunes Work and Movement fields easily with SongKong

iTunes now supports movements and works for Classical music but does not provide any way to automatically add data to these fields. So if you are using iTunes as an editor it becomes very time consuming to add this new data.

The screencast below is a tutorial on the Mac, and the tutorial in this blog post is for Windows, steps are the same for both. 


Adding Only Works and Movements for iTunes

Luckily both SongKong and Jaikoz can now add this data for you totally automatically. This guide explains how this works with SongKong. In this walkthrough we are going to limit SongKong to only update the Work related fields. But of course it can be used to identify songs and add the full set of metadata   

  • For the purpose of this guide I have created an iTunes database consisting of just three albums that we are going to update in one go with SongKong. Two albums are classical music album that we know to contain works and movements and one regular rock album. I have enabled the Movement, Work and Movement No columns in the Song View, and they are currently empty of data. 
  • And the Album view does not look any different then it would for a Pop/Rock album
  • Lets start SongKong and select your music folder.
  • Start Fix Songs and ensure that Save Changes to iTunes on the Basic tab is enabled. 
  • Go the Format tab, select Never Modify add add all fields to the Selected Fields list except Work, Movement, Movement No and Movement Total so it looks like the screenshot below and select OK
  • Now lets go to the Classical tab, the defaults are tuned for iTunes. Most notably if you have files in the AIF or MP3 format you really need Copy Work to Grouping field to be set to MP3 and AIF (iTunes)
  • Now press Start and wait for the identification and iTunes update to complete. 
  • If we look at the report that is created we can see that the Movement and Work fields have been added for the Classical releases.

  • Lets go over to iTunes, we can now see that the movement and work data has been added.
  • But if we go the Album View the work and movement data is still not displayed.
  • Now this is because of the one manual step potentially required. Sometimes we need to go back to the Songs View and sort by Work, then select all the songs that have a value for work, and select Get Info
  • Now check the new Use Work and Movement option

  • If we now go back to the Album View and look at these albums we see songs are now grouped by Work (e.g Sonata for Violin and Piano No. 1 in F Minor, Op. 80) and therefore can use the short Movement Name instead of the the longer Song Title (e.g III Andante instead of Sonata for violin & piano No. 1 in F minor, Op. 80: Andante). iTunes also derives a Movement No using Roman numeral notation derived from the Movement No

  • For songs already added to iTunes before these new options were introduced into iTunes the Use Work and Movement option may need checking. For songs added since iTunes 12.5 it seems this option is checked by default so this extra step may not be necessary.
The reason we matched to three albums, was to show that the manual step can be applied to all albums with works in a single step, it doesn't have to be applied one album at a time   

So as you can see we can easily use SongKong to identify classical music and the work and grouping metadata, the process is very similar for Jaikoz.

And you can use an identical method on OSX and Windows.

All the new work and movement metadata is stored in the file themselves so you can also run SongKong without enabling the Save to iTunes  option. Then at a later date select all the files in iTunes and use Get Info to update with any changes made by SongKong
Jthink blog Jthink Facebook page google_plus Jthink YouTube channel Email Paul at Jthink Subscribe to Weekly Newsletter