aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Be more robust with to-mono channel conversionsChris Robinson2020-10-053-28/+74
|
* Cast the ringbuffer size to the correct typeChris Robinson2020-10-051-1/+1
|
* Fix a variable nameChris Robinson2020-10-051-53/+53
|
* Simplify some DSound capture mathChris Robinson2020-10-031-5/+5
|
* Remove the unused Ref logging levelChris Robinson2020-09-283-4/+6
|
* Rework logging a littleChris Robinson2020-09-282-31/+67
| | | | | | Use OutputDebugStringW on Windows in addition to the log file Avoid duplicate formatter parsing with Android
* Use an enum class for the log levelChris Robinson2020-09-282-12/+12
|
* Add missing linear resampler to the option setting listChris Robinson2020-09-241-0/+1
|
* Use a smaller buffer for the phase-shift filterChris Robinson2020-09-241-26/+23
|
* Support B-Format sounds in the examplesChris Robinson2020-09-227-7/+86
|
* Recognize B-Format format names in the examplesChris Robinson2020-09-221-0/+6
|
* Support B-Format amb file IRs in alconvolveChris Robinson2020-09-221-1/+12
| | | | | | Be aware this requires proper header data (a WAVE_FORMAT_EXTENSIBLE format with the proper integer or float B-Format sub-format GUID). A normal 4-channel wave file will not be recognized, since it's indistinguishable from quadrophonic.
* Add an alconvolve option to silence the dry signalChris Robinson2020-09-221-3/+49
|
* Support all buffer layouts for convolutionChris Robinson2020-09-221-22/+99
|
* Remove deprecated, performance, and error event typesChris Robinson2020-09-207-51/+5
| | | | | These would be better served with a proper debug API, rather than a general audio event API.
* Don't use direct channels with convolutionChris Robinson2020-09-181-19/+5
| | | | | It may come back as an effect property, but it's probably better to not try forcing it by default.
* Allow higher-order B-Format buffers for convolutionChris Robinson2020-09-181-6/+5
| | | | | Only the first-order channels will be used, but higher-order buffers will be allowed.
* Avoid extraneous buffers and buffer clearsChris Robinson2020-09-171-9/+9
|
* Fix an invalid unicode character in a commentChris Robinson2020-09-141-1/+1
|
* Use inline wrappers to clarify forward/inverse FFTsChris Robinson2020-09-135-11/+24
|
* Partly simplify FFT bit-reversalChris Robinson2020-09-131-8/+4
| | | | | | | | | | | This can almost certainly be improved further, as less than half of the indices really need their reversed bit-pattern calculated and elements swapped (any symetrical bit pattern would just swap with itself, and indices whose reversed bit-pattern has already been traversed is already swapped). It may also prove beneficial to provide the base-2 log of the fft buffer size (number of bits to represent the indices), as that could help make the reversal more efficient with a known bit/loop count.
* Use standard sin and sqrtChris Robinson2020-09-121-57/+2
|
* Accumulate delays as samples before calculating nanosecondsChris Robinson2020-09-121-14/+8
|
* Round (and clamp) the reftime instead of ceiling itChris Robinson2020-09-121-3/+3
|
* Avoid repeating string literalsChris Robinson2020-09-111-5/+7
|
* Recognize GUID name strings with the DSound backendChris Robinson2020-09-101-8/+22
|
* Allow JACK to enumerate custom devicesChris Robinson2020-09-101-4/+75
| | | | Each device being associated with a port name pattern it'll try connecting to.
* Simplify clearing an arrayChris Robinson2020-09-091-6/+1
|
* Don't assume iterators are pointersChris Robinson2020-09-091-2/+2
|
* Apply the first convolution segment in the time domainChris Robinson2020-09-091-22/+86
| | | | | | | This avoids an inherent delay from the effect, at the cost of higher CPU use. Having a customizable user-specified delay (with said user ensuring a properly trimmed impulse response) could help alleviate the cost since once the delay exceeds the segment size, the initial FIR filter could be skipped.
* Don't leave the negative frequencies as 0 for inverse FFTChris Robinson2020-09-083-10/+18
|
* Avoid an extraneous ConvolutionFilter sub-objectChris Robinson2020-09-061-112/+90
|
* Allow querying the new enums and functionsChris Robinson2020-09-051-0/+6
|
* Print the name and format for alconvole's impulse responseChris Robinson2020-09-051-7/+18
|
* Cleanup and fix alAuxiliaryEffectSlotPlayv/StopvSOFTChris Robinson2020-09-051-20/+15
|
* Ensure effect slot properties are updated when playingChris Robinson2020-09-051-2/+15
|
* Rework effect slot buffer settingChris Robinson2020-09-058-79/+25
| | | | | | | | Rather than creating an effect-specific buffer that gets passed along as a property, the buffer is set the effect state when the effect state is created, the device is updated, or the buffer is changed. The buffer can only be set while the effect slot isn't playing, so it won't be changed or updated while the mixer is processing the effect state.
* Add methods to start and stop effect slot processingChris Robinson2020-09-052-2/+124
| | | | | | | | A newly-created effect slot is in an AL_INITIAL state, in which processing is stopped but will automatically become AL_PLAYING after successfully setting an AL_EFFECTSLOT_EFFECT value (including AL_EFFECT_NULL or 0). Calling Play[v] or Stop[v] will set the effect slot to AL_PLAYING or AL_STOPPED respectively. While stopped, the effect won't produce audio and will not be processed.
* Don't add effect slots to the active list until an effect is setChris Robinson2020-09-053-2/+14
|
* Avoid confusing */*...*/ syntaxChris Robinson2020-09-051-3/+3
| | | | MSVC warns about */ being outside of a comment.
* Use a recursive_mutex for the router enumeration lockChris Robinson2020-09-051-38/+34
|
* Use an RAII wrapper to manage COM object referencesChris Robinson2020-09-051-87/+111
|
* Avoid duplicate WASAPI devices by matching GUIDsChris Robinson2020-09-041-33/+31
|
* Update changelogChris Robinson2020-09-031-0/+2
|
* Update some UHJ commentsChris Robinson2020-09-022-28/+8
|
* Avoid class templates for the POPCNT64/CTZ64 macrosChris Robinson2020-09-011-15/+16
|
* Add an in-progress extension string for convolution reverbChris Robinson2020-09-012-2/+5
|
* Don't use config.h to define RESTRICTChris Robinson2020-09-012-5/+3
|
* Use enum class for a couple enumsChris Robinson2020-09-014-53/+53
|
* Avoid using a deprecated functionChris Robinson2020-08-311-4/+3
|