The Ambisonic Decoder Toolbox:
Extensions for Partial-Coverage Loudspeaker Arrays
Aaron J. HELLER
AI Center, SRI International
Menlo Park, CA, US
heller@ai.sri.com

Abstract
We present extensions to the Ambisonic Decoder
Toolbox to efficiently design periphonic decoders for
non-uniform speaker arrays such as hemispherical
domes and multilevel rings. These techniques include
modified inversion, AllRAD, and spherical Slepian
function-based decoders. We also describe a new
backend for the toolbox that writes out full-featured
decoders in the Faust DSP specification language,
which can then be compiled into a variety of plugin formats. Informal listening tests and performancemeasurements indicate that these decoders work wellfor speaker arrays that are difficult to handle withconventional design techniques. The computation isrelatively quick and more reliable compared to nonlinear optimization techniques used previously.

Keywords
Ambisonic decoder, HOA, hemisphere, Faust

1

Introduction

This is a paper about extensions to the Ambisonic Decoder Toolbox to efficiently design decoders for loudspeaker arrays with partial coverageof the sphere, such as domes and multilevel rings.
The criteria for Ambisonic reproduction are:• Constant amplitude and energy gain for all
source directions• At low frequencies, reproduced wavefront
direction and velocity are correct• At high frequencies, maximum concentration of energy in the source direction• Matching high- and low-frequency perceived
directions
In the case of decoders for partial-coveragearrays, we relax these to apply only to source
directions that are within the covered part of thesphere, but still require that the decoder be “wellbehaved” for sources from other directions.
Conventional techniques for periphonic decoder design work well when the speakers are distributed uniformly around the listening position.

Eric M. BENJAMIN
Surround Research
Pacifica, CA, US
ebenj@pacbell.net

First-order Ambisonics can be accommodated inmany listening rooms; however, when moving
to higher-order reproduction the need arises toplace more loudspeakers below the listener. Thisrequires placing the listening position high inthe room or on an acoustically transparent floor
with a space below to install speakers. Neitherof these are practical for most installations, so
hemispherical dome configurations are a popular
alternative. In addition, it may be impracticalto install speakers directly overhead, resulting
in a configuration of horizontal rings of speakers
at multiple heights. These configurations leavegaps in coverage below, and possibly above, thelistening position.
In a previous paper, we describe a Matlab/GNU Octave1 toolbox for generating Ambisonic decoders that uses inversion or projection
to generate an initial estimate and then nonlinear optimization to simultaneously maximizerE and minimize directional and loudness errors[2012]. While this works well for small arrays, wefound that increasing the Ambisonic order andnumber of loudspeakers causes the optimizer toconverge slowly and get stuck in local minima
unless the starting solution is close to optimal.2
In the case of hemispherical domes and multilevel rings, neither inversion or projection provide a close starting point. Once the speakerarray deviates from uniform geometry, an inversion decoder will trade uniform loudness for
directional accuracy by putting more energy indirections where gaps between the loudspeakers
are larger. A projection decoder does just the
opposite, putting equal energy into all the speak1
In this paper, we use “Matlab” to refer to both
Matlab and GNU Octave. Care has been taken to
make sure the code runs in both; however, not all of thegraphics work well in Octave. Matlab is a registeredtrademark of The MathWorks, Inc.
2
A recent paper by Arteaga [2013] takes advantage
of symmetries in the loudspeaker array and a reformulation of the objective function to improve the convergence
behavior of the optimization process.

