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

Wednesday 17 December 2014

Jaikoz 8.0.2 Released

Jaikoz 8.0.2 Released

A few more regressions were found in the Jaikoz 8.0.0 released, hopefully all now fixed.

Probably the most important issue was that Featured Artists were not getting added to the artist field when songs were matched from MusicBrainz.

Also if field was deleted (so had status red) and that song was matched to MusicBrainz none of the fields that were deleted would be repopulated until the song was actually saved.

Full list of fixes can be found here

Friday 12 December 2014

What do you really, really, really want to see in the next version of Jaikoz ?

With Jaikoz 8 released we finally have both SongKong and Jaikoz using the JThink Music Server for their metadata queries. The Jthink Music Server was a huge chunk of work that we hadn't planned for at the start of the 2014 (it was driven by changes over at Discogs) but the speed and accuracy improvements that come with it have been pretty amazing. SongKong is now maturing  with very few bugs remaining in it so we now have time to plan for 2015.

So what do you really, really, really want to see in the  next version of Jaikoz ?

We have our own list of top priorities that you can see here but its difficult to gauge what my customers want, so please post a comment here if there is something you want or need that Jaikoz doesn't provide.

Improvements to Deleting Duplicates with SongKong 3.5

SongKong 3.5 released today, in previous releases the main focus has been on improving the Fix Songs task but in this release we wanted to review other part of the application application, especially Delete Duplicates Songs

Delete Duplicate Songs

First of all we found some bugs in Delete Duplicates that have now been fixed.

The help for Delete Duplicates has been completely rewritten to give more detail and make more sense for non-MusicBrainzers and additional checks and balances have been added to make Delete Duplicates work better in Trial mode.

The we added a new option to Song is a duplicate if has same called Same song (metadata only). This is very similar to Same MusicBrainz song only for finding duplicate songs without being concerned about albums, but without the need to match the songs to MusicBrainz first (although we would always recommend using the MusicBrainz based options whenever possible)


Help has been edited, including simplification of the terminology such as using Album instead of Release and Song instead of Recording. We have added a Pdf version accessible from the Help menu for some bedtime reading, but seriously the Pdf version works well if you want a paper copy of the SongKong manual.

Fix Songs

But despite what I say at the start of this post we have made some improvements to FixSongs as well, these include some major performance improvements based on improvements we made in Jaikoz 8.

Full list of improvements and fixes can be seen here

Thursday 11 December 2014

Jaikoz 8.0.1 Released Today

Jaikoz 8.0.1 Released Today

This is very much a bug fix release, included in the bug fixes are fixes of three important regressions.

  1. Manual Correct from MusicBrainz would not display properly if  an of the potential matches were songs linked to a release without a release date or country.
  2. Matching to MusicBrainz was broken for Linux installations due to a bug in the Linux installer.
  3. Update Metadata from MusicBrainz would not work for songs matched before Jaikoz 7 because they would not contain a MusicBrainz Track Id field only a MusicBrainz Recoriding Id field. Now we have fixed Jaikoz to check for a Recording Id if a Track Id does not exist.

You can see the full list of fixes here

Friday 5 December 2014

Jaikoz 8 Arrives: Complete Music Management Solution

Jaikoz 8

Today we release Jaikoz 8 this is an exciting release because it is the first time Jaikoz uses the JThink Music Server for both Discogs and MusicBrainz matching.

This means
  • Faster Matching
  • More Accurate Matching 
  • More Reliable Service
Faster matching because the  JThink Music Server is optimized for release matching - and is optimized  to show the data Jaikoz requires, not more and not less, this results in a minimum amount of api calls. In contrast the MusicBrainz server has to support all many different scenarios and customers and understandably has to make compromises

More Accurate Matching search has been optimized to best match the algorithm used by Jaikoz, and additional data such as finding the original release of a release is returned with the match.

More Reliable Service MusicBrainz service is available to many applications and because of this usage can vary wildly, and at times can become unresponsive.  Because the Jthink Music Server is only used by Jaikoz and SongKong demands on the server are less, and unlike the MusicBrainz server the Jthink Music Server can automatically scale to multiple machines when demand does peak.

Some New Features

We have also added
  • Match Songs to one MusicBrainz Album by Catalog No
  • Match Songs to one Discogs Album by Barcode
  • Match Songs to one Discogs Album by Catalog No
and you can now
  • View this Song at AcousticBrainz
AcousticBrainz is a new site that does audio analysis on songs in the MusicBrainz database to work out attributes such as the Bpm or Danceability of a song. There will be deeper support for this in the next version of Jaikoz. You can help the AcousticBrainz project yourself by submitting your own songs for analysis.

 Many More Improvements

In this release the matching algorithm of Jaikoz has had a Spring clean, it has taken on most of the improvements implemented by SongKong plus added some new ones to give the fastest and most accurate matching so far.

We taken a look at any issues raised in the last year and fixed as many as we possibly could.

You can see all the 42 fixes and improvements made in this release here

Friday 21 November 2014

How to easily calculate the Beats Per Minute (BPM) of a song

Knowing the  Beats Per Minute (BPM) of a song can be very useful

  • If you are a runner matching the BPM to your running pace can help improve your performance.
  • Professional DJ's need to be able to blend the end of one song into the next, without the transition being awkward or jerky. By figuring out the BPM  you'll  know if you need to bring the tempo up or down to have them both playing at the same speed.
  • Creating a  playlist to fit a certain mood is considerably easier if you use songs with a similar BPM

But how do you actually calculate it ?

There is now a really easy way to do this thanks to a new project called  AcousticBrainz 
a collaboration between MusicBrainz and Music Technology Group, University of Barcelona
  • First your songs needs to have MusicBrainz Recording Ids, as you know this is easiest to do by running them through SongKong Tagger 
  • Then download an AcousticBrainz client from here
  • Install and run the client and point it to your music collection, this will calculate the BPM for each song and then submit it anonymously to AcousticBrainz
  • Then to look up the BPM just look up the page http://acousticbrainz.org/mbid in your web browser i.e. http://acousticbrainz.org/5f3a763a-669d-4a4c-bafa-d76fc5ae885d
  • You'll notice it doesn't just provide the BPM but all kind of cool things such as key, danceability and mood , but more about these in another post.

The future

This is a brand new project so it is not integrated into any other tools yet but soon SongKong and Jaikoz will allow you to both submit new AcousticBrainz data and to automatically add it to your songs.

Sunday 16 November 2014

Matching Multiple Albums using only Acoustids

The SongKong 3.4 release is full of improvements to the matching process.

SongKong now does a much better job of handling multiple albums without metadata in one single folder. Previously if you had Only allow match if all tracks in album were matched enabled it had difficulty matching multiple albums contained within a single folder unless they had some existing metadata. The workaround was to disable the option but this then allowed SongKong to match partial albums, possibly not the desired outcome. Now in this release SongKong can derive metadata from the songs Acoustids and group and match the songs accordingly without having to disable the above option.

Overall SongKong is better at matching albums, before this release it would try and match a grouping completely to one album, if that failed and depending on user preferences it would then match each song one by one. Now before resorting to song by song matching it trys matches partial groups to a release. This means results are split over less albums, and it speeds up the matching process because it is quicker to match a group  of songs to a release in one go rather than song by song.

