34 lines
1.2 KiB
C
34 lines
1.2 KiB
C
#ifndef AMBIDEFS_H
|
|
#define AMBIDEFS_H
|
|
|
|
/* The maximum number of Ambisonics coefficients. For a given order (o), the
|
|
* size needed will be (o+1)**2, thus zero-order has 1, first-order has 4,
|
|
* second-order has 9, third-order has 16, and fourth-order has 25.
|
|
*/
|
|
#define MAX_AMBI_ORDER 3
|
|
#define MAX_AMBI_COEFFS ((MAX_AMBI_ORDER+1) * (MAX_AMBI_ORDER+1))
|
|
|
|
/* A bitmask of ambisonic channels for 0 to 4th order. This only specifies up
|
|
* to 4th order, which is the highest order a 32-bit mask value can specify (a
|
|
* 64-bit mask could handle up to 7th order).
|
|
*/
|
|
#define AMBI_0ORDER_MASK 0x00000001
|
|
#define AMBI_1ORDER_MASK 0x0000000f
|
|
#define AMBI_2ORDER_MASK 0x000001ff
|
|
#define AMBI_3ORDER_MASK 0x0000ffff
|
|
#define AMBI_4ORDER_MASK 0x01ffffff
|
|
|
|
/* A bitmask of ambisonic channels with height information. If none of these
|
|
* channels are used/needed, there's no height (e.g. with most surround sound
|
|
* speaker setups). This is ACN ordering, with bit 0 being ACN 0, etc.
|
|
*/
|
|
#define AMBI_PERIPHONIC_MASK (0xfe7ce4)
|
|
|
|
/* The maximum number of Ambisonic coefficients for 2D (non-periphonic)
|
|
* representation. This is 2 per each order above zero-order, plus 1 for zero-
|
|
* order. Or simply, o*2 + 1.
|
|
*/
|
|
#define MAX_AMBI2D_COEFFS (MAX_AMBI_ORDER*2 + 1)
|
|
|
|
#endif /* AMBIDEFS_H */
|