Hi Sean,
Are all the speakers at the same distance?  If not, the sound will be drawn
to the closest one due to the precedence effect. So you need to insert
delays and adjust the level. For small arrays, near field compensation is
also important.

My MATLAB/Octave toolbox implements AllRAD (in fact, for a long time it was
the only publicly available implementation). My implementation of AllRAD is
described in our LAC2014 paper [1]. The toolbox generates decoders in the
Faust DSP specification language which can then be compiled to SHARC code
(and VST, jack, ...). The decoders have level, delay, and near field
compensation. You could also use the toolbox to check the coefficients
you're generating. If you prefer, send me the exact speaker layouts and
I'll run them through my code and send you the results.

Find it at:
     https://bitbucket.org/ambidecodertoolbox/adt/src/master/

Details on FAUST here:
   https://faust.grame.fr
   http://www.moforte.com/faust_on_sharc/

Best practice is to do the delay and level compensation from in-situ
measurements, as described in Fernando Lopez-Lezcano's paper [2]. He also
uses DRC to correct the frequency response, which improves the sound
considerably.

And sorry to be pedantic, but Zotter uses the term "imaginary" to describe
the speakers that are added to the array to make the VBAP gains
reasonable.  He uses "virtual" to describe the large regular array that is
mapped to the real array via VBAP.  Also, note that Zotter and Frank have
proposed AllRAD2 [3] to correct some problems with AllRAD, specifically
that while Ambisonic decoding to a uniform array and VBAP are both energy
preserving, their superposition is not (!!), which can lead to gain errors
as large as 3 dB on smaller arrays.  I started to implement AllRAD2, but
got distracted making decoder performance plots with Plotly
   http://ambisonics.dreamhosters.com/plotly/

[1] A. J. Heller and E. M. Benjamin, “The Ambisonic Decoder Toolbox:
Extensions for Partial-Coverage Loudspeaker Arrays,” presented at the Linux
Audio Conference 2014, Karlsruhe, 2014.
http://lac.linuxaudio.org/2014/papers/17.pdf
[2] F. Lopez-Lezcano, “Searching for the GRAIL,” Computer Music Journal,
vol. 40, no. 4, pp. 91–103, Winter 2016.
https://doi.org/10.1162/COMJ_a_00393
[3] F. Zotter and M. Frank, “Ambisonic Decoding with Panning-Invariant
Loudness on Small Layouts (AllRAD2),” May 2018.
http://www.aes.org/e-lib/browse.cfm?elib=19460


Aaron Heller (hel...@ai.sri.com)
Menlo Park, CA  US


On Sun, Jun 2, 2019 at 12:26 AM Sean Devonport <rsdevonport1...@gmail.com>
wrote:
>
> Thanks for the reply Florian.
>
> Yes, was aware of the imaginary loudspeakers. The algorithm I've
> implemented does take this into account. Although maybe some further
> tweaking is necessary. Currently it adds these imaginary loudspeakers into
> the convex hull algorithm if there are top and bottom loudspeakers
missing.
>
> I may need to extend their distance a bit. Will play around with this.
>
> --
> Sean Devonport
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
https://mail.music.vt.edu/mailman/private/sursound/attachments/20190602/43319b62/attachment.html
>
> _______________________________________________
> Sursound mailing list
> Sursound@music.vt.edu
> https://mail.music.vt.edu/mailman/listinfo/sursound - unsubscribe here,
edit account or options, view archives and so on.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<https://mail.music.vt.edu/mailman/private/sursound/attachments/20190602/40d16e96/attachment.html>
_______________________________________________
Sursound mailing list
Sursound@music.vt.edu
https://mail.music.vt.edu/mailman/listinfo/sursound - unsubscribe here, edit 
account or options, view archives and so on.

Reply via email to