X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=README;h=acb359a87b8f0c74aaae29d95cbed3c372dd2a55;hp=872a0fa0b5461bad3f45c19915005c39758cb050;hb=82008b5367b438f01bb3899a93b406a6066d2b1f;hpb=f4bb874669c1bab8fead3ca503fb5e678141bb81 diff --git a/README b/README index 872a0fa0..acb359a8 100644 --- a/README +++ b/README @@ -1,145 +1,169 @@ -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): +----------------------- +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. +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. - For audio streaming, at least one sender must be activated. - At the moment, paraslash contains two internal senders: +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, winamp... +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. +The dccp sender is experimental and requires kernel support for the +rather new datagram congestion control protocol. - 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. +The ortp sender is recommended for LAN streaming and for private +streams that require authentication. - 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. +It is possible to activate more than one sender simultaneously. - 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. +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. -- para_client (obligatory): +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. - The client program to connect to para_server. +------------------------ +para_client (obligatory) +----------------------- -- para_recv (optional) +The client program to connect to para_server. - A command line http/ortp stream grabber. +------------------- +para_recv (optional) +------------------- -- para_filter (optional) +A command line http/dccp/rtp stream grabber. - 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 (optional) +--------------------- - 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. +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. -- para_play (optional) +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. - A small wav/raw player for alsa. - Debian package: libasound2-dev +---------------------- +para_write (obligatory) +---------------------- -- para_audiod (optional, but recommended): +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. - The local daemon that starts playback and collects information - from para_server to be forwarded to local clients. +--------------------------------------- +para_audiod (optional, but recommended) +--------------------------------------- - 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. +The local daemon that collects information from para_server. It +starts an appropriate receiver, filter and player 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. -- para_audioc (optional, but recommended) +-------------------------------------- +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. +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_gui (optional, but recommended): +para_audioc (hence para_audiod) is needed by para_gui, para_sdl_gui +and para_krell, see below. - 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_gui (optional) +------------------- -- para_sdl_gui (optional): +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. - 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_sdl_gui (optional) +----------------------- -- para_krell (optional, only useful in conjunction with the mysql selector): +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. - 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_krell (optional, only useful in conjunction with the mysql selector) +------------------------------------------------------------------------- -- para_fade (optional): +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). - A (Linux-only) alarm clock and volume-fader. +-------------------- +para_fade (optional) +-------------------- -- para_dbadm (optional, only useful in conjunction with the mysql selector): +A (Linux-only) alarm clock and volume-fader. - 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_dbadm (optional, only useful in conjunction with the mysql selector) +------------------------------------------------------------------------- -- para_slider (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). - 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. +-------------------------------------------------------------------------- +para_slider (optional, only useful in conjunction with the mysql selector) +-------------------------------------------------------------------------- -- bash_completion (optional): +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. - A small bash script for inclusion in ~/.bashrc. It gives you - command line completion for some paraslash commands. +-------------------------- +bash_completion (optional) +-------------------------- -REQUIREMENTS: -~~~~~~~~~~~~~ -In any case you need +A small bash script for inclusion in ~/.bashrc. It gives you command +line completion for some paraslash commands. + +------------ +Requirements +------------ - - 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. +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/ - + 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 @@ -151,72 +175,45 @@ If you want to use the mysql-based audio file selector, you also need These are usually shipped with the distro but probably not installed by default. -The mp3 decoder of para_filter is based on libmad: - - http://www.underbit.com/products/mad/ - -If you prefer to use the libmad package provided by your distributor, -make sure to install the corresponding development package as well. - -If you want to stream ogg vorbis files you'll need: - - - libogg, libvorbis, libvorbisfile, and a command line ogg vorbis - player, e.g. para_filter or ogg123. - - http://www.xiph.org/downloads/ - -Debian packages: libogg-dev libvorbis-dev +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/ -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). +For ogg vorbis streams you'll need libogg, libvorbis, libvorbisfile, +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/ -If you intend to use the optional ortp streamer: - - - libortp - - http://www.linphone.org/ortp/ +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 + - 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/ - - SDL_image - - http://www.libsdl.org/projects/SDL_image/ - -For para_slider, the zero memory widget library is neccessary. Get it at - - http://www710.univ-lyon1.fr/~exco/ZMW/ +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 + - gtk2: http://www.gtk.org/ + - gkrellm2: http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html - http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html +------- +LICENSE +------- -LICENSE: -~~~~~~~~ Distribution of paraslash is covered by the GNU GPL. See file COPYING. -LIMITATIONS: -~~~~~~~~~~~~ -The mysql selector assumes that the basenames of your audio files are -unique. If this is not the case, don't use this selector, rename your -files, or create your own one. +---------- +THE AUTHOR +---------- -THE AUTHOR: -~~~~~~~~~~~ -Author: Andre Noll +Andre Noll Comments and bug reports are welcome.