Looking at iTunes • Rating, Feedback • Search, Categorization • Collaboration • Party Shuffle • Smart Playlists • AirTunes • iTunes is smart and loaded • …and so are its clones
iTunes shortcomings • AirTunes can play only one channel • Party Shuffle can’t be easily configured • iTunes players can’t network • iTunes can’t be easily extended • Smart Playlists can only take you so far • No remote capabilities
In addition • What if you could play music from any computer on any computer? • What if you could train an agent to select music to play for you? • What if you could have a player that could be used to make you feel like a radio DJ – only without the work?
Our Solution: MuseBox • Muses: Agents that pick your music • Channels:As many as you like – anywhere you like. • Interface:Thin client.
How it works: • User creates a channel on a server • User assigns an output to the channel • User assigns a muse to the channel • The muse picks a song for the channel to play • The channel plays that song on the assigned audio output.
Muses • A muse is a channel’s source of inspiration. • DirectoryMuse is inspired by a directory • MySQLMuse retrieves song info from a DB • RequestTakerMuse waits to hear from user • MasterMuse can delegate work to all the muses according to a ranking system (and whatever muse is willing to inspire)
Outputs Local Outputs • Java Media Framework (all platforms) • Delegation to mpg123 (nix) Streaming Outputs • Icecast (nix to all platforms, multiclient) • JMF/RTP (all, single or multiclient) • Faux-Stream [download, play, delete] (all, single)
Interface • Built-in implementation of HTTP1.0 • Entirely in HTML • Plain interface gets created by objects • Advanced interface uses HTTP.Template (java port of HTTP::Template) • XML interface might connect real GUIs(much like mldonkey works) • Can you really have an mp3 player in HTML?
http://lamp.mit.edu/ Multichannel - Multiuser HTML Driven “Analog Streaming”
Resources Open Source • Java Media Framework • MySQL server, MySQL JDBC connectors • ID3Reader (www.ueberdosis.de) • Other (e.g. Tray Icon, HTML.Template) Technologies • JDBC, XML, TCP/IP, Multicasting, Web Services