Home Reference Source Repository

Function

Static Public Summary
public

almostEquals(value: Number, reference: Number, tolerance: Number): Number

Test whether a value is around a reference, given a tolerance.

public

almostEqualsModulo(value: Number, reference: Number, modulo: Number, tolerance: Number): Number

Test whether a value is around a reference, given a tolerance and a modulo.

public

Get the arc-tangent (2 arguments) of 2 angles in degrees.

public

Prefix SOFA coordinate system with sofa.

public

cos(angle: Number): Number

Get the cosinus of an angle in degrees.

public

createDiracBuffer(options: Object): AudioBuffer

Create a Dirac buffer, zero-padded.

public

createNoiseBuffer(options: Object): AudioBuffer

Create a noise buffer.

public

dBToLin(dBValue: Number): Number

Convert a dB value to a linear amplitude, i.e.

public

Get the distance between to points.

public

Get the squared distance between to points.

public

Convert an angle in radians to degrees.

public

Convert openGL coordinates to SOFA cartesian.

public

Convert openGL coordinates to SOFA spherical.

public

Convert openGL coordinates to Spat4 cartesian.

public

Convert openGL coordinates to Spat4 spherical.

public

Convert openGL coordinates to other system.

public

Parse data set meta data into an object of {definition: {key: values}} objects.

public

parseSofa(sofaString: String): Object

Parses a SOFA JSON string with into an object with name, data and metaData attributes.

public

resampleFloat32Array(options: Object): Promise.<Float32Array | Error>

Convert an array, typed or not, to a Float32Array, with possible re-sampling.

public

sin(angle: Number): Number

Get the sinus of an angle in degrees.

public

Convert SOFA cartesian coordinates to openGL.

public

Convert SOFA cartesian coordinates to SOFA spherical.

public

Convert SOFA spherical coordinates to openGL.

public

Convert SOFA spherical coordinates to SOFA spherical.

public

Convert coordinates to SOFA cartesian.

public

Convert Spat4 cartesian coordinates to openGL.

public

Convert Spat4 cartesian coordinates to Spat4 spherical.

public

Convert Spat4 spherical coordinates to openGL.

public

Convert Spat4 spherical coordinates to Spat4 spherical.

public

Generates a SOFA JSON string from an object.

public

Convert coordinates to openGL.

public

Get the coordinate system general type (cartesian or spherical).

public

Convert an angle in degrees to radians.

Static Public

public almostEquals(value: Number, reference: Number, tolerance: Number): Number source

import {almostEquals} from 'binaural/src/common/utilities.js'

Test whether a value is around a reference, given a tolerance.

Params:

NameTypeAttributeDescription
value Number
reference Number
tolerance Number
  • optional
  • default: Number.EPSILON

Return:

Number

Math.abs(value - reference) <= tolerance;

public almostEqualsModulo(value: Number, reference: Number, modulo: Number, tolerance: Number): Number source

import {almostEqualsModulo} from 'binaural/src/common/utilities.js'

Test whether a value is around a reference, given a tolerance and a modulo.

Params:

NameTypeAttributeDescription
value Number
reference Number
modulo Number
tolerance Number
  • optional
  • default: Number.EPSILON

Return:

Number

Math.abs(value - reference) % modulo <= tolerance;

public atan2(y: Number, x: Number): Number source

import {atan2} from 'binaural/src/geometry/degree.js'

Get the arc-tangent (2 arguments) of 2 angles in degrees.

Params:

NameTypeAttributeDescription
y Number
x Number

Return:

Number

public conformSofaCoordinateSystem(system: String): String source

import {conformSofaCoordinateSystem} from 'binaural/src/sofa/parseSofa.js'

Prefix SOFA coordinate system with sofa.

Params:

NameTypeAttributeDescription
system String

: either cartesian or spherical

Return:

String

either sofaCartesian or sofaSpherical

Throw:

Error

if system is unknown

public cos(angle: Number): Number source

Get the cosinus of an angle in degrees.

Params:

NameTypeAttributeDescription
angle Number

Return:

Number

public createDiracBuffer(options: Object): AudioBuffer source

import {createDiracBuffer} from 'binaural/src/audio/utilities.js'

Create a Dirac buffer, zero-padded.

Warning: the default length is 2 samples, to by-pass a bug in Safari ≤ 9.

Params:

NameTypeAttributeDescription
options Object
options.audioContext AudioContext

must be defined

options.channelCount Number
  • optional
  • default: 1
options.gain Number
  • optional
  • default: 0

in dB

options.length Number
  • optional
  • default: 2

in samples

Return:

AudioBuffer

public createNoiseBuffer(options: Object): AudioBuffer source

import {createNoiseBuffer} from 'binaural/src/audio/utilities.js'

Create a noise buffer.

Params:

NameTypeAttributeDescription
options Object
options.audioContext AudioContext

