XML Feeds

.

[maxmsp] 8 speaker surround

Graham Wakefield lists at grahamwakefield.net
Mon May 26 08:04:03 MDT 2008


In case a reader doesn't know how ambisonics would solve this  
question, it's relatively simple - and probably more scalable than  
some of the other solutions posted. I'll try and give a plain English  
explanation.

First, the short version:

source(s), azimuth(s), elevation(s)
|
v
encoder(s)
|
v
(summed)
|
v
decoder
|
v
speaker outputs

And a brief explanation of what this means:

Each source to be spatialized is passed to an encoder, along with a  
direction from the listener described as azimuth (angle from the  
listener on the horizontal plane, typically clockwise) and elevation  
(angle from the listener going up/down, usually up from front-facing  
is positive). These are polar coordinates, which are sometimes called  
phi and theta.  Note that the elevation transform is applied after  
the azimuth (you could imagine turning from a front-horizontal facing  
clockwise until you are aligned to the source, then rotating upwards  
until you face the source).

The ambisonic encoder then creates an intermediate representation of  
this sound source in the ambisonic domain. It's just a transform, in  
the same way that a spectral domain can be achieved by (some kind of)  
Fourier transform, however in this case it is based upon the math of  
spherical harmonics and captures polar orientations rather than  
frequencies. There are different orders of ambisonics, and they can  
be done in 2D or 3D.  Increasing the order is better if you want to  
expand your acceptable listening area, but requires more signals in  
the ambisonic domain.  For an 8 channel surround in 2D, you would  
typically use 1st order (requires 3 channels) or 2nd order (requires  
5 channels in the ambisonic domain). One of the nice things about the  
domain is that it is additive, you can encode lots of independent  
sources and add the domain signals together (assuming the domain  
orders and dimensions match).

The other nice thing is that the domain is portable; it can be easily  
'decoded' onto different arrays of speakers, and the only additional  
information needed is the speaker arrangement (and that, again, the  
order/dimensions must match). The domain signals are passed to a  
decoder to do another spherical harmonic transform at each speaker  
location, and deduce the needed pressure waves from each speaker to  
try and reconstruct the spatial sound field in your listening area.   
That's why the decoder also needs to know the azimuth and elevation  
of each speaker relative to the listener.

You can build a simple 1st order encoder in max just using basic  
objects, since the math at 1st order is pretty simple - see Dave  
Malham's primer:

http://www.york.ac.uk/inst/mustech/3d_audio/ambis2.htm

Or, you can use externals for higher orders. There are two higher- 
order ambisonic libraries listed on www.maxobjects.com, ICST's and my  
own; both are fully capable of these tasks.

Also, note that ambisonics can do a lot more than what I've mentioned  
here - I've deliberately simplified the description. I hope someday  
soon a book will be published on the subject - it is quite overdue.

On May 25, 2008, at 4:11 AM, Tommaso Perego wrote:

> ambisonics?
> multiout?
>
>
>
> On 25 May 2008, at 11:42, Andreas Wetterberg wrote:
>
>> James skrev:
>>> alright all, i've made a 5 sound drum machine and basically what  
>>> im trying to do is have each sound slowly rotating around the  
>>> room in different directions and different speeds, so far i  
>>> havent had much luck, bucket seems like a close object but i cant  
>>> get it so each slider spaces out more. any ideas?
>>>
>> There is a wide variety of abstractions that will do this quite  
>> flawlessly. I seem to remember 110.distribution or similar.
>>
>> check maxobjects.com
>> _______________________________________________
>> maxmsp mailing list
>> maxmsp at cycling74.com
>> http://www.cycling74.com/mailman/listinfo/maxmsp
>
> _______________________________________________
> maxmsp mailing list
> maxmsp at cycling74.com
> http://www.cycling74.com/mailman/listinfo/maxmsp

Be seeing you

grrr waaa
www.grahamwakefield.net

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.cycling74.com/pipermail/maxmsp/attachments/20080526/0e6719ef/attachment.htm


More information about the maxmsp mailing list