ers regardless of spacing, hence they are louder
in directions where there are more speakers. In
practice, neither provides an adequate starting
point for the optimization process.
The general problem is that it is difficult topull the sound image beyond the space where
there is dense coverage. For the case of hemispheres this not only means that performance
will suffer below the horizon, but that it will bepoor at the horizon. Because horizontal performance is uniquely important, it is necessary to
make the decoder perform well there, despite thedifficulties.
New design techniques have been proposedover the last few years to handle these sorts of arrays. We have implemented these in the toolbox
to make them available to a wider user group.
The toolbox has been extended beyond thirdorder decoding, and to support component orderand normalization conventions other than FurseMalham. We also wanted to support a variety ofplug-in architectures. A new decoder engine waswritten in the Faust (Functional Audio Stream)
DSP Specification language [Orlarey, Fober, andLétz 2009; Smith 2013a], which includes facilities
for dual-band decoding, and near-field, distance,and loudness compensation.
1.1 Auditory Localization
In this paper we utilize Gerzon’s two main localization models to predict decoder performance:
the velocity localization vector, rV , and the energy localization vector, rE . These are definedand discussed in our previous paper on the toolbox [Heller, Benjamin, and Lee 2012] (and manyother places). Briefly, these models encapsulate
the primary interaural time difference (ITD) andinteraural level difference (ILD) theories of auditory localization. The direction of each indicatesthe direction of the localization perception, andthe magnitude indicates the quality of the localization. In natural hearing from a single source,
the magnitude of each is exactly 1 and the direction is the direction to the source.
1.2 Math Notation
We use lowercase bold roman type to denote vectors (v), uppercase bold roman type to denotematrices (M), italic type to denote scalars (s),and sans serif type to denote signals (W). A
scalar with the same name as a vector denotes
the magnitude of the vector. A vector with acircumflex (“hat”) is a unit vector, so, for example, rˆE = rE /rE . “A† ” is the Moore-Penrose
pseudoinverse of A (pinv(A) in Matlab) and“A> ” is the transpose of A (A.’ in Matlab).

2

Decoder Design Techniques for
Domes and Multilevel Rings

In Ambisonics, the standard technique for deriving the basic decoder matrix, M, is to invert
the matrix, K, whose columns are composed of
the spherical harmonics sampled at the speaker
positions, such that M K = I, where I is theidentity matrix [Gerzon 1980; Heller, Lee, andBenjamin 2008].3
Because K is “encoding” the speaker positions,some authors call it the reencoding matrix andrefer to the inversion as mode matching. In thegeneral case, K is rank deficient, so the inversion must be done by least-squares or by using singular-value decomposition (SVD) and theMoore-Penrose pseudoinverse.
Problems arise when a given loudspeaker arraydoes a poor job of sampling some of the spherical harmonics, such as sampling at or near zerocrossings or having more than one zero crossing
between samples. In these cases, K will be illconditioned (difficult to invert without loss of
precision) and the resulting decoder will havegreater energy gain in certain directions, resulting in reduced rE and greater loudness in those
directions.
In the following subsections, we discuss threestrategies implemented in the toolbox:• Use an inversion technique suited to illconditioned problems• Invert a well-behaved full-sphere coveragearray, map to the real array• Derive a new set of basis functions for which
the inversion is well behaved
2.1 Modified Inversion
One proposed solution is to set all of the singularvalues to 1 when computing the pseudoinverse[Pomberger and Zotter 2012]. This has the effect of diminishing the use of the poorly sampled spherical harmonics. The resulting decoder
has constant energy (hence, loudness) in all directions, at the expense of increased directional
errors.
Another solution is to use a truncated SVD
when computing the pseudoinverse. This simply
discards the poorly sampled spherical harmonics. In the conventional pseudoinverse (e.g., as
3

The term sampling is used here to mean evaluating
the given spherical harmonic function at a particular
azimuth and elevation.

implemented in Matlab), normalized singularvalues4 less than 10−15 are not inverted. In a
truncated SVD, a much larger threshold is used.
For example, setting the threshold to 12 puts anupper limit of 3 dB on the loudness variations,again, at the expense of increased directional
errors.
The toolbox also can produce decoders thatare a linear combinations of conventional pseudoinverse and these alternatives, providing a single parameter to tradeoff uniform loudness anddirectional accuracy. Other approaches to inverting ill-conditioned matrices have been applied to this problem, such as Tikhonov regularization [Poletti 2005] and LASSO (least absolute shrinkage and selection operator) [Chenand Huang 2013]. Currently, we have not implemented these, although the linear combination
approach described above provides a result similar to Tikhonov regularization.
2.2 Hybrid Ambisonic-VBAP Decoding
The hybrid Ambisonic-VBAP approach is called“All Round Ambisonic Decoding” (AllRAD) by
Zotter and Frank [2012]. Briefly, one computes
a decoder for a uniform array of virtual speakers
and then maps the signals for the virtual arrayto the real loudspeaker array using Vector Base
Amplitude Panning (VBAP) [Pulkki 1997].
VBAP always produces the smallest possible
angular spread of energy for a given panning direction and speaker array, hence the perceived
size of a virtual source changes depending on direction. This is directly at odds with the Ambisonic approach, which tries to keep the perceived
size of a virtual source constant regardless ofsource direction. AllRAD uses two strategies tomitigate this:
1. The number of virtual speakers is mademuch larger than the number of real speakers.
2. Imaginary speakers are inserted to fill inlarge gaps in the real loudspeaker array inorder to keep the triangular faces of the tessellation as regular as possible.
AllRAD places the virtual speakers according
to a spherical t-design [Hardin and Sloane 2002].
A spherical t-design of degree t is a finite set ofpoints on a sphere, such that the integral of any
polynomial of degree t or less over the sphereis equal to the average value of the polynomial
4

