Version 29, last updated by uniquesnowflake8 at Jun 03 08:19 2009 UTC

Robot Rock for Developers

Introduction

  • Robot Rock is a futuristic musical instrument which pairs a human conductor with many collaborating Musician AI entities. Our development efforts are focused on building an easy to use, compelling interface; building sophisticated AI modules; and practicing refined software engineering methods through high level techniques and architecture.
  • We use Qt, Python, and FluidSynth.

Getting / Building the Source

  1. Please make sure you have the following tools installed on your Linux environment:
  2. svn checkout http://subversion.assembla.com/svn/cse403 OR download the .tar
  3. cd cse403/
  4. python setup.py install
  5. robotrock

Changes to run from main.py (source)

  • Change SOUNDFONT_PATH in basefsreceiver to:

    SOUNDFONT_PATH = '../soundfonts/'

  • Change SOUNDFONT_DIRECTORY_FILE in main.py to:

    SOUNDFONT_DIRECTORY_FILE = '../' + 'soundfonts/basic_set.txt'

Building a Release

  1. From the main robotrock directory:

python setup.py sdist

This will create a dist directory, which will contain a tarball of the distribution.

You may wish to upload this latest .tar to the 'Files' tab of our Assembla site. If you do, please update the links to the latest tarball on DeveloperDoc and UserDoc.

Daily Build

We are using Cron for our daily build. The following commands should be placed in a bash script:

\#! /bin/bash

svn checkout http://subversion.assembla.com/svn/cse403 . > /dev/null

cd robotrock; python setup.py sdist

cd test; ./testall

Then a command to run the script can be placed in a crontab file (use crontab -e to edit the crontab file):

0 17 * * * script.sh

This will run the necessary script at 5pm every day (modify the 17 to alter the hour of day it runs)

The cron job is currently set up as described, running on attu.

Running tests

From the root directory:

  1. cd robotrock/test
  2. chmod 755 testall
  3. ./testall

Directory Layout

/root

/robotrock -- READMEs, LICENSE and setup/installation instructions.

/robotrock -- the main source tree for Robot Rock.

/musicians -- Directory containing musicians. See MusicianDirectory Layout for detailed information.

/scripts -- contains the entry point of the robotrock application. This gets installed into an appropriate bin directory

/images -- contains gui images

/soundfonts -- contains soundfont definition files, which provide sounds for various instruments

/test -- contains unit tests.

Bugs

  • View known/active bugs at our Assembla page.
  • Send new bug reports to cse403-robot-rock at cs.washington.edu with subject 'Developer Bug'

Reasoning:

scoremarker.py

Adding an instrument and making it fully operational:

Adding Instrument