SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Sponsored Links

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

squash is a music player.

squash is the best music player. Specifically, squash will ensure you do not waste valuable time in order to listen to your music.

The player accomplishes this by automatically picking good music more often than bad music. It also will not play the same song over and over again. Lastly, squash will decide what is a good and bad song simply by whether or not you skip the song it chooses for you.

The result is a perfect background music player. It's like a radio station that will tune itself automatically to your listening preferences, but still provide the variety you need to stay interested.

Features

Automatically decides songs to play.
Picks better songs more frequently than worse songs. Decides what is better and worse automatically. Avoids picking the same song repeatedly. Cool (text) graphical analyzer.
Standard meta information (Artist, etc.) stored in separate file*. Statistics meta information (for picking songs) also stored in separate file*.
FIFO control file, for external control (for example, joysticks). Ported for empeg devices (a StrongARM based car stereo) as well as the regular linux PC.

Future Features:
Allow selection of what songs the player picks from (rather than the entire collection).

  • Reading can be done directly so you do not have to store this separate file. Also, the files may be stored in separate directories. Last, you may create this separate file automatically at player start up or manually with a separate script.

Some technical details:

squash currently only runs on Linux platforms. Other GNU/Unix platforms may require minimum porting. Libraries required are ncurses (for the display), pthreads (for threading), fftw (for the spectrum analyzer), glibc (for lots of things), libmad (for mp3 playback), id3lib (for reading id3v2/mp3 tags), libvorbisfile (for ogg playback) and libao (for sound support).

Support for tremor (libivorbisfile) the integer only ogg decoder is available, but not enabled by default.

Support for removal of fftw and id3lib libraries. But spectrum and id3v2/mp3 tag support, respectively, will also be removed.

Support for removal of ncurses, generally in favor of using the empeg's LCD screen.

To compile squash just run 'make'. There are some configuration options, though specifying them is currently clunky:

EMPEG               turn on and off various settings to allow squash
                    to run on an empeg device, but please read the
                    doc/empeg section first before trying to use squash
                    on the empeg.
EMPEG_DSP           use empeg dsp directly instead of libao
USE_MAGIC           if filename doesn't end in a proper extension,
                    try reading the magic bytes at the front of the
                    file to determine file type.
NO_NCURSES          Turn off the ncurses display.  This will make
                    squash headless on the PC (controled only by
                    the control fifo).
NO_FFTW             turn off spectrum (needs fftw, the fourier
                    transform library)
NO_VORBIS_COMMENT   turn off ability to read vorbis comments directly
                    (note you still need vorbisfile to play ogg files)
NO_ID3LIB           turn off ability to read id3v2 comments directly
DEBUG               turn on debugging
LOCK_DEBUG          turn on lock debugging (also enables DEBUG)
INPUT_DEBUG         turn on input debugging (also enables DEBUG)
TREMOR              turn on tremor support

To specify an option run 'DEBUG=1 make' instead of just 'make'.

Please remember to run make clean before using a new set of options.

If you are new to compiling software, or just forgot: remember to install both the library package (such as libmad0), -and- the library development package (such as libmad0-dev).

Installation

Please see the doc/INSTALL file for details. squash cannot just be run. You must at least create a configuration file to specify where your music is. Additionally, you may want to run some scripts first to extract meta information. However, you do not have to perform this step since squash is capable of extracting this information natively.

Squash is written by Adam Luter, copyright 2003. Thanks for John Preston for support, advice, computer usage, caffeine and a good bit of the ncurses interface.

Contact the author: luterac@auburn.edu, luterac@bellsouth.net


Sponsored Links

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.