X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=README;h=6cf34f2751332c82e630c6c53a3fe887e089129c;hp=2c0dc76ddfd52f8da2c3296292c39a90126905f1;hb=fcb24360b1b14c9fe0e510282cf85f4e112eaf23;hpb=c589157169366fa47f2041cfe52e7019fbc19b35 diff --git a/README b/README index 2c0dc76d..6cf34f27 100644 --- a/README +++ b/README @@ -1,220 +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 specified tcp port and accepts the - usual 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 two database tools - available: mysql and random. The former is recommended as - the random database tool is only meant as a fallback and - as a starting point for people that want to write their own - database tool for paraslash. - - The 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. - -- 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_server +----------- -- para_krell (optional, only useful in conjunction with the mysql dbtool): +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. - 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). +It supports three built-in network streaming methods (senders): http, dccp, +or udp. -- para_fade (optional): + * The http sender is recommended for public streams that can be played + by any player like mpg123, xmms, itunes, winamp... - A (Linux-only) alarm clock and volume-fader. + * The dccp sender requires kernel support for the datagram congestion + control protocol. -- para_dbadm (optional, only useful in conjunction with the mysql dbtool): + * The udp sender is recommended for multicast LAN streaming. - 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). +It is possible to activate more than one sender simultaneously. -- para_slider (optional, only useful in conjunction with the mysql dbtool): +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. - 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. +Its features include -- bash_completion (optional): + * attributes. Allow fine-grained audio file selection. - A small bash script for inclusion in ~/.bashrc. It gives you - command line completion for some paraslash commands. + * image table. For storing e.g. album cover art. -REQUIREMENTS: -~~~~~~~~~~~~~ -In any case you need + * lyrics table. For storing lyrics. - - 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. + * playlist table. Stores arbitrary many playlists for later use. - - openssl (needed by server, client): usually shipped with - distro, but you might have to install the "development" - package as well + * 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 +>> - http://www.openssl.org/ + * rename detection. If files are moved or renamed, afs will + recognize them despite of this change. - - software mixing, e.g. ALSA and the direct mixing plugin (dmix) +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/udp support) is about 160K on i386 +under Linux. para_audiod (see below) is even smaller. -If you want to use the mysql-based dbtool (recommended), you also need +----------- +para_client +----------- - - mysql-server - - mysql-client - - libmysqlclient +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. -These are usually shipped with the distro but probably not installed -by default. +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. -The mp3 decoder of para_filter is based on libmad: +--------- +para_recv +--------- - http://www.underbit.com/products/mad/ +A command line http/dccp/udp stream grabber. The http mode of this +tool can be used to receive data from any http streaming source. -If you prefer to use the libmad package provided by your distributor, -make sure to install the corresponding development package as well. +----------- +para_filter +----------- -If you want to stream ogg vorbis files you'll need: +A filter program that converts from stdin and writes to stdout. - - libogg, libvorbis, libvorbisfile, and a command line ogg vorbis - player, e.g. para_filter or ogg123. +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. - http://www.xiph.org/downloads/ +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 (oss-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.