Some Ambisonics questions

View: New views
18 Messages — Rating Filter:   Alert me  

Some Ambisonics questions

by Dan Stowell :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi -

I've never used Ambisonics before, but I'm wondering about how
possible it would be to implement the following setup using SC's
Ambisonics stuff:

I have 20 or 30 point sources, each of which has a location in the x-y
plane (and may move about in this plane). I'd like to encode them into
an Ambisonic representation, then decode this to a ring-of-8-speakers.
Then for convenience I'd also like to be able to project this
ring-of-8 down to stereo headphones using a HRTF.

Looking back over the mailing list archives it looks like this is
probably possible - looks like I could use BFEncode2 to encode the
sources, then BFDecode1 to decode onto the speaker ring. But I have
some questions:

* How do I turn many point sources into one single B-format feed? Do I
encode each one separately and then just add the feeds together? (Or
multiply the feeds together? Or...)

* In terms of the audio outcome, is the only difference between the
different "orders" of Ambisonics the sound quality?

* For projecting the ring down to headphones, what is needed? In the
archive there's discussion of downloading the Kemar HRTFs from MIT -
fine. But is there a specific UGen that would take my 8 channels and
apply the HRTFs? Or otherwise how would it work?

I'd be grateful for any tips
Dan
_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by Christopher Frauenberger :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

have a look at the AmbIEM package (yes, I know, I should make it a  
quark at some point...). The VirtualRoom essentially allows you to do  
exactly what you describe with Ambisonics 3rd order...

http://sonenvir.at/downloads/sc3/ambiem/

give me a shout if you need any help
Chris

On 8 Mar 2008, at 10:07, Dan Stowell wrote:

> Hi -
>
> I've never used Ambisonics before, but I'm wondering about how
> possible it would be to implement the following setup using SC's
> Ambisonics stuff:
>
> I have 20 or 30 point sources, each of which has a location in the x-y
> plane (and may move about in this plane). I'd like to encode them into
> an Ambisonic representation, then decode this to a ring-of-8-speakers.
> Then for convenience I'd also like to be able to project this
> ring-of-8 down to stereo headphones using a HRTF.
>
> Looking back over the mailing list archives it looks like this is
> probably possible - looks like I could use BFEncode2 to encode the
> sources, then BFDecode1 to decode onto the speaker ring. But I have
> some questions:
>
> * How do I turn many point sources into one single B-format feed? Do I
> encode each one separately and then just add the feeds together? (Or
> multiply the feeds together? Or...)
>
> * In terms of the audio outcome, is the only difference between the
> different "orders" of Ambisonics the sound quality?
>
> * For projecting the ring down to headphones, what is needed? In the
> archive there's discussion of downloading the Kemar HRTFs from MIT -
> fine. But is there a specific UGen that would take my 8 channels and
> apply the HRTFs? Or otherwise how would it work?
>
> I'd be grateful for any tips
> Dan
> _______________________________________________
> sc-users mailing list
> sc-users@...
> http://lists.create.ucsb.edu/mailman/listinfo/sc-users

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by Miguel Negrao :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



> * How do I turn many point sources into one single B-format feed? Do I
> encode each one separately and then just add the feeds together? (Or
> multiply the feeds together? Or...)
>
After each source is encoded in b-format just sum them like you would
any mono or stereo signal.
> * In terms of the audio outcome, is the only difference between the
> different "orders" of Ambisonics the sound quality?

The higher the order you get better localization.
>
> * For projecting the ring down to headphones, what is needed? In the
> archive there's discussion of downloading the Kemar HRTFs from MIT -
> fine. But is there a specific UGen that would take my 8 channels and
> apply the HRTFs? Or otherwise how would it work?
>

As mentioned, the ambIEM has all you need for ambisonics to binaural
conversion. Downlod the package and put it in your extensions folder.
Download the MIT hrtf files.

Initialize the buffers:
(
               
var azi, elev;
               
// The speaker positions [eleveation],[azimuth]
elev = [90,40,40,40,40,0,0,0,0,0,0,0,-40,-40,-40,-40];
azi = [0,45,135,225,315,25,75,130,180,230,285,335,0,90,180,270];
       
// adjust your path to the Kemar data
// this is relative to the SC3 folder
Kemar.path = "KemarHRTF/";
Kemar.initBuffers(azi, elev);
postln("Ambisonics Binaural buffers loaded");
       
)


Then do something like

src = Mix.fill(30,{ |i| PanAmbi2O.ar(sound[i],azi[i],elev[i])});
Kemar.ar(DecodeAmbi2O.ar(src))

Miguel Negrão
_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Parent Message unknown Re: Some Ambisonics questions

by Brian Willkie :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> - looks like I could use BFEncode2 to encode the
> sources, then BFDecode1 to decode onto the speaker ring.
Not sure about the exact ugens

Also, Josh Parmenter just recently released a new set of ugens you
should check out. (JoshAmbiUgensUB.scx in the sc3-plugins, part of
the optional installs???).

> * How do I turn many point sources into one single B-format feed? Do I
> encode each one separately and then just add the feeds together? (Or
> multiply the feeds together? Or...)
You need one encoder for each point source. I believe you can sum
the output for all of the encoders the same way you would mix any
multi-channel audio, then feed the mixed/scaled multi-channel
signal to one decoder.

> * In terms of the audio outcome, is the only difference between the
> different "orders" of Ambisonics the sound quality?
Not so much sound quality as "localization quality." Higher order
Ambisonics gives a more accurate image of the location of a sound.
It also uses more speakers. If you decode a B-format signal to a
smaller set of speakers, then you simply throw out the extra
localization information.

