On 2011-11-25, John Lundsten wrote:

And yes for sure the RIFF Wav (with Wav extensible) has the cool chan mapping features CAF has, and very much as on a Mac, hardly anyone has bothered to implement it.

Don't even go there. Really. E.g. Martin Leese spent real effort getting the OggPCM draft right at the time. I continued with the channel mapping, all with the examples to go with it.

All of that had zero impact. Absolutely zero. What *could* have impact is G+format. Thus, "what are you trying to do with your signals." "How can we help in pantophony, which is prolly what you want?" :)

IMO if one wants to store so called linear PCM, use WAV.

That also rather depends, at the lower level. AES already has the 64-bit version of WAV, where the channel masks are finally ratified at an international level. Unlike with RIFF WAVE, you know. I believe EBU members are actively using that extended format even now, perhaps even here in Finland...

All other formats offer less & only exist for (a) backward compatibility for which I have no problem or (b) to screw the customer, which I find obnoxious.

I'm rather certain as well that that WAV is where it's at at the moment. CAF would be better, if you can get it within your environment. Even within that you prolly won't get the ambisonic support which is built into it.

 From the (Apple) CAF standar (it really needs reading in context):

[...] This stuff is downright amateurish compared to what I/we did with the OggPCM channel map. Really. To quote from http://wiki.xiph.org/OggPCM :

// front left/right
OGG_CHANNEL_STEREO_LEFT = 0 = 0x00000000 (30 degrees left)
OGG_CHANNEL_STEREO_RIGHT = 1 = 0x00000001 (30 degrees right)
OGG_CHANNEL_QUAD_FRONT_LEFT = 2 = 0x00000002 (45 degrees left)
OGG_CHANNEL_QUAD_FRONT_RIGHT = 3 = 0x00000003 (45 degrees right)
OGG_CHANNEL_BLUMLEIN_LEFT = 4 = 0x00000004 (figure of eight response 45 degrees to the left) OGG_CHANNEL_BLUMLEIN_RIGHT = 5 = 0x00000005 (figure of eight response 45 degrees to the right)
OGG_CHANNEL_WALL_FRONT_LEFT = 6 = 0x00000006 (55 degrees left)
OGG_CHANNEL_WALL_FRONT_RIGHT = 7 = 0x00000007 (55 degrees right)
OGG_CHANNEL_HEX_FRONT_LEFT = 8 = 0x00000008 (60 degrees left)
OGG_CHANNEL_HEX_FRONT_RIGHT = 9 = 0x00000009 (60 degrees right)
OGG_CHANNEL_PENTAGONAL_FRONT_LEFT = 10 = 0x0000000A (72 degrees left)
OGG_CHANNEL_PENTAGONAL_FRONT_RIGHT = 11 = 0x0000000B (72 degrees right)
OGG_CHANNEL_BINAURAL_LEFT = 12 = 0x0000000C (fed directly into the left ear canal, or front stereo dipole with crosstalk cancellation) OGG_CHANNEL_BINAURAL_RIGHT = 13 = 0x0000000D (fed directly into the right ear canal, or front stereo dipole with crosstalk cancellation)
OGG_CHANNEL_FRONT_STEREO_DIPOLE_LEFT = 14 = 0x0000000E (5 degrees left)
OGG_CHANNEL_FRONT_STEREO_DIPOLE_RIGHT = 15 = 0x0000000F (5 degrees right)
OGG_CHANNEL_UHJ_L = 16 = 0x00000010 (ambisonics UHJ left)
OGG_CHANNEL_UHJ_R = 17 = 0x00000011 (ambisonics UHJ right)
OGG_CHANNEL_DOLBY_STEREO_LEFT = 18 = 0x00000012 (dolby stereo/surround left total) OGG_CHANNEL_DOLBY_STEREO_RIGHT = 19 = 0x00000013 (dolby stereo/surround right total) OGG_CHANNEL_XY_LEFT = 20 = 0x00000014 (cardioid response 45 degrees to the left) OGG_CHANNEL_XY_RIGHT = 21 = 0x00000015 (cardioid response 45 degrees to the right)

// front center/mono
OGG_CHANNEL_SCREEN_CENTER = 256 = 0x00000100 (ear level, straight ahead, at screen distance) OGG_CHANNEL_MS_MID = 257 = 0x00000101 (cardioid response, straight ahead)
OGG_CHANNEL_FRONT_CENTER = 258 = 0x00000102 (ear level, straight ahead)

