Spatial OSC Spatial OSC
A Spatialized Sound Server and Protocol for MAX/Msp Using Open Sound Control

Paul Hertz and I collaborated to create a MAX/Msp sound server for use with the Ygdrasil virtual reality software. I replaced the existing protocol between Ygdrasil and our Linux sound server with one based on Open Sound Control (OSC). The resulting architecture greatly increases the audio fidelity of applications and the ability of virtual world developers to control custom parameters within MAX/Msp.

The existing sound client for Ygdrasil uses the Bergen Sound Server running under IRIX or Linux either locally or on a remote machine. This sound server was written completely in-house and only supports 4 channel sound on certain SGI machines. The MAX/Msp software runs on Apple products and is capable of high-fidelity sound production for multiple speaker setups. Paul Hertz of Northwestern University has written a 4 and 5.1 channel spatialized sound server for Msp. We worked together to develop a voice stealing interface that receives sound controls through OSC. When graphics machine and sound server are not connected to the same NSF drive, the user only needs to copy their sounds to the sound server machine when using either the Bergen or MAX/Msp sound servers. The user typically creates sound instances within Ygdrasil and controls their parameters during runtime.
The OSC sound server interface shown within MAX/Msp. A dialog box, the smaller window, can be brought up to track the relative position of individual sounds with respect to any given user.
MAX OSC Server

Open Sound Control is a popular protocol for communication between sound devices. It encapsulates a time stamp for each message in order that the receiver can execute the messages in sequence at the proper time. The OSC protocol is used to instantiate sounds on the sound server and adjust their properties in real-time. A number of properties including play, stop, loop, fall off distance and spatialization (e.g. linear, squared law) are set along with real-time updates of sound position within the world.
OSC Sound Protocol
The Ygdrasil sound nodes were extended to allow general messages to be send to the sound server. This allows users to create custom sound functionalities using the MAX/Msp software and control them from within the VR application. Messages updating the status of sounds (e.g. playing, stopped) are returned from the sound server. Messages can also be delivered via the protocol to control parameters of the Ygdrasil sounds or any other object within Ygdrasil.

Sound Volumes
A unique feature of the Ygdrasil VR authoring environment is the ability to assign spherical, rectangular and cylindrical volumes to sound sources. This allows a sound to encompass a whole space at full volume while inside and then attenuate as the user moves away from the edge of the volume. This is useful when simulating the effect of walls and other structures. In order to generate this effect, both a position of the sound in space and the distance from the sound are sent to the sound server. This way the attenuation can be calculated separately from the directionalization of the sound. Another unique feature is the spreading of directionalization within the volume. As a user approaches the location of a sound, the apparent location of the sound can become unstable as their head moves around it. When inside a volume, the distance is calculated as a negative number indicating the ratio of the distance to the user and the edge of the volume behind them. This allows the spatialization to be spread out across all speakers as the user approaches the center of the volume.
A user outside a rectangular volume will hear the sound attenuated with respect to their distance from its edge. Once inside the box, spatialization diminishes as they approach the center of the volume.
Ygrasil Sound Volumes


The Ygdrasil website.
Paul Hertz' website.