[CM] Re: 4-channel playback in clm-3 (OS X)

Fernando Lopez-Lezcano nando@ccrma.Stanford.EDU
Fri, 21 Oct 2005 17:00:18 -0700


On Wed, 2005-10-19 at 12:13 -0500, Jake Rundall wrote:
> Incidentally, I'm still interested in learning about the option of working with 
> ambisonics. 

The "dlocsig" ug can output B format Ambisonics and decoded Ambisonics. 

B Format is going to be a 4 channel soundfile (this is for first order
Ambisonics) that contains an omnidirection component and x y and z
components of the wave front. It cannot be played directly. It can be
decoded to play back in n-channel setups, both 2d and 3d. 

> So, if anyone can let me know where to go to start learning about 
> this, please let me know. 

  http://www.york.ac.uk/inst/mustech/3d_audio/welcome.html

> Specifically, What kind of file format does 
> ambisonics use? and How does one write an ambisonics file?  How does one play 
> back an ambisonics file?

CLM3 changed internally (from CLM2) and dlocsig could not longer be
implemented as a unit generator using a single structure to contain all
the internals of the ug (as the built in ug's are). For my 220b class I
did a more compact version that only needs passing around three, it is
here:

http://ccrma.stanford.edu/courses/220b/topics/spatialization/examples/dlocsig.lisp

The matching example move-sound macro shows some usage:
http://ccrma.stanford.edu/courses/220b/topics/spatialization/examples/move-sound.ins

A custom fm-violin that uses dlocsig:
http://ccrma.stanford.edu/courses/220b/topics/spatialization/examples/vd.ins

This is the default mode for dlocsig:
  (defparameter dlocsig-render-using amplitude-panning)
[just amplitude panning using vbap]

You can render to 4 channel Ambisonics format with:

  (defparameter dlocsig-render-using b-format-ambisonics)

Then you have to decode the file separately to play it. For 2d only
Ambisonics you need a minimum of 4 speakers in a square arrangement.

Or you can generate and decode Ambisonics on the fly with:

  (defparameter dlocsig-render-using decoded-ambisonics)

What it does depends on the speaker arrangement that is used (which in
turn depends on the number of output channels being used in with-sound
and the value of dlocsig-3d, "t" or "nil"). 

I know, complicated... :-)
-- Fernando