README ====== ---- Paraslash is an acronym for _Play, archive, rate and stream large audio sets happily_ It contains the following programs: ----------- para_server ----------- para_server streams binary audio data (mp3/oggvorbis/m4a/wma 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. It supports three built-in network streaming methods (senders): http, dccp, or udp. * The http sender is recommended for public streams that can be played by any player like mpg123, xmms, itunes, winamp... * The dccp sender requires kernel support for the datagram congestion control protocol. * The udp sender is recommended for multicast LAN streaming. It is possible to activate more than one sender simultaneously. 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. Its features include * attributes. Allow fine-grained audio file selection. * image table. For storing e.g. album cover art. * lyrics table. For storing lyrics. * playlist table. Stores arbitrary many playlists for later use. * 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 >> * rename detection. If files are moved or renamed, afs will recognize them despite of this change. ----------- 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 RSA key pair for authentication. The authenticated connection is encrypted with a symmetric rc4 session key. --------- para_recv --------- 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. ----------- para_filter ----------- A filter program that converts from stdin and writes to stdout. para_filter combines several decoders (mp3, oggvorbis, aac, wma), a volume normalizer and a cpuple of other filters. 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 and volume normalization. -------- para_afh -------- 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'. 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, aac and wma are supported. ---------- 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. ----------- para_audiod ----------- The local daemon that collects information from para_server. 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. 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 to 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 see below. -------- 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_fade --------- A (oss-only) alarm clock and volume-fader. --------------- bash_completion --------------- 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. ---------- THE AUTHOR ---------- Andre Noll Comments and bug reports are welcome.