Working on new MP3 "front end"
Hi everyone! This is my first post, and I am currently gathering hardware for my car computer. Reading this forum has been really useful, so thanks everyone!
Anyway, I am set on using Linux, as I have always been an open source fan. The problem is that I haven't found just the right software to use. My first goal is an MP3 player that will let me browse my library easily and play music - I want to keep it as simple as possible! Later on I will add other features and therefore want a top-level front end (i.e. one that lets me choose music, GPS, etc.). For now, I could even just use desktop icons for that anyway...
But the challenge is an MP3 browser. I've looked at pycar, but I never quite got it all working. DashPC looks cool, but it seems it just launches XMMS, so although you can play music, you'd have to browse to the actual files you want rather than artist/album/track, etc. (with fast searching, which is needed when you have lots of music). Plus, trying to use a Linux file browser on a touch screen might make it hard to drive!
There is another one I saw posted here, but it looks like source code is not available yet.
So it looks like I'll be doing my own home-brew! I plan to use Python, and so I looked into the many GUIs available. I initially have chosen the standard, Tkinter, and I am playing with that now - looks promising, as there are features that will work well in the touch-screen environment, like the ability to make buttons large enough to hit that can be wired to scroll a list up or down by pages (the scrollbar can be made small and used just to show where in the list you are - I've testing this, and it looks good).
The plan is to keep it simple. There will be a tabbed (or similar) list on the left allowing the user to search (a small QWERTY "keyboard" will be there to select substrings for searching, and this will update the list dynamically as you hit letters) and add artists/albums/tracks to a list on the right (the playlist). When the user hits play, an .m3u playlist fill will be written, the GUI will disappear, and XMMS will be launched with the playlist (and start playing). When XMMS is closed, the GUI will pop up again. Later, I can add a button to "return to a main menu (a top-level page)."
So far, I have written the Python script to scan my music library and write an index file (which is a tab-separated text file). When the GUI is run, it will load this index into an in-memory database (Sqlite with Python wrappers). This will speed searches and make them easier to code - I've got one hard coded now that works well). I should have a prototype to show shortly, but I wanted to send out in initial post and ask for any suggested features!
I'm kinda digging this, and it's a learning experience! I've had to learn Sqlite and Tkinter so far, but the whole system will pretty much consist of two python scripts - pretty lean. and only a few 3rd party libs need to be installed. If anyone else here is looking for something like this, then I'll be glad to share it.
I am now waiting for my 80GB drive to show up, and then I'll have everything I need to test it all out on the bench. First task will be loading Fedora Core 4 (just downloaded the ISOs).