The Device Server drives interactivity inside the UCSB AlloSphere. It provides both a methodology and an application for distributing control signals to software applications. Client applications register to receive signals from devices; these registrations can be dynamically altered without any need to recompile applications. Signal processing occurs in the Device Server using the Lua programming language. Lua expressions are JIT compiled to provide speeds similar to compiled languages like C and Java, but with the benefits of using a dynamic interpreted language.
The Device Server makes it easy for users to experiment with how they control their applications by attempting to homogenize signals from disparate devices to a uniform range of values that the application requests. Thus, the controls on an analog joystick can easily be swapped for the controls on a digital joystick; a continuous control such as an accelerometer can easily be swapped for another continuous control such as the volume envelope of a microphone signal.
The Device Server is open source and made available under the MIT license. We are in the process of making our subversion repository publicly accessible; until then you can download a .zip of the source. This .zip was last archived on 11/22/2011.
The Device Server runs in OSX 10.5 and higher.
The Device Server was implemented and is maintained by Charlie Roberts. Additional contributions came from a variety of members in the AlloSphere research group: Dr. Matthew Wright, Dr. JoAnn Kuchera-Morin, Graham Wakefield, Lance Putnam and Wesley Hoke Smith.
For a broad overview and an example of how the Device Server is used in the AlloSphere please see the paper Dynamic Interactivity Inside the AlloSphere from the 2010 processings of the New Interfaces for Musical Expression conference. Please see the masters thesis of Charlie Roberts for more comprehensive information about the Device Server. For a getting started guide, see this handout from a workshop given at UCSB.