Chroma is a set of 48 lights located in the main office of the ACM at UIUC (see more on it's main site: http://www.acm.uiuc.edu/sigmusic/chroma/)
This repo contains the environment to code for them, as well as the collection of everyone's animations. It contains a full testing environment, and handy animation utilities. Fork this repo and submit a pull request to add your changes back to the main repository.
Install virtualenv (skip if you have it already).
sudo easy_install virtualenv
Move on to running to get the environment activated and dependencies checked.
###Windows users Scroll down to see instructions since there are a buttload.
There is a simple emulator provided that will start automatically when run.py is executed if it's not running already. In your chrome-scripts directory, run the activate script. If this is your first time running it, give it a bit to fetch dependencies and setup the environment:
source activate
To run an animation:
./run.py [animation name]
If you're on zsh, tab completion should work too. If there isn't a server or emulator started, it will start the emulator for you automatically.
When you're done hacking, deactivate
to get exit out of virtualenv.
If you need to restart the server, see here.
To contribute add a new folder in the animation directory. This folder should be have a unique name for the animation. The folder must contain the following two files:
main.py:
import sys
from oscapi import ColorsOut
...
manifest.json:
{
"name":"Random Colors",
"description":"Random colors on 3 second intervals",
"creator":"RJ and Reed"
}
Each light recieves an input that is a tuple (r,g,b) where each of r, g, b can be 0-1023.
Construct an array of tuples and send them to the OSC server with
pix = [(1023.0,0.0,0.0)]*48
out = ColorsOut()
out.write(pix)
To add simple effects, such as automatic fade-in and fade-out of pixels, use the animations library in place of ColorsOut
from animations import FadeAnimation
pix = [(1023.0,0.0,0.0)]*48
out = FadeAnimation()
out.FADEINRATE = 2.0 #optional
out.FADEOUTRATE = 8.0 #optional, makes things 'trail off'
out.start()
out.write(pix)
Chroma is bright, and can easily be the predominant lighting in the room. Fast blinking of the lights can be intense, so be considerate.
- Avoid instantaneous changes in both intensity and color
- Use the provided animation framework to transition between colors
0. Install Python 2.x from http://www.python.org/getit/
1. Download and run Processing for Windows from http://processing.org/download/
2. Install the oscP5 library from http://www.sojamo.de/libraries/oscP5/
5. Install the setup tools as described here: http://pypi.python.org/pypi/setuptools
6. Download and fully extract this file: http://pypi.python.org/pypi/pip#downloads
python setup.py install
pip install virtualenv
virtualenv env
env\Scripts\activate
pip install -r dependencies.txt
python run.py random
Note: be sure (env) is displayed at the beginning of every command line when running scripts, or else it will not work!