Better references for compiling FAUST to SHARC are https://wiki.analog.com/resources/tools-software/sharc-audio-module/faust https://youtu.be/iUB8ru-76qw
It might be easier for you to experiment with the decoders running on a regular computer, then commit to the DSP board when you have configurations you like. For reference, the FAUST 6th-order AllRAD decoder for the 56-speaker array at CCRMA uses about 35% of the CPU on my MacBook Pro (four core, 3.1 GHz i7), as a VST plugin hosted in Plogue Bidule. That's two-band, with distance, level, and near-field compensation -- there are 49 band-splitting filters and 336 NFC filters in the decoder. The design and implementation of the filters is discussed in our IFC18 conference paper http://www.ifc18.uni-mainz.de/papers/heller.pdf Aaron On Sun, Jun 2, 2019 at 1:22 PM Aaron Heller <ajhel...@gmail.com> wrote: > > 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/2bcb6c0f/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.