the set of singular values divided by the largest one

Figure 1: Plot of real speaker locations for the upper hemisphere in CCRMA’s Listening Room (black
hexagrams), unit sphere tessellation, and intersection
points of 240 virtual speaker directions (green plussign). The speaker at the bottom is an imaginary
speaker added to keep the facets of the tessellation as
regular as possible. The location of the intersection
points are used to calculate the VBAP gains to thereal speakers.

sampled at the points in the set. The present
implementation uses the 240-point spherical tdesign for the virtual array, which is the largest
currently-known t-design.
There are three steps to the design of an AllRAD decoder:
1. Select a spherical t-design for the array ofvirtual speakers and compute a decoder forit. Because the virtual speakers are distributed uniformly on the sphere the inversion is well behaved.
(a) Compose the matrix KV whose
columns are the spherical harmonics
sampled at the directions of the virtual
speakers.
(b) Compute the decoder matrix for thevirtual array, MV = KV † .
2. Compute the matrix of VBAP gains for each
virtual speaker.
(a) Project the positions of the real speakers onto the unit sphere.
(b) Add imaginary speakers to the array tofill in any gaps larger than 90◦ . For adome this will be one at the bottom.
For a multilevel ring, one at the top
and one at the bottom. The distancefrom the center determines how quickly

0.8
0

0.7
-50

0.6

-150 -100

-50

0

50

100

0.5

150

Azimuth HdegreesL

-6
-4
-2
0246

HaL rE vs. Test Direction

50

8
6

0

4
-50

Elevation HdegreesL

50

0

10
Elevation HdegreesL

Elevation HdegreesL

0.9

-2

50

-4
0

-6
-50

2
-150 -100

-50

0

50

100

0

150

Azimuth HdegreesL

-6
-4
-2
0246

HbL rE Direction Error HdegreesL-8-150 -100

-50

0

50

100

150

Azimuth HdegreesL

-10
-6
-4
-2
0246

HcL Energy Gain HdBL

Figure 2: The AllRAD decoder’s performance for the upper hemisphere of CCRMA’s Listening Room.
These show the (a) energy concentration, (b) directional accuracy, and (c) loudness of sources from various
directions. Directional errors are clipped at 10◦ so that smaller errors can be seen. The plots have been
quantized to make the structure clearer. Note that the Mercator projection used overemphasizes the poles.

sources fade as they move outside theregion of the sphere covered by the real
speaker array.
(c) Compute the triangular tessellation of
the convex hull of the projected speaker
positions.
(d) Determine the intersection point of thevector to each virtual speaker with thefaces of the convex hull.
(e) Calculate the barycentric coordinatesof each intersection point. These are
the VBAP gains from that virtual
speaker to the three real speakers at
the vertices of the face.
(f) Assemble the matrix of the VBAP
gains, GV→R . This matrix has one column for each virtual speaker and one
row for each real speaker. Each column will have up to three gains for that
virtual speaker from the previous step.
Gains to imaginary speakers are omitted.
3. The basic decoder matrix is
M = GV→R MV .
Figure 1 shows the real and imaginary speaker
positions, the tessellation of the speaker directions, and the intersection points of the vectors
to each virtual speaker with the faces of the tessellation. The example shown is for the upper
hemisphere of loudspeakers in CCRMA’s Listening Room. Figure 2 shows the performance of
the AllRAD decoder used in the listening tests.

