Skip to content

iem_ambi

An IEM library for calculating Ambisonics encoder, rotation, and decoder matrices in Pure Data. Current packaging supports higher-order 2D and 3D Ambisonics and identifies the IEM GitLab project as its homepage.

Contributors

People who contribute to this project.

Objects

  • ambi_decode3 ambi_decode3 calculates a higher-order Ambisonics decoder matrix for real loudspeaker layouts, supporting up to 12th-order 2D or 5th-order 3D decoding and optional phantom loudspeakers.
  • ambi_encode ambi_encode calculates higher-order ambisonic encoding coefficients or a row or column of an encoder matrix from source-direction angles.
  • ambi_rot ambi_rot calculates higher-order ambisonic rotation matrices, supporting 2D orders up to 12 and 3D orders up to 4.
  • bin_ambi_reduced_decode_fft2 bin_ambi_reduced_decode_fft2 calculates a reduced set of HRTF spectra for higher-order ambisonic binaural decoding by combining HRIR data with columns of a pseudo-inverse decoder matrix and performing a real FFT.
  • bin_ambi_reduced_decode_fir2 bin_ambi_reduced_decode_fir2 calculates a reduced set of HRIRs for higher-order Ambisonics binaural decoding by encoding real and optional phantom loudspeaker positions, computing a pseudoinverse decoder matrix, and combining its columns with left-ear HRIRs and a fadeout table.
  • matrix_bundle_stat~ matrix_bundle_stat~ multiplies an input signal vector by a static matrix to produce an output signal vector, without interpolation.
  • matrix_diag_mul_line8~ matrix_diag_mul_line8~ multiplies an n-dimensional signal vector by a dynamically changeable diagonal n×n matrix, producing an n-dimensional output vector.
  • matrix_diag_mul_line~ matrix_diag_mul_line~ multiplies an n-dimensional signal vector by a dynamically changeable n×n diagonal matrix, producing an n-dimensional signal output vector.
  • matrix_diag_mul_stat~ matrix_diag_mul_stat~ multiplies an n-dimensional input signal vector by a dynamic diagonal n×n signal matrix, producing an n-dimensional output signal vector without interpolation.
  • matrix_mul_line8~ matrix_mul_line8~ multiplies a signal-input vector by a dynamically changeable matrix to produce a signal-output vector (SIG_OUT = A * SIG_IN).
  • matrix_mul_line~ matrix_mul_line~ multiplies a vector of input signals by a dynamically changeable matrix, producing an output-signal vector (SIG_OUT = A * SIG_IN).
  • matrix_mul_stat~ matrix_mul_stat~ multiplies a multichannel input signal vector by a static matrix, producing an output signal vector (SIG_OUT = A * SIG_IN) without interpolation.