There are some super larger releases in  MusicBrainz and Discogs, these are usually Box Sets of the complete works of established artists. Matching songs to these larger releases can be time consuming and give the impression that SongKong has stopped working. A number of improvements have been made to prevent SongKong spending too much processing a group of songs, and a Still Alive progress bar has been added to show that SongKong is still working 

Full details of all issues fixed in this release can be found here .

Monday 3 November 2014

New Version of SongKong with Better Matching

Today on 3rd November 2014 we release SongKong 3.3, this release is full of improvements to the matching process:

SongKong now does a much better job of matching songs to multi-disc releases such as box sets, previously if checking against very large releases such as this 50 Cd Elvis Presley Box Set SongKong could take a long time, now the matching is quick and accurate.

Match Song to Recording only is now more effective at identifying the correct song when an acoustid matches to multiple recordings because it takes existing metadata into account.

Discogs matching is more effective because SongKong can now find matching albums based on the existing song titles in your files, before potential albums were only found based on existing artist and album name metadata.

We have also improved the identifying of duplicates when matching songs by taking into account acoustids and song title metadata at the same time. By identifying duplicates files we can better match the non-duplicates files to the correct album.
Full details of all issues fixed in this release can be found here .

Monday 6 October 2014

Why does SongKong not match this song to the right song ?

Why does SongKong not match this song to the right song ?

SongKong is a release based tagger, this means that first of all it  always tries to match songs to a complete release  rather than an individual song to an individual track on a release. Release based tagging is much more sophisticated then track based matching.

But if you only have the odd song instead of complete releases such as albums and E.P' this is not possible.  So unless Only allow match if all songs in folder match to one album and Only allow match if all songs in album were matched are both enabled SongKong then attempts to match the remaining songs one at a time.

The primary way of doing this is matching by the Acoustid but sometimes a single Acoustid can match multiple recordings, so we use additional metadata to help decide on the best recording. But this doesn't always help so in SongKong 3.2 we have added two new options.


Ignore existing metadata when matching individual songs

If you know the metadata is incorrect you can enable this option so that only acoustids are considered then SongKong will use the recording that has been matched to that acoustid by the most people, this is usually the correct choice.

Ignore metadata derived from filename when matching individual songs

If the song has no song title SongKong tries to derive the song title from the filename but if you know the filename does not represent the song title it can be ignored by enabling this option.

Friday 19 September 2014

Music tagging with iTunes

Music tagging with iTunes

Even after all these years iTunes is still an essential application for purchasing and playing music for many. Because of that SongKong and Jaikoz have always supported automatic notification of your iTunes library  as you make changes to your music collection. This is necessary because unlike other software iTunes maintains its own model of everything known to iTunes but does not actively monitor your file system for changes made to your songs outside of iTunes.

For example if you rename a song that is already in the iTunes library without informing iTunes then it will not be able to find that song next time you try and play it.

If you delete a file because it is a duplicate without informing iTunes then it will remain in the iTunes library as an orphaned file.

Unless you add new files to iTunes it will be unaware of them, but if you add a file already known to iTunes as if it is a new file you can get duplicate files within iTunes.

Improvements to iTunes in SongKong 3.1

 We have now made some important improvements to SongKongs iTunes integration.

iTunes notified as songs as saved

Previously iTunes was notified once after all songs had been saved, if a large number of songs were modified this could cause a delay at the end of Fix Songs as SongKong created an iTunes playlist of all the songs modified.

Now we add songs to the iTunes playlist as they are saved, this avoids the delay at the end and also means that if SongKong encounters a problem before finishing details of all songs so far modified are sent to iTunes.

Progress indicator for creating the iTunes model and iTunes with changes 

In order to update iTunes SongKong has to create a presentation of the iTunes model so that it knows the names and locations of all the songs under iTunes control, this is done once every time you start SongKong ( if you have iTunes integration enabled). If you have a very large iTunes collection this can take a while, and if you are only matching one album in SongKong then building of the iTunes model can take longer than matching the album but there is no indicator in the progress bar to indicate this so it can look like SongKong has stopped working.

Updating also used to happen at the end and this could an additional delay, once again there was no progress indicator to make this clear.

But now we have added an indicator for the iTunes model creation and an indicator to show that iTunes has been updated with changes


Full SongKong 3.1 Changelist

SongKong 3.1 make some other improvements and fixes as well, these are all listed here

The Problems with Hyphens

There are some six different hyphens  within the Unicode Standard listed below:


As you can see there is not much difference between them, and when they are used within MusicBrainz and Discogs they are often used without much thought to it.

This causes problems when applied to your music collection because it can mean that songs by one artist can be split if Discogs has used a different hyphen to MusicBrainz, the same problem can also apply within MusicBrainz when comparing releases or recordings as well.

And because the hyphens look so similar it is very difficult to spot the problem.

Manual input of many of these characters is not easy as they do not have dedicated keys on the keyboard, so input is often via done by copy and paste of the character or resorting to using the Unicode value of each character (if you know it)

There are additional problems when filenames are renamed based on metadata. Although the six hyphens listed above all are all valid Unicode they are not all valid characters in other legacy charsets such as Windows-1252 used by many applications on English language versions of Windows.

So to help make your data more consistent all hyphens are mapped to the Hyphen-Minus character, this is the hyphen found on all computer keyboards.

This new version of the JThink Music Server also contains the very latest MusicBrainz data.

Friday 12 September 2014

New Super Fast SongKong 3.0 has Arrived

Today we release SongKong 3.0 is now available.

The reason for the increase in the major version numbering from 2 to 3 so soon after  version 2 was released it that this a very significant release that now does all the MusicBrainz searching from our Jthink Music server rather than MusicBrainz itself.

Jthink Music server

The Jthink Music server is not simply an exact copy of the MusicBrainz server, it is built from the same MusicBrainz database but provides a new api customized to provide exactly what is required for SongKong to do optimal matching. Because SongKong can now get the information it needs with many less queries the performance testing done so far has seen an 800% improvement in performance, to put it another way what used to take 3 hours now takes just over  20 minutes.

Sort Artist

The Jthink Music Server contains both MusicBrainz and Discogs data allowing us to share information something that is not possible if connecting directly to the MusicBrainz or Discogs server alone. For example MusicBrainz artists always contain a sort name, so the artist Kate Bush has a sort name of Bush, Kate, but Discogs does not store sort names. Previously, this meant if a release could only be matched to a Discogs release but not a MusicBrainz release the sort artist would no be set, now as long as the artist is in the MusicBrainz database the sort artist will be set for a Discogs only match.

Original Release

A popular feature of SongKong is its ability to find the original release and date of a song, that is the earliest release the song could be found on. With the MusicBrainz api this was difficult to work out because different things had to be checked to find the earliest release such as other releases within release group, all releases that the recording is found on, and all releases for recordings withe same acoustid and name as the recording. It was so complicated it wasn't always possible to find the earliest release, but now the earliest release is pre-calculated for every song, so can always be returned for every song.

There are also a host other bugs and improvements in this release, see here for full details


Sunday 7 September 2014

New version of self-hosted server deployed today

A new version of JThinkServer deployed today

The local JThink server has now been updated with the latest data from Discogs, the JThink server processes requests from both Jaikoz and SongKong.

We have also fixed some issues with the data so you should get better results.

