Hi Jesse,
With Ambisonics, ideally your loudspeakers should discretize perfectly a sphere, you should have your head at the exact center of this sphere, etc. and perhaps if you forget that your head interferes and the loudspeakers don't generate plane waves you'll be able to reconstruct a coherent sound field... But to avoid these restrictions (because very few people have a full sphere of loudspeakers - or want to ask the audience to be completely crushed at the center of the sphere) there are several techniques : optimizations of the energy and/or velocity vectors, optimizations of the decoding, etc. The problem is that none of the solutions are completely generic. Your choice must be driven by your approach and your goal.The advantage of Ambisonics lies in its intermediary representation of the sound field that allows to apply transformations (rotation or whatever) and to decode for different loudspeakers configurations. But if you just want to spatialize individuals point sources, you can also use VBAP that is perhaps much more accessible. Nevertheless yes, you can surely find a way to decode the sound field for two ring of loudspeakers with Ambisonics (we can discuss it if you want). And one good rule is just to avoid placing sources where the loudspeakers are missing. I don't know if I really answer the question, I hope a bit :)
Cheers,
Pierre
Date: Fri, 23 Jun 2017 16:19:29 -0600 From: jmejia@anestheticaudio.com To: pd-list@lists.iem.at Subject: [PD] HOA / spatialization approaches for a hemisphere Message-ID: 3149263781acf8439b762eef943d60e5@anestheticaudio.com Content-Type: text/plain; charset="utf-8"
Hi List,
I'm putting together a 32 channel HDLA and looking for spatialization advice. The configuration will be two rings, one higher than the other, and I've been thinking a bit smaller/closer to approximate a hemisphere. But that's flexible - they could be parallel rings if it simplifies things.
I have some (limited) experience using HoaLibrary + PD for 2D ambisonics
- so my initial thought was to try the 3d externals there - however I'm
not sure if it actually makes sense to build an abstraction setup for a sphere of twice as many channels while limiting access to the upper hemisphere only. I'm assuming there would be some problems with that approach.
I found a few papers on mixed-order ambisonics - by Chris Travis and also the AmbiX crew - but I'm not sure if there's away to implement that stuff with HoaLibrary. I'm also open to using different software if something else is recommended instead.
Thanks for any advice!
-Jesse
Thanks Pierre! That's all great advice. I'm gonna dig into VBAP - it's been awhile since I've messed with that. Maybe that will work better.
I'll give your building repo a shot https://github.com/pierreguillot/vbap
(unless you have OSX binaries?)
but I also wonder about all these others:
https://puredata.info/downloads/vbap/releases
vbap-v0 on dekken
https://sourceforge.net/projects/pure-data/files/libraries/vbap/
Thanks!
-Jesse
On 2017-06-24 03:26, Pierre Guillot wrote:
Hi Jesse,
With Ambisonics, ideally your loudspeakers should discretize perfectly a sphere, you should have your head at the exact center of this sphere, etc. and perhaps if you forget that your head interferes and the loudspeakers don't generate plane waves you'll be able to reconstruct a coherent sound field... But to avoid these restrictions (because very few people have a full sphere of loudspeakers - or want to ask the audience to be completely crushed at the center of the sphere) there are several techniques : optimizations of the energy and/or velocity vectors, optimizations of the decoding, etc. The problem is that none of the solutions are completely generic. Your choice must be driven by your approach and your goal.The advantage of Ambisonics lies in its intermediary representation of the sound field that allows to apply transformations (rotation or whatever) and to decode for different loudspeakers configurations. But if you just want to spatialize individuals point sources
, you can also use VBAP that is perhaps much more accessible. Nevertheless yes, you can surely find a way to decode the sound field for two ring of loudspeakers with Ambisonics (we can discuss it if you want). And one good rule is just to avoid placing sources where the loudspeakers are missing. I don't know if I really answer the question, I hope a bit :)
Cheers,
Pierre
Date: Fri, 23 Jun 2017 16:19:29 -0600 From: jmejia@anestheticaudio.com To: pd-list@lists.iem.at Subject: [PD] HOA / spatialization approaches for a hemisphere Message-ID: 3149263781acf8439b762eef943d60e5@anestheticaudio.com Content-Type: text/plain; charset="utf-8"
Hi List,
I'm putting together a 32 channel HDLA and looking for spatialization advice. The configuration will be two rings, one higher than the other, and I've been thinking a bit smaller/closer to approximate a hemisphere. But that's flexible - they could be parallel rings if it simplifies things.
I have some (limited) experience using HoaLibrary + PD for 2D ambisonics
- so my initial thought was to try the 3d externals there - however I'm
not sure if it actually makes sense to build an abstraction setup for a sphere of twice as many channels while limiting access to the upper hemisphere only. I'm assuming there would be some problems with that approach.
I found a few papers on mixed-order ambisonics - by Chris Travis and also the AmbiX crew - but I'm not sure if there's away to implement that stuff with HoaLibrary. I'm also open to using different software if something else is recommended instead.
Thanks for any advice!
-Jesse
My VBAP repository is for "personal" use, I'm not sure that I will ever publish an "official" release but everything should work ! I did this because there were bugs in the "official" implementation when using a very large number of loudspeakers and I couldn't solve the problem from the original code (I couldn't find the problem in fact...). If you want to be sure to have something durable I suggest you to use the abstraction p.vbap but the compiled externals are much more efficient. One last thing: there is no "spread" factor (MDBAP) but you can do it manually in Pd. The principles are explained in the paper Uniform Spreading Of Amplitude Panned Virtual Sources ( https://aaltodoc.aalto.fi/bitstream/handle/123456789/2345/article4.pdf) and the implementation is explained in Generic panning tools for MAX/MSP ( http://cnmat.org/ICMC2000/pdf/VBAP.pdf <(http://cnmat.org/ICMC2000/pdf/VBAP.pdf%3E). Cheers
2017-06-25 0:09 GMT+02:00 jmejia@anestheticaudio.com:
Thanks Pierre! That's all great advice. I'm gonna dig into VBAP - it's been awhile since I've messed with that. Maybe that will work better.
I'll give your building repo a shot https://github.com/pierreguillot/vbap
(unless you have OSX binaries?)
but I also wonder about all these others:
https://puredata.info/downloads/vbap/releases
vbap-v0 on dekken
https://sourceforge.net/projects/pure-data/files/libraries/vbap/
Thanks!
-Jesse
On 2017-06-24 03:26, Pierre Guillot wrote:
Hi Jesse,
With Ambisonics, ideally your loudspeakers should discretize perfectly a sphere, you should have your head at the exact center of this sphere, etc. and perhaps if you forget that your head interferes and the loudspeakers don't generate plane waves you'll be able to reconstruct a coherent sound field... But to avoid these restrictions (because very few people have a full sphere of loudspeakers - or want to ask the audience to be completely crushed at the center of the sphere) there are several techniques : optimizations of the energy and/or velocity vectors, optimizations of the decoding, etc. The problem is that none of the solutions are completely generic. Your choice must be driven by your approach and your goal.The advantage of Ambisonics lies in its intermediary representation of the sound field that allows to apply transformations (rotation or whatever) and to decode for different loudspeakers configurations. But if you just want to spatialize individuals point sources, you can also use VBAP that is perhaps much more accessible. Nevertheless yes, you can surely find a way to decode the sound field for two ring of loudspeakers with Ambisonics (we can discuss it if you want). And one good rule is just to avoid placing sources where the loudspeakers are missing. I don't know if I really answer the question, I hope a bit :)
Cheers,
Pierre
Date: Fri, 23 Jun 2017 16:19:29 -0600 From: jmejia@anestheticaudio.com To: pd-list@lists.iem.at Subject: [PD] HOA / spatialization approaches for a hemisphere Message-ID: 3149263781acf8439b762eef943d60e5@anestheticaudio.com Content-Type: text/plain; charset="utf-8"
Hi List,
I'm putting together a 32 channel HDLA and looking for spatialization advice. The configuration will be two rings, one higher than the other, and I've been thinking a bit smaller/closer to approximate a hemisphere. But that's flexible - they could be parallel rings if it simplifies things.
I have some (limited) experience using HoaLibrary + PD for 2D ambisonics
- so my initial thought was to try the 3d externals there - however I'm
not sure if it actually makes sense to build an abstraction setup for a sphere of twice as many channels while limiting access to the upper hemisphere only. I'm assuming there would be some problems with that approach.
I found a few papers on mixed-order ambisonics - by Chris Travis and also the AmbiX crew - but I'm not sure if there's away to implement that stuff with HoaLibrary. I'm also open to using different software if something else is recommended instead.
Thanks for any advice!
-Jesse
Thanks Pierre - these abstractions seem great! I was able to easily adapt it to work with my setup.
I've been looking over Ville Pulki's paper but am a bit lost as to how to implement a spread function in your abstractions. Can you point me in the right direction?
Thanks!
-Jesse
On 2017-06-27 01:18, Pierre Guillot wrote:
My VBAP repository is for "personal" use, I'm not sure that I will ever publish an "official" release but everything should work ! I did this because there were bugs in the "official" implementation when using a very large number of loudspeakers and I couldn't solve the problem from the original code (I couldn't find the problem in fact...). If you want to be sure to have something durable I suggest you to use the abstraction p.vbap but the compiled externals are much more efficient. One last thing: there is no "spread" factor (MDBAP) but you can do it manually in Pd. The principles are explained in the paper Uniform Spreading Of Amplitude Panned Virtual Sources (https://aaltodoc.aalto.fi/bitstream/handle/123456789/2345/article4.pdf) and the implementation is explained in Generic panning tools for MAX/MSP (http://cnmat.org/ICMC2000/pdf/VBAP.pdf).
Cheers2017-06-25 0:09 GMT+02:00 jmejia@anestheticaudio.com:
Thanks Pierre! That's all great advice. I'm gonna dig into VBAP - it's been awhile since I've messed with that. Maybe that will work better.
I'll give your building repo a shot https://github.com/pierreguillot/vbap [1]
(unless you have OSX binaries?)
but I also wonder about all these others:
https://puredata.info/downloads/vbap/releases [2]
vbap-v0 on dekken
https://sourceforge.net/projects/pure-data/files/libraries/vbap/ [3]
Thanks!
-Jesse
On 2017-06-24 03:26, Pierre Guillot wrote:
Hi Jesse,
With Ambisonics, ideally your loudspeakers should discretize perfectly a sphere, you should have your head at the exact center of this sphere, etc. and perhaps if you forget that your head interferes and the loudspeakers don't generate plane waves you'll be able to reconstruct a coherent sound field... But to avoid these restrictions (because very few people have a full sphere of loudspeakers - or want to ask the audience to be completely crushed at the center of the sphere) there are several techniques : optimizations of the energy and/or velocity vectors, optimizations of the decoding, etc. The problem is that none of the solutions are completely generic. Your choice must be driven by your approach and your goal.The advantage of Ambisonics lies in its intermediary representation of the sound field that allows to apply transformations (rotation or whatever) and to decode for different loudspeakers configurations. But if you just want to spatialize individuals point sources
, you can also use VBAP that is perhaps much more accessible. Nevertheless yes, you can surely find a way to decode the sound field for two ring of loudspeakers with Ambisonics (we can discuss it if you want). And one good rule is just to avoid placing sources where the loudspeakers are missing. I don't know if I really answer the question, I hope a bit :)
Cheers,
Pierre Date: Fri, 23 Jun 2017 16:19:29 -0600 From: jmejia@anestheticaudio.com To: pd-list@lists.iem.at Subject: [PD] HOA / spatialization approaches for a hemisphere Message-ID: 3149263781acf8439b762eef943d60e5@anestheticaudio.com Content-Type: text/plain; charset="utf-8"
Hi List,
I'm putting together a 32 channel HDLA and looking for spatialization advice. The configuration will be two rings, one higher than the other, and I've been thinking a bit smaller/closer to approximate a hemisphere. But that's flexible - they could be parallel rings if it simplifies things.
I have some (limited) experience using HoaLibrary + PD for 2D ambisonics
- so my initial thought was to try the 3d externals there - however I'm
not sure if it actually makes sense to build an abstraction setup for a sphere of twice as many channels while limiting access to the upper hemisphere only. I'm assuming there would be some problems with that approach.
I found a few papers on mixed-order ambisonics - by Chris Travis and also the AmbiX crew - but I'm not sure if there's away to implement that stuff with HoaLibrary. I'm also open to using different software if something else is recommended instead.
Thanks for any advice!
-Jesse
[1] https://github.com/pierreguillot/vbap [2] https://puredata.info/downloads/vbap/releases [3] https://sourceforge.net/projects/pure-data/files/libraries/vbap/
It's feasible but perhaps a bit complicated in Pd. The idea is to add multiple virtual sources around the main virtual source
So for each virtual source, you compute the coefficients of N other virtual sources. Based on Pd and Max objects (because it's not specified in the papers) the positions are (with s the spread factor): In 2d, -s -s/2 -s/4 0 s/4 s/2 s In 3d, [azimut, elevation]
[0, s]
[0, s/2]
[0, s/4]
[-s, 0] [-s/2, , 0] [-s/4, 0] [0, 0] [s/4, 0] [s/2, 0] [s, 0] [0, -s/4] [0, -s/2] [0, s]
I think the simplest approach is to pre-compute all these positions and then rotate them by the position of the main source.
Then you have to sum the lists of coefficient term to term.
If spead > 70 you have to add a factor to each coefficient factor = (spread - 70)/30*(spread - 70)/30*10 coeff1 = coeff1+factor coeff2 = coeff2+factor
Then compute their power (the square root of the sum of the square of all the coefficients): power = sqrt(coeff1*coeff1+coeff2*coeff2+...+coeffN*coeffN) and at last, normalize all the coefficient: coeff1 = coeff1/power coeff2 = coeff2/power, etc.
And... that's it :) Is it understandable ?
2017-07-04 3:50 GMT+02:00 jmejia@anestheticaudio.com:
Thanks Pierre - these abstractions seem great! I was able to easily adapt it to work with my setup.
I've been looking over Ville Pulki's paper but am a bit lost as to how to implement a spread function in your abstractions. Can you point me in the right direction?
Thanks!
-Jesse
On 2017-06-27 01:18, Pierre Guillot wrote:
My VBAP repository is for "personal" use, I'm not sure that I will ever publish an "official" release but everything should work ! I did this because there were bugs in the "official" implementation when using a very large number of loudspeakers and I couldn't solve the problem from the original code (I couldn't find the problem in fact...). If you want to be sure to have something durable I suggest you to use the abstraction p.vbap but the compiled externals are much more efficient. One last thing: there is no "spread" factor (MDBAP) but you can do it manually in Pd. The principles are explained in the paper Uniform Spreading Of Amplitude Panned Virtual Sources (https://aaltodoc.aalto.fi/bitstream/handle/123456789/ 2345/article4.pdf) and the implementation is explained in Generic panning tools for MAX/MSP (http://cnmat.org/ICMC2000/pdf/VBAP.pdf). Cheers
2017-06-25 0:09 GMT+02:00 jmejia@anestheticaudio.com:
Thanks Pierre! That's all great advice. I'm gonna dig into VBAP - it's been awhile since I've messed with that. Maybe that will work better.
I'll give your building repo a shot https://github.com/pierreguillot/vbap
(unless you have OSX binaries?)
but I also wonder about all these others:
https://puredata.info/downloads/vbap/releases
vbap-v0 on dekken
https://sourceforge.net/projects/pure-data/files/libraries/vbap/
Thanks!
-Jesse
On 2017-06-24 03:26, Pierre Guillot wrote:
Hi Jesse,
With Ambisonics, ideally your loudspeakers should discretize perfectly a sphere, you should have your head at the exact center of this sphere, etc. and perhaps if you forget that your head interferes and the loudspeakers don't generate plane waves you'll be able to reconstruct a coherent sound field... But to avoid these restrictions (because very few people have a full sphere of loudspeakers - or want to ask the audience to be completely crushed at the center of the sphere) there are several techniques : optimizations of the energy and/or velocity vectors, optimizations of the decoding, etc. The problem is that none of the solutions are completely generic. Your choice must be driven by your approach and your goal.The advantage of Ambisonics lies in its intermediary representation of the sound field that allows to apply transformations (rotation or whatever) and to decode for different loudspeakers configurations. But if you just want to spatialize individuals point sources, you can also use VBAP that is perhaps much more accessible. Nevertheless yes, you can surely find a way to decode the sound field for two ring of loudspeakers with Ambisonics (we can discuss it if you want). And one good rule is just to avoid placing sources where the loudspeakers are missing. I don't know if I really answer the question, I hope a bit :)
Cheers,
Pierre
Date: Fri, 23 Jun 2017 16:19:29 -0600 From: jmejia@anestheticaudio.com To: pd-list@lists.iem.at Subject: [PD] HOA / spatialization approaches for a hemisphere Message-ID: 3149263781acf8439b762eef943d60e5@anestheticaudio.com Content-Type: text/plain; charset="utf-8"
Hi List,
I'm putting together a 32 channel HDLA and looking for spatialization advice. The configuration will be two rings, one higher than the other, and I've been thinking a bit smaller/closer to approximate a hemisphere. But that's flexible - they could be parallel rings if it simplifies things.
I have some (limited) experience using HoaLibrary + PD for 2D ambisonics
- so my initial thought was to try the 3d externals there - however I'm
not sure if it actually makes sense to build an abstraction setup for a sphere of twice as many channels while limiting access to the upper hemisphere only. I'm assuming there would be some problems with that approach.
I found a few papers on mixed-order ambisonics - by Chris Travis and also the AmbiX crew - but I'm not sure if there's away to implement that stuff with HoaLibrary. I'm also open to using different software if something else is recommended instead.
Thanks for any advice!
-Jesse
You can look at the branch dev/mdap on my repository ( https://github.com/pierreguillot/vbap/tree/dev/mdap). There is the abstraction p.mdap that integrates the spread. The 2d version works but I didn't make the part that compute the positions of the virtual sources in 3d (all the rest of the algorithm is common to 2d & 3d).
2017-07-04 9:19 GMT+02:00 Pierre Guillot guillotpierre6@gmail.com:
It's feasible but perhaps a bit complicated in Pd. The idea is to add multiple virtual sources around the main virtual source
- MDAP (sorry for the typo error) -> multiple-direction amplitude panning.
So for each virtual source, you compute the coefficients of N other virtual sources. Based on Pd and Max objects (because it's not specified in the papers) the positions are (with s the spread factor): In 2d, -s -s/2 -s/4 0 s/4 s/2 s In 3d, [azimut, elevation]
[0, s] [0, s/2] [0, s/4]
[-s, 0] [-s/2, , 0] [-s/4, 0] [0, 0] [s/4, 0] [s/2, 0] [s, 0] [0, -s/4] [0, -s/2] [0, s]
I think the simplest approach is to pre-compute all these positions and then rotate them by the position of the main source.
Then you have to sum the lists of coefficient term to term.
If spead > 70 you have to add a factor to each coefficient factor = (spread - 70)/30*(spread - 70)/30*10 coeff1 = coeff1+factor coeff2 = coeff2+factor
Then compute their power (the square root of the sum of the square of all the coefficients): power = sqrt(coeff1*coeff1+coeff2*coeff2+...+coeffN*coeffN) and at last, normalize all the coefficient: coeff1 = coeff1/power coeff2 = coeff2/power, etc.
And... that's it :) Is it understandable ?
2017-07-04 3:50 GMT+02:00 jmejia@anestheticaudio.com:
Thanks Pierre - these abstractions seem great! I was able to easily adapt it to work with my setup.
I've been looking over Ville Pulki's paper but am a bit lost as to how to implement a spread function in your abstractions. Can you point me in the right direction?
Thanks!
-Jesse
On 2017-06-27 01:18, Pierre Guillot wrote:
My VBAP repository is for "personal" use, I'm not sure that I will ever publish an "official" release but everything should work ! I did this because there were bugs in the "official" implementation when using a very large number of loudspeakers and I couldn't solve the problem from the original code (I couldn't find the problem in fact...). If you want to be sure to have something durable I suggest you to use the abstraction p.vbap but the compiled externals are much more efficient. One last thing: there is no "spread" factor (MDBAP) but you can do it manually in Pd. The principles are explained in the paper Uniform Spreading Of Amplitude Panned Virtual Sources (https://aaltodoc.aalto.fi/bit stream/handle/123456789/2345/article4.pdf) and the implementation is explained in Generic panning tools for MAX/MSP ( http://cnmat.org/ICMC2000/pdf/VBAP.pdf). Cheers
2017-06-25 0:09 GMT+02:00 jmejia@anestheticaudio.com:
Thanks Pierre! That's all great advice. I'm gonna dig into VBAP - it's been awhile since I've messed with that. Maybe that will work better.
I'll give your building repo a shot https://github.com/pierreguill ot/vbap
(unless you have OSX binaries?)
but I also wonder about all these others:
https://puredata.info/downloads/vbap/releases
vbap-v0 on dekken
https://sourceforge.net/projects/pure-data/files/libraries/vbap/
Thanks!
-Jesse
On 2017-06-24 03:26, Pierre Guillot wrote:
Hi Jesse,
With Ambisonics, ideally your loudspeakers should discretize perfectly a sphere, you should have your head at the exact center of this sphere, etc. and perhaps if you forget that your head interferes and the loudspeakers don't generate plane waves you'll be able to reconstruct a coherent sound field... But to avoid these restrictions (because very few people have a full sphere of loudspeakers - or want to ask the audience to be completely crushed at the center of the sphere) there are several techniques : optimizations of the energy and/or velocity vectors, optimizations of the decoding, etc. The problem is that none of the solutions are completely generic. Your choice must be driven by your approach and your goal.The advantage of Ambisonics lies in its intermediary representation of the sound field that allows to apply transformations (rotation or whatever) and to decode for different loudspeakers configurations. But if you just want to spatialize individuals point sources, you can also use VBAP that is perhaps much more accessible. Nevertheless yes, you can surely find a way to decode the sound field for two ring of loudspeakers with Ambisonics (we can discuss it if you want). And one good rule is just to avoid placing sources where the loudspeakers are missing. I don't know if I really answer the question, I hope a bit :)
Cheers,
Pierre
Date: Fri, 23 Jun 2017 16:19:29 -0600 From: jmejia@anestheticaudio.com To: pd-list@lists.iem.at Subject: [PD] HOA / spatialization approaches for a hemisphere Message-ID: 3149263781acf8439b762eef943d60e5@anestheticaudio.com Content-Type: text/plain; charset="utf-8"
Hi List,
I'm putting together a 32 channel HDLA and looking for spatialization advice. The configuration will be two rings, one higher than the other, and I've been thinking a bit smaller/closer to approximate a hemisphere. But that's flexible - they could be parallel rings if it simplifies things.
I have some (limited) experience using HoaLibrary + PD for 2D ambisonics
- so my initial thought was to try the 3d externals there - however I'm
not sure if it actually makes sense to build an abstraction setup for a sphere of twice as many channels while limiting access to the upper hemisphere only. I'm assuming there would be some problems with that approach.
I found a few papers on mixed-order ambisonics - by Chris Travis and also the AmbiX crew - but I'm not sure if there's away to implement that stuff with HoaLibrary. I'm also open to using different software if something else is recommended instead.
Thanks for any advice!
-Jesse
Hello,
Theoretically, with Ambisonics any configuration of loudspeaker outside a listening spot, with speaker in distance which Produce a kind of plane wavefield is suitable for Ambisonics. The better the speaker sound, the better the whole system, but it is robust for individual speaker differences as long you calibrate it and has a way better energy distribution than vbap for small speaker. Of course, if speaker missing on some side there can be no sound from there, but placing virtual speaker for decoder makes smoother transistions to this direction and so on, best follow the advices in Ambisonics Decoder Toolbox [ADT] by Aaron J. Heller [1] to calculate a decoder.
Anyhow we are on the way for a Pd Ambisonics library for "Imperfect Ambisonics Systems". Which also means in rooms with "bad acoustics" or any other odd places, mixed speaker setup and so on. You are invited to join to extend this simple abstraction lib.
https://git.iem.at/pd/acre-amb
By the way it supports multichannel patching with names as buses and so on, to reduce Pd-cabling. (Note it is in development and should be stable end of summer).
Next week we want to finalize the new Ambisonics domeplayer [2] for AAAS (affordable autonomous Ambisonics system) for the workshop in September (and publish it on git).
[1] https://bitbucket.org/ambidecodertoolbox/adt.git ) [2] https://iaem.at/kurse/projekte/aaas2/iemkit_6ch.jpg
rfc winfried
Am Samstag, 24. Juni 2017, 11:26:59 schrieb Pierre Guillot:
Hi Jesse,
With Ambisonics, ideally your loudspeakers should discretize perfectly a sphere, you should have your head at the exact center of this sphere, etc. and perhaps if you forget that your head interferes and the loudspeakers don't generate plane waves you'll be able to reconstruct a coherent sound field... But to avoid these restrictions (because very few people have a full sphere of loudspeakers - or want to ask the audience to be completely crushed at the center of the sphere) there are several techniques : optimizations of the energy and/or velocity vectors, optimizations of the decoding, etc. The problem is that none of the solutions are completely generic. Your choice must be driven by your approach and your goal.The advantage of Ambisonics lies in its intermediary representation of the sound field that allows to apply transformations (rotation or whatever) and to decode for different loudspeakers configurations. But if you just want to spatialize individuals point sources, you can also use VBAP that is perhaps much more accessible. Nevertheless yes, you can surely find a way to decode the sound field for two ring of loudspeakers with Ambisonics (we can discuss it if you want). And one good rule is just to avoid placing sources where the loudspeakers are missing. I don't know if I really answer the question, I hope a bit :)
Cheers,
Pierre
Date: Fri, 23 Jun 2017 16:19:29 -0600 From: jmejia@anestheticaudio.com To: pd-list@lists.iem.at Subject: [PD] HOA / spatialization approaches for a hemisphere Message-ID: 3149263781acf8439b762eef943d60e5@anestheticaudio.com Content-Type: text/plain; charset="utf-8"
Hi List,
I'm putting together a 32 channel HDLA and looking for spatialization advice. The configuration will be two rings, one higher than the other, and I've been thinking a bit smaller/closer to approximate a hemisphere. But that's flexible - they could be parallel rings if it simplifies things.
I have some (limited) experience using HoaLibrary + PD for 2D ambisonics
- so my initial thought was to try the 3d externals there - however I'm
not sure if it actually makes sense to build an abstraction setup for a sphere of twice as many channels while limiting access to the upper hemisphere only. I'm assuming there would be some problems with that approach.
I found a few papers on mixed-order ambisonics - by Chris Travis and also the AmbiX crew - but I'm not sure if there's away to implement that stuff with HoaLibrary. I'm also open to using different software if something else is recommended instead.
Thanks for any advice!
-Jesse
Thanks Winfried - this looks exciting! Digging into this library now!
-Jesse
On 2017-06-29 11:00, Winfried Ritsch wrote:
Hello,
Theoretically, with Ambisonics any configuration of loudspeaker outside a listening spot, with speaker in distance which Produce a kind of plane wavefield is suitable for Ambisonics. The better the speaker sound, the better the whole system, but it is robust for individual speaker differences as long you calibrate it and has a way better energy distribution than vbap for small speaker. Of course, if speaker missing on some side there can be no sound from there, but placing virtual speaker for decoder makes smoother transistions to this direction and so on, best follow the advices in Ambisonics Decoder Toolbox [ADT] by Aaron J. Heller [1 [1]] to calculate a decoder.
Anyhow we are on the way for a Pd Ambisonics library for "Imperfect Ambisonics Systems". Which also means in rooms with "bad acoustics" or any other odd places, mixed speaker setup and so on. You are invited to join to extend this simple abstraction lib.
https://git.iem.at/pd/acre-amb
By the way it supports multichannel patching with names as buses and so on, to reduce Pd-cabling. (Note it is in development and should be stable end of summer).
Next week we want to finalize the new Ambisonics domeplayer [2 [2]] for AAAS (affordable autonomous Ambisonics system) for the workshop in September (and publish it on git).
[1] https://bitbucket.org/ambidecodertoolbox/adt.git ) [2] https://iaem.at/kurse/projekte/aaas2/iemkit_6ch.jpg
rfc winfried
Am Samstag, 24. Juni 2017, 11:26:59 schrieb Pierre Guillot: Hi Jesse,
With Ambisonics, ideally your loudspeakers should discretize perfectly a sphere, you should have your head at the exact center of this sphere, etc. and perhaps if you forget that your head interferes and the loudspeakers don't generate plane waves you'll be able to reconstruct a coherent sound field... But to avoid these restrictions (because very few people have a full sphere of loudspeakers - or want to ask the audience to be completely crushed at the center of the sphere) there are several techniques : optimizations of the energy and/or velocity vectors, optimizations of the decoding, etc. The problem is that none of the solutions are completely generic. Your choice must be driven by your approach and your goal.The advantage of Ambisonics lies in its intermediary representation of the sound field that allows to apply transformations (rotation or whatever) and to decode for different loudspeakers configurations. But if you just want to spatialize individuals point sources, you can also use VBAP that is perhaps much more accessible. Nevertheless yes, you can surely find a way to decode the sound field for two ring of loudspeakers with Ambisonics (we can discuss it if you want). And one good rule is just to avoid placing sources where the loudspeakers are missing. I don't know if I really answer the question, I hope a bit :)
Cheers,
Pierre
Date: Fri, 23 Jun 2017 16:19:29 -0600 From: jmejia@anestheticaudio.com To: pd-list@lists.iem.at Subject: [PD] HOA / spatialization approaches for a hemisphere Message-ID: 3149263781acf8439b762eef943d60e5@anestheticaudio.com Content-Type: text/plain; charset="utf-8"
Hi List,
I'm putting together a 32 channel HDLA and looking for spatialization advice. The configuration will be two rings, one higher than the other, and I've been thinking a bit smaller/closer to approximate a hemisphere. But that's flexible - they could be parallel rings if it simplifies things.
I have some (limited) experience using HoaLibrary + PD for 2D ambisonics
- so my initial thought was to try the 3d externals there - however I'm
not sure if it actually makes sense to build an abstraction setup for a sphere of twice as many channels while limiting access to the upper hemisphere only. I'm assuming there would be some problems with that approach.
I found a few papers on mixed-order ambisonics - by Chris Travis and also the AmbiX crew - but I'm not sure if there's away to implement that stuff with HoaLibrary. I'm also open to using different software if something else is recommended instead.
Thanks for any advice!
-Jesse
[1] https://bitbucket.org/ambidecodertoolbox/adt.git [2] https://iaem.at/kurse/projekte/aaas2/iemkit_6ch.jpg