Aura
Real Time Distributed Objects for Interactive Multimedia
 
Aura is a real-time system for creating interactive multimedia. Aura is
the primary real-time system platform developed and used by the Computer
Music Project of the School of Computer Science at Carnegie Mellon University.
The real-time Aura project is one of many components of the larger CMU Aura project, investigating future applications
in a world of pervasive computing. In that context, we are known as AuraRT to
avoid confusion. But here, our original name, Aura, is used in place of AuraRT.
What is Aura?
Aura is:
- a philosophy about the design of real-time software (and software in general),
- a software architecture that embodies that philosophy,
- and a library that implements that architecture.
Philosophy
The Aura approach to software design is the result of many years' experience building
real-time interactive systems. Some principles we follow include:
- Component-based design. Aura programs are constructed from objects that
behave something like Audio/Video components. You connect components together to create
systems. In Aura, you might connect a slider object to a MIDI volume control object to
create an on-screen volume control.
- Simple types. A/V components have line-level audio, composite video, AC
power, etc. Aura objects deal with integers, floats, strings, and a few other simple
types. In contrast, traditional object systems are interconnected by references to objects
with a complex set of types, methods, and parameter lists.
- Attribute/value interfaces. Aura objects have attributes
that you set rather than methods that you call. This supports the principles
of component-based design and simple types. (In the newest version of Aura,
attribute/value interfaces are still prevalent, but access is through more
standard remote method invocation.)
- Synchronization is complicated and expensive. It is hard to write
concurrent software. A much better approach is to divide computation into small tasks, and
run each task to completion before starting the next. When threads are necessary,
communication via asynchronous messages is preferred over shared memory.
- Priority segregation. Although concurrency is to be avoided, it is
necessary when there is a mix of long-running computations and other computations that
must run with very small delay. Systems can be organized as a collection of threads, each
serving a collection of objects with similar latency requirements. The function of the
objects is not relevant; they are segregated among threads according to their latency
requirements only.
Software Architecture
The Aura philosophy has been applied to the design of a software architecture that
includes a real-time object system, a real-time communication system, and facilities for
real-time memory management.
The Aura Implementation
Aura has been implemented as a library. It can be viewed as "real-time
middleware" that sits between an application (constructed from Aura objects) and the
operating system. Aura's real-time performance is limited by the ability of the underlying
operating system, e.g. if the operating system can schedule and run a thread every
millisecond, then Aura provide as low as 1ms latency to the high priority thread. Aura is
implemented in C++ and runs on Win32 systems, Irix, and Linux. Linux is now the preferred
system because of its excellent support for real-time.
Papers about Aura
For publications, please see the Aura section of
Roger Dannenberg's bibliography pages.
Aura Applications
Aura has been used in a number of music and multimedia applications, most notably
"Gray Matters: The Brain Movie",
a state-of-the-art real-time audience-interactive educational show about the human brain.
Roger Dannenberg's collaboration with Scott Draves resulted in "In Transit," a multimedia work for live trumpet,
computer music, and computer animation.
Roger Dannenberg also collaborated with Roberto Morales and Jonathan Berger
to create three real-time pieces for dancer, 3D motion tracker, computer animation,
and computer music. These pieces have been performed in Mexico City at the Foro
de Musica Nuevo, the new music festival in Guanajuato, the Arts and Technologies
Symposium at Connecticut College, and at CCRMA, Stanford University.
Sources and Binaries
Aura will be released as free software, available in source form. Aura is undergoing
rapid change now as we integrate networking code and clean up our port to Linux, so please
contact Roger Dannenberg (rbd@cs.cmu.edu) for access
to sources and latest news about Aura software development.
|