2.3

Spherical Slepian Function
Decoding
Spherical Slepian functions (SSF) are linear combinations of spherical harmonics that produce
new basis functions that are approximately zero
outside the chosen region of the sphere, butalso remain orthogonal within the region of interest. This makes them suitable for decomposing spherical-harmonic models into portions
that have significant energy only in selected areas [Beggan et al. 2013; Simons, Dahlen, andWieczorek 2006]. They have been used in satellite geodesy to model the magnetic and gravitational fields of the earth from satellite datathat does not cover the whole earth. In designing Ambisonic decoders, they allow us to specify
a region of interest on the sphere and derive a
new set of basis functions that is well conditioned
within that region. Zotter et al. call this “EnergyPreserving Ambisonic Decoding” (EPAD) [2012].
The procedure implemented in the toolbox isdescribed here.
1. Define the subset of the surface of the sphere
for the decoder, R ⊂ S 2 , where S 2 denotes
the surface of the unit sphere in R3 . To
assure good performance at the boundary,select it to be a bit larger than the area
covered by the loudspeakers; for the decoder
tested, we used −30◦ to 90◦ elevation.
2. Compose the Gramian matrix, G, of the inner products of the real spherical harmonics,
Ylm (θ̂), over the region R. Each element,
glm,l0 m0 , of G is given by
glm,l0 m0= hYlm , Yl0 m0 iR
Z=
Ylm (θ̂) Yl0 m0 (θ̂) dθRwhere lm is a single-index designator for thereal spherical harmonic of degree l and order>m, θ̂ = cos θ cos φ sin θ cos φ sin φ ,and θ and φ are azimuth and elevation.
3. Compute the eigen decomposition of G →U Λ U−1 . U is a unitary matrix whose
columns are the eigenvectors of G. The diagonal elements of Λ are the corresponding
eigenvalues.
4. Compose a new matrix, USSF , by selecting
the columns of U with eigenvalues abovesome threshold, α. α should be approximately the fraction of the sphere covered by
the region of interest. For a hemisphericaldome, we use α = 12 . This matrix transforms points in the spherical harmonic basis
to points in the new SSF basis.
5. Compose the speaker reencoding matrix, K,
where the columns are the spherical harmonics sampled at each speaker direction. Transform it to the new basis, KSSF = USSF > K
6. Compute the basic decoder matrix, M =KSSF † USSF > .
Figure 3 shows balloon plots of the all 16 spherical Slepian basis functions for the region −30◦ to
90◦ elevation on the sphere. Note that the firsteight are concentrated in the upper hemisphere,
the next two in the middle, and the last six inthe lower hemisphere. The first 13 (those withλ > 12 ) were used for the third-order decoder
we tested. One observation is that this method
creates basis functions that have a clearer relationship with source directions, which is notpossible for the spherical harmonics above firstorder. Figure 4 shows the performance of the
SSF decoder used in the listening tests.
2.4 Max-rE Decoders
The basic decoder matricies, M, calculated in
the preceding sections, are transformed into
max-rE decoders by multiplying by a matrix, Γ,
whose diagonal entries are the per-order gains
that maximize rE over the sphere. Mmax-rE =M Γ. The calculation of these gains is discussed
in the appendix of [Heller, Benjamin, and Lee
2012].

3

In-situ Performance
Measurements

