Getting Started

How to set up your environment for Kamaelia

Feedback sought!

    This page is a bit on the long side, and whilst it should be complete, assistance in shortening this welcome.
    ALSO, this page needs updating (version numbers mainly)

Assumption:

  • You are using a modern linux distribution with development tools for C and python installed, along with some common libraries for music & perhaps video.
  • That you have root access on the system, and use sudo. If you don't use sudo mentally skip that below.

Quickstart Instructions

  1. Download the files you need (you might need less than this link gives you)
  2. Install the core packages (Axon & Kamaelia)
    • 2.1 Depending on the audio/video capabilities you're interested in, install some C libraries, if necessary. (if any)
      2.2 Again depending on the audio/video capabilities you're interested in, install the python bindings for these libraries
  3. Start playing with the examples, which are also in the cookbook.

Detailed Instructions

1. Download the files you need

Preferably as a bundle with everything in:

Or as individual files:

Note: If you just want to play and get started, just get the two core files, install the core system and work from there. A number of the examples, which you'll find in the cookbook use the libraries above, but you should be able to get the gist of how to do things without needing the optional files.

For convenience in the below I assume you've downloaded all the above files into the same directory, or downloaded a bundle and unpacked it.

2. Install the Core

Install Axon

Unpack....

    tar zxvf Axon-1.5.1.tar.gz

Install....

    cd Axon-1.5.1
    sudo python setup.py install

Install Kamaelia

Unpack....

    tar zxvf Kamaelia-0.5.0.tar.gz

Install....

    cd Kamaelia-0.5.0
    sudo python setup.py install

2.1 Install Optional C libraries

You might notice a pattern with all of these ... :-) If you want dirac support, you only need to install Dirac. If you want vorbis support, you need to have libogg, libvorbis and libao installed. With a modern linux distribution these are probably already included. If they're not, they're simple to build - see below. You might want to skip to the next section before deciding whether to install these. Personally though, I'd recommend installing them because these are what we're currently developing with.

Installing Dirac

Unpack....

    tar zxvf dirac-0.5.4.tar.gz

Build....

    cd dirac-0.5.4
    ./configure
    make

Install....

    sudo make install

Homepage for Dirac: http://dirac.sourceforge.net/

Installing libogg

Unpack....

    tar zxvf libogg-1.1.3.tar.gz

Build....

    cd libogg-1.1.3
    ./configure
    make

Install....

    sudo make install

Homepage for Ogg: http://www.xiph.org/

Installing libvorbis

Unpack...

    tar zxvf libvorbis-1.1.2.tar.gz

Build....

    cd libvorbis-1.1.2
    ./configure
    make

Install....

    sudo make install

Homepage for Vorbis: http://www.xiph.org/

Installing libao

Unpack....

    tar zxvf libao-0.8.6.tar.gz

Build....

    cd libao-0.8.6/
    ./configure
    make

Install....

    sudo make install

Homepage for libao: http://www.xiph.org/

2.2 Installing Optional Python Bindings

Note that for some of these you will need to have installed the appropriate C libraries described in 3.

Installing pygame (If you don't have pygame already installed!)

Unpack....

    tar zxvf pygame-1.7.1release.tar.gz

Install....

    cd pygame-1.7.1release
    sudo python setup.py install

Homepage for pygame: http://www.pygame.org/

Installing pyao

If you want to use the vorbis examples, then you need something to output the audio. PyAO wraps libao which is an audio output library. This is generally included in most linux distributions, but PyAO generally isn't. Installation:

Unpack....

    tar zxvf pyao-0.82.tar.gz

Configure....

    cd pyao-0.82
    python config_unix.py

Install....

    sudo python setup.py install

Homepage for pyao: http://www.andrewchatham.com/pyogg/

Installing Pyrex (important)

Many of the other python bindings described here are built using a great python tool called pyrex. As a result you need to install this if you want to use the vorbis, dirac or DVB bindings. Installation:

Unpack....

    tar zxvf Pyrex-0.9.3.1.tar.gz

Install....

    cd Pyrex-0.9.3.1
    sudo python setup.py install

Hompage: http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/

Installing Python support for VorbisSimple

This is a simple wrapper around libvorbis to make it easier to work with. This also includes python bindings for this wrapper. As a result you installed the simple wrapper first, then install the python bindings. If you're interested, it also includes a document called "BytesToBeeps" which describes how libvorbis and libogg are used by this library. Installation:

Unpack....

    tar zxvf vorbissimple-0.0.2.tar.gz

Build & Install the C library wrapper....

    cd vorbissimple-0.0.1/
    cd libvorbissimple
    ./configure
    make
    sudo make install

Install the python bindings....

    cd ../python
    sudo python setup.py install

Installing Python support for Dirac

Unpack....

    tar zxvf Dirac-0.0.1.tar.gz

Install....

    cd Dirac-0.0.1
    sudo python setup.py install

Installing Python support for DVB (Digital TV, for timeshifting components)

Unpack....

    tar zxvf python-dvb3-0.0.4.tar.gz

Install....

    cd python-dvb3-0.0.4
    sudo python setup.py install

These bindings have only been tested against a freecom DVB-T USB stick, but should work with other DVB cards quite happily.

3. Play with the examples!

At this point, you've got everything installed. Depending on whether you installed various bindings, you will be able to play with different examples. These are all in the cookbook as well.

Have fun!


Michael, March 2006, minor updates November 2006

 

Kamaelia is an open source project originated from and guided by BBC Research. For more information browse the site or get in contact.

This is an ongoing community based development site. As a result the contents of this page is the opinions of the contributors of the pages involved not the organisations involved. Specificially, this page may contain personal views which are not the views of the BBC. (the site is powered by a wiki engine)

(C) Copyright 2008 Kamaelia Contributors, including the British Broadcasting Corporation, All Rights Reserved

This web site is powered by the same code created for the bicker manor project. For more details, contact Michael Sparks at BBC Research directly (cf contact)