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

GSoC 2014 Progress Report 16 June – 22 June 2014

Hey all,

Past 1.5 months have been great. Go to learn a lot. And I have completed all of the things required to pass the Mid Term Evaluation. Even, I have completed one feature “Scan Selected Files” which is scheduled to be completed in next coding period. Following features have been implemented:

  1. Music Brainz Dialog
  2. Bread Crumb Widget
  3. Manual Search
  4. Search Selected Files
  5. DiscID Search
  6. Test Cases to test MusicBrainz functions

Now I will start working on Automatic Search feature.

Thank You

Google Summer of Code 2014 Progress Report 8 June – 15 June

Hello all,

I know I am a bit late in posting this progress report, but you know “better late than never”. Last week, I worked on DiscID Search and completed it. Now, a user can insert a Compact Disc and run DiscID search. Through this, a DiscID of Compact Disc will be generated and it will be searched through MusicBrainz data base. Then the received information will contain the Albums and Tracks inside the Compact Disc. This is a very interesting feature specifically for those who use Discs for storing and listening Music.

I also did some coding style fixes and make all the strings Language Translatable.

I also worked upon generating Unit Tests for MusicBrainz. I am almost complete with these tests but I will take some time to make them much better.


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.