Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Store the sinc4 table in the filter state | Chris Robinson | 2017-08-16 | 11 | -92/+123 |
| | | | | Also rename the resampler functions to remove the unnecessary '32' token. | ||||
* | Simplify bsinc filter storage in the filter state | Chris Robinson | 2017-08-16 | 5 | -30/+23 |
| | | | | | | | Rather than storing individual pointers to filter, scale delta, phase delta, and scale phase delta entries, per phase index, the new table layout makes it trivial to access the per-phase filter and delta entries given the base offset and coefficient count. | ||||
* | Make the bsinc table layout more efficient | Chris Robinson | 2017-08-16 | 3 | -1085/+1307 |
| | | | | | | | | | | | | | | | | The old layout separated filters, scale deltas, phase deltas, and scale phase deltas into separate segments that each contained a numbers of scale and phase entries, Since processing a sample needed a filter and one of each delta entry relating to a particular scale and phase, the memory needed would be spread across the whole table. And since subsequent samples would use a different phase, it would jump around the table a whole lot as well. The new layout packs the data in a way more consistent with its use. The filters, scale deltas, phase deltas, and scale phase deltas are interleaved, such that for a particular scale and phase, the filter and delta entries used are contiguous. And the phase entries for a particular scale are kept together, so the ~500 to ~1000 samples processed per source update stay within the same 3KB to 6KB area of the 70+KB table, which is much more cache friendly. | ||||
* | Keep bsinc info together in a struct | Chris Robinson | 2017-08-15 | 5 | -1032/+1061 |
| | |||||
* | Check the source type once when mixing | Chris Robinson | 2017-08-14 | 1 | -2/+4 |
| | |||||
* | Add restrict to a few more parameters | Chris Robinson | 2017-08-10 | 1 | -2/+4 |
| | |||||
* | Check the right size for the in-progress mhr update | Chris Robinson | 2017-08-09 | 1 | -2/+2 |
| | |||||
* | Declare that a couple arrays are aligned | Chris Robinson | 2017-08-09 | 1 | -3/+6 |
| | |||||
* | Add experimental support for 24-bit, dual-ear HRTFs | Chris Robinson | 2017-08-08 | 2 | -11/+272 |
| | | | | | | | Currently makehrtf only handles 24-bit output, not dual-ear, and only when given the --experimental switch. Files produced this way will not be guaranteed future compatibility. When the mhr format is also updated with multi-distance measurements, the experimental switch can go away. | ||||
* | Avoid re-selecting the direct HRTF mix function | Chris Robinson | 2017-08-07 | 3 | -15/+25 |
| | |||||
* | Replace makehrtf's dither | Chris Robinson | 2017-08-01 | 3 | -14/+22 |
| | | | | | This uses a custom RNG instead of relying on the system-dependent rand(). It also removes the high-pass/noise-shaping, to flatten the noise floor. | ||||
* | Add a front-stablizer config option for surround sound modes | Chris Robinson | 2017-07-31 | 6 | -0/+121 |
| | | | | | | | | | | | | This improves a stereo (front-left + front-right) sound "image" by generating a front-center channel signal. Done correctly, it helps reduce the comb effects and phase errors associated with using only two speakers to simulate center sounds. Note that it shouldn't be used if the front-center channel is already included in the positional audio mix (the dialog effect is okay). In general, it may actually be better to exclude the front-center channel from the positional audio mix and use this to generate front-center output. | ||||
* | Don't bother returning the IR length for B-Format decoding | Chris Robinson | 2017-07-31 | 3 | -7/+5 |
| | |||||
* | Print an error if the input channel isn't in the device | Chris Robinson | 2017-07-31 | 1 | -22/+16 |
| | | | | Rather than the other way around, if a device channel isn't in the channel map. | ||||
* | Update default 5.1 and 6.1 coefficients to exclude front-center | Chris Robinson | 2017-07-30 | 1 | -15/+12 |
| | | | | | | | Not all speaker kits have a front-center speaker capable of outputing full- range content. It's best to err on the side of caution and not include front- center for normal positional sound by default, leaving it instead for the dedicated dialog effect. | ||||
* | Release 1.18.1openal-soft-1.18.1 | Chris Robinson | 2017-07-29 | 2 | -2/+2 |
| | |||||
* | Cleanup output write functions | Chris Robinson | 2017-07-27 | 1 | -32/+26 |
| | |||||
* | Remove unused macros | Chris Robinson | 2017-07-25 | 1 | -4/+0 |
| | |||||
* | Update default HRTFs | Chris Robinson | 2017-07-25 | 2 | -0/+0 |
| | |||||
* | Update makehrtf to use a larger FFT by default | Chris Robinson | 2017-07-25 | 2 | -75/+61 |
| | | | | Also fixes DC offset removal and increases the max IR size. | ||||
* | Update ChangeLog with OSS enumeration fix | Chris Robinson | 2017-07-23 | 1 | -0/+2 |
| | |||||
* | Downgrade some ERRs to TRACEs | Chris Robinson | 2017-07-23 | 1 | -2/+2 |
| | | | | | These don't exist outside OSSv4, e.g. with OSS/Free, padsp, or aoss, so no need to be concerned. | ||||
* | Make sure OSS device files exist before adding them | Chris Robinson | 2017-07-23 | 1 | -2/+10 |
| | |||||
* | Add missing include for std::array | Chris Robinson | 2017-07-23 | 1 | -0/+1 |
| | |||||
* | Update ChangeLog | Chris Robinson | 2017-07-19 | 1 | -0/+4 |
| | |||||
* | Fix default effect initialization | Chris Robinson | 2017-07-19 | 1 | -28/+11 |
| | |||||
* | Add an all-pass filter that replicates the band splitter's phase shift | Chris Robinson | 2017-07-19 | 2 | -0/+51 |
| | |||||
* | Scale the source volume by +3dB for a full spread | Chris Robinson | 2017-07-18 | 1 | -6/+7 |
| | | | | | This effectively turns a full spread source into an ambient response, preventing such sources from being unexpectedly quiet. | ||||
* | Add a 5.1 preset that excludes the front-center speaker | Chris Robinson | 2017-07-18 | 1 | -0/+46 |
| | | | | | | On some speaker setups, the front-center speaker is not designed for full-range content and should be used exclusively for dialog. Consequently it should not be used for positional sounds, only the dedicated dialog effect. | ||||
* | Apply the output buffer offset before writing to it | Chris Robinson | 2017-07-15 | 2 | -25/+25 |
| | |||||
* | Set the float PCM GUID for wave files only when outputting float | Chris Robinson | 2017-07-15 | 1 | -2/+3 |
| | |||||
* | Add the default auxiliary slot to the active slot array | Chris Robinson | 2017-07-13 | 2 | -18/+11 |
| | |||||
* | Initialize the default effect after device update | Chris Robinson | 2017-07-13 | 1 | -35/+31 |
| | |||||
* | Use macros to set and restore the mixer FPU mode | Chris Robinson | 2017-07-13 | 5 | -21/+24 |
| | |||||
* | Store the default effect slot in the context | Chris Robinson | 2017-07-13 | 4 | -67/+87 |
| | |||||
* | Don't trace for every GetDriverIndexForName call | Chris Robinson | 2017-07-11 | 1 | -4/+6 |
| | |||||
* | Trace a version for the router | Chris Robinson | 2017-07-11 | 1 | -0/+3 |
| | |||||
* | Update alffplay's command line message | Chris Robinson | 2017-07-11 | 1 | -1/+1 |
| | |||||
* | Rename the OpenAL target if also building the router | Chris Robinson | 2017-07-10 | 1 | -68/+70 |
| | | | | | | | | | | | | This is rather ugly, but it's necessary to get a proper export configuration. The issue was that the main OpenAL target library name is set to soft_oal when the router is being built, which is incorrect for the exported config library. Exporting the router would have the incorrect name of OpenAL::Router. So this change has the router use the OpenAL target name when it's built, which is good since it will have the standard OpenAL lib name for apps to link to and get the OpenAL::OpenAL export name. The main library's target name is changed in this case to avoid conflicts. | ||||
* | Generate the def and lib files from the router when built | Chris Robinson | 2017-07-09 | 1 | -27/+28 |
| | |||||
* | Reorganize some Windows-only CMake commands | Chris Robinson | 2017-07-09 | 1 | -66/+68 |
| | |||||
* | Use a macro to add backend include dirs | Chris Robinson | 2017-07-08 | 1 | -27/+15 |
| | |||||
* | Set the proper ldflags for the router | Chris Robinson | 2017-07-07 | 1 | -1/+1 |
| | |||||
* | Support ALC_EXT_thread_local_context in the router | Chris Robinson | 2017-07-07 | 2 | -1/+6 |
| | | | | | Note that a given context's device must also support the extension to work. The router's support simply lets a driver's capabilities through. | ||||
* | Add methods for thread-local contexts to the router | Chris Robinson | 2017-07-07 | 4 | -12/+110 |
| | |||||
* | Revert "Try all drivers for an unknown device name" | Chris Robinson | 2017-07-05 | 1 | -14/+10 |
| | | | | This reverts commit dadf7a4cf2bb008fc9e20251f6e8895c0f5bf0d4. | ||||
* | Print the opened device in alffplay | Chris Robinson | 2017-07-05 | 1 | -0/+7 |
| | |||||
* | Try all drivers for an unknown device name | Chris Robinson | 2017-07-05 | 1 | -10/+14 |
| | |||||
* | Trace if a driver was found for a device name | Chris Robinson | 2017-07-05 | 1 | -0/+4 |
| | |||||
* | Open a device only when a driver index is found | Chris Robinson | 2017-07-03 | 1 | -14/+18 |
| |