// lfe
OGG_CHANNEL_LFE = 512 = 0x00000200 (omnidirectional, bandlimited to 120Hz, 10dB louder than the reference level) OGG_CHANNEL_LFE_SIDE_LEFT = 513 = 0x00000201 (90 degrees left, bandlimited to 120Hz, 10dB louder than the reference level) OGG_CHANNEL_LFE_SIDE_RIGHT = 514 = 0x00000202 (90 degrees right, bandlimited to 120Hz, 10dB louder than the reference level) OGG_CHANNEL_LFE_FRONT_CENTER_LEFT = 515 = 0x00000203 (22.5 degrees left, bandlimited to 120Hz, 10dB louder than the reference level) OGG_CHANNEL_LFE_FRONT_CENTER_RIGHT = 516 = 0x00000204 (22.5 degrees right, bandlimited to 120Hz, 10dB louder than the reference level) OGG_CHANNEL_LFE_FRONT_BOTTOM_CENTER_LEFT = 517 = 0x00000205 (45 degrees lowered, 22.5 degrees left, bandlimited to 120Hz, 10dB louder than the reference level) OGG_CHANNEL_LFE_FRONT_BOTTOM_CENTER_RIGHT = 518 = 0x00000206 (45 degrees lowered, 22.5 degrees right, bandlimited to 120Hz, 10dB louder than the reference level)

// back left/right
OGG_CHANNEL_ITU_BACK_LEFT = 768 = 0x00000300 (back, 70 degrees left)
OGG_CHANNEL_ITU_BACK_RIGHT = 769 = 0x00000301 (back, 70 degrees right)
OGG_CHANNEL_ITU_BACK_LEFT_SURROUND = 770 = 0x00000302 (back, 70 degrees left) OGG_CHANNEL_ITU_BACK_RIGHT_SURROUND = 771 = 0x00000303 (back, 70 degrees right)
OGG_CHANNEL_HEX_BACK_LEFT = 772 = 0x00000304 (back, 60 degrees left)
OGG_CHANNEL_HEX_BACK_RIGHT = 773 = 0x00000305 (back, 60 degrees right)
OGG_CHANNEL_QUAD_BACK_LEFT = 774 = 0x00000306 (back, 45 degrees left)
OGG_CHANNEL_QUAD_BACK_RIGHT = 775 = 0x00000307 (back, 45 degrees right)
OGG_CHANNEL_PENTAGONAL_BACK_LEFT = 776 = 0x00000308 (back, 36 degrees left) OGG_CHANNEL_PENTAGONAL_BACK_RIGHT = 777 = 0x00000309 (back, 36 degrees right)
OGG_CHANNEL_BACK_STEREO_LEFT = 778 = 0x0000030A (back, 30 degrees left)
OGG_CHANNEL_BACK_STEREO_RIGHT = 779 = 0x0000030B (back, 30 degrees right) OGG_CHANNEL_BACK_STEREO_DIPOLE_LEFT = 780 = 0x0000030C (back, 5 degrees left) OGG_CHANNEL_BACK_STEREO_DIPOLE_RIGHT = 781 = 0x0000020E (back, 5 degrees right)

// front center left/right
OGG_CHANNEL_FRONT_CENTER_LEFT = 1024 = 0x00000400 (22.5 degrees left)
OGG_CHANNEL_FRONT_CENTER_RIGHT = 1025 = 0x00000401 (22.5 degrees right)

// back center
OGG_CHANNEL_BACK_CENTER = 1280 = 0x00000500 (straight back)
OGG_CHANNEL_BACK_CENTER_SURROUND = 1281 = 0x00000501 (straight back, diffuse)
OGG_CHANNEL_SURROUND = 1282 = 0x00000502 (back and sides, diffuse)

// side left/right
OGG_CHANNEL_SIDE_LEFT = 1536 = 0x00000600 (90 degrees left)
OGG_CHANNEL_SIDE_RIGHT = 1537 = 0x00000601 (90 degrees right)
OGG_CHANNEL_SIDE_LEFT_SURROUND = 1538 = 0x00000602 (90 degrees left, diffuse) OGG_CHANNEL_SIDE_RIGHT_SURROUND = 1539 = 0x00000603 (90 degrees right, diffuse)

// rest of the wav/usb/caf mask types
OGG_CHANNEL_TOP_CENTER = 1792 = 0x00000700 (90 degrees elevated)
OGG_CHANNEL_FRONT_TOP_LEFT = 1793 = 0x00000701 (45 degrees elevated, 45 degrees left)
OGG_CHANNEL_FRONT_TOP_CENTER = 1794 = 0x00000702 (45 degrees elevated)
OGG_CHANNEL_FRONT_TOP_RIGHT = 1795 = 0x00000703 (45 degrees elevated, 45 degrees left) OGG_CHANNEL_BACK_TOP_LEFT = 1796 = 0x00000704 (back, 45 degrees elevated, 45 degrees left) OGG_CHANNEL_BACK_TOP_CENTER = 1797 = 0x00000705 (back, 45 degrees elevated) OGG_CHANNEL_BACK_TOP_RIGHT = 1798 = 0x00000706 (back, 45 degrees elevated, 45 degrees right)

