X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=README;h=3308d0b3f3f0cc45c83af7ca218688c39e3b34d0;hb=9d3d1339845435d5d7bb44b858ea6b3a94ce2cb9;hp=b51a8d39cd8ca153c7996f8a6e9dd94f41bd2b03;hpb=be6da17752ba97c519e313d1d01cca7eed40671a;p=paraslash.git
diff --git a/README b/README
index b51a8d39..3308d0b3 100644
--- a/README
+++ b/README
@@ -1,221 +1,182 @@
-Paraslash README
-================
+README
+======
+
+----
Paraslash is an acronym for
- Play, archive, rate and stream large audio sets happily
+_Play, archive, rate and stream large audio sets happily_
It contains the following programs:
-- para_server (obligatory):
-
- This server listens on a tcp port and accepts commands such as
- play, stop, pause, next. However, there are many more commands.
-
- For audio streaming, at least one sender must be activated.
- At the moment, paraslash contains two internal senders:
-
- The http sender is recommended for public streams that can
- be played by any player like mpg123, xmms, winamp...
-
- The ortp sender is recommended for LAN streaming and for
- private streams that require authentication.
-
- It is possible to activate more than one sender simultaneously.
- All senders have the same set of commands that allow to
- control the access permissions of the stream.
-
- para_server needs a "database tool" to work, mainly to
- determine which song to stream next. There are three such
- tools available: random, plm and mysql. The former chooses
- audio files randomly and plm, the playlist manager, can handle
- playlists. Both are always supported.
-
- The (optional) mysql database tool connects to a mysql server
- which holds information on your audio files. It has several
- unusual features, see README.mysql for details.
-
-- para_client (obligatory):
-
- The client program to connect to para_server.
-
-- para_recv (optional)
-
- A command line http/ortp stream grabber.
-
-- para_filter (optional)
-
- An filter program that converts from stdin and writes to
- stdout. This one is independent from the rest of paraslash,
- so it might be useful also for different purposes.
-
- para_filter combines an mp3 decoder an oggvorbis decoder
- and a volume normalzer. 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_play (optional)
-
- A small wav/raw player for alsa.
- Debian package: libasound2-dev
-
-- para_audiod (optional, but recommended):
-
- The local daemon that starts playback and collects information
- from para_server to be forwarded to local clients.
-
- para_audiod reads the audio stream from the network if
- para_server indicates that there is a stream available. It may
- be sent through any of the supported filters (see para_filter
- above) before the result is fed to the output software
- (default: para_play) which must be capable of reading from
- stdin, but is not restricted otherwise.
-
-- para_audioc (optional, but recommended)
-
- A small client that can talk to para_audiod. Used to control
- para_audiod and to receive status info. It can also be used to
- grab the stream at any point in the filter chain. para_audioc
- is needed by para_gui, para_sdl_gui and para_krell, see below.
-
-- para_gui (optional, but recommended):
-
- Themable ncurses-based gui. It calls para_audioc and presents
- the obtained information in an ncurses window. para_gui
- provides 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 dbtool):
+-----------
+para_server
+-----------
- 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_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.
-- para_fade (optional):
+It supports three built-in network streaming methods (senders): http, dccp,
+or rtp.
- A (Linux-only) alarm clock and volume-fader.
+ * The http sender is recommended for public streams that can be played
+ by any player like mpg123, xmms, itunes, winamp...
-- para_dbadm (optional, only useful in conjunction with the mysql dbtool):
+ * The dccp sender requires kernel support for the datagram congestion
+ control protocol.
- 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).
+ * The ortp sender is recommended for multicast LAN streaming.
-- para_slider (optional, only useful in conjunction with the mysql dbtool):
+It is possible to activate more than one sender simultaneously.
- 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.
+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.
-- bash_completion (optional):
+Its features include
- A small bash script for inclusion in ~/.bashrc. It gives you
- command line completion for some paraslash commands.
+ * attributes. Allow fine-grained audio file selection.
-REQUIREMENTS:
-~~~~~~~~~~~~~
-In any case you need
+ * image table. For storing e.g. album cover art.
- - gcc, the gnu compiler collection (shipped with distro): gcc-3
- or newer is prefered, but gcc-2.95 is still supported. Note
- that gcc-2.95 may spit out many warnings like unused function
- parameters and missing initializers. These are all harmless
- and may be ignored.
+ * lyrics table. For storing lyrics.
- - openssl (needed by server, client): usually shipped with
- distro, but you might have to install the "development"
- package as well
+ * playlist table. Stores arbitrary many playlists for later use.
- http://www.openssl.org/
+ * mood mode. Audio file selection works by specifying mood
+ methods involving attributes, pattern matching for file names
+ and more. This allows rather sophisticated configurations
+ and is explained in more detail in
+<<
+ README.afs
+>>
- - software mixing, e.g. ALSA and the direct mixing plugin (dmix)
+ * rename detection. If files are moved or renamed, afs will
+ recognize them despite of this change.
-If you want to use the mysql-based dbtool (recommended), you also need
+Despite of all these features, paraslash is lightweight. The
+stripped binary of para_server with all its features compiled in
+mp3/ogg/aac support, http/dccp/ortp support) is about 160K on i386
+under Linux. para_audiod (see below) is even smaller.
- - mysql-server
- - mysql-client
- - libmysqlclient
+-----------
+para_client
+-----------
-These are usually shipped with the distro but probably not installed
-by default.
+The client program to connect to para_server. paraslash commands
+are sent to para_server and the response is dumped to stdout. This
+can be used by any scripting language to produce user interfaces with
+little programming effort.
-The mp3 decoder of para_filter is based on libmad:
+All connections between para_server and para_client are encrypted by
+default. For each user of paraslash you must create a public/secret
+RSA key pair for authentication. The authenticated connection is
+encrypted with a symmetric rc4 session key.
- http://www.underbit.com/products/mad/
+---------
+para_recv
+---------
-If you prefer to use the libmad package provided by your distributor,
-make sure to install the corresponding development package as well.
+A command line http/dccp/ortp stream grabber. The http mode of this
+tool can be used to receive data from any http streaming source.
-If you want to stream ogg vorbis files you'll need:
+-----------
+para_filter
+-----------
- - libogg, libvorbis, libvorbisfile, and a command line ogg vorbis
- player, e.g. para_filter or ogg123.
+A filter program that converts from stdin and writes to stdout.
- http://www.xiph.org/downloads/
+para_filter combines several decoders (mp3, oggvorbis, aac) and a
+volume normalizer. New filters can be added easily. It is possible
+to "chain" any number of filters, like UNIX pipes.
-Debian packages: libogg-dev libvorbis-dev
+para_filter does not depend on other parts of paraslash, so it can
+be used as a stand-alone command line tool for audio decoding and
+volume normalization.
-Note that para_audiod still works even if neither mp3 nor ogg support
-was compiled in. You'll have to use the --no_default_filters option
-in this case (and e.g. "mpg123 -" as the stream write command).
+--------
+para_afh
+--------
-If you intend to use the optional ortp streamer:
+A small stand-alone program that prints tech info about the given
+audio file to stdout. It can be instructed to print a "chunk table",
+an array of offsets within the audio file or to write the content of
+the audio file in complete chunks 'just in time'.
- - libortp
+This allows third-party streaming software that is unaware of
+the particular audio format to send complete frames in real
+time. Currently, mp3, ogg vorbis and aac are supported.
- http://www.linphone.org/ortp/
+----------
+para_write
+----------
+A modular audio stream writer. It supports a simple file writer
+output plug-in and optional wav/raw players for ALSA (Linux) and for
+coreaudio (Mac OS). para_write can also be used as a stand-alone wav
+or raw audio player.
-For the optional SDL-based gui, the following packages must be installed:
+-----------
+para_audiod
+-----------
- - X (usually shipped with distro)
+The local daemon that collects information from para_server.
- http://www.x.org/
+It runs on the client side and connects to para_server. As soon as
+para_server announces the availability of an audio stream, para_audiod
+starts an appropriate receiver, any number of filters and a paraslash
+writer to play the stream. It is possible to capture the stream at
+any position in the filter chain.
- - libSDL (usually shipped with distro)
+Moreover, para_audiod listens on a local socket and sends status
+information about para_server and para_audiod to local clients on
+request. Access via this local socket may be restricted by using Unix
+socket credentials, if available.
- http://www.libsdl.org/index.php
+-----------
+para_audioc
+-----------
- - SDL_image
+The client program which talks to para_audiod. Used to control
+para_audiod, to receive status info, or to grab the stream at any
+point in the filter chain.
- http://www.libsdl.org/projects/SDL_image/
+para_audioc (hence para_audiod) is needed by para_gui see below.
-For para_slider, the zero memory widget library is neccessary. Get it at
+--------
+para_gui
+--------
- http://www710.univ-lyon1.fr/~exco/ZMW/
+Themable ncurses-based gui. It calls para_audioc and presents
+the obtained information in an ncurses window. para_gui provides
+key-bindings for the most common commands and new key-bindings can
+be added easily.
-Finally, para_krell needs
+---------
+para_fade
+---------
- - gtk2
+A (Linux-only) alarm clock and volume-fader.
- http://www.gtk.org/
+---------------
+bash_completion
+---------------
- - gkrellm2
+A small bash script for inclusion in ~/.bashrc. It gives you command
+line completion for some paraslash commands.
- http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html
+-------
+LICENSE
+-------
-LICENSE:
-~~~~~~~~
-Distribution of paraslash is covered by the GNU GPL. See file COPYING.
+Distribution of paraslash is covered by the GNU GPL, version 2. See file
+COPYING.
-LIMITATIONS:
-~~~~~~~~~~~~
-The mysql database tool assumes that the basenames of your audio files
-are unique. If this is not the case, don't use this database tool,
-rename your files, or create your own database tool.
+----------
+THE AUTHOR
+----------
-THE AUTHOR:
-~~~~~~~~~~~
-Author: Andre Noll
+Andre Noll
Comments and bug reports are welcome.