A First Proposal to Specify, Define and Determine the Parameters for an Ambisonics Exchange Format
- Section one we discuss parameters and systems which we have to determine and specify in an external Ambisonics standard reference manual.
- Section two we discuss parameters which we include into an Ambisonics specific header of a container format.
- Section three we discuss parameters which should be provided from a certain container format.
- There will be some reference links to an appendix A of Ambisonics Xchange Format Appendix.pdf, abbreviated AXFA_.
1. Parameter and System Specifications for an External Ambisonics Standard Reference Manual
- Arrangement and orientation of the axes of the 2D and 3D cartesian coordinate system: It should be a right-handed system, the z-axis points upwards, the x-axis points forwards and the y-axis points to the left. (This is a necessary precondition for equivalent encoding and decoding)
- Orientation of the polar and the spherical coordinate system and their units: All coordinate angles in polar and spherical coordinate systems refer to the origin. Azimuth is the counterclockwise angle in the horizontal plane (xy-plane) measured from the positive x-axis in degree. Elevation is the angle between the horizon (xy-plane) and a certain point. It takes the value of zero degrees in the xy-plane, +90 degrees towards the northpole and -90 degrees towards the southpole. The zenith angle is 90 degree minus elevation. (In the egospherical listener's coordinate system, it is most natural to use the "sine of elevation" instead of the "cosine of zenith angle" for the argument of the Legendre functions)
- Rotation of the Ambisonics system: It is required in order to rotate a symmetrical or sparse Ambisonics system from the standard orientation (first x-tant) into its target position:
- Clockwise rotation of the y-axis towards the z-axis, while the look direction is the positive x-axis, specifies rotation angle with respect to x by a positive angle.
- Clockwise rotation of the z-axis towards the x-axis, while the look direction is the positive y-axis, specifies rotation angle with respect to y by a positive angle.
- Clockwise rotation of the x-axis towards the y-axis, while the look direction is the positive z-axis, specifies rotation angle with respect to z by a positive angle.
- Associated Legendre functions: the associated Legendre functions are evaluated at positive indices 'm' and 'n' only. Without the Condon-Shortley phase the highest power terms exhibit positive signs. -> AXFA_5
- Normalization scheme: There are several known normalization schemes that can be selected from. Each normalization coefficient should be specified in the container file header. The normalization coefficients should relate to the 'not-normalized SH'. -> AXFA_7, AXFA_8
- Ascending order of the ambisonic channels in 2D and 3D:
- 2D: X(0), X(-1), X(+1), X-2, X+2, X-3, X+3, .... (corresp. with channel indices: 1, 2, 3, 4, 5, 6, 7, .... Negative indices operate with sine of azimuth, positve indices operate with cosine of azimuth)
- 3D: Y0|0, Y-1|1, Y0|1, Y+1|1, Y-2|2, Y-1|2, Y0|2, Y+1|2, Y+2|2, Y-3|3, Y-2|3, Y-1|3, Y0|3, Y+1|3, Y+2|3, Y+3|3, .... (corresp. with channel indices: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, .... Negative indices operate with sine of azimuth, positve indices operate with cosine of azimuth)
- Reduced channel Ambisonics systems: limited loudspeaker coverage on the sphere or circle permits a symmetrical Ambisonics approach
- 2D: (2k)-th part of a circle means: we have loudspeakers only between 0 degree and 360/(2k) degree. To describe this region completely, we only need the channels: X0, X+k, X+2k, X+3k, X+4k, X+5k, .... In order to move this part of the circle to its target position, we have to rotate the system by a certain angle.
- 3D: (2^k)-th part of a sphere means: we have loudspeakers only in a hemisphere or in a fourth part of a sphere or in an eighth part of a sphere. To describe e.g. the northern hemisphere completely, we only need the channels: Y0|0, Y-1|1, Y+1|1, Y-2|2, Y0|2, Y+2|2, Y-3|3, Y-1|3, Y+1|3, Y+3|3, .... we omit the channels with an odd sum of the indices (m+l), which are odd with respect to the z-axis. Further tiling is achieved by using the above scheme for the azimuth harmonics.
2. Parameter Definitions for the Ambisonics Header in a Container Format
- Ambisonics order:
- Ambisonics dimension: ( 2D or 3D ) (maybe this is a reduntant information)
- Format of the channel reduced ambisonics system: 1/1 SPHERE, 1/1 CIRCLE, 1/2 SPHERE, 1/4 SPHERE, 1/8 SPHERE, 1/(2K) CIRCLE (maybe it will do only the number of the denominator)
- Rotation angle of the permitted region about z-axis or the 3 rotation angles about zyz-axes: in degree
- A list of reference indices of the channel sequence of the complete Ambisonics system:
- A list of reference indices of the channel sequence of the reduced Ambisonics system:
- e.g. one sixth of a 2D circle, eighteenth order: 1, 7, 13, 19, 25, 31, 37.
- e.g. the 3D northern hemisphere, second order: 1, 2, 4, 5, 7, 9.
- Ambisonic distance coding direction: ( none / interior / exterior )
- Ambisonic reference radius of distance coding: in m
- A list of normalization coefficients of the complete ambisonics channels:
- A matrix of completion coefficients to transform a reduced into a complete ambisonics system:
3. Common Parameter Definitions in a Container Format
- Header length: in bytes.
- Samplerate: in Hz.
- Sample resolution: in bits per sample.
- Sample endianness: little endian for intel-architcures, big endian for motorola- or ppc-architecture.
- Binary coding format: of a sample. ( PCM, IEEE-float, other codecs like vorbis or mp3 )
- Number of channels: integer number. (mandatorily interleaved)
- Data block length (bytes): number of frames * number of channels * sample resolution / 8 in bytes
- Bitrate: in bits per second ( for data compressed formats )