> * For projecting the ring down to headphones, what is needed? In the
> archive there's discussion of downloading the Kemar HRTFs from MIT -
> fine. But is there a specific UGen that would take my 8 channels and
> apply the HRTFs? Or otherwise how would it work?
I think for this you want Christopher Frauenberger's ambiem package
http://sonenvir.at/downloads/sc3/ambiem/

A couple of additional points, ambisonics typically places sound
only on the unit circle, so if you want  to work with positions
inside (or outside) the circle, most implementations of ambisonics
won't support it. Josh's implementation does.

Ambisonics utilizes all of the speakers, all of the time, to give a
sense of location. Some people feel that this system makes it
difficult to get a very narrowly focused sound (if that's what you
want). Finally, the math behind it introduces delay in some of the
signals (by design), so there's a bit of built in reverb.

Good luck.
-Brian

> ----- Original Message -----
> From: "Dan Stowell" <danstowell@...>
> To: "SuperCollider users mailing list" <sc-users@...>
> Subject: [sc-users] Some Ambisonics questions
> Date: Sat, 8 Mar 2008 10:07:47 +0000
>
>
> Hi -
>
> I've never used Ambisonics before, but I'm wondering about how
> possible it would be to implement the following setup using SC's
> Ambisonics stuff:
>
> I have 20 or 30 point sources, each of which has a location in the x-y
> plane (and may move about in this plane). I'd like to encode them into
> an Ambisonic representation, then decode this to a ring-of-8-speakers.
> Then for convenience I'd also like to be able to project this
> ring-of-8 down to stereo headphones using a HRTF.
>
> Looking back over the mailing list archives it looks like this is
> probably possible - looks like I could use BFEncode2 to encode the
> sources, then BFDecode1 to decode onto the speaker ring. But I have
> some questions:
>
> * How do I turn many point sources into one single B-format feed? Do I
> encode each one separately and then just add the feeds together? (Or
> multiply the feeds together? Or...)
>
> * In terms of the audio outcome, is the only difference between the
> different "orders" of Ambisonics the sound quality?
>
> * For projecting the ring down to headphones, what is needed? In the
> archive there's discussion of downloading the Kemar HRTFs from MIT -
> fine. But is there a specific UGen that would take my 8 channels and
> apply the HRTFs? Or otherwise how would it work?
>
> I'd be grateful for any tips
> Dan
> _______________________________________________
> sc-users mailing list
> sc-users@...
> http://lists.create.ucsb.edu/mailman/listinfo/sc-users

>

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by Dan Stowell :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi -

Thanks all for the helpful info. I downloaded the AmbIEM compiled
package, and yes indeed the VirtualRoom is easy as well as nice. I
like the doppler effect when the listener zooms around...

Just a note: I had a conflict with existing class "Matrix" in the
MathLib quark - it turns out they're exactly the same file so I
deleted the version that came with ambiem.

Out of curiosity, why is s.options.blockSize_(128) recommended?
Something to do with CPU load? Any other tips re CPU load?

When trying the "the light version of addSource" in VirtualRoom
helpfile, I get this error (on my PowerBook G4):

VirtualRoom: adding source 1 - the light way...
VirtualRoom: adding source 2 - the light way...
VirtualRoom: adding source 3 - the light way...
VirtualRoom: adding source 4 - the light way...
VirtualRoom: adding source 5 - the light way...
VirtualRoom: adding source 6 - the light way...
ERROR:
Meta_Bus:audio: failed to get an audio bus allocated. numChannels: 16
server: localhost
ERROR:
Meta_Bus:audio: failed to get an audio bus allocated. numChannels: 16
server: localhost
ERROR:
Meta_Bus:audio: failed to get an audio bus allocated. numChannels: 16
server: localhost
ERROR:
Meta_Bus:audio: failed to get an audio bus allocated. numChannels: 16
server: localhost
ERROR:
Meta_Bus:audio: failed to get an audio bus allocated. numChannels: 16
server: localhost
ERROR:
Meta_Bus:audio: failed to get an audio bus allocated. numChannels: 16
server: localhost
ERROR:
Meta_Bus:audio: failed to get an audio bus allocated. numChannels: 16
server: localhost
ERROR:
Meta_Bus:audio: failed to get an audio bus allocated. numChannels: 16
server: localhost
ERROR: binary operator '+' failed.
RECEIVER:
   nil
ARGS:
   Integer 4
   nil


Dan


2008/3/8, Brian Willkie <bwillk1@...>:

