Difference between revisions of "OpenAL Audio Server"

From Immersive Visualization Lab Wiki
Jump to: navigation, search
m (To-Do)
(Status)
Line 8: Line 8:
 
-- A separate thread retrieves these instructions from the queue and performs the desired action (i.e. play sound, move sound position, etc.) <br>
 
-- A separate thread retrieves these instructions from the queue and performs the desired action (i.e. play sound, move sound position, etc.) <br>
 
-- File format support is limited only by the OpenAL extensions that are installed on the audio server. <br>
 
-- File format support is limited only by the OpenAL extensions that are installed on the audio server. <br>
 +
-- Server is persistent and stable between different connections.
  
 
* '''Server Frontend'''
 
* '''Server Frontend'''
Line 13: Line 14:
 
-- The frontend also resides in its own thread, allowing the user interface to operate independently from the backend of the server. <br>
 
-- The frontend also resides in its own thread, allowing the user interface to operate independently from the backend of the server. <br>
 
-- Errors are displayed in bold, warnings are displayed in italics, and informative messages contain no special formatting. <br>
 
-- Errors are displayed in bold, warnings are displayed in italics, and informative messages contain no special formatting. <br>
 +
 +
* '''Client API'''
 +
-- Undergoing testing. <br>
  
 
==To-Do==
 
==To-Do==

Revision as of 13:18, 2 November 2011

Contents

Project Overview

Rich, 3D environments need sound to provide the user a feeling of complete immersion. When visualization is provided by a cluster of computers, the sound processing can be handled by a dedicated machine that is in turn connected to the speakers and other audio equipment. The OpenAL Audio Server (OAS) provides this functionality via a network interface on a Linux machine. OAS is based loosely on the aging Windows DirectSound AudioServer project by Marc Schreier, and aims to deliver a backwards compatible solution.

Status

  • Server Backend

-- The backend of the server is functional. Connections can be made, instructions and audio files can be sent, and audio can be played and stopped.
-- All network input and output is handled by a dedicated thread that parses the input into discrete audio instructions and queues it up.
-- A separate thread retrieves these instructions from the queue and performs the desired action (i.e. play sound, move sound position, etc.)
-- File format support is limited only by the OpenAL extensions that are installed on the audio server.
-- Server is persistent and stable between different connections.

  • Server Frontend

-- The frontend of the server uses FLTK and currently only consists of a log window.
-- The frontend also resides in its own thread, allowing the user interface to operate independently from the backend of the server.
-- Errors are displayed in bold, warnings are displayed in italics, and informative messages contain no special formatting.

  • Client API

-- Undergoing testing.

To-Do

  • Create client-side API
  • Read port information and file cache directory from a config file.
  • Server needs to be persistent between different connections.
  • Add server support for instructions that modify listener position and orientation.
  • Add more goodies to the front-end (i.e. visual and tabular representation of sound sources
  • Refactor threading system so that the main thread has more complete possession of other threads

Future Work

  • Enhance sockets code to add support for multiple connected clients. Asynchronous socket I/O.

Participants

Software Developers:

Project Advisors:

Development Assistance:

  • Philip Weber


Initial Concept Base: