Skip to content
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
src
tools
web
README
flac2mp3
flac2ogg
gtk_soepkiptng_status
k
modperl.pl
q
raw2flac
raw2ogg
soepkiptng.cgi
soepkiptng.conf.example
soepkiptng.lib
soepkiptng_add_seealso
soepkiptng_add_shoutcast
soepkiptng_console
soepkiptng_create.my
soepkiptng_delete
soepkiptng_detect_hidden_track
soepkiptng_eventd
soepkiptng_httpd
soepkiptng_mv
soepkiptng_picture
soepkiptng_say
soepkiptng_show_lyrics
soepkiptng_status
soepkiptng_sync_playlist
soepkiptng_testrand
soepkiptng_update
soepkiptng_update.my
soepkiptng_update10.my
soepkiptng_update2.my
soepkiptng_update3.my
soepkiptng_update4.my
soepkiptng_update5.my
soepkiptng_update6.my
soepkiptng_update6.pl
soepkiptng_update7.my
soepkiptng_update7.pl
soepkiptng_update8.my
soepkiptng_update9.my
soepkiptng_update_gain
soepkiptng_web.lib
soepkiptng_write_info
soepkiptngd
soepkiptngd.sw
soepkiptngd_mobile

README

                  Soepkip The Next Generation
     ----------------------------------------------------
             by Eric Lammerts <eric@lammerts.org>


Download:
---------
https://github.com/eric321/soepkiptng


Features:
---------
* file format support:
  - MP3 (including id3/id3v2 tag reading, id3v2 tag writing)
  - Ogg-Vorbis (including Vorbis comment reading/writing)
  - flac (including Vorbis comment reading/writing)
  - CD/DA (reading directly from CD, using cdparanoia)
  - wav
  - raw (headerless 44.1kHz/16bit/2ch/little-endian files)
  - Video (everything supported by MPlayer: MPEG, AVI, ASF, WMV, Quicktime,
    RealMedia and more)
  - midi/mod (using TiMidity++)
  - Shorten
  - AC3
  - MP4 (AAC, ALAC)
  - WMA & RealAudio (all formats that are supported by your mplayer)
  - Musepack (SV7 only)
* supports playing Shoutcast streams (MP3 / Ogg Vorbis)
* supports playing back in 32-bit mode
* player uses real-time scheduling and memory locking for uninterrupted music
  playback; zero silence period between two songs (very nice for consecutive
  songs of a live cd).
* song information is kept in a MySQL database, but can be written back
  to mp3 files (using ID3v2) or ogg/flac files (using vorbis comments) too.
* lyrics support; Lyrics can be entered manually or downloaded automatically
  from http://www.purelyrics.com and http://www.lyricsdomain.com.
  They can be read from and written to mp3 files using id3v2 tags.
* volume correction to avoid clipping
* plays from request queue; plays random songs if nothing is on the request
  queue
* versatile web interface:
  - supports browsing, searching, requesting songs,
    killing current song, editing song information etc.
  - very fast (thanks to mod_perl)
  - configurable look (CSS style)
  - tested with Netscape, Mozilla, Konqueror, Opera & MSIE.
