GSoC 2014 “MusicBrainz Support to EasyTAG” Progress Report : 14 July – 27 July

Hello All,

I wasn’t able to post blog last Sunday because of my tight schedule. In the past two weeks I have done the following things:

  • Completed Apply TAGs for Automatic Search. After Automatic Search, user can select the Tracks and then click on Apply TAGs. If user wants MusicBrainz to use Levenshtein Algorithm for finding the best possible Tag for the File, he can select the check box. Below is the screenshot:



  • My mentor David King did a review of the code and I did all the changes.
  • I also wrote a test case for FreeDBID Search.

All the features which I talked about in my proposal has been added. So, this means the time is for some heavy testing. In the coming week I will be doing testing of each and every feature of MusicBrainz Dialog. Lets hope I do find some bugs. 😉

Thank You


GSoC 2014 MusicBrainz Support to EasyTAG, Progress Report 23 June 2014 – 29 June 2014

Hello all,

I passed the Mid-Term Evaluations yaaay!!. Thanks to my mentor David King for so much all through the previous 2 months. I promise to deliver even better in the coming months.

Ok, so lets see what I have done in the past week.

  • I have done many bug fixes.
  • Implemented the Refresh Operation.
  • David and I decided to change the whole GUI making it more simpler. Replaced all the tabs with just buttons. That make the GUI really simple. And now user can do search with just one click, instead of two.
  • By default, the type of entity to be searched will be “Album”.

Currently, I am working on “Apply TAGs” feature and I hope it to complete it within a day or two and then will do some coding style improvements.

We got some problems with Automatic Search as it relies on FreeDB or CDDB search. Searching FreeDB database in MusicBrainz through MusicBranz FreeDB Gateway gives expected results but not through MusicBrainz WebService :(. So, we decided to leave Automatic Search. If possible I will convert current Automatic Search code to use MusicBrainz Web Service methods.

Thank You

Google Summer of Code Report 2 June – 8 June 2014

Hello everybody,

As I said in my previous I have worked on “Scan Selected Files” feature. It is very useful, if you want to perform search for selected files only. Here’s what it will do:

  • Get the selected files. If no file is selected then it will take all the files.
  • Get the Albums of all the files. If more than two files have same album then their album is taken only once.
  • Then it will search for those albums in MusicBrainz database and display the result.

The main problem in implementing this feature was how to get the albums of all files and add the album only once. For this I cannot use a Linked List or an array as it would cost me a polynomial time complexity. So, I decided to use a Hash Table and Glib already has Hash Tables for strings. Hence, a GHashTable is created.

Whenever an album is retrieved from the files, it is searched into the GHashTable. If it is found then it is not added otherwise it will be added. So, this would give me a linear time complexity atleast better than polynomial time.

Moreover, Scan Selected Files does its search Asynchronously.

The coming week I will try to implement the DiscID search and also do some more bug fixing and memory leak fixing.