Ambisonic Player Specification (V1)
Implementation
The Ambisonic player will be:
- Open Source
- Cross platform (Windows, OSX,
File association
The Ambisonic player will be associated with files ending in *.amb
Useability
Once configuration (for the user's array) is complete, Ambisonic files can be played with a simple double click.
Compatible files
The Ambisonic player will play files that fit the B-format specified on this page (that's basically multi-channel WAVE-EX files).
The Ambisonic player will not play a collection of separated mono files. This is suggested so that B-format content developers are forced to adhere to a single format (consistency should fascilitate the consumer's uptake of the format).
In its first implementation, the player will not be able to play G-format files (as in... re-encode back to B-format)
Support for compatible files
Audio applications that can write the defined WAVE-EX format will be listed (somewhere) to fascilitate content developers developing the right format.
Configuration
The Ambisonic player will save configuration to disk... hence requiring only a once off configuration
Configuration will involve choosing the speaker array to decode to. There will be a set of default configurations, as well as arbitrary per-speaker configurations.
Predefined configurations
Decode to:
- 4 speakers horizontal
- 6 speakers horizontal
- 8 speakers horizontal
- cube (8 speakers)
- ?
- consumer 5.1 layout
Drag and Drop configuration
Configuration for arbitrary speaker arrays is possible via a drag and drop GUI, where the user can drop speaker icons on a stage. This GUI should be able to handle 3D layouts as well (that'll be challenging!)
Independent Speaker levels
The user will be able to modify the levels on a per speaker basis for 'slightly irregular speaker layouts'. (Is this a bad idea?)
+-6db for W channel
By default, the player will assume a 3db attenuation on W. But it will also offer the posibility to tweak that.
+-6dB for W
Can we get rid of this completely?
W is W. It is NOT attenuated or anything. The stupid discussions about this cause more confusion than anything else. The so called definitive page on B-format has a 100% record of confusing highly intelligent would be Ambisonic decoder writers cos it mentions this attenuation.
If I ever make another Ambisonic decoder I will simply have 12 fixed speaker outputs which correspond to the digits of the clock face for their directional positions. The user just plugs in to the outputs which most closely match his speaker positions. I would assume that the user had separate gain controls on each of his amplifiers for layout adjustment. It's easy enough to balance gain differences using a demo recording anyway. This avoids all sorts of confusion and avoids the need for knobs on the front driving scratchy switches/pots or awkward menu driven selections in DSP. Keep it simple and keep it cheap. Make a box that "does what it says on the tin" and nothing more. Assuming use of a digital system which outputs B-format from various input formats, generating the 12 speaker outputs can easily be done at a very high quality level in analogue with simple fixed resistor weighting. This means you only need four high quality DACs. As they generally require output buffering anyway, you wouldn't be compromising much by adopting this architecture. For cube arrays I'd suggest just adding another four or more fixed outputs. Op-amps, resistors and output sockets are cheap, so there's no harm in providing some redundant speaker outputs which folks might not use, if it makes it nice and simple.