Jeff Sexton

Friday, November 21, 2008

House Music - UPnP and The PS3

A 60GB version of the PlayStation 3.Image via WikipediaThe Sony Play station 3 is a Digital Living Network Alliance (DLNA) compatible device. What this means, in theory, is that I can use Universal Plug and Play (UPnP) to allow my PS3 to discover a DLNA server in the other room and play MP3 files from that server.

I've been experimenting with various ways of getting this to work with the broader goal of building a better digital music system for the house than I have had in the past. Results have been mixed.

First up, fuppes.

Fuppes is a DLNA server that runs on Linux. Downloading, building and installing fuppes is easy - the usual "./configure", "make" and "make install". Running fuppes at the command once, and then quitting right away is an easy way to setup it's basic files. With that done the file ~/.fuppes/fuppes.cfg will exist. Edit this XML file:

1) Add a shared directory with a few MP3 files in it.

2) Enable the PS3 support.

3) Edit the network section, if needed, the port, to set the Ethernet device to use and the IP addresses allowed to connect (this can all be left to default if you have a simple environment).

Now run fuppes again. Hit 'r' to rebuild the database. This can also be done from the web interface. The web interface is at http://yourhost:5080, unless you changed the port.

The DLNA server is now running. Over at the PS3, I found it discovered the server right away without my having to do anything. The new server was listed under media servers in the menus. I was also able to successful browse into the server from the PS3. The directory structure on my server was reflected in the PS3 menu. It played a file fine also.

Although encouraging this setup isn't all that great. I need playlist support, for one thing. The PS3 has playlist support of its own, but only for files on it's hard drive.

Fuppes can share m3u and pls files. I downloaded fapg to make some quick playlist files (I don't typically use playlist files, my old system requested one song at a time from a server I wrote myself). To build fapg, I also needed to download and install uriparser. Both where the typical "./configure", "make" and "make install". But to run fapg I also had to add /usr/local/lib to LB_LIBRARY_PATH:

typeset -x LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

Remember that something like this has to go in the environment permanently somehow if you want to use the dependent tool all the time.

The good news is that fapg worked fine for making a quick version both types of playlists for all the files in my sample directory, recursively. Also, the fuppes status web page showed the playlist objects as correctly discovered.

The bad news is that the PS3 could not see the playlist files. In addition, the virtual folder system fuppes provides to access files by meta data simply doesn't work - the PS3 does not show the virtual folder (note that you have to copy the vfolder configuration file to ~/.fuppes manually (this is described in the fuppes wiki)). In fact, no meta data is available at the PS3 at all. It only browser by directory and file name.

At this time, further development of fuppes is apparently stalled.

Although it works as far as it goes, I have to try some other approaches.

Some other things I noticed... The PS3 menus can copy a directory of files off the fuppes server onto the local drive. Once there, a PS3 playlist could be created I suppose. Also, I noticed that although the PS3 will only start playing when I select a specific file, once that song has ended it does go on to play everything in that directory. I suppose I could, at the server, write scripts that made directories full of symbolic links to files, serve that directory and call it a playlist. Not a great solution...



Reblog this post [with Zemanta]

Post a Comment
3D modeling Advertising Air Canada Airline Alfa Romeo Spider Touring Gran Sport Analog signal Android Anomalies and Alternative Science Apache Apollo Astoria Augmented reality Aurora Famous Fighters auto-awesome Automobile Autos Barack Obama Batman Beards Beer Bell System Berkshire Hathaway Bigfoot Bird Toys Birds Blogger Books Build Management Business and Economy Business Process Execution Language Byte-order mark Canadian Carrot Cats Christmas Civil Defense CNN Cockatiels Collections Crows Dear Jane Debian Diabetes Digital Living Network Alliance Digital television Disney Doll House Dow Jones Industrial Average Duesenburg SJ Roadster Durham University E-mail address ebauche Economics EJB Energy development Enterprise JavaBean ESP Facebook Fedora Filesharing Finance Ford Fossil fuel Garfield James Abram Garfield Minus Garfield Glassfish Global warming Golden Arches Goofy Google Google Buzz Google Docs Google Lively Google Photos Google Reader Google Wave Google+ Greenhouse gas Half-Life 2 Helbros High-definition television History Hybrid electric vehicle IBM Inner city Instagram Insulin Investing Irony J.C. Penny Jane Austen Java Java Architecture for XML Binding JDBC Jeff's! Jim Davis joe the plumber John McCain Karma Kay Thompson Kermit the Frog Kids and Teens LA Auto Show Larry King Laser Logging Lowry Sexton Mark Cuban Market trends McDonald Meier and Frank Microsoft Microsoft Windows Models Monkey monsters Moon MOUNT HOOD Music Music industry Muxtape MySQL NetBeans Netflix Nintendo Nissan Cube Norm Coleman Nuclear fallout Nuclear warfare Office Depot Open ESB Oracle Corporation Pacific Ocean Packard Boattail Pearl District Pearl District Portland Oregon Philip K Dick photography PlayStation 3 Pocher Pokémon HeartGold and SoulSilver Politics Portal Portland Portland Development Commission Presidents Pride and Prejudice Programming Projects Radio Recording Industry Association of America Renewable energy RIAA Robot Chicken Rock-paper-scissors Sarcasm Science fiction film Serbia Service-oriented architecture Shopping Slide Rule Social Security Social Studies Society6 Spirit of St. Louis SQL Stanford Hospital Star Wars Starbucks Stock market Strip search Sun Microsystems T-Mobile TechCrunch Technical ThinkGeek Toaster Total Recall Transportation Security Administration Unicode United States United States Department of Homeland Security Universal Plug and Play Unknown Primates Vegetable garden Video game Vintage Images Vintage Vintage! Virtual world Volvo C70 Wall Street Warren Buffett watches We Can Remember It for You Wholesale Web service Web Services Description Language Wii Windows 7 Windows Phone 7 Windows Vista Windows XP X-Files X-ray vision XML XML Schema YouTube Yugo Zima