Software Projects

Select Article.

Site Search

Search Articles.



Glimmer Music Player

Friday 12 Mar 2010 16:17

Glimmer is a media player which I developed out of necessity because no existing program fulfilled my needs. My goal was to create a standalone media player which was not tied in any way to my desktop PC, and could used in conjunction with my HiFi.  All features had to be accessible using only a touch screen, which ruled out iTunes and Windows media player. Both of these programs work perfectly fine, but donít work well using touch screen and lack certain features which I felt I couldnít live without.

The next problem was finding a fully features PC that was small enough to be considered part of my HiFi setup, so in the end  I settled for an Acer Aspire Revo R3610 (1.6GHz dual core) with a 500GB HDD and 4GB of memory. This coupled with a Mimo 720S 7Ē monitor gave me an ideal platform for my project. One thing to note here is the Mimo monitor works using only a single USB connection, so no mains power supply is required. The Acer Aspire Revo also has a HDMI out which proved very useful too.

So, the hardware was in place, but no software. After many frustrating hours of downloading and installing many media players I had come to the conclusion that if I wanted to do this properly I would need to write my own software.

The goals were as follows:-

  • The program had to be fully functional using only a touch screen.
  • It had to be able to handle multi-monitors.
  • It needed to have CD ripping abilities.
  • It has to retrieve CD information from an online CDDB.
  • It had to play my CDís purchased via iTunes.
  • I wanted a cover flow type display similar to the iPhone.
  • It needed a TAG editing facility.
  • It needed to handle multiple databases, even over networks.
  • There had to be an easy way to import existing data.
  • The ability to easily retrieve album artwork.
  • The program was not to rely on any database engines or additional software other than codecs.


Problems During Development

My initial program fulfilled all the above goals, but I had settled on 16bit graphics in order to be able to get the best speed out of my cover flow implementation. The problem with 16bit colour is that reflections in the cover flow display showed some pretty ugly banding in colours, but the speed was great.  So I decided to rewrite everything using 32 bit colour. The results were much more pleasing on the eye, but Iíd halved the speed.

I tried re-writing using DirectX, but unfortunately it ran even slower. The problem is that the graphics card canít hold all the album artwork in video memory, and copying it to video memory on-the-fly was too slow. I wasnít willing to go back to 16bit colour, so Iíve had to suck it up and live with it. The cover flow updates at 40fps, but this will drop on large displays if your video card isnít up to the job.

There is no anti-aliasing on the cover art, due to the fact the best algorithms out there couldnít render fast enough. On my desktop PC running which is a 2.4GHZ Quad running a Radeon X1950 the cover flow renders a full screen at 1360x768 in around 10ms, which is better than I could render a single cover using anti-aliasing.  Obviously things are much slower on the Acer, but on the Mimo monitor running at 800x480, things run at a comfortable 40fps.

Another problem I encountered when using a touch screen was that unlike the iPhoneís capacitive display my Mimo monitor being a resistive type was not so sensitive. This resulted in my finger bouncing across the surface of the display which resulted in many Windows thinking Iíd double clicked when I hadnít. This meant that I could no longer use a double click to view album tracks as Iíd initially hoped. In the end I settled on a vertical swipe, either up or down.

Another major problem occurred once I decided to add other file formats such as M4A and WMA. My tag editor wouldnít work with these formats, so I had to hunt down an alternative tagging library. The current implementation works with all supported file formats.


Additional Features

My original intention was to create a music player, not a media player, but somehow I got a little carried away.  Iíve since added the ability to play streaming radio stations, supporting both .pls and .m3u streams. This also uses the cover flow display and allows you to assign custom artwork.  I then added the ability to record radio streams and play them in the same way you play a CD. 

Finally I added video support, although your ability to play video depends on the codecs installed on your PC. The reason for adding video support was because I have the Revo connected to my TV, and with itís HDMI output I thought it would be nice to take advantage of this. Video playback isnít perfect, as the Acer is a little underpowered for this, but it works.


Formats Supported

Audio: MP3, M4A, WMA and OGG
Notes: No additional libraries or codecs required.

Video: AVI, MPG, WMV, MOV and MTS.
Notes: Requires the full k-lite codec pack or similar to be installed.

Radio Audio Streams: .PLS and .M3U
Notes: No additional libraries or codecs required.Future Developments

I have toyed with the idea of adding some form of remote control, either using a Windows media centre remote, from a network PC or using custom software running on  Window Mobile or an iPhone.


Acknowledgements

The program uses the following libraries, so many thanks to the people that have made these libraries available and given me great support.

TagLib
 
URL: http://developer.kde.org/~wheeler/taglib.html

This library allows me to edit tags of all the supported audio formats the program supports. It is well written and well worth a look.

Bass Audio Library

URL: http://www.un4seen.com/

What can I say about this audio library that hasnít already been said before. It really doesnít get much better than this, and there is a great community of people adding free plugins and willing to offer great support. If you are wanting to write an audio application, I highly recommend this audio engine.


Download

You can download a free copy of Glimmer from the download section of the web site.


Comments (14)

27 Apr 2010 06:52 by Trek
Congrats ! I like your Glimmer PLayer and already installed it.But i would like to use the upgraded version with auto hide-auto load art works function :)
Thanks for the info about how to... to my email
Keep up good work :)
25 Jun 2010 10:14 by Stuart78
This software is superb, its exactly what ive been looking for, thank you.
I'm currently running on my desktop while I await delivery of my mimo 720s screen.
An iPhone app to remote control it would elevate you from legend to god like status ;o)
23 Jul 2010 08:02 by mameman
Hi, love the software. one of the easiest to use on the mimo 720. What I would like to see however to make it more jukebox friendly is the ability to queue songs up. unless I am missing it, you can only select an album or the next song you want?
27 Jul 2010 08:40 by prezo1
after installing glimmer i try to build music library and a message comes up (music player exe has stopped working). i have triede reinstalling it but keep getting same message.
30 Jul 2010 06:12 by pacomac
Check that your music library is using the following directory structure.

root\artist\album\tracks01-32

Please note that you cannot have more than 32 tracks per album.
20 Sep 2010 02:24 by Kevin
Hi there,

really GREAT software! I am using it to play the Music on my PC from the kitchen with a Mimo 720s. The software is absolutely perfect, except for one little thing: I have plenty of Music in some "Mixed" folders, is there any possibility to access that with the Glimmer Player, too?

Thanks & keep going,
Kevin
2 Dec 2010 06:59 by edef
wowwww but no mkv support why?
and srt. sub help me how can i see mkv with srt subs
26 Jan 2011 09:26 by edef
hi how can i play mkv files and ext.srt sub can sombody help me thanks
3 Feb 2011 07:19 by Pacomac
I will take a look at adding additional file formats! I don't use my software for playing video much so it's never been a priority. It may be simply a case of adding the file extension and if you have the codec installed it may work? Anyway I will look into this!
3 Apr 2011 01:30 by edef
hi i ask u about 2 months about mkv support and srt sub files please can you look on this futere please

thanks
28 Apr 2011 09:16 by pacomac
The program now supports MKV format so long as you have the correct codecs installed.
11 May 2011 09:19 by edef
wow thanks its perfect
18 May 2011 05:35 by mr.peter
Really Good Job!!!
Are you thinking in opening the source code of this? I'm sure this could be a really interesting open project.
5 Jul 2011 04:31 by Maggie
What a great rersouce this text is.

Links

Sites of Interest