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