The Ambisonic decoder design philosophies discussed above are generally intended to optimize
the psychoacoustically based parameters of theGerzon Energy Vector theory. It is expected thatthose parameters generally predict the subjective performance of the system but, they are not
the same as the parameters that directly predict
what is heard by the listeners. We use measurements of the ITD and ILD to gauge the localization performance in actual systems. ITDs are
known to predict localization of low-frequency
sounds and ILDs are known to predict the localization of high-frequency sounds.
A group of measurements were performed in
CCRMA’s Listening Room at Stanford University.5 That room is equipped with 22 loudspeakers arranged as a horizontal ring of eight loudspeakers, rings of six loudspeakers at +40◦ and−50◦ elevation, and one loudspeaker each at thezenith and nadir. This allowed the option of either using the full spherical array or decoders
designed specifically to drive the upper 15 loudspeakers as a hemisphere. One decoder was derived by using the AllRAD method and the otherby using a SSF basis set.
The ITDs and ILDs created by real systems
were measured by using a dummy head to record
test signals reproduced from a variety of directions. The test signals are ambisonicallypanned exponential sine sweeps from which theimpulse response is computed from each direction. Those impulse responses are binaural impulse responses, from which the ITDs and ILDs
can be derived.
The ITDs were calculated by band-pass filtering the impulse responses to the bandwidthof interest and comparing the time of arrival at
the two ears of the dummy head. Performing
the calculation at 192 kHz sample rate gives atime resolution of 5 µs. The measurement was
repeated in each of the 37 directions at 10◦ intervals around the horizon, and for each of the three
decoders being evaluated. The result is shown in
Figure 5a. All three decoders provide a plausible
ITD result. The significant differences occur atthe sides.
ILDs are considerably more complex thanITDs, with the major differences between thetwo ears occurring at frequencies above 1 kHz.
As a simplification to make comparison easier,the ILD was calculated as an average level between 1 to 4 kHz. As for the ITDs, ILD was
calculated at 10◦ intervals around the horizon.
The results are shown in Figure 5b.
The three decoders produce substantially dif5

https://ccrma.stanford.edu/room-guides/
listening-roomFigure 3: Balloon plots of all 16 spherical Slepian basis functions for the region −30◦ to 90◦ elevation on
the sphere. Lobes with reversed polarity are shown in blue. Note that the first eight are concentrated in theupper hemisphere, the next two in the middle, and the last six in the lower hemisphere. The first 13 (λ > 12 )were used for the third-order decoder we tested.

0.8
0

0.7
-50

0.6

-150 -100

-50

0

50

100

0.5

150

Azimuth HdegreesL

HaL rE vs. Test Direction

-6
-4
-2
0246

50

8
6

0

4
-50

Elevation HdegreesL

50

0

10
Elevation HdegreesL

Elevation HdegreesL

0.9

50

-2
-4

0

-6
-50

2
-150 -100

-50

0

50

100

0

150
-6
-4
-2
0246

Azimuth HdegreesL

HbL rE Direction Error HdegreesL-8-150 -100

-50

0

50

100

150

Azimuth HdegreesL

-10
-6
-4
-2
0246

HcL Energy Gain HdBL

Figure 4: The Spherical Slepian function decoder’s performance. These show the (a) energy concentration,(b) directional accuracy, and (c) loudness of sources from various directions. Directional errors are clipped at10◦ .

ferent values of ILD for sounds coming from thesides. It should be noted that the high values of
ILD come from cancellation of signals on the opposite side of the head from the sound source bydiffraction of sound traveling around the head.
Because the results of the ITD, and particularly the ILD measurements, are so complex
the analysis of their effect is quite difficult andbeyond the scope of the present paper. That
analysis will be published in a subsequent paper.

4

Listening tests

We conducted informal (non-blind) listening
tests of third-order, single-band max-rE AllRAD
and SSF-based decoders using the 15 loudspeakers comprising the upper hemispherical dome in
the Listening Room at Stanford’s CCRMA. The
decoders computed by the toolbox were saved
as AmbDec configuration files and loaded into
multiple instances of AmbDec so that rapid com-

parisons could be made.
As a reference, we also listened to fullsphere playback of the test material over all
22 loudspeakers in the Listening Room using
the third-order, two-band, decoder described in
the previous paper [Heller, Benjamin, and Lee
2012]. Playback levels of all three decoders werematched by ear.
The test material comprised two third-order
recordings, a full-sphere mix by Jay Kadis,
CCRMA’s audio engineer, of “Babel” by Allette
Brooks6 and Jörn Nettingmeier’s recording of
Chroma XII by Rebecca Sanders [Nettingsmeier2012]. Playback was directly from the Ardour
sessions for each piece, which gave us the capability to move individual elements of the mix spatially to test performance from a wider variety
of directions, as well as solo individual tracks.
In general, both decoders sounded quite good,
providing compact and directionally accurate
6

