para_server (obligatory)
-----------------------
-para_server streams binary audio data (mp3/ogg/m4a files) over local
-and/or remote networks. It listens on a tcp port and accepts commands
-such as play, stop, pause, next from authenticated clients. However,
-there are many more commands.
+para_server streams binary audio data (mp3/oggvorbis/m4a files)
+over local and/or remote networks. It listens on a tcp port and
+accepts commands such as play, stop, pause, next from authenticated
+clients. However, there are many more commands.
-It supports three builtin streaming methods (senders): http, dccp,
+It supports three builtin network streaming methods (senders): http, dccp,
or rtp.
-The audio stream may be sent over the network by three different
-senders:
-
* The http sender is recommended for public streams that can be played
by any player like mpg123, xmms, itunes, winamp...
* The dccp sender is experimental and requires kernel support for the
rather new datagram congestion control protocol.
- * The ortp sender is recommended for LAN streaming and for private
- streams that require authentication.
+ * The ortp sender is recommended for multicast LAN streaming
It is possible to activate more than one sender simultaneously.
-para_server needs an audio file selector to work, mainly to determine
-which audio file to stream next. The following three selectors are
-built in:
+The built-in audio file selector of paraslash is used to manage your
+audio files. It maintains statistics on the usage of all available audio
+files such as last played time, and the number of times each file was
+selected. Its features include
+
+ * attributes: Allow fine-grained audio file selection.
+
+ * image table. For storage of e.g. album cover art.
- * The random selector chooses audio files out of a given directory
- by random
+ * lyrics table. For storage of lyrics.
- * The playlist selector chooses files from a specified playlist
+ * playlist table. Stores arbitrary many playlists.
- * The (optional) mysql selector is more involved. It connects
- to a mysql server which holds information on your audio files
- and maintains statistics on the available audio files. Audio
- file selection works by sending a user-defined sql-query
- to the mysql server. This allows rather sophisticated
- configurations and is explained in detail in README.mysql.
+ * mood mode. Audio file selection works by spcifying mood
+ methods involving attributes, pattern matching for file names
+ and more. This allows rather sophisticated configurations
+ and is explained in more detail in INSTALL.
-It is possible to switch between all supported selectors at any time.
+ * rename detection. If files are moved or renamed, afs will
+ recognioze them despite of this change.
Despite of all these features, paraslash is lightweight. The
stripped binary of para_server with all its features compiled in
-(mysql/random/playlist selector, mp3/ogg/aac support, http/dccp/ortp
-support) is about 120K on i386 under Linux. para_audiod (see below)
-is even smaller.
+mp3/ogg/aac support, http/dccp/ortp support) is about 150K on i386
+under Linux. para_audiod (see below) is even smaller.
------------------------
para_client (obligatory)
------------------------
+------------------------
The client program to connect to para_server. paraslash commands
are sent to para_server and the response is dumped to stdout. This
All connections between para_server and para_client are encrypted by
default. For each user of paraslash you must create a public/secret
-key pair for authentication. The (authenticated) connection is crypted
+key pair for authentication. The (authenticated) connection is encrypted
with a symmetric rc4 session key.
--------------------
+--------------------
para_recv (optional)
--------------------
+--------------------
A command line http/dccp/rtp stream grabber. The http mode of this tool
can be used to receive date from any http streaming source.
----------------------
+----------------------
para_filter (optional)
----------------------
+----------------------
A filter program that converts from stdin and writes to stdout. It
is completely independent from the rest of paraslash, so it might be
useful also for different purposes.
para_filter combines several decoders (mp3, oggvorbis, aac) and a
-volume normalzer. New filters can be added easily due to the modular
+volume normalizer New filters can be added easily due to the modular
design. If more than one filter is specified, the given filters
are 'piped' together in-memory, i.e. without calling any of the
read(2)/write(2)/select(2) etc. functions.
-----------------------
+-----------------------
para_write (obligatory)
-----------------------
+-----------------------
A modular audio stream writer. It supports a simple file writer
-output plugin and optional wav/raw players for alsa (linux-only,
+output plug-in and optional wav/raw players for alsa (linux-only,
Debian package: libasound2-dev) and Mac OS. para_write can also be
used as a stand-alone wav or raw audio player.
The local daemon that collects information from para_server.
-It runs on the client side and connects to para_server. The audio
-stream is read from the network and sent through any of paraslash's
-filters (decoder, volume normalizer,...). The resulting stream is
-written to an output plugin (writer), e.g. the alsa writer on linux
-systems. It is possible to capture the stream at any position in the
-filter chain.
+It runs on the client side and connects to para_server. The audio stream is
+read from the network and sent through any of paraslash's filters (decoder,
+volume normalizer). The resulting stream is written to an output plug-in
+(writer), e.g. the alsa writer on linux systems. It is possible to capture the
+stream at any position in the filter chain.
para_audiod starts an appropriate receiver, filter and player as soon as
para_server announces the availability (and the type) of an audio stream.
key-bindings for the most common commands and new key-bindings can
be added easily.
------------------------
-para_sdl_gui (optional)
------------------------
-
-SDL-based gui. Similar to para_gui but presents its output in an X
-window (fullscreen mode is also available) and can display jpg images
-on a per song basis. para_sdl_gui provides an input prompt to enter
-arbitrary commands. However, it can also be used non-interactively
-(e.g. as a screen saver) via the -i switch.
-
--------------------------------------------------------------------------
-para_krell (optional, only useful in conjunction with the mysql selector)
--------------------------------------------------------------------------
-
-A plugin for gkrellm which shows small pictures of the current song. It
-allows you to launch 27 different commands by clicking in different
-areas of its picture (9 small squares x 3 mouse buttons).
-
--------------------
para_fade (optional)
--------------------
A (Linux-only) alarm clock and volume-fader.
--------------------------------------------------------------------------
-para_dbadm (optional, only useful in conjunction with the mysql selector)
--------------------------------------------------------------------------
-
-Very simple curses-based frontend which uses libmenu. Useful for
-quickly changing the attributes of the current song (e.g. from para_gui
-as an external command).
-
---------------------------------------------------------------------------
-para_slider (optional, only useful in conjunction with the mysql selector)
---------------------------------------------------------------------------
-
-A small X application which shows a scrollbar for each attribute
-defined in the mysql database. It creates a stream definition from
-the values of the scrollbars. This allows to smoothly change the mood
-of the given stream without any file editing.
-
--------------------------
bash_completion (optional)
--------------------------
- gcc, the gnu compiler collection (shipped with distro): gcc-3.3
or newer is required.
+ - gnu make (shipped with disto, might be called gmake)
+ - bash
- openssl (needed by server, client): usually shipped with
distro, but you might have to install the "development package"
(called libssl-dev on debian systems) as well:
http://www.openssl.org/
- software mixing, e.g. ALSA and the direct mixing plugin (dmix)
-If you want to use the mysql-based audio file selector, you also need
-
- - mysql-server
- - mysql-client
- - libmysqlclient
-
-These are usually shipped with the distro but probably not installed
-by default.
-
The mp3 decoder of para_filter is based on libmad: If you prefer to
use the libmad package provided by your distributor, make sure to
install the corresponding development package as well. Otherwise,
If you intend to use the optional ortp streamer, you'll need libortp:
http://www.linphone.org/ortp/
-For the optional SDL-based gui, the following packages must be installed:
-
- - X (usually shipped with distro): http://www.x.org/
- - libSDL (usually shipped with distro): http://www.libsdl.org/index.php
- - SDL_image: http://www.libsdl.org/projects/SDL_image/
-
-For para_slider, the zero memory widget library is neccessary:
-http://www710.univ-lyon1.fr/~exco/ZMW/
-
-Finally, para_krell needs
-
- - gtk2: http://www.gtk.org/
- - gkrellm2: http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html
-
-------
LICENSE
-------