More excitingly we have now added MusicBrainz to the server ready for the new version of SongKong. This means additional changes to the server - it should be fully backwards compatible with the existing versions of Jaikoz and SongKong but if you suddenly encounter a new problem please let me know and I can switch back to the previous version of the server whilst I resolve the issue.

Tuesday 2 September 2014

Jaikoz 7.1.1 Release

A few more issues remaining after the Discogs rewrite for Jaikoz are now fixed in this release.

There was a problem that was preventing good matches to Discogs being found because Jaikoz was submitting an incorrect track count to the server in some cases.

We also manged to introduce a bug in the MusicBrainz code breaking how artist artist credits were dealt with for releases with multiple name credits, this is also fixed.

A few other bug fixes thrown in for good measure, full details here

Wednesday 20 August 2014

New Jaikoz 7.1 Music Tagger release

Jaikoz 7.0 was a major release that completely rewrote the Discogs matching to use jthinks own version of the Discogs server. We got it mostly right, but didn't get it quite right so today we release Jaikoz 7.1 to rectify any regressions.

There are also a few other bug fixes thrown in for good measure, full details here

Meanwhile progress on adding MusicBrainz to the JthinkServer is progressing very well, its going to be really fast compared with the current SongKong and Jaikoz releases.

Monday 4 August 2014

Jaikoz 7 introduces self hosted Discogs server

Quicker than planned I'm pleased to announce Jaikoz 7 has been released, it only has one new feature but its an important one, all of the Discogs matching of Jaikoz is now done via the same self-hosted version of Discogs that is already used by SongKong

Originally we looked at this because of the instability of the Discogs API in recent months, the latest forthcoming change would have required all Jaikoz customers to have had a Discogs account and seperately authorise Jaikoz to access their account. Having seen how badly Discogs implemented this for changes to their image archive I wasn't keen to expose Jaikoz customers to this again.

But there are may other advantages of self-hosting Discogs:

We can customize the search to work exactly how we require it for Jaikoz rather than working within the constraints of the Discogs provided search, this means we can get better search results and dramatically reduce the number of requests required, so you get better matches faster. We can control rate-limits based on usage by our customers only to increase throughput, and we can also move some processing out of the Jaikoz itself on the server simplifying Jaikoz code development and reducing client CPU usage, giving additional speedups.

Our Discogs server is updated monthly from the latest data provided by Discogs.

Additionally I do plan to support a way to add new releases to the Jthink database as they are added to the Discogs database for those of you who add new releases to Discogs and want to tag them from Jaikoz immediately.

In the next few months we intend to self-host MusicBrainz data as well, and because MusicBrainz is the primary database used by Jaikoz this will provide additional improvements in speed and accuracy over and above the Discogs improvements.

Full set of changes in this release can be found here

Saturday 2 August 2014

SongKong 2.1.2 with some final fixes for the new features introduced in SongKong 2

I am now back from holiday and have a new release of SongKong that solves issues with the new Discogs Matching, Genre grey lists and Featured Artists option introduced in SongKong 2.0 - full details here

Now the rush is on to move Jaikoz to use the Jthink Discogs server before Discogs implement their api changes on August 15th, time is a little tight. 

Friday 18 July 2014

Finding more artwork by looking for similar releases

Hot on the heels of SongKong 2.1 we have SongKong 2.1.1 and this includes an important fix to the artwork finder.

Some Background

Within MusicBrainz different versions of the same release can all be grouped together under a Release Group. For example a CD version and an LP version of the same release would be part of the same release group. Artwork is added at the release level but usually the artwork for all releases within a release group is the same or very similar. Because of this if no artwork can be found for the release that SongKong matched to then SongKong will check releases that are part of the release group and if any artwork found use that instead.


Discogs has a similar concept to Release Groups called Masters.  Masters also nominate one release as the Main Release which is often the chronologically earliest. But currently most releases in Dicogs are not linked to Masters so it isn't terribly useful to SongKong at the moment.

Instead we search for simply search for releases with the same artist and release name as our matched release and check the artwork of these releases. At least that is what it was meant do to but it wasn't working, now fixed in SongKong 2.1.1 so the artwork count should continue to rise.

Thursday 17 July 2014

Featured Artists option now working in SongKong 2.1 release

Last week we released SongKong 2.0 with masses of improvements, unfortunately as is de riguer  we also introduced a few bugs and the new When Tracks contain Featured Artists option didn't actually work.

There are all now fixed in SongKong 2.1 now available from the Download page

I thought it worth revisiting the featured artists option with some examples.

With the default Add all contributing artists to the artist field option enabled all artists credited for that track are added to the artist field and all artists credited to the release as a whole are added to the album artist field. So if the songs were matched to this release then we would have:

Album Artist : Mark Ronson
Album           : Valerie
Track 1 Artist:Mark Ronson feat, Amy Winehouse
Track 1 Title :Valerie

If we used Only use main artist in the artist field and discard other artists option then we would get

Album Artist : Mark Ronson
Album           : Valerie
Track 1 Artist:Mark Ronson
Track 1 Title :Valerie

or if we used Only use main artist in the artist field and add others to the title field then we would get

Album Artist : Mark Ronson
Album           : Valerie
Track 1 Artist:Mark Ronson
Track 1 Title :Valerie (ft. Amy Winehouse)

If a song is equally credited to multiple artists then the multiple artists will be added to the artist field whatever option is selected, for example in this release David Bowie and Mick Jagger are equally credited at track and release level  so both will always be added to the artist and album artist fields with their join phrase to give us

Album Artist : David Bowie  & Mick Jagger 
Album           : Dancing in the Street
Track 1 Artist:David Bowie  & Mick Jagger 
Track 1 Title :Dancing in the Street

How do we decide if they are credited equally ?

We look at the join phrase, currently ' & ', ' / ' and ' , ' are treated as equal weighting, in all other cases we consider the first artist to be the main artist. This will probably be expanded for other cases

Friday 11 July 2014

SongKong 2.0 is here

Self hosted Discogs Server 

Pleased to say that SongKong 2.0 is now available. There are a host of improvements in this release but the  most significant is that Discogs requests are now served by our own server rather than Discogs itself. The great thing about this is we can customize the search to work exactly how we require it for SongKong rather than working within the constraints of the Discogs provided search, this means we can get better search results and dramatically reduce the number of requests required, so you get better matches faster. We can also move some processing out of the SongKong itself on the server simplifying SongKong code development and reducing CPU usage, giving additional speedups. Our Discogs server will be updated monthly from the latest data provided by Discogs.

Over the next month Jaikoz will be updated to use the self hosted Discogs Server as well.

In the next few months we intend to self-host MusicBrainz data as well, and because MusicBrainz is the primary database used by SongKong this will provide additional improvements in speed and accuracy over and above the Discogs improvements.

Genre Grey Lists

Now SongKong comes with a genre list Grey List that allows you to control what genres are used. Because genres are subjective there is no correct genre for a release but grey lists let you configure
how genres should be processed.

When songs are matched to a Discogs release we check the genres provided by Discogs for that release against the genres listed below, if the Discogs release has multiple genres in this list then we use the genre that comes earliest in this list, so the order of the list is important - if you want to keep them you should put more specialist genres such as 'Power pop' before more general categories such as 'Pop'. If no match is found no genres will be added to songs matched to that release. Having found a match SongKong uses that value if that is the only value on the line, but if there is a ';' and then a second value it will use that second value, this is useful for mapping multiple similar genres to a single genre.

