Remove doxygen reference to private struct mood.
[paraslash.git] / README
1 README
2 ======
3
4 ----
5 Paraslash is an acronym for
6
7 _Play, archive, rate and stream large audio sets happily_
8
9 It contains the following programs:
10
11 -----------
12 para_server
13 -----------
14
15 para_server streams binary audio data (mp3/oggvorbis/m4a/wma files)
16 over local and/or remote networks. It listens on a tcp port and
17 accepts commands such as play, stop, pause, next from authenticated
18 clients. However, there are many more commands.
19
20 It supports three built-in network streaming methods (senders): http, dccp,
21 or udp.
22
23         * The http sender is recommended for public streams that can be played
24           by any player like mpg123, xmms, itunes, winamp...
25
26         * The dccp sender requires kernel support for the datagram congestion
27           control protocol.
28
29         * The udp sender is recommended for multicast LAN streaming.
30
31 It is possible to activate more than one sender simultaneously.
32
33 The built-in audio file selector of paraslash is used to manage your
34 audio files. It maintains statistics on the usage of all available audio
35 files such as last played time, and the number of times each file was
36 selected.
37
38 Its features include
39
40         * attributes. Allow fine-grained audio file selection.
41
42         * image table. For storing e.g. album cover art.
43
44         * lyrics table. For storing lyrics.
45
46         * playlist table. Stores arbitrary many playlists for later use.
47
48         * mood mode. Audio file selection works by specifying mood
49           methods involving attributes, pattern matching for file names
50           and more. This allows rather sophisticated configurations
51           and is explained in more detail in
52 <<
53 <a href="README.afs.html"> README.afs </a>
54 >>
55
56         * rename detection. If files are moved or renamed, afs will
57           recognize them despite of this change.
58
59 -----------
60 para_client
61 -----------
62
63 The client program to connect to para_server.  paraslash commands
64 are sent to para_server and the response is dumped to stdout. This
65 can be used by any scripting language to produce user interfaces with
66 little programming effort.
67
68 All connections between para_server and para_client are encrypted by
69 default.  For each user of paraslash you must create a public/secret
70 RSA key pair for authentication. The authenticated connection is
71 encrypted with a symmetric rc4 session key.
72
73 ---------
74 para_recv
75 ---------
76
77 A command line http/dccp/udp stream grabber. The http mode of this
78 tool can be used to receive data from any http streaming source.
79
80 -----------
81 para_filter
82 -----------
83
84 A filter program that converts from stdin and writes to stdout.
85
86 para_filter combines several decoders (mp3, oggvorbis, aac, wma),
87 a volume normalizer and a cpuple of other filters. New filters can
88 be added easily. It is possible to "chain" any number of filters,
89 like UNIX pipes.
90
91 para_filter does not depend on other parts of paraslash, so it can
92 be used as a stand-alone command line tool for audio decoding and
93 volume normalization.
94
95 --------
96 para_afh
97 --------
98
99 A small stand-alone program that prints tech info about the given
100 audio file to stdout. It can be instructed to print a "chunk table",
101 an array of offsets within the audio file or to write the content of
102 the audio file in complete chunks 'just in time'.
103
104 This allows third-party streaming software that is unaware of
105 the particular audio format to send complete frames in real
106 time. Currently, mp3, ogg vorbis, aac and wma are supported.
107
108 ----------
109 para_write
110 ----------
111
112 A modular audio stream writer. It supports a simple file writer
113 output plug-in and optional wav/raw players for ALSA (Linux) and for
114 coreaudio (Mac OS). para_write can also be used as a stand-alone wav
115 or raw audio player.
116
117 -----------
118 para_audiod
119 -----------
120
121 The local daemon that collects information from para_server.
122
123 It runs on the client side and connects to para_server.  As soon as
124 para_server announces the availability of an audio stream, para_audiod
125 starts an appropriate receiver, any number of filters and a paraslash
126 writer to play the stream. It is possible to capture the stream at
127 any position in the filter chain.
128
129 Moreover, para_audiod listens on a local socket and sends status
130 information about para_server and para_audiod to local clients on
131 request. Access via this local socket may be restricted by using Unix
132 socket credentials, if available.
133
134 -----------
135 para_audioc
136 -----------
137
138 The client program which talks to para_audiod. Used to control
139 para_audiod, to receive status info, or to grab the stream at any
140 point in the filter chain.
141
142 para_audioc (hence para_audiod) is needed by para_gui see below.
143
144 --------
145 para_gui
146 --------
147
148 Themable ncurses-based gui. It calls para_audioc and presents
149 the obtained information in an ncurses window. para_gui provides
150 key-bindings for the most common commands and new key-bindings can
151 be added easily.
152
153 ---------
154 para_fade
155 ---------
156
157 A (oss-only) alarm clock and volume-fader.
158
159 ---------------
160 bash_completion
161 ---------------
162
163 A small bash script for inclusion in ~/.bashrc. It gives you command
164 line completion for some paraslash commands.
165
166 -------
167 LICENSE
168 -------
169
170 Distribution of paraslash is covered by the GNU GPL, version 2. See file
171 COPYING.
172
173 ----------
174 THE AUTHOR
175 ----------
176
177 Andre Noll <maan@systemlinux.org>
178 Comments and bug reports are welcome.