radio was posted to alt.sources in the beginning of the year. The NeXT port was done by me and several people in the current thread of c.s.n.m about a sound oriented 'talk'-like program showed interest. So here it is. Radio is maintained by the author Guido van Rossum (look at the end for an email-adress). Radio (NeXT-Port) consists of 3 programs: - sndulaw (reads the CODEC and writes ulaw-snd to stdout) - broadcast (read ulaw-snd from stdin and broadcast it via a setable UDP-port) - radio (Reads a setable UDP-Ports and plays the received sound-packets) I think, the program should move to the 2.0-release/source directory. Cheers Reimer Mellin (ram@ramsys.sta.sub.org) Now follows the orig. README-Text. ------ Welcome to the wonderful world of Local Area Network radio! =========================================================== This is Radio version 1, patchlevel 3. If you have a local area network full of workstations with audio capabilities and at least one FM/AM radio or other audio source, you can broadcast the audio over the network, and let other users listen to it. This software works for Sun Sparcs running SunOS 4.0 or 4.1, for SGI Indigo or 4D/35 workstations running SGI IRIX 4.0 or 3.3.2, and for NeXT workstations (running version 2.1). At CWI, it has been in use continuously on a mix of Sun and SGI system types for the past few months; it was quickly tested on a NeXT. Man pages for "radio" and "broadcast" are provided. The implementation continuously transmits UDP broadcast packets of 1400 bytes each (less than six per second), which contain the data in U-LAW format (8000 samples/second, 1 byte/sample, logarithmically encoded). On a typical ethernet, this uses about 1 percent of the net available bandwith. Some loss of UDP packets is tolerated by the receiving program (this is heard as short interruptions of the sound). It is possible to use multiple transmission stations (each identified by a different UDP port), and to transmit to multiple connected subnets simultaneously (as long as the gateways let UDP broadcast packets through). This software is copyrighted. See the notice at the end of this file. Building and installing ----------------------- For SunOS, type "make sun"; for SGI IRIX, type "make sgi". For the NeXT, type "make next". This should produce two binaries, "radio" and "broadcast", and for the NeXT, a third, "sndulaw". Read the Makefile for details -- it's pretty trivial. For SunOS 4.1, you may try "make sun4.1" instead, assuming your audio library is in /usr/demo/SOUND. Edit the Makefile if necessary to accomodate other locations. For SGI IRIX, you also need to build the "recordulaw" program in the subdirectory "ulawtools". This uses the IRIX audio library to sample the audio input and convert it to U-LAW format. The audio library is available on IRIS 4.0 and on IRIS 3.3.2 or higher. Install the "radio" program on a convenient public place (where potential listeners can find it, e.g., /usr/local); install "broadcast" on a convenient place for yourself (assuming you're the one doing transmissions). The "recordulaw" or "sndulaw" programs, if needed, should be installed together with "broadcast". Usage -- transmissions ---------------------- To start transmissions on Sun Sparcs, run this command (probably in the background, once you've debugged your audio setup): broadcast -p port maintains several versions of a "tuner" program that can be used to control the port that "radio" listens to, default 54320 (changeable with the -c option). Note that this allows anybody on the world to control your radio, in principle. If you don't want this, you can pass the -s flag (secure), which turns off the control port altogether. By convention, the tuner program assumes that every user who performs transmissions has two files "CD" and "CDlog" in their home directory giving program information (this is actually a bad idea, since it requires that the listener and the broadcaster share the same file name space for user's home directories, but it saves a lot of complication in the broadcast program). The tuner programs aren't distributed, since they are written in Python, an experimental prototyping language that I developed. Free source for a Python interpreter can be obtained by writing me at the address below. An version is also available by anonymous ftp from various file servers, e.g., wuarchive.wustl.edu (in the US), mcsun.eu.net and ftp.cwi.nl (in the Netherlands). The Python program "nielsen.py" implements a rudimentary way of finding out who's listening to what. Author ------ The author of this software is: Guido van Rossum CWI, dept. CST Kruislaan 413 1098 SJ Amsterdam The Netherlands E-mail (Internet) : Guido.van.Rossum@cwi.nl (guido@cwi.nl) E-mail (X.400) : G=Guido;S=van.Rossum;O=cwi;PRMD=surf;ADMD=400net;C=nl The "libst" U-LAW conversion library is written and copyrighted by Jef Poskanzer. If you port this software to other systems, I'd like to hear from you. Acknowledgements ---------------- I would like the following contributors for pieces of code and/or documentation: Toerless Eckert for the -n, -l, -r and -t options Paul Friedman for the -v option Axel Belinfante for starting the man pages Reimer A. Mellin for the NeXT port Copyright notice ---------------- Copyright 1991 by Stichting Mathematisch Centrum, Amsterdam, The Netherlands. All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the names of Stichting Mathematisch Centrum or CWI not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.