Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Allow dual-band decoders for basic rendering | Chris Robinson | 2016-03-30 | 1 | -8/+2 |
| | | | | | Since the basic renderer does not do frequency-dependent processing, the high- frequency matrix is used for panning. | ||||
* | Use the same option for decoder configs | Chris Robinson | 2016-03-26 | 1 | -1/+5 |
| | |||||
* | Don't use custom decoder configurations with mono or stereo | Chris Robinson | 2016-03-26 | 1 | -0/+13 |
| | | | | | | | | | | By default, stereo outputs using UHJ, which renders to a B-Format buffer that gets run through a UHJ encoder for output. It may also output using pair-wise panning, which pans between -30 and +30 degrees with the speakers at the two ends. In both cases, the stereo coefficients are ignored. Mono, having only one output channel, can realistically only attenuate its channel. Turning the volume up and down accomplishes the same result. | ||||
* | Add a config option for distance compensation | Chris Robinson | 2016-03-26 | 1 | -2/+8 |
| | |||||
* | Allow up to third-order for horizontal-only rendering | Chris Robinson | 2016-03-26 | 1 | -16/+26 |
| | |||||
* | Include any first-order scaling in the FOAOut coefficients | Chris Robinson | 2016-03-25 | 1 | -15/+32 |
| | |||||
* | Skip height-related ambisonic channels for 2D rendering | Chris Robinson | 2016-03-25 | 1 | -2/+16 |
| | |||||
* | Use the "decoder" config section instead of "ambisonics" | Chris Robinson | 2016-03-25 | 1 | -1/+1 |
| | |||||
* | Trace the HQ decoder order | Chris Robinson | 2016-03-23 | 1 | -1/+4 |
| | |||||
* | Simplify setting a custom channel map configuration | Chris Robinson | 2016-03-23 | 1 | -17/+7 |
| | |||||
* | Up-sample first-order content when using a higher order HQ decoder | Chris Robinson | 2016-03-23 | 1 | -2/+0 |
| | |||||
* | Allow second-order HQ decoding | Chris Robinson | 2016-03-23 | 1 | -9/+21 |
| | | | | | | | | Could really do with some optimizations to the mixing gain calculations. For ambisonic targets, the coefficients will only have 1 non-0 entry for each output, so the double loop in unnecessarily wasteful. Similarly, most uses won't need a full height encoding either, so a horizontal-only or mixed-order target could reduce the number of channels. | ||||
* | Add a specific output for first-order sources | Chris Robinson | 2016-03-22 | 1 | -0/+10 |
| | |||||
* | Rename the BFormat channels to Aux | Chris Robinson | 2016-03-16 | 1 | -20/+20 |
| | |||||
* | Add config options to enable the hq ambisonic decoder | Chris Robinson | 2016-03-16 | 1 | -36/+46 |
| | |||||
* | Properly handle negative matrix values and fix decoder initialization | Chris Robinson | 2016-03-15 | 1 | -1/+1 |
| | |||||
* | Replace the custom layout options with an ambdec loader | Chris Robinson | 2016-03-15 | 1 | -129/+87 |
| | | | | | The ambisonic layout options were never very good for clarity or flexibility. Hopefully using ambdec files will prove to be better. | ||||
* | Add a dual-band ambisonic decoder | Chris Robinson | 2016-03-15 | 1 | -1/+130 |
| | | | | | | | | | | This uses a virtual B-Format buffer for mixing, and then uses a dual-band decoder for improved positional quality. This currently only works with first- order output since first-order input (from the AL_EXT_BFROMAT extension) would not sound correct when fed through a second- or third-order decoder. This also does not currently implement near-field compensation since near-field rendering effects are not implemented. | ||||
* | Use second-order coefficients for 5.1 | Chris Robinson | 2016-03-13 | 1 | -16/+16 |
| | | | | | Since the panning only drives 5 speakers, it shouldn't use more than 5 ambisonic channels (9 total in second order, minus 4 for unused height). | ||||
* | Generalize GetChannelIdxByName | Chris Robinson | 2016-03-10 | 1 | -1/+1 |
| | |||||
* | Keep track of the real output's channel names | Chris Robinson | 2016-03-10 | 1 | -0/+3 |
| | |||||
* | Organize the dry buffer properties into a struct | Chris Robinson | 2016-03-09 | 1 | -20/+20 |
| | |||||
* | Use 2-channel UHJ for stereo output | Chris Robinson | 2016-02-26 | 1 | -1/+21 |
| | |||||
* | Use an 8-channel cube for HRTF's virtual format. | Chris Robinson | 2016-02-20 | 1 | -12/+39 |
| | | | | | | There were phase issues caused by applying HRTF directly to the B-Format channels, since the HRIR delays were all averaged which removed the inter-aural time-delay, which in turn removed significant spatial information. | ||||
* | Don't pass the channel count to GetBFormatHrtfCoeffs | Chris Robinson | 2016-02-09 | 1 | -1/+1 |
| | | | | Since it's hard-coded anyway, there's no need to specify it. | ||||
* | Rename ComputeBFormatGains to ComputeFirstOrderGains | Chris Robinson | 2016-01-31 | 1 | -1/+1 |
| | |||||
* | Mix to multichannel for effects | Chris Robinson | 2016-01-28 | 1 | -2/+20 |
| | | | | | | This mixes to a 4-channel first-order ambisonics buffer. With ACN ordering and N3D scaling, this makes it easy to remain compatible with effects that only care about mono input since channel 0 is an unattenuated mono signal. | ||||
* | Avoid passing the device to SetChannelMap | Chris Robinson | 2016-01-27 | 1 | -24/+31 |
| | |||||
* | Separate calculating ambisonic coefficients from the panning gains | Chris Robinson | 2016-01-25 | 1 | -33/+40 |
| | |||||
* | Use more accurate floating point literals | Chris Robinson | 2015-11-06 | 1 | -34/+34 |
| | |||||
* | Use ALuint instead of size_t for a loop iterator | Chris Robinson | 2015-11-06 | 1 | -2/+3 |
| | |||||
* | Remove unused channel labels | Chris Robinson | 2015-10-18 | 1 | -9/+0 |
| | |||||
* | Loop over the gain values only once | Chris Robinson | 2015-09-24 | 1 | -8/+9 |
| | |||||
* | Fix B-Format HRTF decoding | Chris Robinson | 2015-09-23 | 1 | -1/+1 |
| | |||||
* | Use N3D scaling instead of FuMa | Chris Robinson | 2015-09-23 | 1 | -88/+96 |
| | |||||
* | Allow for device-specific config values | Chris Robinson | 2015-08-28 | 1 | -2/+2 |
| | |||||
* | Use ACN ordering for ambisonics coefficients arrays | Chris Robinson | 2015-08-28 | 1 | -82/+154 |
| | | | | | | Note that it still uses FuMa scalings internally. Coefficients loaded from config files specify if they're FuMa (in both ordering and scaling) or N3D, and will get reordered or rescaled as needed. | ||||
* | Minor reformating | Chris Robinson | 2015-08-22 | 1 | -31/+32 |
| | |||||
* | Don't explicitly store first-order coefficients | Chris Robinson | 2015-08-18 | 1 | -60/+114 |
| | | | | | | | It seems a simple scaling on the coefficients will allow first-order content to work with second- and third-order coefficients, although obviously not with any improved locality. That may be something to look into for the future, but this is good enough for now. | ||||
* | Cheange some more unnecessarily small coefficients to 0 | Chris Robinson | 2015-02-11 | 1 | -6/+6 |
| | |||||
* | Calculate HRTF coefficients for all B-Format channels at once | Chris Robinson | 2015-02-10 | 1 | -4/+10 |
| | | | | | | It's possible to calculate HRTF coefficients for full third-order ambisonics now, but it's still not possible to use them here without upmixing first-order content. | ||||
* | Pass the (FuMa) channel number to GetBFormatHrtfCoeffs | Chris Robinson | 2015-02-10 | 1 | -3/+2 |
| | |||||
* | Use B-Format for HRTF's virtual output format | Chris Robinson | 2015-02-09 | 1 | -28/+9 |
| | | | | | | | | This adds the ability to directly decode B-Format with HRTF, though only first- order (WXYZ) for now. Second- and third-order would be easilly doable, however we'd need to be able to up-mix first-order content (from the BFORMAT2D and BFORMAT3D buffer formats) since it would be inappropriate to decode lower-order content with a higher-order decoder. | ||||
* | Improve ambient gain calculations | Chris Robinson | 2014-11-25 | 1 | -1/+1 |
| | |||||
* | Support B-Format output with the wave file writer | Chris Robinson | 2014-11-25 | 1 | -1/+18 |
| | |||||
* | Halve the gain of the Cube8 coefficients | Chris Robinson | 2014-11-25 | 1 | -8/+8 |
| | |||||
* | Remove unused channel enums | Chris Robinson | 2014-11-23 | 1 | -2/+0 |
| | |||||
* | Remove the cube+diamond virtual layout | Chris Robinson | 2014-11-23 | 1 | -51/+7 |
| | |||||
* | Add an option for a simpler virtual channel setup | Chris Robinson | 2014-11-23 | 1 | -21/+53 |
| | | | | | | With HRTF mixing, certain things are mixed to virtual channels to be filtered with HRTF later. This allows for using an 8-channel cube instead of a 14- channel cube+diamond. | ||||
* | Partially revert "Use a different method for HRTF mixing" | Chris Robinson | 2014-11-23 | 1 | -2/+4 |
| | | | | | | | | | | | | The sound localization with virtual channel mixing was just too poor, so while it's more costly to do per-source HRTF mixing, it's unavoidable if you want good localization. This is only partially reverted because having the virtual channel is still beneficial, particularly with B-Format rendering and effect mixing which otherwise skip HRTF processing. As before, the number of virtual channels can potentially be customized, specifying more or less channels depending on the system's needs. |