web/touch screen front end?

Apr 6, 2010 at 10:53 PM

Hello All

I've just put together an HTPC and have got a little 7inch USB LCD (mimo UM740). I'd like to put together a small app, that enables the family to play music from WMC without having to turn on the TV. After a few days surfing, I've come across this project, and it seems to be an ideal starting point to access MCE remotely.

My thoughts are to do this mini-remote controller as a HTML5/Javascript app, mainly because I've been doing that sort of stuff recently anyway. I'm also comfortable with .net/C#.

There has been so much good work done in this project already, I feel a bit reticent in describing my thoughts:

  • "fat fingers" HTML5 front end for accessing the music library
  • ideally have JSON output
  • ideally have a REST style HTTP interface, i.e. use "/" paths to specify commands and arguments where needed are ?foo=bar&...

I'm happy to start hacking away on all of this, but wanted to find out if anyone else is working on any of these ideas already (I notice a few people want the JSON output too). It would make sense to collaborate.



PS System is Win 7 x64 based

Apr 7, 2010 at 1:00 AM
Edited Apr 7, 2010 at 1:06 AM

This is more or less exactly how I got involved with this project to start with.  I wanted to be able to control my media pc from my home automation project. I was (am still) using Power Home to handle the common automation tasks, but I needed another way to control music.

In my setup the page itself is hosted by PowerHome, but the controls are links into the vmc http server.

Originally I had a couple Nokia 770 palm computers mounted on the wall and the controlling web page was written for Opera. More recently I've moved to an iPod touch for control. I'd be willing to share my code, but it's so customized and PowerHome centric that it will take me a while to clean it up for generic use... and life it pretty busy right now.

Currently the music part of my controller allows Play or Queue from each level (Genre > Artist > Album > track) and recently played. So I can go to a list of artists, click on an Artist and choose Play All or Browse Albums >  click on an Album and choose Play Album or Browse Songs > click on a song and chose Play or Add to Queue.

The web app driving all this is a jqTouch based web page. If I were you, I'd probably look at running a full screen instance of Chrome (nice html5 support) on your monitor and just use the built in http server.

The parts you have to put together:

The artist / album / track browser: If you take a look at the included samples most of the work is done with the artist_list, and artist_browse custom formats (take a look at the music.template file - ). Note that I have not played around at all with the Win7 or x64 code so I'm not sure what the state of those branches are - you might have to pick up my latest check ins (especially musicCmd.cs). In the install you would hit this page with a url like: http://server:40510/music-list-details%20template:artist_list 

The transport control:  you can take a look at one of my other posts to see an iphone remote replacement - even if you are not using a webkit browser you can take a look at how the commands are sent. See post: iPhone / iPod Touch remote

Now Playing: You probably want some fancy display of what's currently playing. There are a number of posts on this as well. Take a look at the mediametadata command for a starter. The problem here is figuring out how you want to push the data out to the web page. In the end I just poll every 10 seconds - it works pretty well.

Here's a progression of screens - keep in mind that this is a work in progress... One of these days I will distill these down and release a music iphone web app to demo this: Music Screens



May 7, 2010 at 4:17 PM

I put together a basic version of what I want a few weeks ago, this zip file has got the HTML etc. in it. I ended up putting a PHP wrapper in so I could get JSON data into Javascript.

I started looking at JSON'ifying the web server in VMCController, but decided that the VMCController code base wasn't really right for doing this. So, I've ended up putting together a much more simple add in, that is based on an existing open-source C# web server and rolling my own code. A page will appear here in a day or so.

Thanks for the inspiration guys!