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.

Google Summer of Code Report 26th May to 1 June


For the past one week, I have been busy due to some work. But still, I tested my code very much, polished it and fixed a few bugs. Though, there are some areas where there are some bugs and memory leaks. I haven’t been able to reach at those spots but I will shortly. The best thing is most (90%) of the things I planned to do in first coding period has been completed. So, instead of wasting time I have decided to move ahead and implement other things. This week I will focus on “Scan Selected Files” feature. This feature will get the albums of all selected files and will search those albums in MusicBrainz database. Lets work on to get this feature right.

Thank You

Google Summer of Code 2014 Progress Report 19th May to 25th May

Hello all,

This week, I implemented the remaining things in Dialog and Manual Search.

Status Bar Messages: Manual Search will show more verbose Status Bar messages. When user start the search, StatusBar will show messages like “Found 10 Album(s)”, “Retrieving AlbumName (1/10)” and many other. This will help user in understanding what is helping.

Toolbar Buttons: Buttons including Select All, UnSelect All, Invert Selection has been implemented.

Red Lines: When a user double clicks on a row, then its children will be downloaded. Now that row will be displayed in Red Color, as it has already been downloaded. User can select whether to display these red lines or not.

Search In Results: User can now search in results. Typing the text in GtkEntry will display the search results in the EtMbEntityView.

More Information about Tracks and Albums: More information about Albums and Tracks are downloaded, this include their artists, albums, length of track etc.

Cancelling Manual Search Operation: Manual Search operations could also be cancelled now. This has been implemented using GCancellable.

Bug Fixes: Many bug fixes has been done.

The coming week I will concentrate on more bug fixes and memory leaks.

Google Summer of Code 2014: Coding Period starts!!

Comes, 19th May 2014 and GSoC 2014’s Community Bonding Period ends and Coding Period starts. I did most of my Community Bonding Period things before the GSoC 2014 Student Announcement Deadline and hence, started of with the development of my Project in between the Community Bonding Period. Till now, I have done a significant amount of programming and added many features. This has given me good start ahead of the deadlines. Here’s what I have done till now:

Designed and created MusicBrainz Dialog GUI. It has folllowing features for now:

  • BreadCrumb Widget with GtkTreeView is used to show the results. User can easily navigate between Artist->Albums->Tracks. BreadCrumb Widget will show and keep the track of everything.
  • GtkTreeView will show information for Artist, Album, Tracks.
  • Double Clicking on the row of Artist will fetch all its Albums and display them in the GtkTreeView. With this BreadCumb Widget will also be updated.
  • User can select and unselect all the rows with just a click on “Select All” or “Unselect All” button.

Manual Search: Manual Search now has following features:

  • Search any entity by name in Artist and Album.
  • Every search is Asynchronous. Communication with MusicBrainz Server is done in a separate thread. This makes the GUI responsive.
  • Status Bar messages are shown.

Two remaining things for Manual Search are: Stop Search Operation at any time and Searching Tracks.

In the coming week, I will try to implement the remaining Manual Search Operations.

Google Summer of Code 2014

I know it’s a bit late to announce, have been busy with some work. But here’s the announcement, I have been selected in Google Summer of Code 2014 with GNOME as the Organisation. I will be working on MusicBrainz support for EasyTAG. It is surely going to be a nice summer experience. My mentor is David King. Here are some links to my project: