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

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

Conclusion

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)

#!/bin/bash

shopt -s nullglob

find "${1:-.}" -type d | while read dir; do
        files=( "${dir}"/*.{mp4,mp3,ogg,flac,wma,m4a} )
        IFS=$'\n'
        (( ${#files[@]} == ${2:-1} )) && echo "${files[*]}"
done
 
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.

Playlists

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.

Similarities

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

discogsGenreOverwriteOption=0

to your user copy of songkong.properties

this can be found in the following places depending on OS

OSX
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

Linux
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.

Soundtracks 

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

Apostrophes

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







Thursday, 27 February 2014

Solving the problem of updating iTunes from SongKong on OSX

Hots on the heels of SongKong 1.19 we have SongKong 1.20 because I have just discovered an important bug in a code library SongKong uses on OSX for talking to iTunes.

SongKong uses Applescript to inform iTunes of changes, however because of an oversight later versions of the library SongKong 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 SongKong can talk to iTunes without problems..

Until today 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 SongKong on OSX this release should solve that issue .

Linux and Windows users there is no real need to update to this release as it only contains the OSX Applescript/iTunes fix and some minor modifications to debugging output

Wednesday, 26 February 2014

Organizing music for Plex

I have been experimenting with Plex a media player system consisting of a player application with a 10-foot user interface and an associated media server, its available for all major operating systems.
I have a Mac mini connected to my television and so interestingly this is a very viable alternative to using iTunes on your Mac as your home media centre.

Plex supports all kinds of media but in this blog we are interested in music, and this is where SongKong can help.

Getting your metadata in tip-top condition before uploading into Plex is essential for the best music listening experience so fixing your songs metadata with SongKong is a great start but Plex is rather fussy about how your files are organized so if possible you should ensure you rename your files using the mask now available in SongKong 1.19.

Select Fix Songs, ensure that Rename files based on metadata when matched is checked and that Save Changes to iTunes is unchecked


Then select the File Naming tab and choose the Plex mask for both the Rename mask and the Compilation rename mask, its easy to find it is the last one in the list.


Then select Start and your songs shall have their metadata fixed, and folders and files renamed to best suit Plex.

Sunday, 23 February 2014

Shazam for your computer

Many people use Shazam to identify songs they here in their local cafe or walking down the street, and its a great app for discovering new music, but I have also seen many people asking for Shazam for their desktop computer, now why would you want that you can hardly carry it around with you ?

Identifying Music You Already Have

Users understand that Shazam can be used to identify music on their iPhone and want a solution for all those badly labelled tracks on their computer but this is not what Shazam is intended for. Shazam is now available for your Mac and Windows 8, but Shazam requires you to physically play a part of each song in order to identify it, so is not a very good solution if you have more than a handful of songs to identify.

A Free alternative

Shazam actually uses acoustic fingerprinting to identify songs but forces you to play them via a microphone, SongKong also uses audio fingerprinting but this is done automatically without you having to play the song, fingerprinting a song only takes a few seconds.

SongKong can be used to identify as many songs as you like for free, simply look in the Song Changes section of the report to see what the song was matched to.

To keep things simple the screenshot shows the result of just matching a single previously unknown song but SongKong can be used safely on thousands of songs.


SongKong only requires purchase if you want it to add the matching song information to the file itself.

Rinse My Music Replacement

A few weeks ago I blogged about TuneUp Media going under and my suspicion that it was related to Gracenote being sold. I have not been able to confirm this but guess what, another Mac tagger Rinse My Music powered by Gracenote has gone under as well, coincidence ?

In this case the company itself has not gone under but Rinse My Music is no longer available and no explanation has yet been forthcoming. Existing customers will find the product ceases to work in a couple of months

So I would like to try to help Rinse My Music customers in the same way as TuneUp Media customers by offering SongKong for a 30% discount until the end of March. Simply make the full price purchase in the normal way then email paultaylor@jthink.net with some proof of your Rinse My music product code and I'll refund 30% of the price.

SongKong does everything that Rinse My Music does and more. But it doesn't rely on closed databases like Gracenote instead it uses MusicBrainz and Discogs. I'm an Indie developer so when you deal with Jthink you are dealing with me direct not having to go through layers of anonymous support.
 
There is a free trial available so you can comprehensively try before you buy.

Fixing files direct from iTunes

Originally SongKong was very much folder focused, you select a folder and SongKong would fix all the files and sub-folders of that folder. Customers generally went to two extremes, either picking their top level music folder and fixing everything or just picking an album folder and fixing one album at a time.

Now both of these methods are great but we have added a bit more flexibility

Firstly, you can now select multiple folders, if you have five folders under an artist folder now you can just fix two, three or four of the folders in one go instead of matching one at a time or the whole lot. And if the folders are located in different locations SongKong works out the basefolder/sub folder split for each combination as this screenshot shows



Secondly, instead of just fixing complete folders you can now fix files within folders. There are at least three  important uses of this

Fixing songs direct from iTunes

iTunes does not show folders only files, this was a problem but now files can be dragged directly from iTunes into SongKong.

Fixing results of a search

Now you can do a search in Finder or Windows Explorer and drag the list of matching files direct into SongKong.

Fixing Songs direct from Windows Explorer

Now all supported music formats can be fixed by just right clicking in Windows and selecting Fix Song in SongKong from the context menu

Thursday, 6 February 2014

TuneUp Media ceases trading and Gracenote is sold by Sony

Without any notice TuneUp Media has ceased trading leaving their customers high and dry. Knowing that Tuneup had received venture capital investment my first thought was that the investors had pulled the plug on them because they were not making enough profit. However, it was announced a couple of days later that Gracenote had been sold to Tribune Media Services, more details here. Tuneup used the Gracenote service for its song matching so I suspect that under new ownership Gracenote has decided to withdraw that service.

I would like to try to help Tune Up Media customers by offering SongKong for a 30% discount until the end of March (previously February but now extended to March). Simply make the full price purchase in the normal way then email paultaylor@jthink.net with some proof of your Tuneup media license and I'll refund 30% of the price. There is a free trial available so you can comprehensively try before you buy.

Now I would like to reassure you that the problem that have you have encountered with Tuneup Media will not occur with Jthink software because of the following reasons:

1. Jthink is wholly owned by myself Paul Taylor, so there is no pressure exterted on me by external investors. My priority is to provide high quality, useful software at a fair price. JThink software is available with free upgrades and support, so you only pay once. Because I am the designer and developer there are no messy compromises in the design and I am able to be highly responsive to the specific needs of customers, and adapt products to a customers specific requirements.

Jthink has been in business since 2006, my comprehensive tagger Jaikoz is still actively developed and improved but I think the simplicity of SongKong is a better solution for Tuneup customers.

2. SongKong uses the open source MusicBrainz service rather than the closed Gracenote service. The complete database and web service is freely available and I have my own complete copy. Although I currently use the web service hosted by MusicBrainz I could provide my own Musicbrainz server if necessary so even if MusicBrainz was to die a death I could continue the service. MusicBrainz has its own protections in place to make it highly unlikely this could ever happen.





Wednesday, 5 February 2014

Some more important requirements of an automatic music tag editor

Some more important requirements of a rules based music tag editor

Since this post I realised I'd missed some other important requirements for a fully automatic music tagger

1. There needs to be an audit trail
If you are trusting some of the most important data on your computer then you really want to know what it is getting up to.
 
2. There needs to be a way to roll back changes
However good automated matching is there should always be the possibility to undo the changes
it makes.

3. There needs to be a way to remove duplicates songs
As your song collection gets organised you'll probably find you have duplicates, and finding and removing duplicates is something that automated taggers can potentially be very good at.

4. A way of continuously monitoring and modifying your music collection.
Once you are happy with your automated setup wouldn't it be nice to not even have to think about it anymore.

and this is how SongKong meets these requirements

There needs to be an audit trail

SongKong creates a comprehensive report with details of exactly what has been matched to the Musicbrainz and Discogs databases and also exactly what changes have been made to your files.

There needs to be a way to roll back changes

Every time SongKong makes changes to a file the changes are stored in a database, and because it is in a database those changes are not lost when you close SongKong or restart your computer. If at a later date you decide that you do not like the changes that SongKong has made you can use Undo Changes to change the files back to how they were before changes made by SongKong. This undo facility works even if the files have been moved or renamed.
 
There needs to be a way to remove duplicates songs

SongKong lets you find duplicates, and when a duplicate is found decide the criteria for which if the duplicates to be deleted. But what is a duplicate, luckily because SongKong stores ids when matching songs it can accurately determine when a song really is a duplicate. SongKong lets you choose any combination of Acoustic Id, Song Id and Album Id to let you decide what is a duplicate. For example if the same song appears on two different albums  then you may consider these as different songs or you may consider them the same song.

A way of continuously monitoring and modifying your music collection 

Once you have SongKong configured to your liking a good way for working with new music is simply to setup a new folder that you dump new music into and have SongKong detect this and do its thing, this is easy done using the Watch Folder option.


Sunday, 2 February 2014

Rules Based Music Tagging

With conventional music tagging there is lots of manual editing or semi-automatic tagging but SongKong is a rules based tagger. The basic idea is that rules define how you want your music collection to be organized, then the rules can be applied to your whole music collection without any manual editing required giving a totally consistent music collection with the minimum effort on your part.  You can change the rules and then reapply to the whole collection to maintain a consistent music collection.

There are three main aspects to incorporating rules based tagging, lets summarize the perfect system:

1. It would be possible to correctly identify every file in your music
2. Once a song is identified the database it has been matched to would contain every desired attribute of the song that you are interested.
3. It would be possible to define rules to extract and apply the data in any way required.

And this is SongKongs implementation:

1. SongKong generates Acoustic fingerprints for each song and this can be looked up in the Acoustid database to identify the song, working in a similar way to Shazam. Acoustid currently contains fingerprints for 16 million songs allowing the majority of your songs to be identified, but Acoustid  can only identify the song not necessarily the album. However by combining this with comparing existing meta-data in your songs we can match to the album as well in the MusicBrainz database. MusicBrainz provides high quality detailed data onmore than 1 million albums.

You can influence the importance of metadata such as by specifying a preference of matching albums form certain countries of a preferred format such as CD or Vinyl.
 
So MusicBrainz/Acoustid provides good coverage for most music collections. But we also use the Discogs database as an alternative source.

Even so, we cannot guarantee 100% matching, but testing shows that in the majority of cases approximately 90% of a collection can be matched to MusicBrainz or Discogs.

It has to be said both of these databases do have better coverage for Pop/Rock/Electronic western music than Classical and World Music. But there are many projects ongoing to fill these gaps, for example the Music Technology Group at the Universistat Pompea Fabra is working with MusicBrainz to add Indian Raag Music.

The good news is that MusicBrainz open approach is fast becoming the de-facto standard database of music information.

2.  Some Music databases contain only the most basic information such as artist, album, title and year of release. But the MusicBrainz database consists of an incredibly rich semantic model, and allows new relationships to be defined between entities.

When SongKong matches to a song in MusicBrainz it is guaranteed to find at least 19 fields (such as artist, album ecetera) and often an additional 35 fields. This includes high quality artwork, usually at a resolution of at least 600 x 600 pixels.

These fields also includes some MusicBrainz Ids, this means that  your songs are compatible with other MusicBrainz enabled applications. It also means you can always look up the original source of the data at any time in the future.

3. SongKong is intended to be easy to use, but there is no one right way to organize your data. Everybody has different requirements based on their personal preferences and how and where they are going to play their music.

Here are a few scenarios handled by SongKong:

You are a DJ only interested in individual songs and has no interest in the album information. SongKong lets you specify exactly how files are named and stored, you can use any piece of metadata for deriving your filename ,and can use powerful Javascript expressions to manipulate the names.

Your music is already stored in iTunes. SongKong can work with iTunes automatically, updating the information in iTunes for songs that are already under iTunes control and adding songs that are not iTunes control to iTunes. 

You like to process songs in a pipeline moving them from unmatched to matched location. SongKong allows you to move files as they are matched to a new location, it also allows files that it failed to match to moved as well.

I hope this post helps you understand the basics of rule based tagging. Jaikoz also incorporates rule  based tagging , but also provides manual editing and semi-automated tagging.
 



Friday, 31 January 2014

Zap App Nap

Last night I ran SongKong overnight on a large collection of songs on my MacbookPro and I was surprised to find it hadn't finished, in fact it had got less through less than 10% of the songs !

Investigation of the logs files showed that SongKong had stopped doing anything 15 minutes after leaving it, and only restarted when i touch the keyboard in the morning.

Now in Preferences:Energy Saver I have the Mac configured to power off the screen after 15 minutes yet this shouldn't preventing processing, and it certainly used to work.

Turns out the problem is a new feature in OSX Mavericks called App Nap. Intending to save power it can slow down or halt applications it doesnt think are being actively used, and this seems to be the case once the Mac has gone into screen saver mode.

Thankfully it is easy enough to disable AppNap for any application.

Simply use the Get Info window for a particular application. Locate the application for which you’d like to prevent the App Nap feature from monitoring, right-click (Command-click) on its icon, and select “Get Info.” You can also highlight the app in Finder and press Command-I. The Get Info window will appear and you’ll notice a new option in the General section: “Prevent App Nap.” Check this box and your selected app will run at full power in the background.

Unfortunately this setting doesn't seem to be preserved when you reboot your Mac.

In the next version of SongKong and Jaikoz I expect to have a permanent solution.

Thursday, 30 January 2014

The Components of the Filename

There is sometimes some confusion about how SongKong views filenames so I'm going to try and explain with an example. The starting point of SongKong is to select a folder to process - we shall call this the Root Folder. Then SongKong tries to guess what part of the folder path contains metadata such as Artist name or Album name and which part does not contain metadata. It then splits the folder path into Base Folder and Sub Folder with the Sub Folder containing the part matching the metadata and the Base Folder not.

Then as files within the root folder are loaded into SongKong they will all have the same Root Folder. They will all have the same starting Sub Folder but it will have any additional subfolders appended to it. The last part of the path is termed the Filename.

The root/sub folder divide is important because if your songs are renamed from metadata only the sub folder part is renamed from your metadata in contrast if your songs are moved only the root folder is changed.

Now an example:

Root Folder:/Music/Blur
Base Folder:/Music
Sub Folder   :Blur

Files within /Music/Blur such as

/Music/Blur/ParkLife/Girl & Boys.mp3

would be split as:


Base Folder:/Music
Sub Folder  :Blur/ParkLife
Filename      :Girl & Boys.mp3

Hope that clarifies things.

Moving Matched and Unmatched songs in SongKong in 1.17

As every song goes through the SongKongs pipeline the last stage is always the Save Song stage. At this point SongKong looks to see if the song has been matched to Musicbrainz or Discogs and if it has and the Rename files based on Metadata match is enabled then the Filename including the Sub Folder portion is then renamed according to the metadata and the mask, but if not matched it is not renamed.

Additionally you can move matched files to a new folder so instead of being rooted at the existing Base folder they are moved to the Move Folder if set on the File Moving tab.  Unlike previous versions of SongKong files can be moved, even if the Rename files based on Metadata match option is not enabled.

To reiterate the Move Folder changes the Base Folder, whereas Rename Files changes the SubFolder and Filename.
 
Using a Move Folder can be a very useful way of working when sorting out a large collection of music, a common way of managing your songs is to move songs from an unsorted folder to a fixed folder as they are identified.

New in SongKong 1.17 is the Move Unmatched Folder option allowing you to move files that are not matched. This is useful because it allows you to differentiate between a song that SongKong has tried to match and failed to match, and a song that SongKong has not yet attempted to match. It is especially useful when processing a huge collection that you might decide to fix in stages.

Although of course SongKong imposes no limits on how many songs you can match !

Saturday, 23 November 2013

From Music Players to Automated Tagging

A new version of SongKong has been released today with improvements in all areas, and I thought it  would be worth giving a historical background of music tagging and its development as I see it.

First we had the Musicplayer just for playing CD's on your computer. Then as MP3 became popular and users started ripping their CD's as files on their computer music players such as Winamp became popular. Originally no meta data could be stored in MP3s at all but it quickly became apparent that as users could store files on their computer they need to store information about the files, and just using the file name was not sufficient.

So ID3v11 was added, but this was very limiting and so a new system ID3v2 was developed that was much more powerful. Music playing software added functionality to allow this information to be added but music players tend to work one file at a time, and this wasn't a very efficient way to add meta data, new software was required the Tagger !

I don't know what the first tagger was but there were plenty of mp3 taggers with very similar names that worked in a very similar way, they allow you to modify multiple fields and were just that bit more efficient than stand alone Music players.

Around this time the iPod and iTunes was born, this massively increased the amount of digital music people were storing on their computers.

We also had new formats such as wma, ogg vorbis and mp4, so now we needed taggers that could edit multiple formats in a way that hid the differences.

As people got serious about listening to digitised music lossless formats  became more important such as Apple Lossless and Flac.

As peoples collections got larger modifying all their metadata by hand became unsustainable, but help was on hand in the guise of online Music databases. The first one was freecdb that could tag your music if you had the original CD by looking up a digital fingerprint but this wasn't much good for songs that you already had on your computer.

But then new databases such as Discogs and MusicBrainz were created and these allowed Automated Taggers that could lookup information for songs and get meta data for those songs without needing the original CD if they just had some meta data.

Then with audio fingerprinting it was possible to lookup songs without any meta data at all as long as the song is already in the database.

Most taggers were cautious in making full use of this and provided options from online databases but user made the final decision about the best match but some such as Jaikoz made the choice for the user, although the user could adjust the criteria used to pick the best match.

But Jaikoz still provides manual tagging together with automated tagging, it provides the user with the tools to do what they want, but with so much choice it can be difficult to be consistent, and time consuming.

Now as the online databases have got larger and more accurate, users music collections have got larger, and users time has got ever more limited we see the emergence of the Fully Automated Tagger or Rules Based Tagger.

The idea is that rules define how you want your music collection to be organized, then the rules can be applied to your whole music collection without any manual editing required giving a totally consistent music collection. You can change the rule and then reapply to the whole collection to maintain a consistent music collection. This the premise of SongKong and in my next post I'll explain how SongKong attempts to reach that wholly grail of a totally consistent music collection we are not quite there yet, but getting closer.



Friday, 22 November 2013

Using Jaikoz to modify the Release Time field on iTunes

iTunes has a Release Date field but you cannot actually edit the field in iTunes, at least not for music files,there is also a Year field and this is editable but sometimes it would be useful to use both.

In Jaikoz the Year field is clearly displayed in the default configuration but for mp3s the Release Date field is also available. By using View/Show ID3 and selecting the ID3 Edit tab you can see the Release Time (TDRL) field and if you enter a value in here and save changes the change is reflected in iTunes Release Date field.

Behind the scenes Release Time use the ID3v24 frame TDRL, whereas Year uses TDRC.

Wednesday, 16 October 2013

New MusicBrainz Server release, time to update

Twice a year on a set date MusicBrainz do a server release that includes changes to their schema database. Changes to the database can be disruptive for MusicBrainz customers who keep their own copy of the database whicc is why these changes are limited to two releases a year.

MusicBrainz did such a release on October 14th, the major change is that the concept of places have been added so that venues and recording studios can be added to the database. For example once the data is added you could see what albums have recorded at a particular studio. Maybe some of this information will be used by taggers at some point, but until a music player exists that can use this information I don't see much point.

If you are using the MusicBrainz VM with Jaikoz or SongKong I would advise a little patience, within the week there should be a new VM updated to the latest database and search, this is easier than trying to update the server yourself.

The new MusicBrainz server temporarily broke tagging with SongKong and Jaikoz, it exposed a bug in both applications and I quickly released new versions of SongKong (1.11.0) and Jaikoz (5.7.0) to resolve this issue. The change has temporarily been reverted to allow the earlier versions of SongKong and Jaikoz to function but will be added back in 1 months time so please get on and update your versions to the latest version.



 

Wednesday, 9 October 2013

New Song Changes Report in Songkong 1.9

With SongKong 1.9 we completely overhauled the song changes report, here is an example of such a report Song Changes Report

The main aims were to increase its responsiveness for big reports, and avoiding information overload by breaking down the information into smaller segments. To achieve this pages are split down into smaller parts and Javascript is liberally sprinkled over.

But the report is still quite complex so this post we explain the different sections in a bit more detail.


Summary

 

This summarizes how many songs have been loaded and checked, how long it took and how many and what percentage have been matched to MusicBrainz, Discogs and if we could find artwork for them.

One thing to consider when matching is whether to rematch songs that have already been matched or whether to ignore songs that are already matched. By default SongKong rematches all your songs but if you disable Basic:Match all songs, even if already matched then all songs that already have a Musicbrainz Id are ignored and not considered in the following sections.

MusicBrainz Summary

 

MusicBrainz is the primary data source used by SongKong.

This section shows what MusicBrainz releases your songs have been matched to. In the left handside we group the matches by the first letter of the album artist, if the first letter is not a letter they are put into the * grouping. Expanding on one of the letter groupings, lists the artists starting with that letter in alphabetical order. Selecting an artist from the list shows how your songs have been matched to their releases on the right hand side of the report.

By default only details of the first matching releases are shown, you can open close details by clicking on the small arrow in the release header information. The header tells you the name of the release together with its MusicBrainz Id, Record Label and Catalog No if known. It all shows you how many of the total songs on the release have found corresponding matches in your collection.

The details provide a hyperlink to open the MusicBrainz page for the release. Below this we list all the songs that were matched together with the song artist, Disc No and Track No.

If you have multiple copies of a song then the same release may be listed more than once, we always match the most complete match first.

Note this section looks at the details of your songs and their mapping to MusicBrainz, if the were already matched to MusicBrainz but not matched during this run of Fix Songs they will still show in this section.

Discogs Summary

This works in the same way as MusicBrainz. Songs can be matched to Discogs either by a direct search to Discogs or by a relationship existing from a MusicBrainz Release to a Discogs release. But Discogs is a secondary data source and Discogs matching and searching can be disabled, if both options are disabled in the Match tab then this section will not be shown.

Song Changes

 

This section shows what changes have been made to your files and is a listed as a file hierarchy. Each leaf folder can be selected and then the changes for each file in the folder are shown on the right handside of the report.

It is important to realize there is not a tight correspondence between songs matched in MusicBrainz/Discogs and Song Changes for the following reasons.
  1. If the song was already matched to MusicBrainz and then rematched again to the same release they may not be any change required because the song already contains the fields matched.
  2. Most songs can have Acoustids created, these are stored in the files. So even if no match was made to MusicBrainz or Discogs the song may still require saving
  3. If the fiename mask has changed then the file will probably need to be renamed even if no metadata added to the files themselves.
  4. If Fix Songs is canceled before its has completed songs may have been matched to MusicBrainz but interrupted before the changes could actually be written to file.
The list of changes made to a file is split into
  1. Fields Added
  2. Fields Modified
  3. Fields Deleted

Songs Not Matched

Selecting this list all the songs that are not matched to either MusicBrainz or Discogs in the right hand side using a file hierarchy view.

Songs Not Matched to MuscBrainz

Selecting this list all the songs that are not matched to MusicBrainz in the right hand side using a file hierarchy view.

Songs Not Matched to Discogs

Selecting this list all the songs that are not matched to Discogs in the right hand side using a file hierarchy view.

Tuesday, 20 August 2013

SongKong 1.8 with new performance status bar and improved Virtual Machine performance

Whilst SongKong works quicker when using a MusicBrainz virtual machine I confess it was not working quite as quick as I hoped, and I didn't know where the problem lay so I added some performance statistics to the new SongKong taskbar in SongKong 1.8.


MusicBrainz Delay


The MusicBrainz Delay records the additional delays added to SongKong to prevent more than one query per second being sent to MusicBrainz inline with its terms of service. When using a virtual machine the delay should have been zero, but this was not the case. This uncovered an issue that rate limiting was only disabled when doing MusicBrainz lookups, but not for searches, fixing this problem boosted performance

MusicBrainz / AcoustId / Discogs Queue


SongKong uses a number of online databases for matching songs, not just MusicBrainz. All these databases have terms and conditions that restrict usage to one query per second so if SongKong is ready to send queries more quickly than that we have to queue the tasks. This status bar shows the queue for MusicBrainz, AcoustID and Discogs databases and is updated every thirty seconds. The most important queue is the MusicBrainz queue and this can be eliminated completely by using the local MusicBrainz server.


Memory Usage

When SongKong is started the maximum memory it can ever use is specified, this is the second value displayed and SongKong can never use more memory than this regardless of how much memory your computer actually has. Whereas the first value is how much of that memory SongKong is actually using. Note that SongKong uses a garbage collector to release memory that is no longer required and this is called periodically, if SongKong is nowhere near max memory usage it tries to recover memory less often than it could, and so the current memory usage may be higher than SongKong is actually using.

On Windows you can modify the maximum memory allocated by editing SongKong.ini (32-bit) and SongKong64.ini (64-bit)

On OSX you can modify the maximum memory allocated by editing /Applications/SongKong.app/Info.plist

On Linux you can modify the maximum memory allocated by editing songkong.sh

Other Fixes in SongKong 1.8

If you had the Update Genres option enabled it could cause Fix Songs to cancel prematurely, this is noe resolved.

If you removed all countries from Preferred Countries so that it was an empty list this will prevent Fix Songs from running


Thursday, 15 August 2013

Faster SongKong matching with the new Musicbrainz VM



To speed up matching it is possible to configure your own local MusicBrainz servers instead of using the official MusicBrainz servers and use this with SongKong. This avoids the requirement to only send one query per second to the MusicBrainz server so speeds up the matching that can be achieved by SongKong,

Additionally this resolves an issue when trying to use multiple copies of SongKong at the same time in the same home network. Usually with a home network external services such as MusicBrainz see all your computers via the same ipaddress, and therefore the rate limiter is applied to all computers as if they were one computer, this effectively prevents you using multiple copies of SongKong on a home network in parallel. But if the server being used does not impose rate limiting then there is no longer a problem.

But the problem has always been the difficulty of setting up a MusicBrainz server in the first place !

Now at long last MusicBrainz have now released a new Musicbrainz VM containing both Musicbrainz Server AND Search Server I've been trying it out and it works great !

The latest official MusicBrainz instructions are available from here. but in this blog we document the instructions so that they are more relevant to using the Virtual Machine with SongKong as follows. Warning some of the steps can take a few hours to run but the procedure is very simple.

  1. Ensure you have a BitTorrent client such as Vuze installed, this is required to download the Virtual Machine, and is a much more reliable way to download large files.
  2. Download the 9GB MuscbrainzVM via your BitTorrent client
  3. Windows/Linux user can download and install from VmPlayer this is free and more reliable then VirtualBox
  4. Mac users can use Vm Fusion, although unfortunately this is not free, or try the less reliable VirtualBox
  5. The remainder of these instructions assume you are using VMPlayer, but the steps for VMFusion and VirtualBox are much the same.
  6. Start VMplayer and choose Import Virtual Machine from the File menu. Select the downloaded file.
  7. Select Options and increase Virtual Memory to at least 2GB if your machine is powerful enough
  8. Select Play Virtual Machine
  9. Log in on the console using the username vm and password musicbrainz
  10. Update the database with the latest data added since the VM was created using bin/replicate now this may take a while depending on how old the VM is.
  11. Build search indexes, this will take a few hours bin/reindex
  12. Get the IP address of your virtual machine.using command:ifconfig | grep eth0 -A 1
  13. You can check it is working in browser by pointing to port 5000 of the ipaddress found previously e.g. http://10.1.1.104:5000
  14. Configure SongKong, set Server:MusicBrainzServer and Server:MusicBrainz Search Server to the same address e.g. http://10.1.1.104:5000
  15. Now SongKong will use the local MusicBrainz server rather than the offical MusicBrainz server. This should be faster and more reliable.

What is the point of the iTunes Copy files to iTunes Media folder when adding to library ?

SongKong 1.7 now has support for updating for iTunes on OSX, so it has feature parity with SongKong on Windows, and playing with this got me thinking about the point of certain iTunes options.


Copy files to iTunes Media folder when adding to library


This option is enabled by default and if this option is enabled whenever adding songs to the iTunes library it will make a copy of every file and add it to iTunes media folder. So you end up with two copies of every file, one in its original location and one stored in the iTunes media folder.

Why would you want two versions of each file ?

 

Managing multiple copies of files is an unnecessary headache,  maybe there is some concern that iTunes will modify the file in some negative way but it seems unlikely.

If you have this option enabled subsequent modifications to the original file within SongKong will have no effect on the file used by iTunes because iTunes will now be using the copied file in the media folder UNLESS you rename or move the file then iTunes will see it as a different file and add it again !


Keep iTunes Media folder organized


Also enabled by default, this renames files based on their metadata once they are added to iTunes if the copy files options is enabled.  But this only renames the copy of the file, it doesn't help you with the original file if it is misnamed. And more importantly you have no say on how your file is renamed, iTunes renaming mask is rather simple and probably not what you really want to use.
 If you are using SongKong flexible rename mechanism why would you use iTunes limited filename and you probably don't want to iTunes to rename them differently as they are copied to the iTunes media folder anyway.

And if you are using SongKong to modify files already within the iTunes media folder you certainly dont want iTunes moving and renaming files as they are getting matched ?

Although you can use both options with SongKong I would recommend disabling both.

Friday, 9 August 2013

Better track matching when submitting new releases to Musicbrainz

For some time Jaikoz has allowed you to submit new releases to Musicbrainz, the selected songs in Jaikoz are used to open the MusicBrainz Release Editor with all the details filled in, so that you just need to check the details and then submit the form.

But in MusicBrainz recordings can be linked to multiple releases so Jaikoz tries to identify when a recording already exists instead of creating a new recording. Doing this makes Musicbrainz more useful so that in an ideal world every recording listed in MusicBrainz is actually a unique recording, and we can see all the releases that the recording is based on.

Jaikoz did this by comparing track titles and durations but sometimes recordings were incorrectly linked when in fact they were different versions of same song.

A more accurate solution

Now with Jaikoz 5.5.0 we have replaced this by matching using Acoustids, only Musicbrainz recordings with the same acoustId as your track are potential candidates, and only then do we do further checks on title and duration to ensure a good match.


Solving a bug in iTunes that prevents artwork being displayed

Occasionally I've seen artwork that displays okay in most applications failing to display in iTunes or the Finder within OSX, recently I had a nice example of this issue and looked into it further.

How do mp3s store text ?

Now mp3s store data in fields called frames, and many such frames allow the text encoding to be chosen. The default is ISO-8859-1 character set but this isn't very good for storing non-latin text so you can also store the text using UTF-16, however the downside of this is that two bytes are used instead of one for each character so it is usual to use this unless you need to. Mp3s use the APIC frame to store artwork, and this includes the text encoding field

Why do you need a text encoding field for storing artwork ?

The APIC frame has a description field allowing to describe the artwork, this is rarely used but you can use it. In Jaikoz if you click on the edit artwork dialog you can add a description or change the type of the artwork.

What has this got to do with iTunes ?

Even if the text encoding field is set to UTF-16 the artwork will not display unless the description text is actually encoded as ISO-8859-1, this is a bug in Tunes

How does this manifest itself in Jaikoz ?

If you change the default text encoding to UTF-16 then Jaikoz will use this for every frame in the file whether you need it or not causing a problem for your artwork

So what can I do?

In Jaikoz 5.5.0 we use text encoding of ISO-8859-1 for APIC frames regardless of the value set for the text encoding, no other frames are affected. The only downside to this is that if you want to add a description for your image, and you add one that cannot be encoded in ISO8859-1 the description will not be saved.

How do I fix existing files ?

Just open them in Jaikoz 5.5.0 and use the File/Force Save option, this rewrites all the fields in the file even if they haven't changed so they are rewritten with the current preferences.

Wednesday, 7 August 2013

Updates iTunes from SongKong 1.6 for Windows

Despite its shortcomings iTunes is a massively popular music player, not least of all because its the official way to move music from your computer to your iPod. Windows users of SongKong can now get SongKong to update iTunes with any changes to your music library made by SongKong, this includes the following situations:

When the metadata of songs already in iTunes are modified by SongKong.
When songs already in iTunes are renamed or moved by SongKong.
When SongKong matches a file not in iTunes , the file is automatically added to iTunes.
When duplicates are deleted by SongKong, the deleted files are removed from iTunes.

Jaikoz has had this support for some time, but because of various bugs in iTunes it does not always work 100%. So for SongKong I rewrite it from scratch and have created a more robust solution, SongKong completely ignores the iTunes.xml file because this can get out of date or corrupt and instead talks exclusively to iTunes itself, this is much more reliable.

Why Windows only ?

ITunes integration is one of the few area of SongKong that we have to use different technologies for different platforms. For Windows we use COM, but for OSX we will use Applescript, it made sense to get it fully working in one technology first and then move to the other, support for OSX will come in SongKong 1.7.
Jthink blog Jthink Facebook page google_plus Jthink YouTube channel Email Paul at Jthink Subscribe to Weekly Newsletter