A better deal for artists and fans

Getting started with GNU FM

This is a guide for developers who want to work on the free software project, GNU FM, which powers Libre.fm. It will give you a run down of the specifics behind Libre.fm and GNU FM, tell you how to get started and give you some ideas of things we need to improve the software for everyone.

Preamble

Libre.fm is a social music service by FooCorp. FooCorp is a small producer and promoter of free cultural works. The principals of FooCorp are Matt Lee, Rob Myers, Liam Smith, Sally Jenkinson, Chloe Phillips, Mark Cousens and Mark Stephenson. The day-to-day operations of FooCorp are carried out by Matt Lee and Rob Myers.

All the software that powers Libre.fm is free software, called GNU FM, and released under the GNU Affero General Public License version 3 (or at your option, any later version). The copyright holder of the GNU FM software is the Free Software Foundation. All GNU FM developers assign copyright to the FSF for their contributions.

GNU FM

GNU FM has two primary elements: the server, and the frontend. The server, GNUkebox (GNU Jukebox) is written in PHP and listens for media applications to report the listening habits of the user. These are submitted as simple HTTP POSTs to the server, which resides at turtle.libre.fm — this replaces post.audioscrobbler.com

For this, the user needs an account. Currently, the only way to get an account is to register in the frontend component, but as the two components should be independent services, this is missing functionality.

Speaking of the frontend, Nixtape (a pun on Mixtape, and Unix... forget it!) is also written in PHP, providing a reasonably attractive user interface to the user, allowing her to navigate among artists, albums, users and groups, and eventually tags and events.

You can help!

The first and most easy way to help Libre.fm and GNU FM is to register for an account on libre.fm and start scrobbling! If you use a client which supports Libre.fm, then you're in luck! If you don't, don't panic — most clients can be made to work!

Get the code!

We use Bazaar (bzr) for our version control system. You may need to install this before you can check out the code:

bzr branch http://bzr.savannah.nongnu.org/r/librefm/trunk

This will give you the latest code checkout, too. If you don't have Bazaar, you can download a copy now.