This is the README for radio.1p3.s.tar.gz [Download] [Browse] [Up]
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 </dev/audio You must connect a mono audio source to the machine using a standard cable provided by Sun. Control the input gain with [x_]gaintool (e.g., /usr/demo/SOUND/x_gaintool). This command start transmissions on SGI IRIX: recordulaw | broadcast -p port Connect a stereo audio source to the machine using a standard walkman jack. If you're using an early 4D/35, check that you have audio hardware and software installed -- the output from hinv will tell you this. On the NeXT you start transmissions as follows: sndulaw | broadcast -p port This takes input from the microphone; you may also connect an audio source to the microphone input (probably needs some attenuation to get the impedance right). By default this broadcasts on the local ethernet. You can specify one or more -b options to broadcast, passing it explicit IP broadcast addresses (last byte 0 or 255, depending on local convention). You can specify your local IP net or another net; the latter only works if your gateways pass UDP broadcasts through (at CWI it works). Note: each transmitter must choose a unique port number. The default is 54321; other suitable ports are 54322, 54323, and so on. Usage -- reception ------------------ To listen to transmissions on either system: radio -p port This sends the data directly to the audio output device (speaker or headphones). It is also possible to get the ULAW audio data on standard output with the -f option ("filter"). The -v option sets the output volume (on a scale from 0 to 100). To change the volume later on a Sun Sparc, use [x_]gaintool (at CWI: /usr/demo/SOUND/x_gaintool). On an SGI, use "apanel". Bells 'n whistles ----------------- Jack Jansen <jack@cwi.nl> 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.
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.