Internet radio server

0. Contents

This is the documentation of bisqradio-1.1.2.
   1. Purpose
   2. Program list
      2.1. radio_http
      2.2. radio_mp3
      2.3. radio_ssh
      2.4. radio_tcp
      2.5. wg
         2.5.1. hum
      2.6. streamixer
         2.6.1. mixer
         2.6.2. mixmon
         2.6.3. mixwrite
         2.6.4. resample
         2.6.5. mixeridle
         2.6.6. ecat
      2.7. erec
   3. Copying
   4. Requirements
   5. Installation
   6. Downloading

1. Purpose

Enables making your unix server broadcast audio.

2. Program list

bisqradio consists of several tool programs, which work tightly together.

2.1. radio_http

Listens to the HTTP queries to satisfy the clients (the browsers and the players).

2.2. radio_mp3

Responsible of generating the mp3 feed for a client from a given input.

2.3. radio_ssh

Optionally run if required. Launches the mp3 encoder on remote computer (with possibly more cpu power).

2.4. radio_tcp

The center of the radio. Servers clients with feed from the mixer process piped through the mp3 encoder. Doesn't read the mixer if there are no clients. Doesn't keep other clients waiting if somebody is lagging.
Doesn't bother to decode mp3 frames, so it will possibly give broken frames at the beginning. Most mp3 decoders survive from it without any faults, so it is not serious. Shoutcast and icecast seem to do the same.

2.5. wg

These tool programs are actually part of another software package available separately. It's included within this archive too, anyway.

2.5.1. hum

Generates semiquiet stream. Useful if you want to keep the mixer quiet (if your mixeridle if not so quiet). Does not just output zero. Plain zero stream is hard to analyze for LAME.

2.6. streamixer

These tools are also a part of another software package, but they are here too.

2.6.1. mixer

A stream mixing server. It accepts mixwrite and mixmon -connections.
Provides a server for audio stream mixing.
Meant to be a replacement for esd, with much more features and much less cpu usage.

2.6.2. mixmon

Monitors the mixer over a tcp connection, reading whatever is being mixed to it.

2.6.3. mixwrite

Sends stream to the mixer over a tcp connection.

2.6.4. resample

Resamples audio stream from one format to another format.
resample v1.17 - Copyright (C) 1992,2002 Bisqwit (http://iki.fi/bisqwit/)
Portions copyright (C) 2001 ImageMagick Studio.
This program is under GPL. streamixer-1.17.{rar,zip,tar.{gz,bz2}}
are available at the homepage of the author.

Usage: resample <inputspec> <outputspec> [<options> ...]

Reads stdin, writes stdout.

input- and outputspec:
   b=8-bit, m=mono, rxxx=xxx Hz, examples:
       ""      = 16-bit 44100 Hz stereo
       m       = 16-bit 44100 Hz mono
       b       = 8-bit 44100 Hz stereo
       mb      = 8-bit 44100 Hz mono
       mr22050 = 16-bit 22050 Hz mono
       br22050 = 8-bit 22050 Hz stereo
   etc. '-' is optional.

Options:
    -V, --version          Version information
    -b, --blur <num>       blur: 0=normal, >0=blur
                           (note: blurring requires cpu power.)
    -f, --filter <filter>  Select filter of the following:
                              none, linear (default), triangle,
                              hermite, hanning, hamming, blackman,
                              gaussian, quadratic, cubic, catrom,
                              mitchell, lanczos, bessel, sinc
    -h, --help             Help
    -s, --sharpen <num>    sharpen: 0=normal, >0=sharper
                           (note: blurring and sharpening are exclusive.)

2.6.5. mixeridle

Generates idle stream for the mixer, if there are readers for the mixer but no writers.
Actually has been hardcoded to play something nasty... you should customize it :)

2.6.6. ecat

Outputs its stdin to the audio device (/dev/dsp for example) with the specified bitness, stereo and sampling rate. Useful backend to the mixer (with mixmon).

2.7. erec

This is a separate tool also, but it is included in the archive too.
erec - shared recording server v2.1.10.3 (C) 1992,2002 Bisqwit

Allows multiple applications request recorded data
at the same time with different stream attributes.
Usage: erec [<options> [...]] [<host> | none]
Options:
    -2, --stereo         Specifies stereo sound. Default is mono.
    -6, --word           16-bit mode. Redundant.
    -V, --version        Version information
    -b, --byte           8-bit mode. Normally 16-bit mode.
    -d, --device <file>  Specify device.
    -h, --help           Help
    -m, --mono           Redundant. It's here for esd compatibility.
    -r, --rate <num>     Specifies recording rate. 43200 is default.

If <host> is other than none, the output will be sent with esdcat.
Note: For best quality, it might be wise to always record 44.1 kHz 16-bit stereo (-6r44100) and resample the result with the external program resample to produce the wanted sample rate.

3. Copying

bisqradio has been written by Joel Yliluoma, a.k.a. Bisqwit,
and is distributed under the terms of the General Public License (GPL).

4. Requirements

GNU make is required.
PHP standalone binary is required.
LAME is required.
esd can be used. It is no longer required though.
ssh can also be used.

Note: If you want to look at earlier versions, have a look at wavegenerator. The earlier versions were together in a same archive.

5. Installation

$ make
$ su
# make install
If you do not want to install libargh (included in the archive), do not use "make install" and edit Makefile and enable the STATIC linking instead of DYNAMIC.

6. Downloading

The official home page of bisqradio is at http://oktober.stc.cx/source/bisqradio.html.
Check there for new versions.

Generated from progdesc.php (last updated: Sun, 2 Jun 2002 20:32:45 +0300)
with docmaker.php (last updated: Wed, 15 May 2002 04:26:32 +0300)
at Sun, 2 Jun 2002 20:32:50 +0300