must be defined

options.channelCount Number
  • optional
  • default: 1
options.duration Number
  • optional
  • default: 5

in seconds

options.gain Number
  • optional
  • default: -30

in dB

Return:

AudioBuffer

public dBToLin(dBValue: Number): Number source

import {dBToLin} from 'binaural/src/audio/utilities.js'

Convert a dB value to a linear amplitude, i.e. -20dB gives 0.1

Params:

NameTypeAttributeDescription
dBValue Number

Return:

Number

public distance(a: Object, b: Object): Number source

import {distance} from 'binaural/src/geometry/KdTree.js'

Get the distance between to points.

Params:

NameTypeAttributeDescription
a Object

in cartesian coordinates.

a.x Number
a.y Number
a.z Number
b Object

in cartesian coordinates.

b.x Number
b.y Number
b.z Number

Return:

Number

public distanceSquared(a: Object, b: Object): Number source

import {distanceSquared} from 'binaural/src/geometry/KdTree.js'

Get the squared distance between to points.

(Avoid computing the square-root when unnecessary.)

Params:

NameTypeAttributeDescription
a Object

in cartesian coordinates.

a.x Number
a.y Number
a.z Number
b Object

in cartesian coordinates.

b.x Number
b.y Number
b.z Number

Return:

Number

public fromRadian(angle: Number): Number source

import {fromRadian} from 'binaural/src/geometry/degree.js'

Convert an angle in radians to degrees.

Params:

NameTypeAttributeDescription
angle Number

in radians

Return:

Number

angle in degrees

public glToSofaCartesian(out: Coordinates, a: Coordinates): Coordinates source

import {glToSofaCartesian} from 'binaural/src/geometry/coordinates.js'

Convert openGL coordinates to SOFA cartesian.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates

Return:

Coordinates

out

public glToSofaSpherical(out: Coordinates, a: Coordinates): Coordinates source

import {glToSofaSpherical} from 'binaural/src/geometry/coordinates.js'

Convert openGL coordinates to SOFA spherical.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates

Return:

Coordinates

out

public glToSpat4Cartesian(out: Coordinates, a: Coordinates): Coordinates source

import {glToSpat4Cartesian} from 'binaural/src/geometry/coordinates.js'

Convert openGL coordinates to Spat4 cartesian.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates

Return:

Coordinates

out

public glToSpat4Spherical(out: Coordinates, a: Coordinates): Coordinates source

import {glToSpat4Spherical} from 'binaural/src/geometry/coordinates.js'

Convert openGL coordinates to Spat4 spherical.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates

Return:

Coordinates

out

public glToSystem(out: Coordinates, a: Coordinates, system: CoordinateSystem): Coordinates source

import {glToSystem} from 'binaural/src/geometry/coordinates.js'

Convert openGL coordinates to other system.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates
system CoordinateSystem

Return:

Coordinates

out

Throw:

Error

when the system is unknown.

public parseDataSet(input: String): Object source

import {parseDataSet} from 'binaural/src/sofa/parseDataSet.js'

Parse data set meta data into an object of {definition: {key: values}} objects.

Params:

NameTypeAttributeDescription
input String

data set DDS-like.

Return:

Object

definitions as {definition: {key: values}} objects.

Example:

_parseDataSet(
`Dataset {
     Float64 ReceiverPosition[R = 2][C = 3][I = 1];
     Float64 SourcePosition[M = 1680][C = 3];
     Float64 EmitterPosition[E = 1][C = 3][I = 1];
     Float64 Data.SamplingRate[I = 1];
} IRC_1100_C_HRIR.sofa;`);
//  { ReceiverPosition: { type: 'Float64', R: 2, C: 3, I: 1 },
//    SourcePosition: { type: 'Float64', M: 1680, C: 3 },
//    EmitterPosition: { type: 'Float64', E: 1, C: 3, I: 1 }
//    'Data.SamplingRate': { type: 'Float64', I: 1 } }

public parseSofa(sofaString: String): Object source

import {parseSofa} from 'binaural/src/sofa/parseSofa.js'

Parses a SOFA JSON string with into an object with name, data and metaData attributes.

Params:

NameTypeAttributeDescription
sofaString String

in SOFA JSON format

Return:

Object

with data and metaData attributes

Throw:

Error

when the parsing fails

See:

public resampleFloat32Array(options: Object): Promise.<Float32Array | Error> source

import {resampleFloat32Array} from 'binaural/src/audio/utilities.js'

Convert an array, typed or not, to a Float32Array, with possible re-sampling.

Params:

NameTypeAttributeDescription
options Object
options.inputSamples Array

input array

options.inputSampleRate Number

in Hertz

options.outputSampleRate Number
  • optional
  • default: options.inputSampleRate

Return:

Promise.<Float32Array | Error>