> > - looks like I could use BFEncode2 to encode the
>  > sources, then BFDecode1 to decode onto the speaker ring.
>
> Not sure about the exact ugens
>
>  Also, Josh Parmenter just recently released a new set of ugens you
>  should check out. (JoshAmbiUgensUB.scx in the sc3-plugins, part of
>  the optional installs???).
>
>
>  > * How do I turn many point sources into one single B-format feed? Do I
>  > encode each one separately and then just add the feeds together? (Or
>  > multiply the feeds together? Or...)
>
> You need one encoder for each point source. I believe you can sum
>  the output for all of the encoders the same way you would mix any
>  multi-channel audio, then feed the mixed/scaled multi-channel
>  signal to one decoder.
>
>
>  > * In terms of the audio outcome, is the only difference between the
>  > different "orders" of Ambisonics the sound quality?
>
> Not so much sound quality as "localization quality." Higher order
>  Ambisonics gives a more accurate image of the location of a sound.
>  It also uses more speakers. If you decode a B-format signal to a
>  smaller set of speakers, then you simply throw out the extra
>  localization information.
>
>
>  > * For projecting the ring down to headphones, what is needed? In the
>  > archive there's discussion of downloading the Kemar HRTFs from MIT -
>  > fine. But is there a specific UGen that would take my 8 channels and
>  > apply the HRTFs? Or otherwise how would it work?
>
> I think for this you want Christopher Frauenberger's ambiem package
>
> http://sonenvir.at/downloads/sc3/ambiem/
>
>
> A couple of additional points, ambisonics typically places sound
>  only on the unit circle, so if you want  to work with positions
>  inside (or outside) the circle, most implementations of ambisonics
>  won't support it. Josh's implementation does.
>
>  Ambisonics utilizes all of the speakers, all of the time, to give a
>  sense of location. Some people feel that this system makes it
>  difficult to get a very narrowly focused sound (if that's what you
>  want). Finally, the math behind it introduces delay in some of the
>  signals (by design), so there's a bit of built in reverb.
>
>  Good luck.
>
> -Brian
>
>
>  > ----- Original Message -----
>  > From: "Dan Stowell" <danstowell@...>
>  > To: "SuperCollider users mailing list" <sc-users@...>
>  > Subject: [sc-users] Some Ambisonics questions
>  > Date: Sat, 8 Mar 2008 10:07:47 +0000
>  >
>  >
>  > Hi -
>  >
>  > I've never used Ambisonics before, but I'm wondering about how
>  > possible it would be to implement the following setup using SC's
>  > Ambisonics stuff:
>  >
>  > I have 20 or 30 point sources, each of which has a location in the x-y
>  > plane (and may move about in this plane). I'd like to encode them into
>  > an Ambisonic representation, then decode this to a ring-of-8-speakers.
>  > Then for convenience I'd also like to be able to project this
>  > ring-of-8 down to stereo headphones using a HRTF.
>  >
>  > Looking back over the mailing list archives it looks like this is
>  > probably possible - looks like I could use BFEncode2 to encode the
>  > sources, then BFDecode1 to decode onto the speaker ring. But I have
>  > some questions:
>  >
>
> > * How do I turn many point sources into one single B-format feed? Do I
>  > encode each one separately and then just add the feeds together? (Or
>  > multiply the feeds together? Or...)
>  >
>
> > * In terms of the audio outcome, is the only difference between the
>  > different "orders" of Ambisonics the sound quality?
>  >
>
> > * For projecting the ring down to headphones, what is needed? In the
>  > archive there's discussion of downloading the Kemar HRTFs from MIT -
>  > fine. But is there a specific UGen that would take my 8 channels and
>  > apply the HRTFs? Or otherwise how would it work?
>  >
>
> > I'd be grateful for any tips
>  > Dan
>  > _______________________________________________
>
> > sc-users mailing list
>  > sc-users@...
>  > http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>
>  >
>
>  _______________________________________________
>  sc-users mailing list
>  sc-users@...
>  http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>


--
http://www.mcld.co.uk
_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by Christopher Frauenberger :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 8 Mar 2008, at 16:06, Dan Stowell wrote:
> Thanks all for the helpful info. I downloaded the AmbIEM compiled
> package, and yes indeed the VirtualRoom is easy as well as nice. I
> like the doppler effect when the listener zooms around...
>
Yes, thats my favourite too... especially, because it was not  
actually implemented, but is just what the model produces...

> Just a note: I had a conflict with existing class "Matrix" in the
> MathLib quark - it turns out they're exactly the same file so I
> deleted the version that came with ambiem.
>
That wasnt around at the time I did this, I will delete it in the  
package.

> Out of curiosity, why is s.options.blockSize_(128) recommended?
> Something to do with CPU load? Any other tips re CPU load?
Yes, that had something to do with CPU load. It turned out that this  
was a pretty good trade-off for the convolution.

>
> When trying the "the light version of addSource" in VirtualRoom
> helpfile, I get this error (on my PowerBook G4):
>
> VirtualRoom: adding source 1 - the light way...
> VirtualRoom: adding source 2 - the light way...
> VirtualRoom: adding source 3 - the light way...
> VirtualRoom: adding source 4 - the light way...
> VirtualRoom: adding source 5 - the light way...
> VirtualRoom: adding source 6 - the light way...
> ERROR:
> Meta_Bus:audio: failed to get an audio bus allocated. numChannels: 16

You might wanna change the maximum number of busses allowed at  
startup. Because it uses NodeProxies so much, there get a lot of  
Busses allocated...

Chris
_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by Miguel Negrao :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


>
> Ambisonics utilizes all of the speakers, all of the time, to give a
> sense of location. Some people feel that this system makes it
> difficult to get a very narrowly focused sound (if that's what you
> want). Finally, the math behind it introduces delay in some of the
> signals (by design), so there's a bit of built in reverb.
>
> Good luck.
> -Brian
>

Introduces a delay ?? I don't think so, the encoding equations are  pure
  multiplications, each channel of the b-format signal is just the input
multiplied by a certain coeficiient, and the decoding stage is the same.
The phase information is provided by the interactions between the
various speakers, not through delays. As far as I'm aware there is no
"built in reverb".

Miguel Negrão
_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by nescivi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hiho,

