Hi Oliver,
the x=0,y=0 is in the center of the room? seems that the sound jumps from inside to outside on -1 * length/2 (stereo setup). funny effect.
This is basically how the model works. It is not really meant for moving the source inside the listening room. I am working on extending the model to handle this, but I still have not fully tested my ideas. I will post the results to the list.
I played a little bit with space~, now on a faster machine, but I still wonder where I should connect the reverb outlet to.
You can connect the reverb outlet either internally to a reverb object or externally to a reverb unit. You have to experiment with the reverb level that is diffused in the room to match your acoustics. When a source is in the listening room, no signal is sent to reverb. This especially helps to make the simulation more effective when the source travels from outside of the listening room through the listening room, but you need the reverb for a more realistic image placement in any case.
Is there are reason that there are two ways of setting Theta and Back? (inlets / messages)
Setting of Theta and Back through messages are ignored if "card" is specified as an argument to the object, in which case the real-time data is used for those variables. I added this feature for simplicity as most often one want to have an omnidirectional source which is the default when "card" is not specified. Thus, you have only 4 inlets instead of 6.
did you think about writing a ladspa or dssi plugin?
Sure, but not extensively yet. I think the real problem there is to define an interface for how the path should be specified. I have not written a ladspa or dssi plugin yet, so if anybody has any ideas, I'll appreciate hearing about it.
Shahrokh.
On Dec 3, 2004, at 10:57 AM, oliver oli wrote:
Hi Shahrokh,
I played a little bit with space~, now on a faster machine, but I still wonder where I should connect the reverb outlet to.
Is there are reason that there are two ways of setting Theta and Back? (inlets / messages)
Thanks, oliver
From: oliver oli smoerk@gmail.com Date: November 30, 2004 2:30:44 PM PST To: pd-list@iem.kug.ac.at Subject: Re: [PD-announce] space~ - object for spatialization of audio sources
Hi Shahrokh,
nice external, seems to run stable, but my machine is a little bit slow to handle more than 2 quad space~ objects. as i don't know much about spetialization in general, what should i do with the reverb outlet?
the x=0,y=0 is in the center of the room? seems that the sound jumps from inside to outside on -1 * length/2 (stereo setup). funny effect.
did you think about writing a ladspa or dssi plugin?
i like the idea that the speakers are windows to an outer room. i just shortly tried it, but it seems the image is much more stable than with panning if you walk through the room.
now i have to get a faster machine to do something serious with it :-)
oli
Shahrokh Yadegari wrote:
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 _______________________________________________ PD-announce mailing list PD-announce@iem.at http://iem.at/cgi-bin/mailman/listinfo/pd-announce
Hello Shahrokh
Shahrokh Yadegari wrote:
the x=0,y=0 is in the center of the room? seems that the sound jumps from inside to outside on -1 * length/2 (stereo setup). funny effect.
This is basically how the model works. It is not really meant for moving the source inside the listening room. I am working on extending the model to handle this, but I still have not fully tested my ideas. I will post the results to the list.
i don't see how you could get an stable image with only 4 speakers or even 2. if you want move sound sources inside the the inner room, wouldn't it be better to use ambisonics? I don't need to place sound sources in the inner room, so I don't miss that feature very much.
But I would like to see an option to define rectangular inner rooms and maybe to be able to place any number of speakers to freely defineable positions.
but my biggest problem is the cpu power space~ uses. my 1.7GHZ Pentium M can handle around 10 stereo space~ instances. but then there is not much cpu time left to do anything else. i would like to use 8 to 10 space~ instances with 4 channels. I can try with an optimzied compile to the target platform, but i doubt that it will give more than 10% to 20% percent speedup (i'm just guessing, i don't have much experience with that).
what was the maximum number of space~ instances you ran on a single cpu?
I played a little bit with space~, now on a faster machine, but I still wonder where I should connect the reverb outlet to.
You can connect the reverb outlet either internally to a reverb object or externally to a reverb unit. You have to experiment with the reverb level that is diffused in the room to match your acoustics. When a source is in the listening room, no signal is sent to reverb. This especially helps to make the simulation more effective when the source travels from outside of the listening room through the listening room, but you need the reverb for a more realistic image placement in any case.
the reverb is equally mixed to the 2 or 4 speakers?