hoa.lib
Faust library for high order ambisonic. Its official prefix is ho
.
Encoding/decoding Functions
(ho.)encoder
Ambisonic encoder. Encodes a signal in the circular harmonics domain depending on an order of decomposition and an angle.
Usage
encoder(n, x, a) : _
Where:
n
: the orderx
: the signala
: the angle
(ho.)decoder
Decodes an ambisonics sound field for a circular array of loudspeakers.
Usage
_ : decoder(n, p) : _
Where:
n
: the orderp
: the number of speakers
Note
Number of loudspeakers must be greater or equal to 2n+1. It's preferable to use 2n+2 loudspeakers.
(ho.)decoderStereo
Decodes an ambisonic sound field for stereophonic configuration.
An "home made" ambisonic decoder for stereophonic restitution
(30° - 330°) : Sound field lose energy around 180°. You should
use inPhase
optimization with ponctual sources.
Usage
_ : decoderStereo(n) : _
Where:
n
: the order
Optimization Functions
Functions to weight the circular harmonics signals depending to the
ambisonics optimization.
It can be basic
for no optimization, maxRe
or inPhase
.
(ho.)optimBasic
The basic optimization has no effect and should be used for a perfect circle of loudspeakers with one listener at the perfect center loudspeakers array.
Usage
_ : optimBasic(n) : _
Where:
n
: the order
(ho.)optimMaxRe
The maxRe optimization optimizes energy vector. It should be used for an auditory confined in the center of the loudspeakers array.
Usage
_ : optimMaxRe(n) : _
Where:
n
: the order
(ho.)optimInPhase
The inPhase Optimization optimizes energy vector and put all loudspeakers signals in phase. It should be used for an auditory.
Usage
_ : optimInPhase(n) : _
Where:
n
: the order
(ho.)wider
Can be used to wide the diffusion of a localized sound. The order depending signals are weighted and appear in a logarithmic way to have linear changes.
Usage
_ : wider(n,w) : _
Where:
n
: the orderw
: the width value between 0 - 1
(ho.)map
It simulates the distance of the source by applying a gain on the signal and a wider processing on the soundfield.
Usage
map(n, x, r, a)
Where:
n
: the orderx
: the signalr
: the radiusa
: the angle in radian
(ho.)rotate
Rotates the sound field.
Usage
_ : rotate(n, a) : _
Where:
n
: the ordera
: the angle in radian
3D Functions
(ho.)encoder3D
Ambisonic encoder. Encodes a signal in the circular harmonics domain depending on an order of decomposition, an angle and an elevation.
Usage
encoder3D(n, x, a, e) : _
Where:
n
: the orderx
: the signala
: the anglee
: the elevation
(ho.)optimBasic3D
The basic optimization has no effect and should be used for a perfect sphere of loudspeakers with one listener at the perfect center loudspeakers array.
Usage
_ : optimBasic3D(n) : _
Where:
n
: the order
(ho.)optimMaxRe3D
The maxRe optimization optimize energy vector. It should be used for an auditory confined in the center of the loudspeakers array.
Usage
_ : optimMaxRe3D(n) : _
Where:
n
: the order
(ho.)optimInPhase3D
The inPhase Optimization optimizes energy vector and put all loudspeakers signals in phase. It should be used for an auditory.
Usage
_ : optimInPhase3D(n) : _
Where:
n
: the order