// rest of the cube
OGG_CHANNEL_SIDE_TOP_LEFT = 2048 = 0x00000800 (45 degrees elevated, 90 degrees left) OGG_CHANNEL_SIDE_TOP_RIGHT = 2049 = 0x00000801 (45 degrees elevated, 90 degrees right) OGG_CHANNEL_FRONT_BOTTOM_LEFT = 2050 = 0x00000802 (45 degrees lowered, 45 degrees left) OGG_CHANNEL_FRONT_BOTTOM_CENTER = 2051 = 0x00000803 (45 degrees lowered) OGG_CHANNEL_FRONT_BOTTOM_RIGHT = 2052 = 0x00000804 (45 degrees lowered, 45 degrees right) OGG_CHANNEL_SIDE_BOTTOM_LEFT = 2053 = 0x00000805 (45 degrees lowered, 90 degrees left)
OGG_CHANNEL_BOTTOM_CENTER = 2054 = 0x00000806 (90 degrees lowered)
OGG_CHANNEL_SIDE_BOTTOM_RIGHT = 2055 = 0x00000807 (45 degrees lowered, 90 degrees left) OGG_CHANNEL_BACK_BOTTOM_CENTER = 2056 = 0x00000808 (back, 45 degrees lowered) OGG_CHANNEL_BACK_BOTTOM_LEFT = 2057 = 0x00000809 (back, 45 degrees lowered, 45 degrees left) OGG_CHANNEL_BACK_BOTTOM_RIGHT = 2058 = 0x0000080A (back, 45 degrees lowered, 45 degrees right)

// ambisonics
OGG_CHANNEL_AMBISONICS_W = 2304 = 0x00000900 (0th order)
OGG_CHANNEL_AMBISONICS_X = 2305 = 0x00000901 (1st order)
OGG_CHANNEL_AMBISONICS_Y = 2306 = 0x00000902 (1st order, also used for mid/side side)
OGG_CHANNEL_AMBISONICS_Z = 2307 = 0x00000903 (1st order)
OGG_CHANNEL_AMBISONICS_R = 2308 = 0x00000904 (2nd order)
OGG_CHANNEL_AMBISONICS_S = 2309 = 0x00000905 (2nd order)
OGG_CHANNEL_AMBISONICS_T = 2310 = 0x00000906 (2nd order)
OGG_CHANNEL_AMBISONICS_U = 2311 = 0x00000907 (2nd order)
OGG_CHANNEL_AMBISONICS_V = 2312 = 0x00000908 (2nd order)
OGG_CHANNEL_AMBISONICS_K = 2313 = 0x00000909 (3rd order)
OGG_CHANNEL_AMBISONICS_L = 2314 = 0x0000090A (3rd order)
OGG_CHANNEL_AMBISONICS_M = 2315 = 0x0000090B (3rd order)
OGG_CHANNEL_AMBISONICS_N = 2316 = 0x0000090C (3rd order)
OGG_CHANNEL_AMBISONICS_O = 2317 = 0x0000090D (3rd order)
OGG_CHANNEL_AMBISONICS_P = 2318 = 0x0000090E (3rd order)
OGG_CHANNEL_AMBISONICS_Q = 2319 = 0x0000090F (3rd order)

// passive matrix additions
OGG_CHANNEL_MS_SIDE = 2306 = 0x00000902 (figure of eight response left to right, same as Ambisonics Y) OGG_CHANNEL_UHJ_T = 2561 = 0x00000A01 (ambisonics UHJ addition for pantophony) OGG_CHANNEL_UHJ_Q = 2562 = 0x00000A02 (ambisonics UHJ addition for periphony)

// specials
OGG_CHANNEL_UNUSED = 2816 = 0x00000B00 (the channel is unused and should not be rendered)
:

I/we actually did our homework with that mapping. All with fixed point representations of ambisonic mappings to stereo. That was years ago. ;)
--
Sampo Syreeni, aka decoy - de...@iki.fi, http://decoy.iki.fi/front
+358-50-5756111, 025E D175 ABE5 027C 9494 EEB0 E090 8BA9 0509 85C2
_______________________________________________
Sursound mailing list
Sursound@music.vt.edu
https://mail.music.vt.edu/mailman/listinfo/sursound

Reply via email to