X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=README;h=421e03f50a5012ab6889aa328ef790364fd1e653;hp=02d647a9306cf163f441a816794d00fcf82fd90a;hb=219c5d6f1199405848c5de6c1a4c792c57fa1a40;hpb=a5937a0eca5ada5cb2332dbce676b327aa9e37ee diff --git a/README b/README index 02d647a9..421e03f5 100644 --- a/README +++ b/README @@ -8,208 +8,157 @@ _Play, archive, rate and stream large audio sets happily_ It contains the following programs: ------------------------ -para_server (obligatory) ------------------------ +----------- +para_server +----------- -This server supports audio streaming of mp3, ogg vorbis and aac files. -It listens on a tcp port and accepts commands such as play, stop, -pause, next from authenticated clients. +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. -The audio stream may be sent over the network by three different -senders: +It supports three builtin network streaming methods (senders): http, dccp, +or rtp. -The http sender is recommended for public streams that can be played -by any player like mpg123, xmms, winamp... + * 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 dccp sender 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 song to stream next. There are three selectors available: -random, playlist and mysql. The former chooses audio files randomly -and playlist can handle, well, playlists. Both are always supported. +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. -The optional mysql selector connects to a mysql server which holds -information on your audio files. It has several unusual features, -see README.mysql for details. +Its features include ------------------------- -para_client (obligatory) ------------------------ + * attributes. Allow fine-grained audio file selection. -The client program to connect to para_server. + * image table. For storage of e.g. album cover art. -------------------- -para_recv (optional) -------------------- + * lyrics table. For storage of lyrics. -A command line http/dccp/rtp stream grabber. + * playlist table. Stores arbitrary many playlists. ---------------------- -para_filter (optional) ---------------------- + * 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 +>> -A 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. + * rename detection. If files are moved or renamed, afs will + recognize 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 +mp3/ogg/aac support, http/dccp/ortp support) is about 150K on i386 +under Linux. para_audiod (see below) is even smaller. + +----------- +para_client +----------- + +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. + +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 encrypted +with a symmetric rc4 session key. + +--------- +para_recv +--------- + +A command line http/dccp/rtp stream grabber. The http mode of this tool +can be used to receive data from any http streaming source. + +----------- +para_filter +----------- + +A filter program that converts from stdin and writes to stdout. para_filter combines several decoders (mp3, oggvorbis, aac) 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. +volume normalizer. New filters can be added easily. It is possible +to "chain" any number of filters, like unix pipes. + +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. ----------------------- -para_write (obligatory) ----------------------- +---------- +para_write +---------- + +A modular audio stream writer. It supports a simple file writer +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. -A modular audio stream writer. It supports a simple file writer output plugin -and optional wav/raw players for alsa (linux-only, Debian package: -libasound2-dev) and Mac OS. +----------- +para_audiod +----------- ---------------------------------------- -para_audiod (optional, but recommended) ---------------------------------------- +The local daemon that collects information from para_server. -The local daemon that collects information from para_server. It -starts an appropriate receiver, filter and player as soon as +It runs on the client side and connects to para_server. As soon as para_server announces the availability (and the type) of an audio -stream. para_audiod listens on a local socket and sends status -information about para_server and para_audiod to local clients -on request. +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. --------------------------------------- -para_audioc (optional, but recommended) --------------------------------------- +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. + +----------- +para_audioc +----------- The client program which talks with para_audiod. Used to control para_audiod, to receive status info, or to grab the stream at any point in the filter chain. -para_audioc (hence para_audiod) is needed by para_gui, para_sdl_gui -and para_krell, see below. +para_audioc (hence para_audiod) is needed by para_gui see below. -------------------- -para_gui (optional) -------------------- +-------- +para_gui +-------- 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 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) --------------------- +--------- +para_fade +--------- 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) --------------------------- +--------------- +bash_completion +--------------- A small bash script for inclusion in ~/.bashrc. It gives you command line completion for some paraslash commands. ------------- -Requirements ------------- - -In any case you need - - - gcc, the gnu compiler collection (shipped with distro): gcc-3.3 - or newer is required. - - openssl (needed by server, client): usually shipped with - distro, but you might have to install the "development" - package 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, -just download libmad from http://www.underbit.com/products/mad/ - -For ogg vorbis streams you'll need libogg, libvorbis, libvorbisfile, -and a command line ogg vorbis decoder, e.g. para_filter or ogg123. -The corresponding Debian packages are called libogg-dev libvorbis-dev, -other distributors chose similar names. All of these are also -available at http://www.xiph.org/downloads/ - -For aac files (m4a) you'll need libfaad. Get it at -http://www.audiocoding.com/modules/wiki/?page=AAC - -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 ------- -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. ---------- THE AUTHOR