On Saturday 08 March 2008 09:36:43 Brian Willkie wrote:
> > * In terms of the audio outcome, is the only difference between the
> > different "orders" of Ambisonics the sound quality?
>
> Not so much sound quality as "localization quality." Higher order
> Ambisonics gives a more accurate image of the location of a sound.
> It also uses more speakers. If you decode a B-format signal to a
> smaller set of speakers, then you simply throw out the extra
> localization information.

note that SuperCollider does not yet have a higher order decoder. There is an
encoder though ;)
Unless there is one in the AmbIEM package of course.

> > * For projecting the ring down to headphones, what is needed? In the
> > archive there's discussion of downloading the Kemar HRTFs from MIT -
> > fine. But is there a specific UGen that would take my 8 channels and
> > apply the HRTFs? Or otherwise how would it work?
>
> I think for this you want Christopher Frauenberger's ambiem package
> http://sonenvir.at/downloads/sc3/ambiem/

Alternately, you could build something with the StereoConvolution2L.

sincerely,
Marije
_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by Josh Parmenter :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Dan... just to join in a bit...
On Mar 8, 2008, at 2:07 AM, Dan Stowell wrote:

> Hi -
>
> I've never used Ambisonics before, but I'm wondering about how
> possible it would be to implement the following setup using SC's
> Ambisonics stuff:
>
> I have 20 or 30 point sources, each of which has a location in the x-y
> plane (and may move about in this plane). I'd like to encode them into
> an Ambisonic representation, then decode this to a ring-of-8-speakers.
> Then for convenience I'd also like to be able to project this
> ring-of-8 down to stereo headphones using a HRTF.
>
> Looking back over the mailing list archives it looks like this is
> probably possible - looks like I could use BFEncode2 to encode the
> sources, then BFDecode1 to decode onto the speaker ring. But I have
> some questions:
>
> * How do I turn many point sources into one single B-format feed? Do I
> encode each one separately and then just add the feeds together? (Or
> multiply the feeds together? Or...)

as said - summing is the way to go. As a note, summing and scaling  
(with the same scale over all the channels) is pretty much the only  
'basic' thing you should do to the Ambisonic signal. e.g., no  
filtering or reverbs. If you are going to do anything after the source  
is encoded, it should be a transform (such as Rotate, Tilt or Tumble)  
or you should first turn the signal into A-format (with B2A, or back  
with A2B). Transforms generally take 4 signals, and return 4 (or, for  
higher orders, 9, etc.). A-format signals can have filters and reverbs  
applied to them. Convert back to B, and you have the localization  
encoded again.
>
>
> * In terms of the audio outcome, is the only difference between the
> different "orders" of Ambisonics the sound quality?

As said before, better localization, and perhaps a wider 'sweet spot'.
>
>
> * For projecting the ring down to headphones, what is needed? In the
> archive there's discussion of downloading the Kemar HRTFs from MIT -
> fine. But is there a specific UGen that would take my 8 channels and
> apply the HRTFs? Or otherwise how would it work?

The ambIEM Kemar stuff does work well. It doesn't work easily with my  
UGens though. Since ambIEM is all class driven, it is easier to pass  
information between the classes (order, etc.). I need to figure out  
how to make my UGens a little friendlier in that regard. The main  
advantage in my UGens are there are ways to decode for 'any' rig  
(including non symmetrical ones), and ways to compensate for these  
differences. This may be where the discussion of delays came in (if  
you have an 8 channel rectangle, with delays and scaling of specific  
speakers, you can make it sound like an equilateral octagon). I think  
the Convolutions and Kemat files could be used still with my UGens,  
but the ambIEM stuff has it all ready to go. In general, I don't think  
the two systems are really inter-changeable, since my encoding and  
decoding methods are different then ambIEM (I use a variable scaler on  
'W' as mentioned on: http://www.york.ac.uk/inst/mustech/3d_audio/ambis2.htm 
  where I don't think ambIEM does).
>
I often use B2Ster for stereo mixes for headphones. It is missing the  
HRTF data, but is actually a pretty nice stereo decode. UHJ is also  
available in my lib, but I actually don't like how it sounds (a bit  
phasey). But it can be a handy way to 'transport' BF data without  
height.

Hope that helps,.

Josh

>
> I'd be grateful for any tips
> Dan
> _______________________________________________
> sc-users mailing list
> sc-users@...
> http://lists.create.ucsb.edu/mailman/listinfo/sc-users

******************************************
/* Joshua D. Parmenter
http://www.realizedsound.net/josh/

“Every composer – at all times and in all cases – gives his own  
interpretation of how modern society is structured: whether actively  
or passively, consciously or unconsciously, he makes choices in this  
regard. He may be conservative or he may subject himself to continual  
renewal; or he may strive for a revolutionary, historical or social  
palingenesis." - Luigi Nono
*/

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by Josh Parmenter :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Actually, there is now an FHMDecode1 in my lib (and it is included in  
the 3.2 extras packages). There are methods for 'standard' decodes,  
and a vanilla decode for one speaker. This one speaker decoder doesn't  
work as cleanly as BFDecode does, since it is often better to leave  
certain components out depending on the decoding situation.

I plan on making third order encoders and decoders soon... once I kick  
a nasty cold and have some time :)

Any suggestions on names for the UGens?

Josh

On Mar 8, 2008, at 8:56 AM, nescivi wrote:

