X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=README;h=0173fb3bbb60e1cf6d0c7402593238605a4b288d;hp=017bc0c31d71e4d984783d5d0a6a2e3a46a2fc14;hb=c03bc512fc733c05292225cf878f14e41d1d59c9;hpb=ab5820c1ac8fe47084be69717503de2ce00b5956 diff --git a/README b/README index 017bc0c3..0173fb3b 100644 --- a/README +++ b/README @@ -1,219 +1,166 @@ -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 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. - - 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 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. - - 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 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_client (obligatory): - - The client program to connect to para_server. - -- para_recv (optional) - - A command line http/dccp/rtp stream grabber. - -- para_filter (optional) - - 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_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. - -- para_write (obligatory) - - A modular audio stream writer. It supports a simple file - writer output plugin and an optional wav/raw player for alsa. - Debian package: libasound2-dev - -- para_audiod (optional, but recommended): - - 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) - - 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_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. - -- 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. +------------------------ +para_server (obligatory) +------------------------ -- bash_completion (optional): +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 small bash script for inclusion in ~/.bashrc. It gives you - command line completion for some paraslash commands. +It supports three builtin network streaming methods (senders): http, dccp, +or rtp. -REQUIREMENTS: -~~~~~~~~~~~~~ -In any case you need + * The http sender is recommended for public streams that can be played + by any player like mpg123, xmms, itunes, winamp... - - gcc, the gnu compiler collection (shipped with distro): gcc-3.3 - or newer is required. + * The dccp sender is experimental and requires kernel support for the + rather new datagram congestion control protocol. - - openssl (needed by server, client): usually shipped with - distro, but you might have to install the "development" - package as well + * The ortp sender is recommended for multicast LAN streaming - http://www.openssl.org/ +It is possible to activate more than one sender simultaneously. - - software mixing, e.g. ALSA and the direct mixing plugin (dmix) +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. -If you want to use the mysql-based audio file selector, you also need +Its features include - - mysql-server - - mysql-client - - libmysqlclient + * attributes: Allow fine-grained audio file selection. -These are usually shipped with the distro but probably not installed -by default. + * image table. For storage of e.g. album cover art. -The mp3 decoder of para_filter is based on libmad: + * lyrics table. For storage of lyrics. - http://www.underbit.com/products/mad/ + * playlist table. Stores arbitrary many playlists. -If you prefer to use the libmad package provided by your distributor, -make sure to install the corresponding 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 INSTALL. -If you want to stream ogg vorbis files you'll need: + * rename detection. If files are moved or renamed, afs will + recognioze them despite of this change. - - libogg, libvorbis, libvorbisfile, and a command line ogg vorbis - decoder, e.g. para_filter or ogg123. +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. - http://www.xiph.org/downloads/ +------------------------ +para_client (obligatory) +------------------------ -Debian packages: libogg-dev libvorbis-dev +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. -For aac files (m4a) you'll need libfaad. Get it at +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. - http://www.audiocoding.com/modules/wiki/?page=AAC +-------------------- +para_recv (optional) +-------------------- -Note that para_audiod still works even if no audio file 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 mp3 streams). +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. -If you intend to use the optional ortp streamer: +---------------------- +para_filter (optional) +---------------------- - - libortp +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. - http://www.linphone.org/ortp/ +para_filter combines several decoders (mp3, oggvorbis, aac) and a +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) +----------------------- -For the optional SDL-based gui, the following packages must be installed: +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. - - X (usually shipped with distro) +--------------------------------------- +para_audiod (optional, but recommended) +--------------------------------------- - http://www.x.org/ +The local daemon that collects information from para_server. - - libSDL (usually shipped with distro) +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. - http://www.libsdl.org/index.php +para_audiod starts an appropriate receiver, filter and player as soon as +para_server announces the availability (and the type) of an audio stream. +Moreover, it listens on a local socket and sends status information about +para_server and para_audiod to local clients on request. - - SDL_image +-------------------------------------- +para_audioc (optional, but recommended) +-------------------------------------- - http://www.libsdl.org/projects/SDL_image/ +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. -For para_slider, the zero memory widget library is neccessary. Get it at +para_audioc (hence para_audiod) is needed by para_gui, para_sdl_gui +and para_krell, see below. - http://www710.univ-lyon1.fr/~exco/ZMW/ +------------------- +para_gui (optional) +------------------- -Finally, para_krell needs +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. - - gtk2 +-------------------- +para_fade (optional) +-------------------- - http://www.gtk.org/ +A (Linux-only) alarm clock and volume-fader. - - gkrellm2 +-------------------------- +bash_completion (optional) +-------------------------- - http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html +A small bash script for inclusion in ~/.bashrc. It gives you command +line completion for some paraslash commands. +------- +LICENSE +------- + +Distribution of paraslash is covered by the GNU GPL, version 2. See file +COPYING. -LICENSE: -~~~~~~~~ -Distribution of paraslash is covered by the GNU GPL. See file COPYING. +---------- +THE AUTHOR +---------- -THE AUTHOR: -~~~~~~~~~~~ -Author: Andre Noll +Andre Noll Comments and bug reports are welcome.