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@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