[PD-announce] space~ - object for spatialization of audio sources

Shahrokh Yadegari sdy at ucsd.edu
Tue Nov 30 04:58:16 CET 2004


Hi All,

I have just put up an alpha version of space~, which is a real-time 
implementation of the cmusic's space unit generator with many 
improvements. I have recently added a considerable amount of code for 
room management. So use it carefully.

You can download compiled versions for Linux and Mac OS X (Darwin) at:
http://www.crca.ucsd.edu/~yadegari/space.html

I have not compiled it for windows yet.

enjoy,
Shahrokh.
--------------

Notes for version 0.4alpha
--------------------------
Lots of code has been added to this version recently for room
management and treatment of the reflections when the source is
outside of the virtual space. Generally you should not allow the
source to go outside of the virtual source.  While I have tried to
accomodate for the source to be outside of the virtual space and
thus have the sense of a source being far apart, you should not
depend on this effect to stay the same. As usual reports of bugs
and suggestions are welcome. Send me mail at (sdy at ucsd.edu).


space~ - A module for spatialization of audio sources
-----------------------------------------------------
Based on an algorithm and a partial implementaion by F. Richard Moore
in "cmusic" as part of the Computer Audio Research Laboratory (CARL) 
package.

Real-time implementation, port to Pd, and new improvements by Shahrokh 
Yadegari.

With the help of Ted Apel , Anthony Burr , Harry Castle, and Miller 
Puckette.

Space~ is a real-time implementation of a general model for
spatialization of audio sources. The central conceit of the algorithm
is that of a room within a room.  The inner room is the space
delimited by the speakers which contains the listeners. The model
simulates the behavior of the sound source within a user-defined
virtual outer room, as heard from the inner room. The speakers
act as "windows" throug which sound from the outer room passes.


NOTE: In this implementation both the inner and outer rooms are
assumed to be squares. Also keep in mind that the simulation of a
source in the listening room is not as good as when the source is
in the virtual space and currently one hears sudden changes to the
level of audio on opposite speakers when a sources passes through
an inner wall.


The syntax to space~ is a follows:
----------------------------------
space~ [card] [stereo|quad] [inner-room-size outer-room-size]

- card - indicates that the cardiod pattern information is supplied
for the audio source
- stereo|quad - specifies the diffusion mode (quad is the default)
- inner room size - is the size of the inner room in meters
- outer room size - is the size of the outer room in meters

(When inner room size and outer room size are not specified, sizes
4 and 50 meters are assumed.)

All inlets and outlets of space~ are of type signal

Outputs for stereo
------------------
1 - Front Left
2 - Front Right
3 - to be connected to Reverb

Outputs for quad
----------------
1 - Front Left
2 - Front Right
3 - Rear Left
4 - Rear Right
5 - to be connected to Reverb

Inputs
--------
1 - audio source
2 - X coordinate in meters
3 - Y coordinate in meters
4 - amplitude (not in db)


Additional inputs when "card" is specified
------------------------------------------
5 - Theta (in radians) - source radiation direction
6 - Back - radiation level in the opposite direction (0 <= Back <= 1)


Methods
-------
stop - stop spatial processing (for saving cpu cycles
start - start processing
theta - source radiation direction (when "card" is not specified)
back - radiation level in the opposite direction of theta (when "card" 
is not specified)
direct - affecting the power laws for calculating the direct ray 
attenuation
reflect - affecting the power laws for calculating the reflected ray 
attenuation
TH (also "th" or "threshold") - threshold value for ray diffraction 
simulation
CF (also "cf" or "crsossfade") - crossfade form for ray diffraction 
simulation





More information about the Pd-announce mailing list