]> git.tuebingen.mpg.de Git - paraslash.git/blob - README
initial git commit
[paraslash.git] / README
1 Paraslash README
2 ================
3 Paraslash is an acronym for
4
5         Play, archive, rate and stream large audio sets happily
6
7 It contains the following programs:
8
9 - para_server (obligatory):
10
11         This server listens on a specified tcp port and accepts the
12         usual commands such as play, stop, pause, next. However, there
13         are many more commands.
14
15         For audio streaming, at least one sender must be activated.
16         At the moment, paraslash contains two internal senders:
17
18         The http sender is recommended for public streams that can
19         be played by any player like mpg123, xmms, winamp...
20
21         The ortp sender is recommended for LAN streaming and for
22         private streams that require authentication.
23
24         It is possible to activate more than one sender simultaneously.
25         All senders have the same set of commands that allow to
26         control the access permissions of the stream.
27
28         para_server needs a database tool to work, mainly to determine
29         which song to stream next. There are two database tools
30         available: mysql and dopey. The former is recommended as dopey
31         is only meant as a fallback and as a starting point for people
32         that want to write their own database tool for paraslash.
33
34         The mysql database tool connects to a mysql server which
35         holds information on your audio files. It has several unusual
36         features, see README.mysql for details.
37
38 - para_client (obligatory):
39
40         The client program to connect to para_server.
41
42 - para_recv (optional)
43
44         A command line http/ortp stream grabber.
45
46 - para_filter (optional)
47
48         An filter program that converts from stdin and writes to
49         stdout. This one is independent from the rest of paraslash,
50         so it might be useful also for different purposes.
51
52         para_filter combines an mp3 decoder an oggvorbis decoder
53         and a volume normalzer. New filters can be added easily due
54         to the modular design. If more than one filter is specified,
55         the given filters are 'piped' together in-memory, i.e. without
56         calling any of the read(2)/write(2)/select(2) etc. functions.
57
58 - para_play (optional)
59
60         A small wav/raw player for alsa.
61
62 - para_audiod (optional, but recommended):
63
64         The local daemon that starts playback and collects information
65         from para_server to be forwarded to local clients.
66
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.
73
74 - para_audioc (optional, but recommended)
75
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.
80
81 - para_gui (optional, but recommended):
82
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.
87
88 - para_sdl_gui (optional):
89
90         SDL-based gui. Similar to para_gui but presents its output in
91         an X window (fullscreen mode is also available) and can display
92         jpg images on a per song basis. para_sdl_gui provides an input
93         prompt to enter arbitrary commands. However, it can also be used
94         non-interactively (e.g. as a screen saver) via the -i switch.
95
96 - para_krell (optional, only useful in conjunction with the mysql dbtool):
97
98         A plugin for gkrellm which shows small pictures of the
99         current song. It allows you to launch 27 different commands
100         by clicking in different areas of its picture (9 small squares
101         x 3 mouse buttons).
102
103 - para_fade (optional):
104
105         A (Linux-only) alarm clock and volume-fader.
106
107 - para_dbadm (optional, only useful in conjunction with the mysql dbtool):
108
109         Very simple curses-based frontend which uses libmenu. Useful
110         for quickly changing the attributes of the current song
111         (e.g. from para_gui as an external command).
112
113 - para_slider (optional, only useful in conjunction with the mysql dbtool):
114
115         A small X application which shows a scrollbar for each
116         attribute defined in the mysql database. It creates a stream
117         definition from the values of the scrollbars. This allows
118         to smoothly change the mood of the given stream without any
119         file editing.
120
121 - bash_completion (optional):
122
123         A small bash script for inclusion in ~/.bashrc. It gives you
124         command line completion for some paraslash commands.
125
126 REQUIREMENTS:
127 ~~~~~~~~~~~~~
128 In any case you need
129
130         - gcc, the gnu compiler collection (shipped with distro): gcc-3
131         or newer is prefered, but gcc-2.95 is still supported. Note
132         that gcc-2.95 may spit out many warnings like unused function
133         parameters and missing initializers. These are all harmless
134         and may be ignored.
135
136         - openssl (needed by server, client): usually shipped with
137         distro, but you might have to install the "development"
138         package as well
139
140                 http://www.openssl.org/
141
142         - software mixing, e.g. ALSA and the direct mixing plugin (dmix)
143
144 If you want to use the mysql-based dbtool (recommended), you also need
145
146         - mysql-server
147         - mysql-client
148         - libmysqlclient
149
150 These are usually shipped with the distro but probably not installed
151 by default.
152
153 The mp3 decoder of para_filter is based on libmad:
154
155                 http://www.underbit.com/products/mad/
156
157 If you prefer to use the libmad package provided by your distributor,
158 make sure to install the corresponding development package as well.
159
160 If you want to stream ogg vorbis files you'll need:
161
162         - libogg, libvorbis, libvorbisfile, and a command line ogg vorbis
163                 player, e.g. para_filter or ogg123.
164
165                 http://www.xiph.org/downloads/
166
167 Note that para_audiod still works even if neither mp3 nor ogg support
168 was compiled in. You'll have to use the --no_default_filters option
169 in this case (and e.g. "mpg123 -" as the stream write command).
170
171 If you intend to use the optional ortp streamer:
172
173         - libortp
174
175                 http://www.linphone.org/ortp/
176
177
178 For the optional SDL-based gui, the following packages must be installed:
179
180         - X (usually shipped with distro)
181
182                 http://www.x.org/
183
184         - libSDL (usually shipped with distro)
185
186                 http://www.libsdl.org/index.php
187
188         - SDL_image
189
190                 http://www.libsdl.org/projects/SDL_image/
191
192 For para_slider, the zero memory widget library is neccessary. Get it at
193
194                 http://www710.univ-lyon1.fr/~exco/ZMW/
195
196 Finally, para_krell needs
197
198         - gtk2
199
200                 http://www.gtk.org/
201
202         - gkrellm2
203
204                 http://members.dslextreme.com/users/billw/gkrellm/gkrellm.html
205
206 LICENSE:
207 ~~~~~~~~
208 Distribution of paraslash is covered by the GNU GPL. See file COPYING.
209
210 LIMITATIONS:
211 ~~~~~~~~~~~~
212 The mysql database tool assumes that the basenames of your audio files
213 are unique. If this is not the case, don't use this database tool,
214 rename your files, or create your own database tool.
215
216 THE AUTHOR:
217 ~~~~~~~~~~~
218 Author: Andre Noll <maan@systemlinux.org>
219 Comments and bug reports are welcome.