summaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include/alAuxEffectSlot.h
Commit message (Collapse)AuthorAgeFilesLines
* Add EFX types and enums to alext.hChris Robinson2010-03-091-6/+0
| | | | | The types and enums are in efx.h, which is included by alext.h. It's done this way because EFX has a lot if definitions which would polute alext.h
* Handle NULL effect objects as AL_EFFECT_NULL effectsChris Robinson2009-11-051-0/+1
|
* Add a method to update device-dependant effect parameters.Chris Robinson2009-10-201-0/+2
| | | | The effect state's update method will be called afterwards
* Be context-agnostic in the effect Create functionsChris Robinson2009-10-191-4/+4
| | | | | | | This allows the effect Update functions to handle the playback frequency being changed. By default the effects assume a maximum frequency of 192khz, however, it can go higher at the cost of the sample buffers being cleared and the risk of an abort() if reallocation fails
* Apply slot gain on slot output, not inputChris Robinson2009-05-291-5/+5
|
* Don't expose effect-specific structuresChris Robinson2009-05-291-4/+19
|
* Add the Echo effectChris Robinson2009-04-121-0/+2
|
* Move the WetBuffer into the effect slot objectChris Robinson2009-04-111-0/+2
| | | | This should make it easier to support multiple slots
* Implement a new reverb effectChris Robinson2008-11-161-9/+2
| | | | Code created and graciously provided by Christopher Fitzgerald
* Don't export extension function symbols from the libChris Robinson2008-09-061-13/+13
|
* Implement yet another low-pass filterChris Robinson2008-07-251-2/+4
| | | | This one using the Butterworth IIR filter design
* Implement AL_EFFECT_REVERBChris Robinson2008-01-181-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. :)
* Keep track of references to effect slots, so they aren't deleted while in useChris Robinson2008-01-161-0/+2
|
* Store effect slots in the contextChris Robinson2008-01-151-1/+1
|
* Don't append _struct to the effect slot struct nameChris Robinson2008-01-151-2/+2
|
* Remove unneeded struct memberChris Robinson2007-12-181-3/+0
|
* Add AL_EFFECTSLOT_AUXILIARY_SEND_AUTO property (still unimplemented)Chris Robinson2007-12-181-0/+1
|
* Implement AL_EFFECTSLOT_GAIN propertyChris Robinson2007-12-181-0/+2
|
* Implement AL_EFFECTSLOT_EFFECT propertyChris Robinson2007-12-181-0/+3
|
* Add auxiliary effect slot function skeletonsChris Robinson2007-12-171-0/+47