Library software

This page describes the musicplayer’s accompanying library software. It will be written in C++, probably use QT and should run on normal x86 hardware (e.g. a laptop) and the Pandora. Linux will be supported for sure, Windows probably but this still remains to be seen.

Parsing songs on the musicplayer hardware is not an option. Especially if you want to return a list of songs to come or playlists (for display on the remote), parsing a bunch of files is just not gonna run smooth on the player itself. Also to seek to a random file on a FAT32 volume, the entire list of files (at least locations of their file entries) would need to be maintained in memory (it’s a singly linked list). The alternative of repeatedly accessing the disk to find the ‘next’ file is not a realistic approach if we’re dealing with several thousand files.
So this needs to be done forehand. Think extremely lightweight iTunes without all the Apple bullshit. Having an iPod I hated the idea of having to develop a similar solution (iTunes sucks balls!), but unless a better idea comes along, this is going to be it. I did think of making a custom filesystem, but dropped the idea since you can’t just copy some music without additional software.

Quick feature list:

  • Extraction of ID3 tags (MP3) and Vorbis comments (Ogg Vorbis and FLAC)
  • Writing of database file containing songinfo, filenames (and maybe playlists)
  • Storing of files on SD card in  a single directory
  • Calculation of unique hash used to look up songs

To be continued…