Wednesday, August 22, 2012

Moving away from lists

Any and every online search displays results in lists. Most often, the lists are long, way too long. So that sets me thinking: we should have a new design artifact that replaces these lists. The artifact or plug-in should avoid endless scrolling and page navigations ('next page').

Google sometime back tried 'Wonderwheel'. I was excited about such a visual artifact, but have not seen it being successfully used. Probably it still lacked in its utility.

Sravanthi Kollukuduru, Kamalakar Karlapalem worked on concept of wheels to avoid scrollable options displayed when clicked on a select box. Aptly titled 'Wheels of Web', this is the beginning to move away from boring long lists.

And towards this challenge: I mine.

Monday, October 06, 2008

Versatile Artists' Filters for Variety in Music Playlists

I loaded my IPod with my collected music. As mentioned in my earlier post, I am yet to work on standardizing the mp3 tags so to structure and search my music better. But I thought I could listen to my entire collection. Another daunting problem surfaced, partly because of my swinging moods when listening to music. Consider the following playlist specifications that I would love to give:
  • Listen to A. R. Rehman's compositions
  • Listen to all Shahrukh Khan's songs
  • Listen to songs sung by Hari Haran and Shankar Mahadevan.
  • Listen to all songs of 1990's (1990-2000) time for old time's nostalgia.
  • Listen to duets (sung by a male and female singer)
  • Listen to songs sung by single artists
  • Listen to all telugu songs sung by Chitra
  • Listen to all tamil songs of Rajnikanth (yes, i listen to telugu, tamil, hindi and english songs)
  • and so on. But you get the general idea, right?
I listen to songs in RealPlayer, ITunes, Rhapsody and WinAmp, but I am not aware of having the option to get such queries executed for a different playlist according to my choice. And in iPod too there's no such option.

Such queries might be tough right now because the mp3 songs do not have the option to have all such information. For my queries to come to life, we need extra information such as:
singers tagged with (male/female), language of the song, actors/actresses in the song, composed by or music director and comprehensive genre. The genre field in mp3 tags usually takes it just as a single value i.e. movie, inspirational and movie, blues are considered two different genres. But songs of these genres are movie songs, so when there's a query that asks for just movie songs, songs belonging to both these genres should be collected in the playlist. Genre should ideally have a taxonomy, something like a broad category as to what type of music it is (movie, pop, rock, jazz, classical), followed by language in which it is sung (can take one or more values: english, hindi, telugu, tamil), followed by mood of the song (blues, tragedy, philosophical, inspirational and so on).

Currently, ID3 tags do not offer such flexibility. But can we store something in the 'Comments' field and make it possible to run such queries to generate dynamic playlists. Ofcourse, we also need a software that can read the 'Comments' field (or whatever we choose to) and filter out the songs that satisfy the query. I wonder why this requirement of dynamic playlists has not come up yet. Or did it and I am not aware of it? Let me know, while for a good solution to this, I mine.

Monday, September 15, 2008

MP3 ID3 Tag Database for Indian Music - A must!

Every time I intend to sync music files with my mp3 player - I end up getting frustrated trying to edit and re-edit the tags of mp3 files. That set me thinking there should be at least one repository that maintains consistency through out in naming the artists (A R Rehman should always be A R Rehman, not A.R.Rehman, AR Rahman and so on), titles, albums and genre. Well, you know how the tags are usually for the Indian MP3 songs!
The high value addition I get out of this is when I want to listen to only Hindi movie songs or Ghantasala songs or Rock genre songs, I can do so seamlessly in my Mp3 player; also your music library can be easily organized.


On googling, I found that there are such online MP3 ID3 tag databases for English music. I did not find any for Indian music. Its time for us to have such a tag database. If there are already such online tag databases that I missed while googling, please let me know. Otherwise, visit this page again in two weeks' time. :-) The idea is to create a web-platform for people to add or edit MP3 tag information for various songs. When a user wants to edit the tag information of a particular album's MP3 songs, all he needs to do is download these new tags and sync them with those songs. Also, there's a lot of scope for AI, especially having some validation on the information entered by the users. Any suggestions are welcome, while I mine!

Sunday, September 30, 2007

PPM File Format

Often, I keep generating images; to make my research work's output more easy to understand. It is rightly said 'a picture speaks more than 1000 words'. In my case, a picture speaks more than 1,000,000 numbers. My work dwells in the area of Data Mining and I generate very large numerical matrices as output. I use images to view the matrix and interpret them better.

My code usually ends with an image writing function, that takes the matrix as input and generates an image. To generate a very primitive image format, I use PPM file format. PPM does not have any compression or optimization to save space. But for sake of easy coding, I generate PPM files and later use 'convert' command in Linux to change it to JPEG format.

I often forget the PPM file format, despite having coded a couple of times to save PPM files. So, I thought I would write it down here to serve myself and others who want to know the PPM file format.

Here's the order in which we need to put in the information - to generate a good ppm image.

1. A "magic number" for identifying the file type. A magic number in a ppm image is a two character code "P*" (i.e. P followed by a digit like P1, P3 and P6). P1, P3 are for mono-color images' code and P6 is for many-colored image.
2. Whitespace (blanks, TABs, Carriage returns etc.).
3. Width of the image, formatted as ASCII characters in decimal.
4. Whitespace.
5. Height of the image, again in ASCII decimal.
6. Whitespace.
7. The maximum color value (Maxval), again in ASCII decimal. Must be less than 65536 and more than zero. In case of mono-colored or gray scale images, there is only value for each pixel. In case of many-colored images, for each pixel three values (for red, green and blue components of color) are to be written into the file.
8. Newline or other single whitespace character.
9. A raster of Height rows, in order from top to bottom. Each row consists of Width pixels, in order from left to right. For many-colored image, each pixel is a triplet of red, green, and blue samples, in that order. Each sample is represented in pure binary by either 1 or 2 bytes. If the Maxval is less than 256, it is 1 byte. Otherwise, it is 2 bytes. The most significant byte is first.

To all ye IP (image processing) and Graphics experts, let me know if there are any corrections.

Now that I brushed up PPM format, I finished coding the image writing part and now...

I mine. :-)