Example:Map three genres to one
All three genres are mapped to a more generic genre when such specific genres are not required

                  Black Metal;Metal
                  Goth Metal;Metal
                  Doom Metal;Metal
Example:Dealing with spelling variations
Maps Bossa nova to Bossanova, Bossanova is allowed through untouched

                  Bossa nova;Bossanova

The default list is a list of all the styles and genres currently in the Discogs database with no additional mapping. But this is just the start, more improvements to come with later releases of SongKong.

New Update from Metadata Option 

Previously SongKong could either rematch all songs or ignore songs already matched but now there is a new option Update Metadata and Filename Only that can be selected from For songs already matched to MusicBrainz on the first tab.

With the default Update Metadata and Filename Only option SongKong will only try to match songs that have not already been matched to MusicBrainz previously, but it will update existing matches with the latest data or make adjustments based on customer preferences. For example if Update Artwork was disabled when originally matched and it is now enabled SongKong will check for artwork without modifying the releases that the songs have already been matched to. Or if you have changed your file rename mask then the new mask will be applied to these already matched songs in additionally to newly matched songs.

If the option is Rematch then SongKong disregards any matching previously done by SongKong or any other MusicBrainz enabled tagger such as Jaikoz and rematches from scratch.

If the option is Ignore then SongKong ignores any songs already matched to MusicBrainz releases and does not process them any further. Note that songs matched to a MusicBrainz recording only or a Discogs release are not ignored.


When Tracks contain Featured Artists Option

This new option is available on the Fix Songs Format tab.

Sometimes tracks are credited to multiple artists, and with the default Add all contributing artists to the artist field option set all these artists will be used in the artist field for this song. But sometimes this can make it difficult to organize your songs because songs by the same main artist can be split up by your music player, if the artist worked with a number of contributing artists. To make things simpler we can ignore these additional artists by selecting the Only use main artist in the artist field and discard other artists option

Alternatively if you don't want the featured artists information to be completely lost they can be added to the title field instead with the Only use main artist in the artist field and add others to the title field. Note if a song is equally credited to multiple artists then the multiple artists will be added to the artist field whatever option is selected, the options only have an effect when there is a main artist and featured or guest artists. 

Full details of all changes can be found in here

Thursday 12 June 2014

MusicBrainz releases new Virtual machines of Search and Database

For faster matching with SongKong and Jaikoz you can run it against a local copy of the MusicBrainz database, these are provided as virtual machines that can be run on most hardware. MusicBrainz have just released a new version of these virtual machine images that contain the latest data and the latest code including the changes to the database design made in May 2014.

I strongly recommend using the VMWare image rather than the VirtualBox image if you want to take advantage of this, additional instructions for SongKong can be found here and for Jaikoz here

Friday 16 May 2014

Improvements to Match to Recording Only section of the report in SongKong 1.26

SongKong 1.26

Today we release SongKong 1.26 this has a number of refinements to the matching process, testing has shown some very nice improvements to matching accuracy and coverage.

Full details here

Match to Recording Only

 There are also some nice improvements to Match to Recording Only section of the report, and I thought I would use this as an opportunity to explain this section further.

Songs are usually distributed as a release, be it an album, a compilation , an e.p. or a single the songs is part of a larger release. This also applies to digital downloads, although it is easy to purchase tracks they are still distributed as part of a release - even if the release is just a one song digital single.

With SongKong ideally we want to match group of songs to a release, but here are many reason why it might not be possible to do this all of the following problems could prevent a match:
  • The release does not exist in MusicBrainz or Discogs
  • You do not have all the songs of the release and you have Only allow match if all songs in folder match to one album enabled
  • Your songs for that release are distributed over multiple folders and you have  Only allow match if all songs in folder match to one album enabled.
  • The songs metadata is completely incorrect
  • The songs have no metadata and are not known to AcoustId
  • The songs match to multiple recordings by different artists via Acoustid
  • The songs length is incorrect because it has been badly ripped.
If we cannot match the group of songs to a release we can still try to match songs one by one but it much more difficult to be sure of the correct release, especially if the existing track doesnt have any release metadata. So if Only allow match if all songs in folder match to one album or
Only allow match if all songs in folder match to one album are enabled we don't do this.

But even though we cannot identify the album this doesn't prevent SongKong matching the song. SongKong can use fingerprints to match to Acoustid, then use Acoustid to match to a suitable song (or recording in MusicBrainz parlance). When Acoustid matches to multiple recordings we take into account the existing song title (if any). Then we look at how many sources the choices have, Acoustid - Recording pairs that have been matched form multiple sources (i.e users) are more likely to be correct. Finally if we cannot make a safe decision about the name of the song we don't match to the recording. If we do make a match the only fields that are updated are:
  • MusicBrainz Recording Id
  • Song Title
  • Song Artist
and the song is considered unmatched for the purposes of renaming songs so that if some songs in a folder are matched to a recording and some are not they do not get split up.

The Recording Only section of the report shows these matches. Originally SongKong simply listed the songs that were matched per artist in alphabetical order. But this was not very easy to decipher as a SongKong user myself I found I wanted the songs grouped by existing album name, this then helped me pinpoint problem recordings that were not matched often explaining the reason why the group of songs not matched to an album in the first place.

So here it is:

The MusicBrainz Recording shows the song titles that the songs have been matched to, clicking on a title will take you to the MusicBrainz page for that recording.

The Existing Info (Discno, TrackNo, Filename) column shows just that if they exist. Remember Match to Recording Only doesn't add release specific information like Disc No or Track No so these values are only shown if the song already contained them in its metadata. In this screenshot we see that songs did have Track No set but not Disc No set, so only track no and filename is shown.

Songs are grouped by existing release title of it exists, not the folder. So if  two songs from different folders with the same value for artist and release are matched this means they will be listed in the same section. Whereas two songs in the same folder with different values for release would be listed in different sections.

Any songs matched to recording will always have an Artist field because this is updated when matched but they may not have a release field, in this case they are just grouped by the artist name

Both these points can be seen in these screenshot:

Although both songs are in the C:\MusicUnmatched\The Tea Party\Splendor Solis folder they are split into two sections because only one has the release field set as we can see with the help of Jaikoz

Thursday 15 May 2014

MusicBrainz adds Series support

MusicBrainz have just done their bi-yearly schema update release, although MusicBrainz do releases every two weeks throughout the year they can only make changes that modify the database schema (such as adding new tables) in schema update releases.

Highlight of this release is support for Series as suggested by long time Jaikoz user Elliot Chance http://tickets.musicbrainz.org/browse/MBS-2714. A series can link together releases or release groups such as this Bravo - German Pop Hits compilation

and you can also browse all the Series added so far.

This is interesting for SongKong and Jaikoz, I feel I should be making use of this, but not clear how yet - does anyone have any good ideas ? 

Full release details can be found here ,and there are changes in  the corresponding search done by yours truly.

There should be also new MusicBrainz virtual machine released with the latest database within the next few days.

Wednesday 7 May 2014

A new Discogs Image Archive

New Discogs Image Archive with SongKong 1.25

