A new configuration option 'queue_pad' allows the number of random
tracks kept on the queue to be controlled.
-New configuration options 'speaker_command', 'sample_format' and
-'sox_generation' direct the speaker process to send audio data to a
-subcommand instead of straight to the sound card, for instance for
-broadcasting over a network.
+** Network Play
+
+DisOrder can broadcast audio over a network, allowing it to be played on
+multiple client machines. See README.streams for details.
** disorderfm
normal play by scratching the stream.
-Creating A Stream Of DisOrder Output
-====================================
+RTP Streaming
+=============
+
+DisOrder is now capable to transmitting RTP streams over a suitable network.
+To enable this make sure that allplayers use the speaker process, i.e. execraw
+rather than exec (or it won't work properly) and configure the network speaker
+backend:
+
+ speaker_backend network
+ broadcast 172.17.207.255 9003
+ broadcast_from 172.17.207.2 9002
+
+broadcast_from is optional but may be convenient for some cases.
+
+To play, use the disorder-playrtp client.
+
+ disorder-playrtp 0.0.0.0 9003
+
+Currently only 16-bit 44100Hz stereo is supported, which requires about
+1.4Mbit/s. Possibly other lower-quality but lower-bandwidth encodings will be
+supported in future.
+
+If you have a too-recent version of sox you may need to set the sox_generation
+option.
+
+
+Icecast Streaming
+=================
This can be achieved using the speaker_command option and Icecast (see
http://www.icecast.org/). It will only work if you use the speaker process,
play the stream with XMMS or whatever. The total setup seems to play rather
behind the 'current' time, watch this space for a fix (or contribute one!)
-Other DisOrder options you can set are sox_generation which you should set to
-if you have a sufficently recent version of sox, due to an incompatile change
-in its command syntax; and sample_format which determines what format is
-supplied to the speaker_command. See disorder_config(5) for further
-information.
+If you have a too-recent version of sox you may need to set the sox_generation
+option.
Local Variables:
.SH DESCRIPTION
\fBdisorder-playrtp\fR plays a network broadcast sent from the specified
address.
-.PP
-It is currently a work in progress!
.SH OPTIONS
.TP
.B --device \fIDEVICE\fR, \fB-D \fIDEVICE\fR
the buffer then reading from the network socket will be suspended. The default
is four times the \fB--buffer\fR value.
.TP
+.B --rcvbuf \fIBYTES\fR, \fB-R \fIBYTES\fR
+Specifies socket receive buffer size.
+.TP
.B --help\fR, \fB-h
Display a usage message.
.TP
.TP
.B network
Transmit audio over the network. This is the default if
-\fBbroadcast\fR is specified.
+\fBbroadcast\fR is specified. You can use
+.BR disorder-playrtp (1)
+to receive and play the resulting stream on Linux and OS X.
.RE
.TP
.B sox_generation \fB0\fR|\fB1
socklen_t len;
char *sockname, *ssockname;
+ /* Override sample format */
+ config->sample_format.rate = 44100;
+ config->sample_format.channels = 2;
+ config->sample_format.bits = 16;
+ config->sample_format.byte_format = AO_FMT_BIG;
res = get_address(&config->broadcast, &pref, &sockname);
if(!res) exit(-1);
if(config->broadcast_from.n) {
/* Select an SSRC */
gcry_randomize(&rtp_id, sizeof rtp_id, GCRY_STRONG_RANDOM);
info("selected network backend, sending to %s", sockname);
- if(config->sample_format.byte_format != AO_FMT_BIG) {
- info("forcing big-endian sample format");
- config->sample_format.byte_format = AO_FMT_BIG;
- }
}
/** @brief Play over the network */