Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add missing enum values | Chris Robinson | 2015-09-17 | 1 | -0/+11 |
| | | | | Spotted by Xavier Bouchoux. | ||||
* | Return the data file handle on Windows if it was opened | Chris Robinson | 2015-09-16 | 1 | -1/+1 |
| | |||||
* | Rename F_2PI to F_TAU | Chris Robinson | 2015-09-13 | 6 | -10/+10 |
| | |||||
* | Update properties and clear wet buffers before mixing/processing | Chris Robinson | 2015-09-13 | 1 | -52/+69 |
| | |||||
* | Append "on OpenAL Soft" to mmdevapi, dsound, and winmm device names | Chris Robinson | 2015-09-10 | 3 | -32/+46 |
| | | | | | Would be nicer to have a more backend-agnostic method of doing this, Perhaps even also only when the router is being used. | ||||
* | Set both BS2B parameters at once | Chris Robinson | 2015-09-08 | 2 | -19/+7 |
| | |||||
* | Explicitly convert to int in the aluF2I/S/B functions | Chris Robinson | 2015-09-07 | 1 | -9/+16 |
| | |||||
* | Avoid setting an HRTF-compatible format when it's disabled | Chris Robinson | 2015-09-05 | 1 | -4/+4 |
| | |||||
* | Don't store the HRTF request mode in the device flags | Chris Robinson | 2015-09-05 | 1 | -28/+30 |
| | |||||
* | Set a proper HRTF status when non-stereo output is used | Chris Robinson | 2015-09-05 | 1 | -0/+4 |
| | |||||
* | Specify the pa_channel_map directly instead of through a string | Chris Robinson | 2015-09-04 | 1 | -30/+43 |
| | |||||
* | Change the hrtf config option to expect auto/true/false instead of a bool | Chris Robinson | 2015-09-04 | 1 | -9/+24 |
| | |||||
* | Make option and block names case-sensitive | Chris Robinson | 2015-09-04 | 1 | -1/+1 |
| | | | | | This is to avoid any issues with device names that can be case-sensitive, and strcasecmp not working properly for non-ASCII-7 uppercase characters. | ||||
* | Reverse the device and block names for device-specific options | Chris Robinson | 2015-09-04 | 1 | -1/+1 |
| | |||||
* | Use the correct device name for PulseAudio too | Chris Robinson | 2015-09-03 | 1 | -10/+24 |
| | | | | | Like mmdevapi. duplicate device names will have a '#2' or such appended, so the device's reported name may be incorrect. | ||||
* | Replace another vector loop with VECTOR_FIND_IF | Chris Robinson | 2015-09-03 | 1 | -14/+11 |
| | |||||
* | Use the correct device name when opening a device by name | Chris Robinson | 2015-09-03 | 1 | -2/+8 |
| | | | | | Duplicate device names will have a '#2' or such appended, so the device's reported name may be incorrect. | ||||
* | Allow '#' in config block names | Chris Robinson | 2015-08-28 | 1 | -8/+19 |
| | | | | Since some devices may have it appended. | ||||
* | Allow for device-specific config values | Chris Robinson | 2015-08-28 | 13 | -77/+92 |
| | |||||
* | Use ACN ordering for ambisonics coefficients arrays | Chris Robinson | 2015-08-28 | 4 | -93/+169 |
| | | | | | | 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. | ||||
* | Avoid temporary vector objects | Chris Robinson | 2015-08-24 | 1 | -9/+13 |
| | |||||
* | Revert "Fix B-Format rotation" | Chris Robinson | 2015-08-24 | 1 | -3/+3 |
| | | | | | | | This reverts commit 7ffb9b3056ab280d5d9408fd023f3cfb370ed103. It was behaving as appropriate before (orienting left did pan it left for the listener), I was apparently just misinterpreting the matrix. | ||||
* | Fix B-Format rotation | Chris Robinson | 2015-08-23 | 1 | -3/+3 |
| | | | | | | | The rotation erroneously specified the orientation of the source relative to the sound field, whereas it should be the orientation of the sound field *and* source relative to the listener. So now when the source is oriented left, the front of the sound field is to the left of the listener. | ||||
* | 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. | ||||
* | Set the WAVEFORMATEX cbSize field for mmdevapi capture | Chris Robinson | 2015-08-18 | 1 | -0/+1 |
| | |||||
* | Define MixHrtf directly instead of through a SUFFIX macro | Chris Robinson | 2015-08-15 | 4 | -19/+6 |
| | |||||
* | Fix handling of PulseAudio devices that have the same description | Chris Robinson | 2015-08-14 | 1 | -10/+44 |
| | |||||
* | Also recognize "DirectSound" and "MMSYSTEM" on Windows | Chris Robinson | 2015-08-14 | 1 | -3/+5 |
| | |||||
* | Recognize "DirectSound3D" as a device name on Windows | Chris Robinson | 2015-08-13 | 1 | -1/+8 |
| | |||||
* | Wait for the OpenSL buffer queue to empty when stopping | Chris Robinson | 2015-08-13 | 1 | -1/+10 |
| | |||||
* | Allow specifying ALC_DONT_CARE_SOFT for ALC_HRTF_SOFT | Chris Robinson | 2015-07-06 | 1 | -16/+23 |
| | | | | | ALC_FALSE now indicates explicitly no HRTF mixing, while ALC_DONT_CARE_SOFT is autodetect. | ||||
* | Change source radius behavior | Chris Robinson | 2015-07-05 | 1 | -19/+33 |
| | | | | | | | | | For sources with a non-0 radius: When distance <= radius, factor = distance/radius*0.5 When distance > radius, factor = 1 - asinf(radius/distance)/PI Also, avoid using Position after calculating the localized direction and distance. | ||||
* | Update a couple comments | Chris Robinson | 2015-07-04 | 2 | -7/+5 |
| | |||||
* | Check for duplicate device names in the mmdevapi backend | Chris Robinson | 2015-06-30 | 1 | -1/+27 |
| | |||||
* | Use the lockless ringbuffer for mmdevapi capture | Chris Robinson | 2015-06-30 | 1 | -8/+9 |
| | | | | | The backend's capture funcs are already called while under a lock, so multiple threads shouldn't be able to read from it at once. | ||||
* | Double check the mmdevapi capture format | Chris Robinson | 2015-06-07 | 1 | -1/+23 |
| | | | | | This isn't a real solution, but it should get IAudioClient_IsFormatSupported to stop failing. | ||||
* | Add a macro to simplify allocating and constructing an object | Chris Robinson | 2015-05-18 | 11 | -117/+17 |
| | |||||
* | Convert the solaris backend to the new API | Chris Robinson | 2015-05-17 | 3 | -78/+135 |
| | |||||
* | Add a method to reset the device | Chris Robinson | 2015-05-16 | 1 | -0/+38 |
| | | | | | | | This basically acts as if the app created a new context with the specified attributes (causing the device to reset with new parameters), then immediately delete it. Existing contexts remain undisturbed, except for a temporary pause while the device output is reconfigured. | ||||
* | Add a few more HRTF status values | Chris Robinson | 2015-05-16 | 1 | -3/+19 |
| | | | | | | | | | DISABLED - Generic disabled status ENABLED - Generic enabled status DENIED - Not allowed (user has configured HRTF to be off) REQUIRED - Forced (user has forced HRTF to be used) HEADPHONES_DETECTED - Enabled because headphones were detected UNSUPPORTED_FORMAT - Device format is not compatible with available filters | ||||
* | Add an HRTF status query | Chris Robinson | 2015-05-15 | 1 | -4/+23 |
| | | | | | This can report the status of HRTF, specifying if it's enabled or not and why (currently only reports unsupported formats, but this may be extended). | ||||
* | Fix mingw64 build | alexxvk | 2015-05-02 | 1 | -0/+1 |
| | |||||
* | Don't assert the increment value in the copy32 resampler | Chris Robinson | 2015-02-15 | 1 | -2/+1 |
| | |||||
* | Fix the HRTF B-Format decoder's W coefficient | Chris Robinson | 2015-02-14 | 1 | -18/+5 |
| | | | | | And limit it to first-order again, since there will likely need to be extra scalings applied. | ||||
* | Cheange some more unnecessarily small coefficients to 0 | Chris Robinson | 2015-02-11 | 1 | -6/+6 |
| | |||||
* | Add an option for "basic" HRTF rendering | Chris Robinson | 2015-02-11 | 2 | -9/+28 |
| | | | | | | | | | | | | | | | | | This method is intended to help development by easily testing the quality of the B-Format encode and B-Format-to-HRTF decode. When used with HRTF, all sources are renderer using the virtual B-Format output, rather than just B-Format sources. Despite the CPU cost savings (only four channels need to be filtered with HRTF, while sources all render normally), the spatial acuity offered by the B-Format output is pretty poor since it's only first-order ambisonics, so "full" HRTF rendering is definitely preferred. It's /possible/ for some systems to be edge cases that prefer the CPU cost savings provided by basic over the sharper localization provided by full, and you do still get 3D positional cues, but this is unlikely to be an actual use- case in practice. | ||||
* | Calculate HRTF coefficients for all B-Format channels at once | Chris Robinson | 2015-02-10 | 3 | -34/+72 |
| | | | | | | 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. | ||||
* | Use a single statement to declare the buffer format channel maps | Chris Robinson | 2015-02-10 | 1 | -14/+9 |
| | |||||
* | Pass the (FuMa) channel number to GetBFormatHrtfCoeffs | Chris Robinson | 2015-02-10 | 3 | -10/+10 |
| |