Internet radio server

0. Contents

This is the documentation of bisqradio-1.3.0.
   1. Purpose
   2. Copying
   3. Requirements
   4. Installation
   5. How to use
      5.1. Edit the config file
      5.2. Start the daemons
      5.3. Monitor the mixer (optional)
      5.4. Feed the mixer
      5.5. Shutting down (optional)
   6. Program list
      6.1. radio_http
      6.2. radio_mp3
      6.3. radio_ssh
      6.4. radio_tcp
      6.5. wg
         6.5.1. hum
      6.6. streamixer
         6.6.1. mixer
         6.6.2. mixmon
         6.6.3. mixwrite
         6.6.4. resample
         6.6.5. mixeridle
   7. Known bugs
   8. Downloading

1. Purpose

Enables your unix server broadcast audio in streaming mp3 format.

2. Copying

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

3. Requirements

GNU make is required.
PHP standalone binary is required.
LAME is required.
esd is deprecated.
ssh can also be used.

The embedded wg also requires fftw.

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

4. 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.

5. How to use

5.1. Edit the config file

Edit /usr/local/share/bisqradio/bisqradio.conf. Specify your configuration there. The example config file is quite much filled with comments so you shouldn't have problems understanding it.

5.2. Start the daemons

Start two daemons: mixer and bisqradio.
The mixer program is responsible for mixing streams together and bisqradio is responsible of serving the clients.

5.3. Monitor the mixer (optional)

Try this:
mixmon | ecat

This command listens to the mixer and you will hear what the clients would hear (but in better quality).

5.4. Feed the mixer

Now you can feed the mixer. Play whatever you want. Examples:
find -name \*.mp3 > tmptmp; mpg123 -s -vvvvz -@ tmptmp | mixwrite
spcplay -ua -o- ct-600ad.spc | mixwrite
erec -2r44100 none | mixwrite
You can run them at the same time or different time if you wish, depending what you want to feed to the clients.

5.5. Shutting down (optional)

killall mixer radio_tcp bisqradio radio_http \
        radio_mp3 mixmon mixwrite resample mixeridle
Might be overkill, but should work...

6. Program list

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

6.1. radio_http

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

6.2. radio_mp3

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

6.3. radio_ssh

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

6.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.

6.5. wg

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

6.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.

6.6. streamixer

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

6.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.

6.6.2. mixmon

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

6.6.3. mixwrite

Sends stream to the mixer over a tcp connection.

6.6.4. resample

Resamples audio stream from one format to another format.


6.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 :)

7. Known bugs

It has serious problems surviving when there are more than one listeners...

8. Downloading

The official home page of bisqradio is at http://iki.fi/bisqwit/source/bisqradio.html.
Check there for new versions.

Generated from progdesc.php (last updated: Tue, 27 Apr 2004 12:06:05 +0300)
with docmaker.php (last updated: Sun, 12 Jun 2005 06:08:02 +0300)
at Sun, 01 Oct 2006 03:16:01 +0300