SongKong and Jaikoz both use the Cover Art Archive as their primary resource for artwork but a very important secondary resource has always been the cover art provided by Discogs.
In March 2014 Discogs changed their terms and conditions so that from now any user of  a third party application could access a maximum of 100 images in a 24 hour period, and was required to authenticate their access using OAuth. The reasoning behind this was to prevent websites hot limiting to Discogs images, I can certainly understand that issue but think that giving 3rd party applications access via an application key would have been a more sensible option. Forcing users to explicitly authorize their access was onerous but I went along with it and released SongKong 1.23 with the required authentication.

It then became apparent the 1000 images limit was also per application. So any application, regardless of how many users it has, can only access 1000 images per day. This made it pointless for each customer to individually authenticate their access so I released SongKong 1.24 and this removed the requirement for customer authentication. But we still had a significant problem - a limitation of 1000 images per users was not too bad, but a limitation over the complete customer base of SongKong made use of Discogs cover art unsustainable. And of course the problems are even worse for Jaikoz with its larger customer base.

The solution was to cache the images provided by Discogs so any image only has to be looked up once from Discogs, then additional customers requesting the same image can use the cached image. Of course this requires the cached images to be available from a central server and I considered setting up my own Discogs Image Archive but this takes some effort and some time to build up the size of the archive. Luckily such a service has just been launched courtesy of the One Music Api, this archive doesn't yet contain all the images provided by Discogs but is growing every day and already provides good coverage. 

Today I release SongKong 1.25 with support for the One Music Api Image Endpoint. Within a week I expect to have a new release of Jaikoz with the same support

Saturday 26 April 2014

Sharing filename masks between SongKong and Jaikoz

A longtime customer of Jaikoz and SongKong asked on the forums whether you can share filename masks between SongKong and Jaikoz,well yes you can but with a couple of adjustments.

Both applications use Javascript expressions to rename files, although this powerful syntax takes a few minutes to understand, but there are three important differences.

Two masks versus one

In both applications we have the concept of  a base folder, subfolder and filename which is described in detail here. With SongKong there is a single mask to modify the subfolder and filename in one go, in contrast Jaikoz has one mask for modifying the subfolder and one for modifying the filename.

Field names

Fields names for both applications are the same, except Jaikoz uses trackno to represent a trackno and SongKong uses track.


In Jaikoz Javascript functions needed to be included as part of the rename mask, but in SongKong they can be stored separately and referenced by masks, SongKong also allows rename masks to be named and stored so you can easily switch between different masks.

An Example

SongKong mask

