Skip to content

empeg/squash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Releases

No releases published

Packages

No packages published