Friday, 19 September 2014

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

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

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

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.