(Note if notempty() function is predefined function)
 + ifnotempty(album,' ')
 + (year.length>0  ? '(' + year + ') ' : '')
 +  (mbreleasecountry.length>0  ? '(' + mbreleasecountry + ') ' : '')
 + (disctotal>1 ? discno + '-' : '')
 + track + ' - '
 + title
 Jaikoz SubFolder mask
 function ifnotempty(value,sep){
     return value.length > 0 ? value + sep : '';

 + ifnotempty(album,' ')
 + (year.length>0  ? '(' + year + ') ' : '')
 +  (mbreleasecountry.length>0  ? '(' + mbreleasecountry + ') ' : '')
Jaikoz Filename Mask
(disctotal>1 ? discno + '-' : '')
 + trackno + ' - '
 + title

Wednesday 23 April 2014

SongKong 1.24 appears - Discogs Authorisation disappears

Discogs Authorisation Disappears

This new release of Songkong removes the short lived requirement to create a Discogs account and authorise SongKong to use that account. However, unfortunately Discogs have recently implemented some rather misleading and draconian rules regarding access to their image archive that doesn't allow us to make full use of it - so this release is just an interim step.

But I have been searching for a better solution and think I have found it, this should be ready within the next month and will provide some serious improvements in cover art

Improved Multi-Disc Matching

As SongKong loads folders of songs for matching it looks out for multi-disc releases that have been stored as one folder per disc, it does some further checks and if the folders pass the checks then SongKong attempts to match the multi-folder set as one release and only resorting to checking each folder individually if a match could not be found.

But before this version the subfolders had to have a particular naming convention, the subfolders either had to start with the word Disc or just be a number such as Disc 01 , disc 2 or 03. Now with SongKong 1.24 other naming conventions such as CD01, Vol 1 or Volume 3 are supported, but this  is still English centric so let me know if you use another naming convention that needs adding.

Its worth noting that if you just Only allow match if all songs in folder were matched enabled then there is still a good chance that a multi disc release is properly matched even if the release was not recognised as a multi-disc release at the matching stage. Each folder can get correctly matched to a disc of the release.

However if you have Only allow match if all songs in album were matched then matching at the subfolder stage only would not work because each subfolder only matches one disc of the release rather than the whole release.

Error Reporting

If SongKong is configured to update iTunes it will now complain and halt processing if it is unable to create a model of the iTunes library. It will also halt processing if it hits memory limits, although in normal circumstances this should never happen. Previously these errors were not correctly reported.

General Matching

A number of improvements have been made to improve the accuracy of release and recording only matches

Full change log is available here

Thursday 17 April 2014

My first Sonos system

Last week I purchased a Sonos Connect to connect Sonos to my separates system and to find out what Sonos requires for the perfect metadata experience for users.

Here are some details about the installation experience and my first (very initial) impressions. Everything about the packaging and product itself is so Apple like I wonder if a former Apple designer designed it for them, but whoever did the design they did a good job.

Now my Hi-Fi is not in the same room as my router and I know at least one Sonos component should be connected directly to your router, but I have used Solwise home plugs in the past to spread my network and I couldn't see how Sonos could differentiate between a direct ethernet connection and an ethernet connection via a Solwise plug. I have router in one room with ethernet connection from router to Solwise Homeplug Av500. Then I have my hifi in next door room with sonos connect connected by ethernet cable to another solwise plug. Both plus are on the same electrical circuit.

I download sonos controller for my PC and the software tells me to hold down the two buttons and release, as soon as I do this the PC software goes to the next stage but after a while it tells me it could not find any Sonos devices connected.

If I repeat the process but turn of the Solwise plug then pressing the two buttons has no effect. So this told me that Sonos software is detecting that I've clicked on the Sonos Connect via my Solwise home connection yet it still isn't happy about something. My first thought was that I needed the bridge so I disconnected the Connect from my hi-fi and connected it directly to the router and it still doesn't work.

I then tried downloading the Sonos Controller for my Mac and this worked, reconnected the connect to hifi and solwise and it still worked, so the problem was actually the PC (and I havent resolved this issue yet)

I tried playing Internet radio through Sonos and it worked perfectly time.
I then tried connecting to my music library on my NAS and it took a while, but once completed that also worked perfectly. When I view my music on my Mac or Phone controller not seeing any issues with metadata so far, but I noticed I have no artist images - something that I will investigate for Songkong and Jaikoz.

As yet I have no have no connection issues at all and have ordered two Sonos Play 1s to test out the Sonos network over a larger area,  the Sonos network is a Mesh network, every single Sonos component acts like a mini router allowing it to send  a signal to any other Sonos component, so fingers crossed that this will work as expected.

My only disappointment so far is that Sonos supports Spotify Premium but not the free Spotify account I have had since the early days of Spotify.

Wednesday 16 April 2014

Getting Discogs Cover Art with SongKong

Discogs Image Authorization

SongKong uses various sources for finding cover art. Its primary source is the cover art provided by MusicBrainz via the Cover Art Archive, but the second most important source is the artwork provided by Discogs. However unfortunately recently Discogs changed the conditions of their API so that it no longer allows access to these images unless you have a Discogs account and authorise SongKong to use that account.

The good news is that Discogs accounts are completely free and straight-forward with no requirement to enter bank card details or sign up for any service so creating a Discogs account if you don't already have one is not such a hardship.The bad news is that Discogs is currently getting overloaded regularly and when this happens access to the API is curtailed, this includes the one-off image authorisation detailed below. So if possible don't try at internet peak times (evening time US timezone) , if it does fail at the first stage just try again.

With SongKong 1.23 released today it is recommended that you create a Discogs account if you do not have one already and then authorise SongKong for the best SongKong results as follows

1.Open your webbrowser and go to discogs.com

2. Login to Discogs or signup for an account if you do not already have one

3. Select File:Discogs Image Authorization within SongKong, and if you are logged into your Discogs account your webrowser  should open a page similar to:

If instead SongKong complains that Image Authorization failed , please try again at a quieter time.

4. Select the Authorise button and it should take you to a page like

5. Go back to SongKong, there should be a user dialog open, enter the code into it as follows:

6. Select OK and the following window should display

7. And that's it, now if SongKong is unable to get cover art from a MusicBrainz release it can probably get one from a linked Discogs release.

Jaikoz customers, the same Discogs image authorization will be added to Jaikoz within two weeks.

SongKong 1.23

In this new release there also many  improvements to matching and to the generated reports, I will explain these in more details in another post but for now all the fixes are listed at


Saturday 5 April 2014

SongKong 1.22 with new matching improvements

Today we release a new version of SongKong as well as a number of bug fixes it includes some important improvements.

Match song to recording only

In previous versions of SongKong we try to matching groupings (usually folders) of songs to a MusicBrainz release (usually an album) and optionally a Discogs release. But if we are unable to match all songs in the grouping to a release then as a customer you only have the option of not matching the songs at all or matching song by song and possibly matching to the incorrect release.

But in MusicBrainz songs are known as recordings and the same recording can be found on multiple releases whereby each release/recording combination is known as a track. If a songs Acoustid matches to just one MusicBrainz recording then we have can have almost absolute certainty that we have matched the correct song.

So in this new release if the match grouping to folder stages fails to match but we have acoustids for the songs that can be matched to individual MusicBrainz recordings then we can update the song artist and title without making only any assumptions about the release they belong to. This matching occurs regardless of any other options enabled or disabled.

This is incredibly useful for songs that have no metadata at all, or songs with incorrect titles, even though the albums are not known the songs are now correctly identified. Because the matching is done at the match to MusicBrainz stage the new information can be used to help match the songs to a Discogs release instead, so we are now making uses of Acoustids with Discogs even though Discogs doesn't  directly support Acoustid !

These matches have their own section in the Fix Songs report. Because the matches are only partial they are included in the MusicBrainz match count but the songs are not moved to the matched folder if a Matched folder is enabled, and are not renamed if Rename filename from Metadata is enabled.

Only allow match if all songs in album were matched

If the Only allow match if all songs in one folder match to one album is enabled then all songs in the grouping have to be matched to one folder. But to account for you having incomplete albums the album they are matched to can contain more songs than are matched.

But if you have complete albums you can get more accurate matching by enabling the new  Only allow match if all songs in album were matched option as well then all the songs in the folder must match to same album and all songs on the album must be matched, so if there are 10 songs in folder it can only match a 10 song album

If Only allow match if all songs in one folder match to one album is enabled and Only allow match if all songs in album were matched is not enabled then any album matched must be completely matched but this doesn't have to be on a folder by folder basis, so for example if you have a folder containing 10 songs that failed to match any album but metadata in the allowed grouping of the songs into two groupings of 5 each, and one of those grouping could be matched to a 5 track release that would be okay.

Undo Changes can now select the original location of files to revert

By default Undo Changes work on the current location of files and folders that you want to revert the changes for, but now you can specify SongKong looks for songs that were originally in a location that they have since been moved from.  This can be very useful if you are looking to revert changes to files that were originally in one folder but have now been moved to multiple folders.

Other fixes and Improvements

The full list can of changes can be found at here


Monday 31 March 2014

How do iTunes options affect SongKong ?

If you are an iTunes user SongKong can automatically update iTunes with any changes it makes -but there are a couple of options in iTunes that can subtlely affect the interaction. I recommend they are disabled, not only do they cause problems for SongKong but they increase disk space usage and they reduce interoperability with many other applications as well.

Both options can be found in the iTunes preferences advanced tab, and they are enabled by default

Keep iTunes Media Folder Organized
Copy files to  iTunes Media Folder when adding to library

1. Both Options Off

This is the best option, then iTunes makes no modifications to your files.

2. Keep iTunes Media Folder Organized enabled only

Just enabling this option has no effect if you have nothing in your iTunes media folder.

3. Copy files to  iTunes Media Folder when adding to library enabled only

If the files do not exist in iTunes then if they are matched by SongKong then when they are saved copies are added to iTunes. But note if you make more metadata changes to these files then that will have no effect on the ones in iTunes because now iTunes is interested in the versions it has added. So from now on you should be loading the iTunes media library rather than the original file location.

If you rename these files then they will be seen as new files and added again to iTunes, this could happen if you changed the rename mask or if the first time SongKong only added fingerprints, and second time actually found a match.    

4. Both Options Enabled

Same problems as above, but additionally if you do load the iTunes Media folder into SongKong and match the songs then iTunes will move and rename the files according the latest metadata. This means that the songs may no longer be where SongKong expects them to be so that trying to use Undo Changes and selecting the last location will fail, you will have to select the original location.

If you still want your songs copied to iTunes media folder and you want songs renamed according to their metadata using the iTunes format you can let SongKong rename the files instead of iTunes by selecting a suitable format in the File naming tab


Its always best to be in control, but if you want to continues using these iTunes options at least you aware of the potential problems. If you use create multiple iTunes libraries for different scenerios note that the two options will always be enabled by default  for every new library

These problems are also relevant to Jaikoz users.

Thursday 27 March 2014

Why do we still call digital music taggers Mp3 Tag Editors ?

Browsing the web this morning I was surprised that most articles about tagging music still refer to software such as Jaikoz or SongKong as a type of MP3 Tag Editor or MP3 Tagger. Whilst MP3 is probably still the most common form of digital music shouldn't we be talking about Digital Music Taggers or simply Music Taggers these days. I hope mp3 doesn't become ingrained as the defacto word for digital like Hoover became for Vacuam Cleaner

Certainly mp3 is not an acceptable format when purchasing digital music these days, for example iTunes uses mp4. And with the availability of cheap disk space ripping CD's to lossless formats like Flac or Apple Lossless is the most sensible option.

Another annoyance about MP3 is capitalization, after all these years I'm very unsure whether to refer to it as MP3 or Mp3

I was also surprised that the wikipedia entry for tag editor   has one page for two completely different type of taggers, music taggers and image taggers.

Actually the word Tag was the name given to the metadata format used by Mp3s (ID3) to describe the container for storing metadata, most formats don't actually use this terminology and it would be better to say Music Metadata Editor rather than Music Tag Editor. Many applications have got confused about the word Tag and use it to refer to parts of the metadata within the tag like artist or genre, in fact Ive been guilty of this myself in the past.

Having said that Tagger is a a nice shortening of Tag Editor, so my preferred choice is still Music Tagger, anybody have a better alternative ?

Wednesday 26 March 2014

Why does the Artist column in Jaikoz Column Browser not match the values of my artists ?

Today a customer asked why even though they had modified the artist field of some of their songs that Jaikoz still shows the old artists names in the column browser, even after removing the sort artist and sort album artist fields.

The culprit is the artists field, Jaikoz uses the artists field in preference to the artist field for the Column Browser if the artists field is not empty. The artists field is only used by Jaikoz and SongKong currently but other applications are looking at incorporating it. It only differs when a song is attributed to multiple artists. In this case each artist is added separately to the artists field allowing you to search for a song by just the first (main artist) involved in the song.

i.e 'Jackson' by 'Johnny Cash & June Carter'

ARTIST:JohnnyCash & June Carter
ARTISTS[0]:Johnny Cash
ARTISTS[1]:June Carter

So the column browser would have one entry in the artist column containing 'Johnny Cash', but if you delete the artists field you'll then have one entry showing the artists concatenated together as 'Johnny Cash & June Carter' so it is then harder to list all the songs involving Johnny Cash

Now actually when the artists field is intact we want June Carter to be listed as well in the Column Browser but that is not yet done, see http://jthink.net:8081/browse/JAIKOZ-783

Monday 17 March 2014

Identifying unknown songs in iTunes using SongKong

Just posted a new video showing how to fix an album in iTunes with no metadata using SongKong, I have purposely kept it nice and simple

As you can see:
  • The original files contain no metadata, and no useful information in the file path
  • The songs can be dragged directly from iTunes to SongKong
  • Once the songs have been fixed and saved the changes are reflected in iTunes immediately

Saturday 15 March 2014

Finding split up tracks from compilation albums revisited

The Problem Revisited

A Mac customer wanted to use Jaikoz to only fix some compilation albums that had been broken up into different folders by another application, so typically each song was the only file within its own folder.
A couple of weeks ago I posted a solution to this but since then I have made a couple of improvements:

  • The original script would only find files if there was one file in total in the folder, so if there was one music file plus an image file it wouldn't be listed, it has now been fixed to only count music files.
  • Folders containing more than one music file may need fixing as well so it  has now been extended to allow you to search for x music files in a folder where x is another parameter

Here is the new script ( but no need to copy it there a version available to download)


shopt -s nullglob

find "${1:-.}" -type d | while read dir; do
        files=( "${dir}"/*.{mp4,mp3,ogg,flac,wma,m4a} )
        (( ${#files[@]} == ${2:-1} )) && echo "${files[*]}"
This checks all the folders under the provided one looking for folders containing only the number of music files requested in the folder and list the songs that Jaikoz can process.

Then if we redirect the output to a file, and we name it as a unicode playlist we can load the list of files straight into Jaikoz

And this solution should work for Linux as well

The Solution

Finding the list of orphaned files

Save this file to your Documents folder 
Open Applications/Terminal,
Within Terminal enter

        chmod 777 Documents/findodd2.sh  

and press <ENTER> then

   ./Documents/findodd2.sh MusicFolder NumberOfFiles > playlist.m3u8

and press again.

where MusicFolder is the full path of the root of your music directory and NumberOfFiles is how many music files the folder must contain.

i.e. I might enter:

        ./Documents/findodd2.sh /Users/paul/Music 2 > playlist.m3u8

to find folders in /Users/paul/Music containing exactly 2 music files
this may take a few minutes depending on how much music you have

Then start Jaikoz and drag playlist.m3u8 onto Jaikoz to load the files

Matching files to releases

Ensure View:Show Column Browser is enabled , and use it or the search so that at any one time you only have the songs from one of the album you want to reconstruct listed.

If you know the release exists in MusicBrainz use Action:Match to Release:Match Songs to Specified MusicBrainz Release and then move onto the next release.

Or if you know the release is in Discogs use Action:Match to Release:Match Songs to Specified Discogs Release and then move onto the next release.

If it doesn't exist in either database  you can still use Jaikoz to manually fix the metadata

Then use Action:File and Folder Correct:Correct Filename from Metadata and  Correct SubFolder from Metadata to rename the files and folders to bring the files back together.

Now check the results and then Save Changes

Friday 14 March 2014

Opening Playlists with SongKong

Today we release a new version of SongKong with a number of fixes and improvements, the most important detailed below.


In addition to files and folders SongKong can now open M3U playlists, just drag the playlist onto SongKong and then all the files and folders within the playlist can be fixed or searched for duplicates.

You can create M3U playlists from your iTunes playlists as follows:

1. Select the desired playlist then Control-click / Right-click the playlist and select the Export... option

2. Select Save as type M3U files (.m3u8), selecting this option instead of M3U files (.m3u) ensures that songs in any language can be correctly stored on the playlist, this is particularly important for non European languages such as Arabic, Chinese or Japanese.

3. This newly created playlist file can be dragged and dropped onto SongKong.

But don't forget that although you cannot drag native iTunes playlists directly into SongKong you can drag the songs themselves directly from iTunes.

Fix Songs Cancelled 

There was an issue in the last couple of versions that could cause SongKong to finish prematurely before it had tried to match all songs, the report would say it had been cancelled even though it was not cancelled. This issue could occur when potentially duplicate files were found in a folder when matching and is now resolved in this version.

Report Creation not Finishing

SongKong fixes songs in a pipeline and is very careful not too use very much memory during this process however many songs you are fixing. However at the end of the fixing process a report is created and this does require more memory when more songs are fixed, in extreme cases this could cause SongKong to fail during report creation. Memory usage has now been substantially improved during report creation to prevent this from happening.

Other Improvements

The  full list of improvements can be found here

Friday 7 March 2014

Jaikoz versus SongKong

A few times I've been asked me the difference between SongKong and Jaikoz, a good question which I'll answer in this post. I've also been asked which is better,but there is no answer to this question they are just different.

Jaikoz Summary

Jaikoz is an established music tagger encompassing both automated tagging using online databases and manual tagging, development started in 2006. Jaikoz has automated matching to MusicBrainz and Discogs, but also has semi-automatic tagging and matching an album to a specific Musicbrainz or Discogs release. Jaikoz also allows new releases and other information to be added to MusicBrainz.

Jaikoz was designed to be very flexible so that all fields can be easily and quickly modified in comparison with other tag editors and players such as iTunes, metadata can be exported to or imported from a spreadsheet

Jaikoz also supports finding and deleting duplicates songs.

Over the years many new features have been added to Jaikoz to deal with almost any situation.

One important principle of Jaikoz was that it would only modify your files  when you actively choose to do so. Within Jaikoz you load your files into it, modify your songs then save your songs.

SongKong Summary 

SongKong was started in 2012, the main objective was to provide a simpler solution than Jaikoz that would work for the majority of people. With advances in automatic tagging I decided to only provide automated tagging and a simpler more streamlined interface. SongKong starts fixing songs as soon as you start loading them without waiting for all songs to be loaded, it works in a pipeline.

SongKong actually saves songs as they are matched, this has the advantage that there is no delay at the end saving all songs at once, and if anything goes wrong no matches are lost. But to ensure the customer retains control SongKong keeps a full audit of everything modified and allows you to Undo any Changes even after restarting your computer.

SongKong takes automated tagging further as it can continuously monitor your music folder and correct any new files added to the folder.

SongKong also supports finding and deleting duplicates songs.

SongKong also provides a command line interface.


The automatic matching and duplicate deletion provided by both is the same except for minor differences, both support the same audio file formats and both integrate with iTunes. Development continues for both applications, and typically there are new releases every couple of months.


Wednesday 5 March 2014

Secret genre option in SongKong

Genre support in SongKong is quite simple at the moment, it does not currently have the same genre options as Jaikoz because I'm looking for something simpler but more effective then we have in Jaikoz.

Currently if you start Fix Songs then select the Update Genres option on the first tab it will update the genre from the Discogs Style field but only if the genre field in your song is empty.

However there is an option you can use that is just missing from the UI to overwrite the genre at all times as follows:

Simply add the line


to your user copy of songkong.properties

this can be found in the following places depending on OS

From Finder, hold down Option Button and select Go menu
Select Library from the list
Go to Preferences : SongKong

Windows 7/8

Go to C:\Users\username\AppData\Roaming\SongKong

Go to $HOME/.songkong

Any suggestions for how you would like genre support implemented, just let me know.

Why is SongKong not renaming my music ?

I had three different customers reporting that SongKong is not renaming their files for three completely different reasons so I thought it would be worth sharing this with everyone.

Rename Files From Metadata Not Enabled

By default SongKong does not rename files, in many ways it would make more sense for renaming to be the default so they reflect the new metadata added to them - however I have had too many occurrences of Jaikoz customers wondering where their files have gone to think this is a good idea.

The problem in this case was that although the customer had gone to the File naming tab and checked their rename and compilation masks

They had forgotten to actually check the Rename files based on metadata when matched on the Basic tab, this is required to actually do the rename.

iTunes Organizing Your Music Files

If you have configured SongKong to inform of iTunes of modifications then iTunes will can be kept up to date with metadata modifications, new songs added to iTunes and songs deleted. 

However within iTunes if you have Preferences:Advanced:Keep iTunes Media Folder Organized enabled whenever iTunes is informed of a change to a song it will rename the song based on the new metadata. This is okay if you are not using SongKong to rename your songs but if you are using SongKong to rename (or move) songs you should ensure this iTunes option is not enabled. 

Because SongKongs rename mechanism is much more advanced then iTunes and because SongKong logs the changes it makes I recommend not allowing iTunes to organize your media.

Songs not Renamed because not Matched

The final reason is because of the way SongKong works, when SongKong gets to the save stage it will only rename the file if it has been matched to MusicBrainz or Discogs, This is done by checking the MB_RECORDING_ID and DISCOGS_RELEASE_URL fields so even if the files were not matched during this run previously matched files can be renamed.

It wouldn't make much sense to rename songs that contained poor or non-existent metadata because their current filename may be the only means of identifying them. But you may have songs that SongKong has not matched to MusicBrainz or Discogs but other than that omission contain correct metadata and could be safetly renamed. I'm looking at adding an extra option ion SongKong for this scenario

Tuesday 4 March 2014

New Jaikoz release solves the iTunes update problem

A new release of Jaikoz is now available, the full list of changes can be found here .

Updating iTunes on OSX

This release fixes an important problem with updating iTunes from OSX on some systems.
Jaikoz uses Applescript to inform iTunes of changes, however because of an oversight later versions of the library Jaikoz uses no longer have the necessary calls to talk to the Applescript library. However if you have earlier versions of the library (as all my test machines do) then Jaikoz can talk to iTunes without problems. Until last week  I wasn't aware of the seriousness of this issue, I thought the problem was only on a few isolated installations. If previously you have have been unable to update iTunes from Jaikoz on OSX this release should solve that issue . We have also sped up the time it takes to create the internal model Jaikoz has of iTunes.

Changes to Release Type

Also the Release Type is now a multiple value field. Previously MusicBrainz only allowed a release to be one type, but now multiple types are supported so a release can be both an album and live or a single and a soundtrack, or even an album, a soundtrack and live.


Usually the first type indicates the length of the release such as album, single or e.p, in MusicBrainz this is known as the primary type. However because it is generally more useful to know if a release is a soundtrack then an album (which can usually be inferred because most soundtracks are albums) if a release has a secondary type of soundtrack we make this the first type added to the song.


Opening Playlists

There was a regression on OSX that meant that Open Playlist and Add Playlist no longer work, actually dragging and dropping a playlist continued to work so it was not noticed for a while but this is now fixed


Sometimes unusual versions of apostrophes are used when release are added to MusicBrainz, usually by mistake. This causes a problem for Jaikoz when trying to capitalise titles or save files containing these characters so now Jaikoz automatically changes them to the regular apostrophe.

Code Signing

For some time the OSX version of Jaikoz has been code signed but not the Windows version, with this release we put that right. This means you can be sure that the installer you download has been created by JThink, and has not been modified by anyone else.

Friday 28 February 2014

A solution for finding split up tracks from compilation albums

The Problem

A Mac customer wanted to use Jaikoz to only fix some compilation albums that had been broken up into different folders by another application, so typically each song was the only file within its own folder.

Now Jaikoz can put albums back together again, but the difficulty is finding all those orphaned files in the first place, the following script can help:

find "$1" -type d -exec sh -c '[[ $(find "$0" -mindepth 1 | wc -l) -eq 1 ]] && [[ $(find "$0" -mindepth 1 -type d | wc -l) -eq 0 ]]  && find "$0"' {} \; |egrep ".mp4|.mp3|.ogg|.flac|.wma|.m4a"

This checks all the folders under the provided one looking for folders containing only one file, and then filters out any non music files to leave you with a list that Jaikoz can process.

Then if we redirect the output to a file, and we name it as a unicode playlist we can load the list of files straight into Jaikoz

The Solution

Finding the list of orphaned files

Save this file to your Documents folder 
Open Applications/Terminal,
Within Terminal enter

        chmod 777 Documents/findodd.sh  

and press <ENTER> then

   ./Documents/findodd.sh MusicFolder > playlist.m3u8

and press again.

where MusicFolder is the full path of the root of your music directory

i.e. I might enter:
        ./Documents/findodd.sh /Users/paul/Music > playlist.m3u8
this may take a few minutes depending on how much music you have
Start Jaikoz
Drag playlist.m3u8 onto Jaikoz to load the files

Matching files to releases

Ensure View:Show Column Browser is enabled , and use it or the search so that at any one time you only have the songs from one of the album you want to reconstruct listed.

If you know the release exists in MusicBrainz use Action:Match to Release:Match Songs to Specified MusicBrainz Release and then move onto the next release.

Or if you know the release is in Discogs use Action:Match to Release:Match Songs to Specified Discogs Release and then move onto the next release.

If it doesn't exist in either database  you can still use Jaikoz to manually fix the metadata

Then use Action:File and Folder Correct:Correct Filename from Metadata and  Correct SubFolder from Metadata to rename the files and folders to bring the files back together.

Now check the results and then Save Changes

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