theory - web based MPD client




theory 0.1.11 (2010-06-27)
source hosted on github


Theory requires Python 2.4+, Pylons 0.9.7, and Python-MPD. There is a handy installation script included that will install a Python virtual environment including these libraries without clobbering your system Python install. The installation script requires setuptools which seems to be standard with most Linux distributions.
  1. First, set up MPD!
  2. unpack the distribution file: tar jxvf theory-<version>.tar.bz2
  3. enter the directory and run the installation script ./
  4. go make a sandwich
  5. (users upgrading from a previous version might want to copy their theory.ini file to the new install to keep their config, including saved streams)
  6. after the installation is complete, tweak the settings in server.ini if you wish, otherwise run theory by using the start script ./ start.
The default port is 9099 so it can be accessed via http://localhost:9099/ . To change the port, edit the server.ini file.

theory will ask for the host/port of your MPD server


if you're upgrading from a previous version of theory, you might want to copy your theory.ini over from the old installation directory. Server info, Amazon AWS key, and saved streams are stored in that file. You should also consider copying the downloaded album art stored in theory-OLDVERSION/theory/public/img/art/ to avoid re-downloading all of those images.

IE and Safari are not currently supported since I don't have easy access to them for testing. All of my testing was completed on Firefox 3.5+ on Ubuntu Linux.

Windows users: theory does work on Windows, but it's more difficult to install. You have to use Python 2.5 since simplejson doesn't work on Python 2.6/Windows. Theory's installation and start/stop scripts do not work either. Read the installation procedure for Setuptools and Pylons on Windows and then start theory by opening a cmd prompt and from the theory directory type: \Python25\Scripts\paster serve server.ini I would happily add a .bat file to the distribution if someone writes one.