What Jukebox?
   Tam (Track Attribute Manager) jukebox is a system that randomly picks
   songs to play, and considers
   every track you have to be in every playlist until you say otherwise.
   Then it plays them with a relative frequency depending on how much
   you think they suck. If a song sucks, you push the button, and the
   jukebox learns a valuable lesson about your opinion.
  
  
   People who need pictures should skip down to the 
   
screenshots.
  
   The initial user interface concept had just one button, called the
   Suck button. While this was a good concept, it was missing several
   things. Sometimes a song does not suck, but is inappropriate for your
   current mood. Other times, you may not be the one listening. So, the
   concept of mood and user were added. 
  
  
   And then it was realized that some
   of these moods were actually not moods, for example "rockin" or 
   "Downtempo". And you might wish to combine them. So, while not yet
   visible in the user interface, they are stored in the database as
   various track attributes. And so, in fire and hot water, the 
   Track Attribute Manager engine is born.
  
  
   
System Requirements
   If you have a modern linux, you can probably run it. If you run
   windows, you will still have difficulty. It requires Mono and
   (at this time) ESound. At one point, work was begun on a Windows
   version of the audio output system, but it was a pain, and we
   eagerly await completion of the overambitious and apparently 
   deadlocked GStreamer project.
  
  
   Hardware-wise, it will run on a Pentium 3. However, you'll have to
   turn off the more advanced leveling features, and your machine will
   work pretty hard. 
  
  
   Big Plans
   
   Oh, you know how every project seems to say "This project
   aims to solve every possible user need and also
   contains a dynamically scalable automobile trading system, recipe
   manager, and open source replacement for Google and eBay." 
   I'm not quite that ambitious, but some of these ideas might be:
   
     - Should calculate or use unique song ID's based on bitzi, the
       freedb CD signatures, or some other standard, so that songs
       will retain their information when moved.
     
- Should be some way to trade song information with peers. 
     
- When used as a streaming radio station (this works!), it should
       allow multiple users to log in. Song priorities can then be calculated
       based on the opinions of various users, scaled according to how
       important they are. Some listeners are more equal than others.
     
- Support for Ogg/Vorbis/FLAC. mp3 is so 1999.
   
 
  
   Downloads
   The code is being actively hacked at the moment. Any releases will be
   made on the 
   
SourceForge 
     download page when they are available. The code is always available
   from SVN.
  
 
  
   The Inevitable Screenshots
   The main page looks like this. If you hit the big red button, the song
   is reclassified as very sucky, and you will almost certainly never
   hear it again, no matter what your mood. This is very useful with a 
   new, untrained installation.
   
 
   
   Here is the main window with (future and past) history expanded. 
   You can see here that the Beastie Boys' 
Girls was 
   rejected as not quite appropriate for the "Steady Motion" mood, while
   U2's 
Exit just sucked a little too much. The threshold is randomly
   calculated for each song between 10 and 90%. So, if a song sucks 
   by 98%, you will NEVER hear it. (This may be adjustable in the future.)
    
   I admit it: I don't think U2 is "all that". It doesn't mean
   I don't like them. Really. Note that Dieselboy's album here is incorrectly
   tagged, as the artist is not correctly stored in the track's artist
   field. 
   
   
 
   
   The mood selection page in all its glory
   