> Hiho,
>
> On Saturday 08 March 2008 09:36:43 Brian Willkie wrote:
>>> * In terms of the audio outcome, is the only difference between the
>>> different "orders" of Ambisonics the sound quality?
>>
>> Not so much sound quality as "localization quality." Higher order
>> Ambisonics gives a more accurate image of the location of a sound.
>> It also uses more speakers. If you decode a B-format signal to a
>> smaller set of speakers, then you simply throw out the extra
>> localization information.
>
> note that SuperCollider does not yet have a higher order decoder.  
> There is an
> encoder though ;)
> Unless there is one in the AmbIEM package of course.
>
>>> * For projecting the ring down to headphones, what is needed? In the
>>> archive there's discussion of downloading the Kemar HRTFs from MIT -
>>> fine. But is there a specific UGen that would take my 8 channels and
>>> apply the HRTFs? Or otherwise how would it work?
>>
>> I think for this you want Christopher Frauenberger's ambiem package
>> http://sonenvir.at/downloads/sc3/ambiem/
>
> Alternately, you could build something with the StereoConvolution2L.
>
> sincerely,
> Marije
> _______________________________________________
> sc-users mailing list
> sc-users@...
> http://lists.create.ucsb.edu/mailman/listinfo/sc-users

******************************************
/* Joshua D. Parmenter
http://www.realizedsound.net/josh/

“Every composer – at all times and in all cases – gives his own  
interpretation of how modern society is structured: whether actively  
or passively, consciously or unconsciously, he makes choices in this  
regard. He may be conservative or he may subject himself to continual  
renewal; or he may strive for a revolutionary, historical or social  
palingenesis." - Luigi Nono
*/

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by Josh Parmenter :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mar 8, 2008, at 8:31 AM, Miguel Negrao wrote:

> Introduces a delay ?? I don't think so, the encoding equations are  
> pure
>  multiplications, each channel of the b-format signal is just the  
> input
> multiplied by a certain coeficiient, and the decoding stage is the  
> same.


Kind of... there is quite a bit of trig to get the coefs. Hard coded  
coefs are, I think, impossible for encoding, and I don't like them for  
decoding either. One thing I do quite a bit is decode for a 'moving'  
virtual speaker, then re-encode that signal. It gives you something  
like a 'spotlight' into the soundfield, and can be a very interesting  
effect (especially when filtering and other effect are applied between  
the decode and re-encode process).

Josh

******************************************
/* Joshua D. Parmenter
http://www.realizedsound.net/josh/

“Every composer – at all times and in all cases – gives his own  
interpretation of how modern society is structured: whether actively  
or passively, consciously or unconsciously, he makes choices in this  
regard. He may be conservative or he may subject himself to continual  
renewal; or he may strive for a revolutionary, historical or social  
palingenesis." - Luigi Nono
*/

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Parent Message unknown Re: Some Ambisonics questions

by Brian Willkie :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Perhaps you're right. I seem to remember that in addition to amplitude and phase, the decoder introduced a small delay, to account for the distance from the speaker to the source, but it's been too long since I've worked with the details. It's a bit foggy to me now.

-Brian


> ----- Original Message -----
> From: "Miguel Negrao" <x.miguel@...>
> To: "SuperCollider users mailing list" <sc-users@...>
> Subject: Re: [sc-users] Some Ambisonics questions
> Date: Sat, 08 Mar 2008 17:31:34 +0100
>
>
>
> >
> > Ambisonics utilizes all of the speakers, all of the time, to give
> > a sense of location. Some people feel that this system makes it
> > difficult to get a very narrowly focused sound (if that's what
> > you want). Finally, the math behind it introduces delay in some
> > of the signals (by design), so there's a bit of built in reverb.
> >
> > Good luck.
> > -Brian
> >
>
> Introduces a delay ?? I don't think so, the encoding equations are  pure
>    multiplications, each channel of the b-format signal is just the input
> multiplied by a certain coeficiient, and the decoding stage is the same.
> The phase information is provided by the interactions between the
> various speakers, not through delays. As far as I'm aware there is no
> "built in reverb".
>
> Miguel Negrão
> _______________________________________________
> sc-users mailing list
> sc-users@...
> http://lists.create.ucsb.edu/mailman/listinfo/sc-users

>

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by nescivi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hiho,

On Saturday 08 March 2008 12:01:33 Josh Parmenter wrote:
> Actually, there is now an FHMDecode1 in my lib (and it is included in
> the 3.2 extras packages). There are methods for 'standard' decodes,
> and a vanilla decode for one speaker. This one speaker decoder doesn't
> work as cleanly as BFDecode does, since it is often better to leave
> certain components out depending on the decoding situation.

ah, too bad you didn't mention it explicitly to me before the final book
submission... It would have been worth a mention in the spatialization
chapter...

> I plan on making third order encoders and decoders soon... once I kick
> a nasty cold and have some time :)
>
> Any suggestions on names for the UGens?

Hmm..
maybe just something which mentions the ambisonics order in the name?

sincerely,
Marije

