Setting up the dummy system

Marc Schröder, 26 August 2008

The SEMAINE dummy system is a skeleton structure for the runtime system. It implements roughly the right kind of structure, sending and receiving roughly the right kind of data between the components, but each component doing no serious processing. Over the next few months, dummy components will be replaced with "real" components one by one.

At this stage, the dummy system is available only in Java. A C++ version of the API will follow.

To try out the code, proceed as follows.

1. Check out the code from the SVN

svn checkout semaine

This will get the code from the repository and put it into a folder semaine/.

2. Compile the Java code

You need Java SDK 1.5 or newer installed. If you don't have it, get it from

Also, you need the ant build tool -- if needed, get it from

Build the jar file as follows:

cd semaine/java
ant jars

This should create semaine/java/lib/semaine.jar.

Note: If you want to edit the Java source code, you can import the code into Eclipse -- just use "Import"->"Existing project" on the semaine/java folder.

3. Compile the c++ code

This step is now very simple, hopefully. If you have the latest SVN code, do:

cd bin/


This script now also automatically downloads all but one of the dependencies. The only dependency that you should download yourself is the atk package, for which registration is necessary. Please follow the instructions to download this package and then run If you are using SVN to build the code, and not the SEMAINE-1.0.x distribution, you also need to copy the asr models and to the thirdparty/download/ folder. These are included in the SEMAINE-1.0.1-linux.tar.gz package, but not in the SVN repository.

NOTE: you need the following packages installed to be able to compile (ubuntu/debian): automake, autoconf, gcc, g++, libasound2-dev, make, libtool, patch

normally they are installed, if you have a development environment set up. If you do not have them installed or if you get errors when running the script, do the following on ubuntu/debian:

sudo apt-get install automake autoconf gcc g++ libasound2-dev make libtool patch

4. Get ActiveMQ

You need to have a locally running version of !ActiveMQ to try this demo. Binary distributions for Windows and Unix/Linux/Mac can be found at

5. Run the programs

You need to start at least an !ActiveMQ server and the semaine ComponentRunner. In addition, it is highly advisable to run the LogReader on a separate console, to see what is going on. Of course it makes sense to start the log reader before the component runner, so that you see the messages relating to the system startup. There are simple shell scripts that aim to simplify the task. Start them in different shells.

  1. semaine/bin/ assumes that you set the environment variable ACTIVEMQDIR to the path where you installed !ActiveMQ.
  2. semaine/bin/ starts a log reader that will display all log messages.
  3. semaine/bin/ starts the ComponentRunner with a config file, which defaults to the one for the dummy system.
  4. semaine/bin/ starts the ComponentRunner with only a minimal system -- a SystemManager and a MessageLogReader. This is useful to try out external components, e.g. from the C++ API.
Last modified 11 years ago Last modified on 05/15/09 15:23:43