3 Paraslash is an acronym for
5 Play, archive, rate and stream large audio sets happily
7 It contains the following programs:
9 - para_server (obligatory):
11 This server listens on a tcp port and accepts commands such as
12 play, stop, pause, next. However, there are many more commands.
14 For audio streaming, at least one sender must be activated.
15 At the moment, paraslash contains two internal senders:
17 The http sender is recommended for public streams that can
18 be played by any player like mpg123, xmms, winamp...
20 The ortp sender is recommended for LAN streaming and for
21 private streams that require authentication.
23 It is possible to activate more than one sender simultaneously.
24 All senders have the same set of commands that allow to
25 control the access permissions of the stream.
27 para_server needs an "audio file selector" to work, mainly
28 to determine which song to stream next. There are three
29 selectors available: random, playlist and mysql. The former
30 chooses audio files randomly and playlist can handle, well,
31 playlists. Both are always supported.
33 The optional mysql selector connects to a mysql server which
34 holds information on your audio files. It has several unusual
35 features, see README.mysql for details.
37 - para_client (obligatory):
39 The client program to connect to para_server.
41 - para_recv (optional)
43 A command line http/ortp stream grabber.
45 - para_filter (optional)
47 An filter program that converts from stdin and writes to
48 stdout. This one is independent from the rest of paraslash,
49 so it might be useful also for different purposes.
51 para_filter combines an mp3 decoder an oggvorbis decoder
52 and a volume normalzer. New filters can be added easily due
53 to the modular design. If more than one filter is specified,
54 the given filters are 'piped' together in-memory, i.e. without
55 calling any of the read(2)/write(2)/select(2) etc. functions.
57 - para_play (optional)
59 A small wav/raw player for alsa.
60 Debian package: libasound2-dev
62 - para_audiod (optional, but recommended):
64 The local daemon that starts playback and collects information
65 from para_server to be forwarded to local clients.
67 para_audiod reads the audio stream from the network if
68 para_server indicates that there is a stream available. It may
69 be sent through any of the supported filters (see para_filter
70 above) before the result is fed to the output software
71 (default: para_play) which must be capable of reading from
72 stdin, but is not restricted otherwise.
74 - para_audioc (optional, but recommended)
76 A small client that can talk to para_audiod. Used to control
77 para_audiod and to receive status info. It can also be used to
78 grab the stream at any point in the filter chain. para_audioc
79 is needed by para_gui, para_sdl_gui and para_krell, see below.
81 - para_gui (optional, but recommended):
83 Themable ncurses-based gui. It calls para_audioc and presents
84 the obtained information in an ncurses window. para_gui
85 provides key-bindings for the most common commands and new
86 key-bindings can be added easily.
88 - para_sdl_gui (optional):
90 SDL-based gui. Similar to para_gui but presents its output
91 in an X window (fullscreen mode is also available) and can
92 display jpg images on a per song basis. para_sdl_gui provides
93 an input prompt to enter arbitrary commands. However, it
94 can also be used non-interactively (e.g. as a screen saver)
97 - para_krell (optional, only useful in conjunction with the mysql selector):
99 A plugin for gkrellm which shows small pictures of the
100 current song. It allows you to launch 27 different commands
101 by clicking in different areas of its picture (9 small squares
104 - para_fade (optional):
106 A (Linux-only) alarm clock and volume-fader.
108 - para_dbadm (optional, only useful in conjunction with the mysql selector):
110 Very simple curses-based frontend which uses libmenu. Useful
111 for quickly changing the attributes of the current song
112 (e.g. from para_gui as an external command).
114 - para_slider (optional, only useful in conjunction with the mysql selector):
116 A small X application which shows a scrollbar for each
117 attribute defined in the mysql database. It creates a stream
118 definition from the values of the scrollbars. This allows
119 to smoothly change the mood of the given stream without any
122 - bash_completion (optional):
124 A small bash script for inclusion in ~/.bashrc. It gives you
125 command line completion for some paraslash commands.
131 - gcc, the gnu compiler collection (shipped with distro): gcc-3
132 or newer is prefered, but gcc-2.95 is still supported. Note
133 that gcc-2.95 may spit out many warnings like unused function
134 parameters and missing initializers. These are all harmless
137 - openssl (needed by server, client): usually shipped with
138 distro, but you might have to install the "development"
141 http://www.openssl.org/
143 - software mixing, e.g. ALSA and the direct mixing plugin (dmix)
145 If you want to use the mysql-based audio file selector, you also need
151 These are usually shipped with the distro but probably not installed
154 The mp3 decoder of para_filter is based on libmad:
156 http://www.underbit.com/products/mad/
158 If you prefer to use the libmad package provided by your distributor,
159 make sure to install the corresponding development package as well.
161 If you want to stream ogg vorbis files you'll need:
163 - libogg, libvorbis, libvorbisfile, and a command line ogg vorbis
164 player, e.g. para_filter or ogg123.
166 http://www.xiph.org/downloads/
168 Debian packages: libogg-dev libvorbis-dev
170 Note that para_audiod still works even if neither mp3 nor ogg support
171 was compiled in. You'll have to use the --no_default_filters option
172 in this case (and e.g. "mpg123 -" as the stream write command).
174 If you intend to use the optional ortp streamer:
178 http://www.linphone.org/ortp/
181 For the optional SDL-based gui, the following packages must be installed:
183 - X (usually shipped with distro)
187 - libSDL (usually shipped with distro)
189 http://www.libsdl.org/index.php
193 http://www.libsdl.org/projects/SDL_image/
195 For para_slider, the zero memory widget library is neccessary. Get it at
197 http://www710.univ-lyon1.fr/~exco/ZMW/
199 Finally, para_krell needs
207 http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html
211 Distribution of paraslash is covered by the GNU GPL. See file COPYING.
215 The mysql selector assumes that the basenames of your audio files are
216 unique. If this is not the case, don't use this selector, rename your
217 files, or create your own one.
221 Author: Andre Noll <maan@systemlinux.org>
222 Comments and bug reports are welcome.