Gigi Sayfan specializes in cross-platform object-oriented programming in C/C++/ C#/Python/Java with emphasis on large-scale distributed systems. He is currently trying to build intelligent machines inspired by the brain at Numenta (www.numenta.com).
In Your Own MP3 Duration Calculator: Part 1, I presented a program called "MP3 Duration Calculator" (MDC) that I wrote for my wife Liat who recently completed certification as a spinning instructor. Spinning instructors need to create CDs with music for each class that matches the class content and MDC allows Liat to quickly select different song ands see the total duration of all the songs.
Liat was excited and started browsing her music collection and selecting songs for her first ever spinning class. She was marginally pleased with the interface but complained that the total duration text box is a little obscure. Then something terrible happend! Liat had already selected a bunch of songs and by accident clicked without holding control on another songs. Her entire selection was gone and replaced with the single last song. That was pretty late (about 2:00 a.m.) and her class was scheduled for 8:00 a.m. Liat was upset and re-selected all the songs again. Finally, all the songs were there and it was time to burn the CD. That's when we discovered that we ran out of blank CDs. Alas, Liat brought several commercial CDs to her first spinning class and swapped them manually.
So, it wasn't the best software debut ever. The good thing is that there was a lot of room for improvement. Liat ran into a few other issues. When selecting songs, she sometimes didn't recognize the song's name or just wanted to listen to it to make sure it's appropriate. She had to go to Windows Explorer, find the song, and click on it to being up the Windows Media Player. This process was tedious and broke the flow of selecting songs. After selecting all the songs, she had to manually select them again in Windows Explorer to burn them. Finally, Liat also wanted to print a list of all the songs and their duration. Obviously it was time for Version 2.0.
New Requirements
Before launching into full-blown development, we sat down and compiled the following list of requirements for MDC 2.0:
- Make total duration more prominent
- Check boxes for selection (one song toggle)
- Show # of selected songs
- Play songs from within MDC
- Copy selected songs to a new folder
- Export song list to a CSV file
- Remember last folder
One of the main features of MDC 1.0 was its interactivity. Collecting the track information can take a while for folders with tens or hundreds of songs. MDC was never blocked. You could always do the all the selection operations you wanted on the available subset of songs and MDC displayed the total duration. I wanted to preserve this capability for MDC 2.0 where the user will be able to select and also play songs while more tracks are collected.