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.