http://www.cdbaby.com/cd/allette4

!
(a) 250 Hz ITD!

(b) 1 to 4 kHz ILD

Figure 5: Interaural time difference (ITD) and interaural level difference (ILD) as a function of azimuth for
full-sphere, AllRAD, and SSF-based decoders. Source elevation is 0◦ .

imaging down to the horizontal limit of the playback array. Sources below the horizon were reproduced at the horizon, fading out as they werepanned towards the nadir. The SSF-based decoder sounded brighter and more detailed than the
AllRAD decoder, despite the fact that neither
decoder used frequency-dependent decoding. It
was also noted that with the AllRAD decoder as
the listener leaned to the left and right, central
sources moved in the opposite direction, whereas
with the SSF-based decoder central sources remained in place.
Neither of the test decoders sounded as goodas the reference dual-band, full-sphere decoder,especially in the reproduction of lower frequency
percussion, which lost some of its impact. Thismay be attributable to the use of correct lowfrequency velocity decoding (rV = 1) in the reference decoder vs. wideband max-rE decodingin the test decoders.
At the end of the listening session, we used afirst-order SSF-based decoder to briefly auditiona first-order Soundfield microphone recording ofan orchestra made by one of the authors.7 In thiscase, the instrumental balance of the orchestra
was incorrect; notably, the woodwinds were almost inaudible. After the listening session, we recalled that in this recording, the microphone washung vertically, approximately 3 meters behindand 1.5 meters above the conductor’s head, placing the entire orchestra in the lower hemisphere
7

Beethoven: Sym. No. 4 in B-flat Major, Op. 60, 4th
Mvt. Available at http://www.ambisonia.com/Members/
ajh/ambisonicfile.2008-10-30.6980317146

of the recording. The first-order SSF-based decoder starts fading sources at approximately 20◦
above the horizon, which caused the instruments
at the front of the orchestra to be attenuatedsignificantly. At this point, we cannot recommend this configuration for first-order program
material with significant sources in the lowerhemisphere. Possible workarounds we intend totry include inverting the vertical signal, Z, tomirror the soundfield across the Z = 0 plane orrotating the soundfield about the Y -axis (“tilt”)
in order to move important sources to the upper
hemisphere.
AllRAD decoders generated by toolbox havebeen used for performances at Stanford’s Bing
Concert Hall and Studio employing CCRMA’s
24-speaker, hemispherical dome, loudspeaker array. At the dress rehearsal for a performance in
the Concert Hall, we were able to compare the
new AllRAD decoder to the projection decoderthat had been used for previous concerts. The
improvement was clearly audible to all present,with increased clarity and directional focus, especially for sources behind and above the audience.
Good results have also been reported using
modified inversion for a second-order decoder fora 12-speaker trirectangle array that is limited by
the ceiling height of the room, leaving a large
gap in coverage at the top and bottom of thearray.

5

Decoding Engine

To support operation beyond third-order, a variety of plug-in architectures, and use with thirdparty SDKs, a new Ambisonic decoder engine

was implemented in Faust. Faust is a DSP
specification language, which can target a variety of plug-in formats and operating systems.
The new implementation comprises about 250
lines of Faust. It has no inherent limits on
the Ambisonic order at which it operates andsupports three modes of decoding: one decoding matrix with per-order gains (Γ), one decoding matrix with phase-matched shelf filters, anddual-band, with phased-matched bandsplitting
filters and two decoding matrices. The outputs
can be delay and level compensated for speakers at different distances from the center of thearray.
Nearfield compensation is supplied by digitalstate-variable realizations of Bessel filters [Smith
2013b] and can be applied at the input or outputof the decoder, or turned off completely. The
current implementation provides filters for operation up to fifth-order, although the toolbox
includes facilities for automatically generating
filters up to approximately 25th order.8
User adjustments are supplied for overall gain
and muting, as well as crossover frequency andrelative levels of high and low frequencies. All
realtime controls are “dezippered” and can beaccessed directly through GUI elements or via
Open Sound Control.
In practice, the toolbox writes out the configuration section of the decoder and appends
the implementation section, producing a single Faust “dsp” file, containing the full decoder. The Faust compiler (either online or local) is used to produce a highly optimized C++class that implements the decoder, which is thenwrapped in a plug-in-specific architecture filethat provides the interface to the various SDKs.
This is compiled to produce the plug-in file. At
the time of this writing VST, AU, MaxMSP, Pd,
LADSPA, LV2, Supercollider, and many others
are supported on Windows, MacOSX, and Linux.
In addition, an online compiler is available.
The decoder engine implementation can beused apart from the toolbox by editing the configuration options and inserting the per-order gains
and matrix coefficients manually. Facilities areprovided to generate configuration sections directly from existing AmbDec configuration files.

