aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32
Commit message (Collapse)AuthorAgeFilesLines
* Avoid unnecessary floating-point mathChris Robinson2008-11-111-5/+2
|
* Add initial AL_EXTX_buffer_sub_data supportChris Robinson2008-11-114-28/+194
| | | | | | | | Note that this is an in-development extension, as noted by the EXTX moniker instead of EXT. It's behavior is subject to change, and the extension string will be removed (replaced with the official string once it's finalized). Developers are discouraged from using this in production code, though feel free to play around with it.
* Be more flexible with channel count when loading IMA4 dataChris Robinson2008-11-021-44/+22
|
* Seperate data converters into reusable functionsChris Robinson2008-11-021-216/+173
|
* More padding fixesChris Robinson2008-11-011-10/+1
|
* More buffer conversion refactoringChris Robinson2008-11-011-62/+28
|
* Padding is not dependant on the frequency cutoff anymoreChris Robinson2008-10-311-5/+1
|
* Restructure buffer data conversion code a bitChris Robinson2008-10-311-60/+27
|
* Append the driver and its version to the AL version stringChris Robinson2008-10-251-1/+1
|
* Remove another unused source memberChris Robinson2008-10-102-6/+0
|
* Remove unneeded source member variableChris Robinson2008-10-092-9/+1
|
* Commit missing changesChris Robinson2008-10-092-4/+2
|
* Use a new low-pass filter, based on the I3DL2 specChris Robinson2008-10-024-12/+3
| | | | Many thanks to Christopher Fitzgerald, for helping with it
* Air absorption factor is applied to the dB value, not linear gainChris Robinson2008-09-221-0/+1
|
* Use a 12dB/oct rolloff instead of 24 for the lowpass filterChris Robinson2008-09-131-4/+2
|
* Add a Solaris playback backendChris Robinson2008-09-071-0/+1
|
* Don't export extension function symbols from the libChris Robinson2008-09-066-72/+72
|
* Remove unneeded source struct memberChris Robinson2008-08-152-14/+5
|
* Clear channel volumes when starting a sourceChris Robinson2008-08-151-1/+9
|
* Allow setting the EFX doppler factor source propertyChris Robinson2008-08-141-0/+7
|
* Ramp channel gains to remove pops and clicks from abrupt changesChris Robinson2008-08-142-0/+20
| | | | Thanks to Christopher Fitzgerald for helping me work on it
* Include fenv.h if it exists for fesetroundChris Robinson2008-08-081-0/+4
|
* Improve getting and setting EFX filter parametersChris Robinson2008-07-261-37/+39
|
* Use arrays instead of pointer-to-arrays for the low-pass filterChris Robinson2008-07-263-10/+4
|
* Make the filter processing function inlineChris Robinson2008-07-261-1/+2
|
* Implement yet another low-pass filterChris Robinson2008-07-255-2/+24
| | | | This one using the Butterworth IIR filter design
* Use a temp pointer when realloc()ingChris Robinson2008-07-241-16/+26
| | | | So the original data isn't lost on out-of-memory conditions
* Specify padding per buffer, and make sure it's large enough for the filter stepChris Robinson2008-07-243-22/+45
|
* Implement an alternative low-pass filterChris Robinson2008-07-231-3/+0
| | | | | | | | | This method samples from the buffer so that it gets a time-correct 5khz stream, which is subtracted from the original sample and has the high-frequency gain applied, then added back. A better method may be to average all the samples from the current one to the one freq/5000 away, instead of bilinear filtering the two nearest freq/5000 apart. Processing cost will need to determine its viability
* Clarify implicit destruction warningsChris Robinson2008-07-225-5/+5
|
* Store extension list with a pointer, not a per-context arrayChris Robinson2008-07-221-1/+1
|
* Move (de)initialization into ALc.c and remove unneeded fileChris Robinson2008-07-172-76/+0
|
* Implement doppler factor source propertyChris Robinson2008-07-152-0/+13
|
* Don't check the number of objects being deleted with the number currently ↵Chris Robinson2008-07-112-93/+80
| | | | | | allocated Since apps can validly delete buffer 0, and delete the same source/buffer multiple times in a single call
* Use pthread_mutexattr_setkind_np as a fallback to set a recursive mutex typeChris Robinson2008-05-151-0/+7
| | | | Some systems (FreeBSD) don't like setting it through pthread_mutexattr_settype
* constify the pointer that holds the filenameChris Robinson2008-03-221-8/+8
|
* Define _WIN32_WINNT to 0x0500 when including windows.hChris Robinson2008-03-011-0/+3
| | | | VC7 appears to require that value, or higher, set and fails otherwise
* Preserve data and position when reallocating the reverb effectChris Robinson2008-02-181-3/+7
| | | | Still not perfect, but better for when the size doesn't change
* Remove FrameSize struct memberChris Robinson2008-02-141-1/+0
|
* Rename UpdateFreq device field to UpdateSizeChris Robinson2008-02-121-1/+1
|
* Include alext.h instead of redefining some enumsChris Robinson2008-02-081-27/+4
|
* Remove unneeded device struct memberChris Robinson2008-02-081-1/+0
|
* Add an option for duplicating stereo sources on the back speakersChris Robinson2008-02-061-0/+2
|
* Remove unnecessary Channels fieldChris Robinson2008-01-251-1/+0
|
* Remove effect slot thunk entry when deallocated forcefullyChris Robinson2008-01-211-0/+1
|
* More overflow protectionChris Robinson2008-01-201-2/+9
|
* Prevent float samples from overflowing when converting to 16-bitChris Robinson2008-01-201-1/+7
|
* Clean a couple debug messagesChris Robinson2008-01-192-2/+2
|
* Close ALC first when exiting since devices might've been running when ↵Chris Robinson2008-01-191-2/+2
| | | | deleting stuff
* Implement AL_EFFECT_REVERBChris Robinson2008-01-182-7/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Here is a quick description of how the reverb effect works: +--->---+*(4) | V new sample +-----+---+---+ | |extra|ltr|ref| <- +*(1) +-----+---+---+ (3,5)*| |*(2) +-->| V out sample 1) Apply master reverb gain to incoming sample and place it at the head of the buffer. The master reverb gainhf was already applied when the source was initially mixed. 2) Copy the delayed reflection sample to an output sample and apply the reflection gain. 3) Apply the late reverb gain to the late reverb sample 4) Copy the end of the buffer, applying a decay gain and the decay hf ratio, and add to the late reverb. 5) Copy the late reverb sample, adding to the output sample. Then the head and sampling points are shifted forward, and done again for each new sample. The extra buffer length is determined by the Reverb Density property. A value of 0 gives a length of 0.1 seconds (long, with fairly distinct echos) , and 1 gives 0.075 seconds (short, indistinct echos). The decay gain is calculated such that after a number of loops to satisfy the Decay Time, a sample will be 1/32768th as powerful (virtually insignificant to the resulting output, and only getting further reduced). It is calculated as: DecayGain = pow(1.0f/32768.0f, 1.0/(DecayTime/ExtraLength)); Things to note: Reverb Diffusion is not currently handled, nor is Decay HF Limit. Decay HF Ratios above 1 probably give incorrect results. Also, this method likely sucks, but it's the best I can come up with before release. :)