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.
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!