public sin(angle: Number): Number source

Get the sinus of an angle in degrees.

Params:

NameTypeAttributeDescription
angle Number

Return:

Number

public sofaCartesianToGl(out: Coordinates, a: Coordinates): Coordinates source

import {sofaCartesianToGl} from 'binaural/src/geometry/coordinates.js'

Convert SOFA cartesian coordinates to openGL.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates

Return:

Coordinates

out

public sofaCartesianToSofaSpherical(out: Coordinates, a: Coordinates): Coordinates source

import {sofaCartesianToSofaSpherical} from 'binaural/src/geometry/coordinates.js'

Convert SOFA cartesian coordinates to SOFA spherical.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates

Return:

Coordinates

out

public sofaSphericalToGl(out: Coordinates, a: Coordinates): Coordinates source

import {sofaSphericalToGl} from 'binaural/src/geometry/coordinates.js'

Convert SOFA spherical coordinates to openGL.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates

Return:

Coordinates

out

public sofaSphericalToSofaCartesian(out: Coordinates, a: Coordinates): Coordinates source

import {sofaSphericalToSofaCartesian} from 'binaural/src/geometry/coordinates.js'

Convert SOFA spherical coordinates to SOFA spherical.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates

Return:

Coordinates

out

public sofaToSofaCartesian(out: Coordinates, a: Coordinates, system: CoordinateSystem): Coordinates source

import {sofaToSofaCartesian} from 'binaural/src/geometry/coordinates.js'

Convert coordinates to SOFA cartesian.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates
system CoordinateSystem

Return:

Coordinates

out

Throw:

Error

when the system is unknown.

public spat4CartesianToGl(out: Coordinates, a: Coordinates): Coordinates source

import {spat4CartesianToGl} from 'binaural/src/geometry/coordinates.js'

Convert Spat4 cartesian coordinates to openGL.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates

Return:

Coordinates

out

public spat4CartesianToSpat4Spherical(out: Coordinates, a: Coordinates): Coordinates source

import {spat4CartesianToSpat4Spherical} from 'binaural/src/geometry/coordinates.js'

Convert Spat4 cartesian coordinates to Spat4 spherical.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates

Return:

Coordinates

out

public spat4SphericalToGl(out: Coordinates, a: Coordinates): Coordinates source

import {spat4SphericalToGl} from 'binaural/src/geometry/coordinates.js'

Convert Spat4 spherical coordinates to openGL.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates

Return:

Coordinates

out

public spat4SphericalToSpat4Cartesian(out: Coordinates, a: Coordinates): Coordinates source

import {spat4SphericalToSpat4Cartesian} from 'binaural/src/geometry/coordinates.js'

Convert Spat4 spherical coordinates to Spat4 spherical.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates

Return:

Coordinates

out

public stringifySofa(sofaSet: Object): String source

import {stringifySofa} from 'binaural/src/sofa/parseSofa.js'

Generates a SOFA JSON string from an object.

Note that the properties differ from either an HrtfSet and from the result of the parsing of a SOFA JSON. In particular, the listener attributes correspond to the reference for the filters; the source positions are the positions in the data-base.

Params:

NameTypeAttributeDescription
sofaSet Object
sofaSet.ListenerPosition Coordinates
sofaSet.ListenerPositionType CoordinateSystem
sofaSet.ListenerUp Coordinates
sofaSet.ListenerUpType CoordinateSystem
sofaSet.ListenerView Coordinates
sofaSet.ListenerViewType CoordinateSystem
sofaSet.SourcePosition Array<Array<Number>>
sofaSet.SourcePositionType CoordinateSystem
sofaSet.DataSamplingRate Number
sofaSet.DataIR Array<Array<Array<Number>>>
sofaSet.RoomVolume Array<Number>

Return:

String

in SOFA JSON format

Throw:

Error

when the export fails, because of missing data or unknown coordinate system

See:

public systemToGl(out: Coordinates, a: Coordinates, system: CoordinateSystem): Coordinates source

import {systemToGl} from 'binaural/src/geometry/coordinates.js'

Convert coordinates to openGL.

Params:

NameTypeAttributeDescription
out Coordinates

in-place if out === a.

a Coordinates
system CoordinateSystem

Return:

Coordinates

out

Throw:

Error

when the system is unknown.

public systemType(system: String): String source

import {systemType} from 'binaural/src/geometry/coordinates.js'

Get the coordinate system general type (cartesian or spherical).

Params:

NameTypeAttributeDescription
system String

Return:

String

'cartesian' or 'spherical', if system if of cartesian or spherical type.

public toRadian(angle: Number): Number source

import {toRadian} from 'binaural/src/geometry/degree.js'

Convert an angle in degrees to radians.

Params:

NameTypeAttributeDescription
angle Number

in degrees

Return:

Number

angle in radians