README for Dansemuse =========================================== INTRODUCTION BASICS LIBRARY DEPENDENCIES AND SOFTWARE VERSIONS HOW DOES IT WORK? GLOBAL CONFIGURATION DETAILS OTHER DETAILS Current respository for Dancemuse: http://www.danaprajna.com/dansemuse ---------------------------------- -o- INTRODUCTION Dansemuse is a set of Java classes and routines built on top of the Processing video library. It registers difference between captured video frames as a tool to active Trigger objects which have been overlayed on the two dimentional space framed by the video camera. Triggers include Buttons (of various shapes) which perform a single action and Sliders which perform a sequence of actions as they move between positions. The primary purpose of Dansemuse is to trigger sound via OSC. It's not perfect. But it's functional. And it will be improved over time. We welcome any feedback, suggestions and patches going forward. If you find it super-useful, we'd love to hear about what you did with it and how. We will include any helpful patches and improvements in releases going forward. We could also use help perfecting this README and generating any documention about this project. The code is the primary reference. The ultimate goal of this README is to allow anyone to use the code with as little startup cost as possible. Realistically you need a working knowledge of: . processing.org . how to install libraries in the Processing environment . basics of Java programming and development . Open Sound Control (OSC) . whatever programs you choose to target with OSC . structure of overlay_TEMPLATE.pde . configuration of and interaction between Trigger objects This code should work on any machine that supports Processing and the the dependent libraries. But in general, the documentation assumes you're running OSX 10.5 or later. The details below should provide an quick orientation of the code, how to setup and use it, and should help to avoid a few snafus along the way. David Reeder dansemuse@danaprajna.com ---------------------------------- -o- BASICS Consult MANIFEST for an overview of the Dansemuse modules. Read the module headers. PDE requires that the project directory and main module have the same name. In this case it is "dansemuse". Review the section on LIBRARY DEPENDENCIES AND SOFTWARE VERSIONS. Consult the Processing preferences to establish the location of the PDE project directory "sketchbook". Type 'h' into the video window to see runtime controls. Explore dansemuse.pde to add or modify global system variables. Consult overlay/overlay_TEMPLATE.pde to see where triggers are declared, defined and used. Technically, this should be the only file you need to change to build a new Dansemuse composition. Only one overlay file can exist at a time (more exactly, only one instance of each of the functions defined in the overlay file can exist in a single PDE project). Consult Trigger.pde for the toolset offered by the methods of this class. These include: generation of OSC messages and bundles; trigger delay; test for trigger activity; displaying text associated with triggers. The shape, position, color and OSC message name of a Trigger is defined by the constructor. Focus the inter-trigger computations in the final function of the overlay file, scanTriggers(). isActive() returns true if a frame difference has appeared within the boundaries of a given trigger object, even when it is delayed. Trigger.trigger_count reports the number of times a trigger has been activated by frame differences. OSC target and receive port is also defined in the overlay module using setupOsc(). Consult the "overlay" directory for working examples of overlay files. Use an overlay file by copying it into the PDE working directory named "dansemuse". ---------------------------------- -o- LIBRARY DEPENDENCIES AND SOFTWARE VERSIONS Dansemuse was built under Processing v1.2.1. http://processing.org The Java environment is [java -version]: java version "1.5.0_26" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_26-b03-376-9M3263) Java HotSpot(TM) Client VM (build 1.5.0_26-156, mixed mode, sharing) The Mac OS X version is [sw_vers -productVersion]: 10.5.8 The following Processing libraries must be installed in "sketchbook/libraries": oscP5 v0.9.6. http://www.sojamo.de/libraries/oscP5/download/oscP5-0.9.6.zip ---------------------------------- -o- HOW DOES IT WORK? (describe: pixel difference function, diffcount threshhold, trigger search strategies, SliderAction class) TBD -- write me! ---------------------------------- -o- GLOBAL CONFIGURATION DETAILS (enumerate global variables in dansemuse.pde) TBD -- write me! ---------------------------------- -o- OTHER DETAILS Using an external webcam on a laptop while it's open... Mac apps prefer the build-in iSight camera if it is not in use. To use an external webcam, first distract the Mac by running something like Photo Booth to capture the iSight device. PDE will adopt the first available camera device in the USB chain.