* commandline interface
* partial emulation of a Music Player Daemon on port 6600
  (http://www.musicpd.org/doc/protocol/), for use with Conky
  (http://conky.sourceforge.net/)


Requirements:
-------------
* perl5
* mysql 3.22
  (3.23 recommended; 3.22 cannot do case-insensitive regexps)
* perl modules:
  - MP3::Tag
  - MPEG::MP3Info
  - CGI
  - DBI
  - DBD::mysql
  - Compress::Zlib
  - BSD::Resource (optional)
  - TermReadKey (optional)
  - CDDB_get (optional)
* programs for decoding the various sound formats:
  - mp3: madplay >= 0.15.0 (http://www.mars.org/home/rob/proj/mpeg/)
  - midi/mod: TiMidity++ (http://www.goice.co.jp/member/mo/timidity/)
  - wav, flac, ogg, ac3, aac, alac, shorten, ape: mplayer
  - wav, flac, ogg, m4a: sox (optional)
  - CD/DA: requires cdparanoia (http://www.xiph.org/paranoia/)
  - Video: requires MPlayer (http://http://www.mplayerhq.hu/)
* programs for tag reading/writing:
  - flac: metaflac
  - ogg: ogginfo, vorbiscomment

The webinterface used to run under Apache using mod_perl, but I've switched
to running as a separate webserver. The Apache method may still work, but is
now completely untested.

Perl modules can be installed directly from CPAN by starting "perl -MCPAN
-e shell" (you must answer some configuration questions if you do this for
the first time) and typing "install Some::Module".


On a Debian or Ubuntu system you can install all the necessary software with
apt-get.

Package list:
- libcompress-zlib-perl
- libdbd-mysql-perl
- libmp3-tag-perl
- libmpeg-mp3info-perl or libmp3-info-perl
- libterm-readkey-perl    (optional)
- mysql-server
- madplay                 (for mp3 support)
- mplayer
- flac                    (for flac support; >= 1.04)
- vorbis-tools            (for Ogg-Vorbis support)
- libwww-perl
- cdparanoia              (optional; for CD-DA support)
- libcddb-get-perl        (optional; for CD-DA support)


Installation:
-------------
* compile the helper applications:
  cd src; make; sudo make install
  The binaries will be placed in the 'bin' subdirectory.
* create the database:
  sudo mysql -u root < soepkiptng_create.my
* reload the grant tables:
  sudo mysqladmin reload
* copy soepkiptng.conf.example to either:
  - /etc/soepkiptng.conf
  - ~/.soepkiptng.conf
  - any file named in $SOEPKIPTNG_CONFIGFILE
  (or edit soepkiptng.lib if you want a different location)
* edit the config file to taste
* make the directory /var/local/soepkiptng and make sure
  it's writable for the user that will run soepkiptngd
* run soepkiptng_update to add songs to the database
* run soepkiptngd -d to start playing with debugging on.
  If everything works alright, start it without -d to run it in the
  background. Debugging output is then sent to
  /var/local/soepkiptng/soepkiptng.err, which is automatically rotated if
  the size reaches 64Kbyte. Make sure file permissions in
  /var/local/soepkiptng are OK. If you sometimes run soepkiptngd as root and
  sometimes as non-root you can expect problems.
* run soepkiptng_httpd -d to start the webinterface. By default it runs on
  port 8888. 
  If everything works alright, start it without -d to run it in the
  background.
* for status display through conky, put something like this in your .conkyrc:
    ${mpd_artist} - ${mpd_title} (${mpd_album}, \#${mpd_track}) ${mpd_elapsed}/${mpd_length}
  If you don't want soepkiptngd to listen on port 6600, add mpd_port=0 to
  the config file.


TODO:
-----
* write man pages for all scripts & executables
* better interface / web interface for 'see also' feature
* clean up Shoutcast support (separate table, multiple urls per name with
  automatic fallback)
* lirc support (IR remote)
* play directly from urls
* smb support (playing/updating directly from Windoze shares)
* playlists/genres
* ripping integration
* multiple soepkiptng daemons & request queues
* remote playing using esd (Enlightenment Sound Daemon), http streaming or
  similar stuff
* message input that will be played using a text-to-speech program
* user-level access control (limit access to database editing / song requests)
* improve docs
* make music format more modular; maybe support xmms plugins (well, they suck)
* silence before random songs
* fade-out/fade-in in pause/resume
* cleanup Xing VBR info detection (it's a quick hack now)
* scan VBR mp3s without Xing VBR header for length
* Ogg-Vorbis embedded songinfo support (reading/writing)
* cleanup resampling & mono->stereo conversion
* smooth transition between 2 songs (interpolation)
* synchronize update of statusfile with cdrplay
* CD-DA support: don't re-enter info into db every time you click "CD-DA"
  maybe use persistent info and cddb disc_id?




Copyright:
----------
soepkiptng is (c) copyright 2000-2010 Eric Lammerts <eric@lammerts.org>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2, as 
published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

A copy of the GNU General Public License is available on the World Wide Web
at `http://www.gnu.org/copyleft/gpl.html'.  You can also obtain it by
writing to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.

You can’t perform that action at this time.