DeveloperDoc
History Key
- New content
Removed content
Recent Versions
Choose two versions to compare, or click the link to view it.
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
- Please make sure you have the following tools installed on your Linux environment:
- Python 2.5 or later
- Qt and PyQt
-
FluidSynth and PyFluidsynth
More detailed instructions, and Windows instructions, are available here.
-
svn checkout http://subversion.assembla.com/svn/cse403OR download the .tar cd cse403/python setup.py installpython scripts/robotrockrobotrockNote: currently, this is only a placeholder application!
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
- 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:
cd robotrock/testchmod 755 testall./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'