>
> Josh
>
> On Mar 8, 2008, at 8:56 AM, nescivi wrote:
> > Hiho,
> >
> > On Saturday 08 March 2008 09:36:43 Brian Willkie wrote:
> >>> * In terms of the audio outcome, is the only difference between the
> >>> different "orders" of Ambisonics the sound quality?
> >>
> >> Not so much sound quality as "localization quality." Higher order
> >> Ambisonics gives a more accurate image of the location of a sound.
> >> It also uses more speakers. If you decode a B-format signal to a
> >> smaller set of speakers, then you simply throw out the extra
> >> localization information.
> >
> > note that SuperCollider does not yet have a higher order decoder.
> > There is an
> > encoder though ;)
> > Unless there is one in the AmbIEM package of course.
> >
> >>> * For projecting the ring down to headphones, what is needed? In the
> >>> archive there's discussion of downloading the Kemar HRTFs from MIT -
> >>> fine. But is there a specific UGen that would take my 8 channels and
> >>> apply the HRTFs? Or otherwise how would it work?
> >>
> >> I think for this you want Christopher Frauenberger's ambiem package
> >> http://sonenvir.at/downloads/sc3/ambiem/
> >
> > Alternately, you could build something with the StereoConvolution2L.
> >
> > sincerely,
> > Marije
> > _______________________________________________
> > sc-users mailing list
> > sc-users@...
> > http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>
> ******************************************
> /* Joshua D. Parmenter
> http://www.realizedsound.net/josh/
>
> “Every composer – at all times and in all cases – gives his own
> interpretation of how modern society is structured: whether actively
> or passively, consciously or unconsciously, he makes choices in this
> regard. He may be conservative or he may subject himself to continual
> renewal; or he may strive for a revolutionary, historical or social
> palingenesis." - Luigi Nono
> */


_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by Miguel Negrao :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

That is true, but the delay is only present in non symetric setups, to
compensate speaker distance, and so the delays are not a core "property"
of ambisonics as far as i can tell, unlike wavefield synthesis where the
delays are a fundamental part of the working mechanism.

Miguel Negrão

Brian Willkie escreveu:

> Perhaps you're right. I seem to remember that in addition to amplitude and phase, the decoder introduced a small delay, to account for the distance from the speaker to the source, but it's been too long since I've worked with the details. It's a bit foggy to me now.
>
> -Brian
>
>
>> ----- Original Message -----
>> From: "Miguel Negrao" <x.miguel@...>
>> To: "SuperCollider users mailing list" <sc-users@...>
>> Subject: Re: [sc-users] Some Ambisonics questions
>> Date: Sat, 08 Mar 2008 17:31:34 +0100
>>
>>
>>
>>> Ambisonics utilizes all of the speakers, all of the time, to give
>>> a sense of location. Some people feel that this system makes it
>>> difficult to get a very narrowly focused sound (if that's what
>>> you want). Finally, the math behind it introduces delay in some
>>> of the signals (by design), so there's a bit of built in reverb.
>>>
>>> Good luck.
>>> -Brian
>>>
>> Introduces a delay ?? I don't think so, the encoding equations are  pure
>>    multiplications, each channel of the b-format signal is just the input
>> multiplied by a certain coeficiient, and the decoding stage is the same.
>> The phase information is provided by the interactions between the
>> various speakers, not through delays. As far as I'm aware there is no
>> "built in reverb".
>>
>> Miguel Negrão
>> _______________________________________________
>> sc-users mailing list
>> sc-users@...
>> http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>
>
> _______________________________________________
> sc-users mailing list
> sc-users@...
> http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by Dan Stowell :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Umm... what's "FMH"? Does that just mean (for some reason)
second-order? I don't think I'm in a good position to help out with
the UGen names :)

Dan


2008/3/8, Josh Parmenter <josh@...>:

> Actually, there is now an FHMDecode1 in my lib (and it is included in
>  the 3.2 extras packages). There are methods for 'standard' decodes,
>  and a vanilla decode for one speaker. This one speaker decoder doesn't
>  work as cleanly as BFDecode does, since it is often better to leave
>  certain components out depending on the decoding situation.
>
>  I plan on making third order encoders and decoders soon... once I kick
>  a nasty cold and have some time :)
>
>  Any suggestions on names for the UGens?
>
>
>  Josh
>
>
>  On Mar 8, 2008, at 8:56 AM, nescivi wrote:
>
>  > Hiho,
>  >
>  > On Saturday 08 March 2008 09:36:43 Brian Willkie wrote:
>  >>> * In terms of the audio outcome, is the only difference between the
>  >>> different "orders" of Ambisonics the sound quality?
>  >>
>  >> Not so much sound quality as "localization quality." Higher order
>  >> Ambisonics gives a more accurate image of the location of a sound.
>  >> It also uses more speakers. If you decode a B-format signal to a
>  >> smaller set of speakers, then you simply throw out the extra
>  >> localization information.
>  >
>  > note that SuperCollider does not yet have a higher order decoder.
>  > There is an
>  > encoder though ;)
>  > Unless there is one in the AmbIEM package of course.
>  >
>  >>> * For projecting the ring down to headphones, what is needed? In the
>  >>> archive there's discussion of downloading the Kemar HRTFs from MIT -
>  >>> fine. But is there a specific UGen that would take my 8 channels and
>  >>> apply the HRTFs? Or otherwise how would it work?
>  >>
>  >> I think for this you want Christopher Frauenberger's ambiem package
>  >> http://sonenvir.at/downloads/sc3/ambiem/
>  >
>  > Alternately, you could build something with the StereoConvolution2L.
>  >
>  > sincerely,
>  > Marije
>  > _______________________________________________
>  > sc-users mailing list
>  > sc-users@...
>  > http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>
>
> ******************************************
>  /* Joshua D. Parmenter
>  http://www.realizedsound.net/josh/
>
>  "Every composer – at all times and in all cases – gives his own
>  interpretation of how modern society is structured: whether actively
>  or passively, consciously or unconsciously, he makes choices in this
>  regard. He may be conservative or he may subject himself to continual
>  renewal; or he may strive for a revolutionary, historical or social
>  palingenesis." - Luigi Nono
>  */
>
>  _______________________________________________
>
> sc-users mailing list
>  sc-users@...
>  http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>


