Dynamic Music Skin

Dynamic Music Skin

I am writing a Dynamic Music Skin, which aims to match Music Jukebox’s basic functionality, but using a database backend and Python to generate dynamic pages for the NMT.

 

There are some requirements before you can run this skin. Please refere to the page on Dynamic Movie Skin which details those requirements before you try running this skin.

 

Here’s a demo captured off my PC: http://www.youtube.com/watch?v=oCmhIvoX6w0

 

To use this application:

  • Edit the settings.ini file to match your setup.
  • Run Listfiles.py to create your MusicDB.
  • Run the DynamicMusicSkin.py to serve up the skin.

Currently this application will:

  • Iterate through your music folder, creating a library of your mp3 files. Not that it will ONLY add mp3 files and I have no intention of adding support for any other formats.
  • Display a skin with your albums on it, similar to Windows 7 MCE. You can page through these, or search using the in built search function. From which you can:
  • Open an album showing the songs. From there you can play the album, or individual songs.
  • Added a nice feature which displays a large version of your cover when you mouse over it.

Change Log:

 

11/5/10 – MusicDB 0.10

 

ListFiles.py

  • Refactorted to populate DB faster, and remove non-existant files.
  • Added more code to figure out which cover to use for an album.

DynamicMusicSkin.py

  • Fixed large covers on album view to work on NMT (although not so good in Firefox now ;-)).
  • Fixed issue with search not working, although there is still an issue with trying a blank search if you highlight the search button, not the search box. This seems to be some kind of funky thing that the NMT Gaya browser does!
  • Fixed the songs list in album view so you can play individual songs!
  • Removed border on highlighted link image.
  • Added auto load of next and previous page.
  • Touched up some of the graphics slightly.

 

30/4/10 – MusicDB 0.02

  • Added large covers on mouse over. Works in Firefox (on PC) only – breaks the JS on the NMT version.
  • Changed the Album view to be multi-image using DIVs/CSS. Haven’t tested on NMT.
  • Changed all fonts from Verdana to Arial as this one of the only two fonts supported on the NMT.

So far, that’s it. I plan to add:

  • Show more albums by same artist.
  • Sort by Artist.
  • Create / edit / play playlists. These will be persistent (stored on the filesystem or in the DB).
  • Maybe a party mode.

 

MusicFlow

 

Additional to the Dynamic Music Skin project I am now working on MusicFlow (a CoverFlow style interface) for DMS, which uses the same database. Eventually I will integrate both interfaces into the same py file so you the user can switch between regular Windows MCE style interface, or MusicFlow style.

 

Screen shot now included.

 

Demo video : http://www.youtube.com/watch?v=xXvRjto5U2U

 

Controls:

  • Page Up / Page Down to scroll – alternately use the forward / back links on the screen.
  • Play to go to the album details page – alternately you can arrow down from the on screen links then press OK.

Version History

26/5/10 – 0.2.1

  • Added session code to ‘remember’ what cover you were on. This is because the NMT seems to request the page you return to from the server again, rather than caching it. Due to the way that the MusicFlow page works this was causing it to display the 1st cover again, which was quite annoying to say the least. This fix isn’t complete, as whilst it returns you to the correct cover, there is a slight delay while it loads, and you have covers 1 – 9 on the screen for a few moments before the page finishes loading…

25/5/10 – 0.2

  • Added 2 more covers to a total of 9 on screen.
  • Centered the layout and made covers larger.

24/5/10 – MusicFlow 0.1

  • Loads 100 covers only. This is due to a bug that I haven’t figured out yet, other than I know it works with 100 covers 😉
  • Use the links on the screen to scroll left and right, then hit Play to open the album details screen. In theory the PageUp and PageDown buttons should scroll too, but they don’t seem to be working for me…
  • Cover #7 can be a little slow loading, so I will preload that one in the next realease.

 

Note 1: Whilst Macs support Python, the way in which they store the files that make up an application prevent them from allowing either of my skins to work out of the box. If you have a Mac and want to try one of the skins out, be aware that you will have some editing of the .py files to do.

I’m not aware of anyone else running this on a NAS or under Linux, but given that I run this at home on my NAS I’m sure that it will run quite nicely on a Linux box.