Auppix
A free operating system for microradio and tactical sound
Welcome to the first release of Auppix. This release is made possible by
Free103point9, a most excellent microradio support organization. They also have quite a good concert venue in Brooklyn NYC if if you ever need a place to play.
This document has two jumping off points.
- If you are already familliar with Linux and want to get started quickly,
go to the quick start guide
- If you've never used Linux before, read on
If you are reading this far, please put the Auppix CD in your drive and reboot your computer. Make sure your BIOS is configured to boot from CD, which it probably already is.
Auppix is a complete operating system built with Free Software. It is not one thing, but rather an elaborate combination of many. Unlike commercial operating
systems, Linux has many variants called distributions.
The largest two components of Auppix are the Knoppix LiveCD distribution and the Debian GNU/Linux distribution. The originality that Auppix brings to both these projects is the focus on sound production
and the inclusion of a lot of software for working with sound. What you will see in Auppix:
- Many applications and utilities for recording, editing, playing, encoding and broadcasting sound
- A user friendly graphical interface
- Automatic detection and configuration of hundreds of different hardware types
And what you will not see in Auppix:
- An office suite
- Commercial applications like Sound Forge or Acid
- Much support for patented codecs like MP3, AAC and WMA
- Advertisements, popup windows and spyware
- iTunes
Like any operating system, understanging it fully is beyond the scope of this document. There are however a couple of key programs and procedures where documentation is essential.
The first step in Internet radio is encoding your sound into a format that be sent to a server for broadcast.
Take note that the word "server" does not necessarily mean a different computer; you can run an encoder and a server on the same computer, which is what we will do here as an example. When booting up Auppix you should have seen a bunch of pretty colored text streaming down your screen. This is the hardware decection process.
Many sound cards work with Auppix, but some do not. Most notable are all Firewire audio interfaces. If your sound card is
not supported you're out of luck but you shouldn't stop there! Send a note to your sound card manufacturer asking
them to open their specifications to the Linux kernel so the kernel developers can work on a driver. More often
than not if a sound card isn't supported by Linux it's not because no one wants one but because the manufacturer
won't release their specifications to the Linux community.
If your card was detected, congradulations. You can now test your audio input. Click on the Audacity icon in the
bottom left of your screen. Plug in an external sound source from your mixing board or any other device and select the input in Audacity. Make sure the volume levels are turned up and press the record button. If you see a waveform, you have audio! Close Audacity and read on. If you have no audio or are unfamilliar with recording external sources read the Audacity manual before you proceed.
Now you have to select your format. The recomended format is ogg/vorbis. It is the only non-patented open source
audio format in existance. Read more about it. For a list of supported players of the ogg/vorbis format, look here. You can also use the mp3 format but that format is for advanced users only and this tutorial assumes you are using ogg.
Open Darkice by clicking on the icon in the bottom left corner and you will see a form with some tabs.
To get started here's what you will fill in.
- Server Options
- Streaming Destination = Icecast 2
- Server = localhost
- Port = 8000
- Mount Point = example.ogg
- Password = hackme
- Audio Options
- Format = ogg/vorbis
- BitRateMode = Variable
- BitRate = 64
- SampleRate = 44100
- Quality = 0.1
- Bits per Sample = 16
- Number of channels = 2 - Stereo
- Buffer Size = 5
- Device Input = /dev/dsp
- Streaming Description
- Radio Name = Your radio name
- Description = Your radio description
- URL = your web page
- Genre = your genre
- Public = no
You can now click the Start Streaming button and if the Streaming Status line says started,
you've done it. To check your stream, go here and click on the
Click to Listen link. If the browser asks you what program to open the link with, choose XMMS,
which sould be the default. If XMMS opens and starts playing you did it. Try and ignore the delay if both your source and XMMS are playing at the same time, it is normal.
In the above example we sent our encoded stream to an Icecast server running on localhost, which is
a reserved name for the computer your are sitting in front of. It's also known as the loopback device,
which is better described as a virtual network connection used for testing. No one else can connect to localhost,
which makes it useless for anything more than a simple connectivity test. In order to broadcast your stream to the Internet and let others connect to it you need a few requirements. The first requirement is an IP address.
Unless you have specifically requested a static IP address for a home DSL/Cable connection you will have
a very hard time serving audio to the public. There are some free dynamic DNS services which attempt to overcome this limitation but I have never used them so I cannot vouch for their quality.
The second limitation with home DSL/Cable connections is bandwidth, which directly translates to how many listeners
you can support. I'll use my home Cable connection as an example. My outbound bandwidth (aka upload speed) is
around 320k/s. This speed can handle 5 concurrent connections to a 64k ogg stream. It can handle 2 concurrent connections to a 128k mp3 stream.
Because of these limitations many people use a commercial streaming provider. I can recommend Mediacast1 but there are many others. The other options is to set up
your own server with a self-managed hosting account or on a private server with a lot of bandwidth. The rest of this document will assume you have a static IP address and hostname on the Internet available to you. If your
are using a commercial provider, they probably have already configured Icecast and given you access to the graphical
control panel. If this is so, play around with it and read their documentation guides. If you have to configure
Icecast yourself, you can use the server running on localhost as a guide. Click on the K menu of Auppix and select
Editors->KXMLEditor. Then select File->Open and open /home/knoppix/icecast.xml. You will see the configuration
tree. For information on the available options, read through the Icecast2 configuration guide.
Sometimes you don't have access to live audio equipment but you might have a lot of pre-recorded sound on your
disk. You can make a playlist of these files and send them to an Icecast server for broadcast. Again, I assume
your files are in the ogg/vorbis format. If they are not, this will not work.
First you have to mount the disk that contains your audio files. This can be anything, a hard disk, a CD-R, a DVD-R, even a USB keychain drive. You should see an icon on your desktop for each piece of media you have attached to your computer. If that icon is a picture of a hard disk, right click on it and choose mount. Then click on the icon and you should see your disk. The fun part is making a playlist of all your files on that disk. Click on the terminal icon on the botton left of the screen. You should still have the window of your disk open. In the address bar you will see some text that looks like
file:/mnt/hda6 but the "hda6" part may be different on your computer. Copy the /mnt/hda6 part then paste it into the terminal window
find /mnt/hda6 -name '*.ogg' >> /home/knoppix/playlist.txt
You now have a playlist of all your music in your home directory. This directory path is /home/knoppix/playlist.txt. Click the K menu in the lower left corner and choose Editors->KXMLEditor then choose File->Open and open /home/knoppix/ices-playlist.xml Then you can follow the instructions for configuring ices. When you have everything configured, go back to the terminal and type
ices2 /home/knoppix/ices-playlist.xml
and leave that terminal open. You are now streaming your playlist.
In addition to a way to encode and broadcast audio, Auppix can record and edit live sound. The crucial part here is the length of sound you can record. Since our entire operating system is on a CD-ROM there is no way to write data to it (for the curious the ROM part of CD-ROM stans for Read Only Memory). If you have a hard disk attached to your computer, you can mount that disk and write data to it, then you can point the Auppix hard disk recording program, called Audacity to that disk.
First you have to mount your disk by right clicking on the hard disk icon and choosing mount, then you have to change it's mode to read/write also by right clicking on it and choosing actions->change read/write mode.
Test if you can write to that disk by dragging a small file on to it. If you don't get an access denied message you're good to go. Now open Audacity and choose File->Preferences->Directories and enter the path to your newly mounted hard disk. You should see that "Free Space:" value jump up quite high. Once you have done this you can use Audacity as normal. For more info on recording and editing with Audacity, refer to the Audacity documentation.
One of the more novel uses of Internet radio is as a link between the studio where the sound is being created and the location of an FM or AM transmitter. Depending on where you live, broadcasting an FM signal without going through some government beuracracy and paying a ton of cash is very difficult. Using the Internet for that "final hop" is an excellent way to remain legit while still broadcasting good old fashioned FM radio. This system was one of the reasons Auppix was created and will continue to fuel it's development.
This configuration requires a lot of variables to be identified. It would be wise to have someone who is familliar with UNIX and the Internet on hand during the initial configuration. You need two computers, two Internet connections and two sound cards. You also need a broadband connection. While technically possible to do this with a modem on both ends, it is highly impractical. Let's start with the sending end.
The sending end needs to encode the audio and send it to an Icecast server. If you have a static IP address and enough bandwidth you can configure the Icecast server included with Auppix. If not your Icecast server will have to be located somewhere else. See the section above for setting up Icecast. Configure your encoder also by following the directions above and try playing back your stream. If that works you're half way there.
The recieving end needs only to play back the stream from your Icecast server. Since Auppix is released under a legal licence called the GPL, you don't have to worry about licence codes or copy protection. Just make another copy of the CD for the second computer. Auppix has many programs capable of playing back a stream over the Internet. Some are more stable than others and since this situation needs nothing more than to reliably play a stream, our player needs not be fancy. Alsaplayer is the most stable player in my experience but you are free to experiment with others. The simplest way to find the URL of your stream is to go to the Icecast web interface, copy the Click to Listen link and remove the .m3u from the end. Then paste that URL into Alsaplayer and if you're lucky you should hear some sound. Alsaplayer is located in the K menu->Sound->alsaplayer.
The third step is configuring the transmitter and tuning it to a frequency. This is beyond the scope of this document but will be covered in later releases of Auppix.
Future development plans
Currently, future development for Auppix is very directed. The highest priority is to work towards supporting a 2.6 kernel and eliminating the dependence on OSS sound drivers by moving to the Advanced Linux Sound Archetecture, which is the default system for this kernel. Making ALSA the default will open up the use of the Jack Audio Connection Kit which is an extremely powerful sound archetecture that meets and sometimes exceeds all current commercial offerings in functionality. JACK support is currently functional in Debian so adding it to Auppix will happen shortly after the 2.6 kernel version is released. The second priority is supporting the PPC archetecture, which will bring Apple hardware into the mix. The third priority is to get more documentation regarding FM broadcasting included and improve the stability of the software tools for working with that medium.