6

Channel-Order, Normalization,and Mixed-Order Conventions

At present, there are a number of channel-orderand normalization conventions in use by the8

The limit is imposed by Matlab’s roots() function.

Ambisonics community. The toolbox implements all conventions known to the authors, including variants that adjust the gain of the omnidirectiontal component (W) to be compatible
with B format. Internally, each channel is annotated with its degree, order, gain relative to fullorthonormalization (N3D), and Condon-Shortly
phase, so additional conventions can be added
easily, if needed.
Two mixed-order conventions are supported by
the toolbox: the scheme used in the AMB Ambisonic File Format (#H#P) [Dobson 2012] and one
proposed by Travis [2009], which gives resolutionversus-elevation curves that are flatter in andnear the horizontal plane (#H#V).

7

Conclusions and Future Work

We have reported on extensions to the Ambisonic
Decoder Toolbox to handle popular loudspeakerconfigurations that do not cover the full sphere,
such as hemispherical domes and multilevel rings.
It also has been extended to operate at higher
Ambisonic orders and with alternate channel order and normalization conventions. To support
that, and multiple plug-in architectures, we havewritten a new, full-featured decoder in Faust.
In general, the ability to generate decoders
quickly has proven valuable in performance settings where one has to set up quickly and the
speakers are not necessarily installed in theplanned locations. The other effect is that it
places less emphasis on performance predictionin that a number of decoders can be generated
with different methods and parameter settings,
and then auditioned to determine the best one
for a particular set of playback conditions.
Generating dual-band decoders from these alternate methods is an obvious extension for the
toolbox, as is using the decoders as initial estimates for the optimizer. Users have requested
adding bass management to the decoder implementation. We have also investigated hosting
the toolbox on a server and linking directly tothe online Faust compiler, so that a user does
not need to install any software to use it.
As highlighted at the end of our listening session, a significant open question with partialcoverage decoders is what should happen if asource moves into a “poor” area, for example,
the zenith or nadir directions. The effect of a
Spitfire flying low overhead is probably not compromised if it appears too loud or doesn’t haveexact localization. Conversely, a source moving

underground may be allowed to fade.9
The current implementations simply discardthese sources, fading out as they are panned beyond the coverage region. In the case of the
AllRAD decoders, they can be brought out for
further processing by simply making the imaginary speakers into real speakers in the configuration file; however, these signals cannot be
simply mixed into existing speaker feeds as thecoherent combination of the signals will distortthe directional fidelity of the decoder, especiallyfor sources near the horizon. One proposal is todecorrelate them using a broadband 90◦ phaseshift and sum into the speaker feeds. Other suggestions are welcome.
The toolbox is open source and available under
the GNU Affero General Public License, version
3. The Faust code generated by the toolbox
is covered by the BSD 3-Clause License, so thatit may be combined with other code without restriction. Contact the authors to obtain a copyof the toolbox.

8

Acknowledgements

The authors thank Fernando Lopez-Lezcano,who encouraged us to address this topic andhelped carry out the measurements and listening tests. We also thank Andrew Kimpel, Marc
Lavallée, and Paul Power who have been using the toolbox and have provided helpful feedback and discussion, and Richard Lee, Jörn Nettingsmeier, Bob Oldendorf, and the anonymousreferees who made several suggestions that improved the paper.

References
Arteaga, Daniel (May 2013).
“An Ambisonics
Decoder for Irregular 3-D Loudspeaker Arrays,”
in: 134th Audio Engineering Society Convention.
Rome.
Beggan, Ciarán D. et al. (Mar. 2013). “Spectral
and spatial decomposition of lithospheric magnetic
field models using spherical Slepian functions,” in:Geophysical Journal International 193.1, pp. 136–
148.
Chen, Fei and Qinghua Huang (2013). “Sparsitybased higher order ambisonics reproduction via
LASSO,” in: Signal and Information Processing(ChinaSIP), 2013 IEEE China Summit & International Conference on, pp. 151–154.
9
Since the treatment of these sources depends to somedegree on the producer’s intent, we suggest that new fullsphere sound transmission standards, such as MPEG-H
3D Audio, should include provisions for “rendering hints”,
along the lines of the downmix metadata in Dolby Digital.
[Dolby Laboratories, Inc 2005]

Dobson, Richard (2012). The AMB Ambisonic File
Format. Accessed 1 Feb 2014. url: http://people.
bath.ac.uk/masrwd/bformat.html.
Dolby Laboratories, Inc (Oct. 2005). Dolby Metadata Guide. Tech. rep. S05/14660/16797.
Gerzon, Michael A. (Feb. 1980). “Practical Periphony: The Reproduction of Full-Sphere Sound,”in: 65th Audio Engineering Society Convention
Preprints. 1571. London.
Hardin, R. H. and N. J. A. Sloane (2002). Spherical Designs. Accessed 1 Feb 2014. url: http ://neilsloane.com/sphdesigns/.
Heller, Aaron J., Eric M. Benjamin, and Richard
Lee (Mar. 2012). “A Toolkit for the Design ofAmbisonic Decoders,” in: Linux Audio Conference
2012, pp. 1–12.
Heller, Aaron J., Richard Lee, and Eric M. Benjamin(Dec. 2008). “Is My Decoder Ambisonic?” In:125th Audio Engineering Society Convention, San
Francisco, pp. 1–21.
Nettingsmeier, Jörn (Mar. 2012). “Field Report II –Capturing Chroma XII by Rebecca Saunders,” in:Linux Audio Conference 2012.
Orlarey, Yann, Dominique Fober, and Stephane Létz
(2009). “Faust: an Efficient Functional Approachto DSP Programming,” in: New Computational
Paradigms for Computer Music. Ed. by GérardAssayag and Andrew Gerzso. Delatour.
Poletti, Mark (Nov. 2005). “Three-Dimensional Surround Sound Systems Based on Spherical Harmonics,” in: Journal Of The Audio Engineering Society 53.11, p. 1004.
Pomberger, Hannes and Franz Zotter (Mar. 2012).
“Ambisonic panning with constant energy constraint,” in: DAGA 2012, 38th German Annual
Conference on Acoustics.
Pulkki, Ville (June 1997). “Virtual Sound Source Positioning Using Vector Base Amplitude Panning,”
in: Journal Of The Audio Engineering Society
45.6, pp. 456–466.
Simons, Frederik J., F. A. Dahlen, and Mark A. Wieczorek (Sept. 2006). “Spatiospectral Concentration
on a Sphere,” in: SIAM review 48.3, pp. 504–536.
Smith, Julius O (June 2013a). Audio Signal Processing in FAUST. Accessed 1 Feb 2014. url:
https://ccrma.stanford.edu/~jos/aspf/.
Smith, Julius O. (2013b). Digital State-Variable
Filters. Accessed 1 Feb 2014. url: https://ccrma.
stanford.edu/~jos/svf.
Travis, Chris (June 2009). “A New Mixed-Order
Scheme for Ambisonic Signals,” in: Proc. 1st
Ambisonics Symposium, pp. 1–6.
Zotter, Franz and Matthias Frank (Nov. 2012).
“All-Round Ambisonic Panning and Decoding,” in:Journal Of The Audio Engineering Society 60.10,
pp. 807–820.
Zotter, Franz, Hannes Pomberger, and Markus Noisternig (Jan. 2012). “Energy-Preserving Ambisonic Decoding,” in: Acta Acustica united with
Acustica 98.1, pp. 37–47.