--
http://www.mcld.co.uk
_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by Scott Wilson-8 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I believe it's short for Furse-Malham higher-order format, which IIRC  
correctly is a second order format.

S.

On 15 Mar 2008, at 12:30, Dan Stowell wrote:

> Umm... what's "FMH"? Does that just mean (for some reason)
> second-order? I don't think I'm in a good position to help out with
> the UGen names :)
>
> Dan
>
>
> 2008/3/8, Josh Parmenter <josh@...>:
>> Actually, there is now an FHMDecode1 in my lib (and it is included in
>>  the 3.2 extras packages). There are methods for 'standard' decodes,
>>  and a vanilla decode for one speaker. This one speaker decoder  
>> doesn't
>>  work as cleanly as BFDecode does, since it is often better to leave
>>  certain components out depending on the decoding situation.
>>
>>  I plan on making third order encoders and decoders soon... once I  
>> kick
>>  a nasty cold and have some time :)
>>
>>  Any suggestions on names for the UGens?
>>
>>
>>  Josh
>>
>>
>>  On Mar 8, 2008, at 8:56 AM, nescivi wrote:
>>
>>> Hiho,
>>>
>>> On Saturday 08 March 2008 09:36:43 Brian Willkie wrote:
>>>>> * In terms of the audio outcome, is the only difference between  
>>>>> the
>>>>> different "orders" of Ambisonics the sound quality?
>>>>
>>>> Not so much sound quality as "localization quality." Higher order
>>>> Ambisonics gives a more accurate image of the location of a sound.
>>>> It also uses more speakers. If you decode a B-format signal to a
>>>> smaller set of speakers, then you simply throw out the extra
>>>> localization information.
>>>
>>> note that SuperCollider does not yet have a higher order decoder.
>>> There is an
>>> encoder though ;)
>>> Unless there is one in the AmbIEM package of course.
>>>
>>>>> * For projecting the ring down to headphones, what is needed?  
>>>>> In the
>>>>> archive there's discussion of downloading the Kemar HRTFs from  
>>>>> MIT -
>>>>> fine. But is there a specific UGen that would take my 8  
>>>>> channels and
>>>>> apply the HRTFs? Or otherwise how would it work?
>>>>
>>>> I think for this you want Christopher Frauenberger's ambiem package
>>>> http://sonenvir.at/downloads/sc3/ambiem/
>>>
>>> Alternately, you could build something with the StereoConvolution2L.
>>>
>>> sincerely,
>>> Marije
>>> _______________________________________________
>>> sc-users mailing list
>>> sc-users@...
>>> http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>>
>>
>> ******************************************
>>  /* Joshua D. Parmenter
>>  http://www.realizedsound.net/josh/
>>
>>  "Every composer – at all times and in all cases – gives his own
>>  interpretation of how modern society is structured: whether actively
>>  or passively, consciously or unconsciously, he makes choices in this
>>  regard. He may be conservative or he may subject himself to  
>> continual
>>  renewal; or he may strive for a revolutionary, historical or social
>>  palingenesis." - Luigi Nono
>>  */
>>
>>  _______________________________________________
>>
>> sc-users mailing list
>>  sc-users@...
>>  http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>>
>
>
> --
> http://www.mcld.co.uk
> _______________________________________________
> sc-users mailing list
> sc-users@...
> http://lists.create.ucsb.edu/mailman/listinfo/sc-users

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by Josh Parmenter :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

FMH is the Furse-Malham second order set.

Josh

On Mar 15, 2008, at 5:30 AM, Dan Stowell wrote:

> Umm... what's "FMH"? Does that just mean (for some reason)
> second-order? I don't think I'm in a good position to help out with
> the UGen names :)
>
> Dan
>
>
> 2008/3/8, Josh Parmenter <josh@...>:
>> Actually, there is now an FHMDecode1 in my lib (and it is included in
>> the 3.2 extras packages). There are methods for 'standard' decodes,
>> and a vanilla decode for one speaker. This one speaker decoder  
>> doesn't
>> work as cleanly as BFDecode does, since it is often better to leave
>> certain components out depending on the decoding situation.
>>
>> I plan on making third order encoders and decoders soon... once I  
>> kick
>> a nasty cold and have some time :)
>>
>> Any suggestions on names for the UGens?
>>
>>
>> Josh
>>
>>
>> On Mar 8, 2008, at 8:56 AM, nescivi wrote:
>>
>>> Hiho,
>>>
>>> On Saturday 08 March 2008 09:36:43 Brian Willkie wrote:
>>>>> * In terms of the audio outcome, is the only difference between  
>>>>> the
>>>>> different "orders" of Ambisonics the sound quality?
>>>>
>>>> Not so much sound quality as "localization quality." Higher order
>>>> Ambisonics gives a more accurate image of the location of a sound.
>>>> It also uses more speakers. If you decode a B-format signal to a
>>>> smaller set of speakers, then you simply throw out the extra
>>>> localization information.
>>>
>>> note that SuperCollider does not yet have a higher order decoder.
>>> There is an
>>> encoder though ;)
>>> Unless there is one in the AmbIEM package of course.
>>>
>>>>> * For projecting the ring down to headphones, what is needed? In  
>>>>> the
>>>>> archive there's discussion of downloading the Kemar HRTFs from  
>>>>> MIT -
>>>>> fine. But is there a specific UGen that would take my 8 channels  
>>>>> and
>>>>> apply the HRTFs? Or otherwise how would it work?
>>>>
>>>> I think for this you want Christopher Frauenberger's ambiem package
>>>> http://sonenvir.at/downloads/sc3/ambiem/
>>>
>>> Alternately, you could build something with the StereoConvolution2L.
>>>
>>> sincerely,
>>> Marije
>>> _______________________________________________
>>> sc-users mailing list
>>> sc-users@...
>>> http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>>
>>
>> ******************************************
>> /* Joshua D. Parmenter
>> http://www.realizedsound.net/josh/
>>
>> "Every composer – at all times and in all cases – gives his own
>> interpretation of how modern society is structured: whether actively
>> or passively, consciously or unconsciously, he makes choices in this
>> regard. He may be conservative or he may subject himself to continual
>> renewal; or he may strive for a revolutionary, historical or social
>> palingenesis." - Luigi Nono
>> */
>>
>> _______________________________________________
>>
>> sc-users mailing list
>> sc-users@...
>> http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>>
>
>
> --
> http://www.mcld.co.uk

******************************************
/* Joshua D. Parmenter
http://www.realizedsound.net/josh/

“Every composer – at all times and in all cases – gives his own  
interpretation of how modern society is structured: whether actively  
or passively, consciously or unconsciously, he makes choices in this  
regard. He may be conservative or he may subject himself to continual  
renewal; or he may strive for a revolutionary, historical or social  
palingenesis." - Luigi Nono
*/

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users

Re: Some Ambisonics questions

by Josh Parmenter :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

what Scott says :)
Josh

On Mar 15, 2008, at 5:36 AM, Scott Wilson wrote:

> I believe it's short for Furse-Malham higher-order format, which IIRC
> correctly is a second order format.
>
> S.
>
> On 15 Mar 2008, at 12:30, Dan Stowell wrote:
>
>> Umm... what's "FMH"? Does that just mean (for some reason)
>> second-order? I don't think I'm in a good position to help out with
>> the UGen names :)
>>
>> Dan
>>
>>
>> 2008/3/8, Josh Parmenter <josh@...>:
>>> Actually, there is now an FHMDecode1 in my lib (and it is included  
>>> in
>>> the 3.2 extras packages). There are methods for 'standard' decodes,
>>> and a vanilla decode for one speaker. This one speaker decoder
>>> doesn't
>>> work as cleanly as BFDecode does, since it is often better to leave
>>> certain components out depending on the decoding situation.
>>>
>>> I plan on making third order encoders and decoders soon... once I
>>> kick
>>> a nasty cold and have some time :)
>>>
>>> Any suggestions on names for the UGens?
>>>
>>>
>>> Josh
>>>
>>>
>>> On Mar 8, 2008, at 8:56 AM, nescivi wrote:
>>>
>>>> Hiho,
>>>>
>>>> On Saturday 08 March 2008 09:36:43 Brian Willkie wrote:
>>>>>> * In terms of the audio outcome, is the only difference between
>>>>>> the
>>>>>> different "orders" of Ambisonics the sound quality?
>>>>>
>>>>> Not so much sound quality as "localization quality." Higher order
>>>>> Ambisonics gives a more accurate image of the location of a sound.
>>>>> It also uses more speakers. If you decode a B-format signal to a
>>>>> smaller set of speakers, then you simply throw out the extra
>>>>> localization information.
>>>>
>>>> note that SuperCollider does not yet have a higher order decoder.
>>>> There is an
>>>> encoder though ;)
>>>> Unless there is one in the AmbIEM package of course.
>>>>
>>>>>> * For projecting the ring down to headphones, what is needed?
>>>>>> In the
>>>>>> archive there's discussion of downloading the Kemar HRTFs from
>>>>>> MIT -
>>>>>> fine. But is there a specific UGen that would take my 8
>>>>>> channels and
>>>>>> apply the HRTFs? Or otherwise how would it work?
>>>>>
>>>>> I think for this you want Christopher Frauenberger's ambiem  
>>>>> package
>>>>> http://sonenvir.at/downloads/sc3/ambiem/
>>>>
>>>> Alternately, you could build something with the  
>>>> StereoConvolution2L.
>>>>
>>>> sincerely,
>>>> Marije
>>>> _______________________________________________
>>>> sc-users mailing list
>>>> sc-users@...
>>>> http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>>>
>>>
>>> ******************************************
>>> /* Joshua D. Parmenter
>>> http://www.realizedsound.net/josh/
>>>
>>> "Every composer – at all times and in all cases – gives his own
>>> interpretation of how modern society is structured: whether actively
>>> or passively, consciously or unconsciously, he makes choices in this
>>> regard. He may be conservative or he may subject himself to
>>> continual
>>> renewal; or he may strive for a revolutionary, historical or social
>>> palingenesis." - Luigi Nono
>>> */
>>>
>>> _______________________________________________
>>>
>>> sc-users mailing list
>>> sc-users@...
>>> http://lists.create.ucsb.edu/mailman/listinfo/sc-users
>>>
>>
>>
>> --
>> http://www.mcld.co.uk
>> _______________________________________________
>> sc-users mailing list
>> sc-users@...
>> http://lists.create.u

******************************************
/* Joshua D. Parmenter
http://www.realizedsound.net/josh/

“Every composer – at all times and in all cases – gives his own  
interpretation of how modern society is structured: whether actively  
or passively, consciously or unconsciously, he makes choices in this  
regard. He may be conservative or he may subject himself to continual  
renewal; or he may strive for a revolutionary, historical or social  
palingenesis." - Luigi Nono
*/

_______________________________________________
sc-users mailing list
sc-users@...
http://lists.create.ucsb.edu/mailman/listinfo/sc-users