Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Rename the effect state's Destroy method to Destruct | Chris Robinson | 2013-05-21 | 1 | -5/+5 |
| | |||||
* | Use factories to create and destroy effect states | Chris Robinson | 2013-05-21 | 1 | -16/+49 |
| | |||||
* | Remove some unused code | Chris Robinson | 2013-05-21 | 1 | -5/+2 |
| | |||||
* | Auto-generate wrappers to upcast objects before calling user methods | Chris Robinson | 2013-05-21 | 1 | -8/+17 |
| | |||||
* | Use macros to help define vtables for effect states | Chris Robinson | 2013-05-21 | 1 | -12/+33 |
| | |||||
* | Implement distortion and equalizer effects | Chris Robinson | 2013-05-18 | 1 | -0/+2 |
| | | | | Code provided by Mike Gorchak | ||||
* | Add Chorus and Flanger effects | Chris Robinson | 2013-03-13 | 1 | -0/+2 |
| | | | | Code provided by Mike Gorchak | ||||
* | Add the RESTRICT keyword to a function pointer definition's parameters | Chris Robinson | 2012-10-25 | 1 | -1/+1 |
| | |||||
* | Explicitly give the wet buffer 1 channel | Chris Robinson | 2012-09-16 | 1 | -1/+1 |
| | |||||
* | Implement an SSE MixSend method | Chris Robinson | 2012-09-16 | 1 | -1/+1 |
| | |||||
* | Fix up some more header includes | Chris Robinson | 2012-09-14 | 1 | -10/+8 |
| | |||||
* | Use a non-interleaved DryBuffer | Chris Robinson | 2012-09-11 | 1 | -1/+1 |
| | |||||
* | Don't use all caps for enum value names | Chris Robinson | 2012-06-28 | 1 | -1/+1 |
| | |||||
* | Remove an unused field | Chris Robinson | 2012-04-19 | 1 | -2/+0 |
| | |||||
* | Use a consistent name for the self-id field | Chris Robinson | 2012-04-19 | 1 | -2/+2 |
| | |||||
* | Pass the device to InitializeEffect and return the error enum from it | Chris Robinson | 2012-03-13 | 1 | -1/+1 |
| | |||||
* | Pass a device to the effect update functions | Chris Robinson | 2012-03-13 | 1 | -1/+1 |
| | |||||
* | Avoid duplicating some initialization code | Chris Robinson | 2012-01-20 | 1 | -2/+2 |
| | |||||
* | Add a global option to apply a reverb effect on source send 0 | Chris Robinson | 2012-01-19 | 1 | -0/+1 |
| | | | | | | A special slot on the device is created and processed, so it can be shared across all contexts on the device. Sources that don't have a slot set on send 0 will use this special slot instead. | ||||
* | Rename the ALEffect_ macros to ALeffectState_ to reflect what they work on | Chris Robinson | 2011-09-12 | 1 | -4/+4 |
| | |||||
* | Remove the effect slot parameter from the effect process method | Chris Robinson | 2011-09-12 | 1 | -5/+5 |
| | |||||
* | Avoid holding the context lock when setting auxiliary slot properties | Chris Robinson | 2011-09-11 | 1 | -3/+3 |
| | |||||
* | Combine the reverb effects | Chris Robinson | 2011-09-01 | 1 | -2/+1 |
| | | | | | | | Updating and processing still differs depending on whether standard or EAX reverb is used or not. The only functional difference should be that the allocated buffer (and subsequent offsets) take into account the modulation and echo times. | ||||
* | Combine the dedicated (dialog/LFE) effects | Chris Robinson | 2011-09-01 | 1 | -2/+1 |
| | |||||
* | Use the reference counting functions for the buffer and auxiliary slot refs | Chris Robinson | 2011-08-29 | 1 | -1/+1 |
| | |||||
* | Use an enum instead of an boolean for some flags | Chris Robinson | 2011-08-29 | 1 | -1/+1 |
| | | | | | They still only hold AL_TRUE or AL_FALSE, but some systems can't properly handle atomic swaps of 1-byte types. | ||||
* | Pass the effect slot to the effect update method | Chris Robinson | 2011-07-16 | 1 | -1/+1 |
| | |||||
* | Allow effect slots to be updated asynchronously | Chris Robinson | 2011-07-16 | 1 | -0/+1 |
| | | | | | | Updates when the slot changes effect type is still sychronous, however, to ensure a proper state for the Process method call. Fixing this would essentially require all effects to work from the same state. | ||||
* | Add support for ALC_EXT_DEDICATED | Chris Robinson | 2011-03-12 | 1 | -0/+2 |
| | |||||
* | Rename OUTPUTCHANNELS to something more descriptive | Chris Robinson | 2010-12-01 | 1 | -1/+1 |
| | |||||
* | Handle clicks by watching changes between updates | Chris Robinson | 2010-08-16 | 1 | -0/+1 |
| | |||||
* | Add click removal for wet sends | Chris Robinson | 2010-08-15 | 1 | -0/+2 |
| | |||||
* | Implement a skeleton Ring Modulator effect | Chris Robinson | 2010-04-08 | 1 | -0/+1 |
| | |||||
* | Move extension function declarations to alext.h/efx.h | Chris Robinson | 2010-03-23 | 1 | -13/+0 |
| | |||||
* | Mark extension functions with AL_API/ALC_API | Chris Robinson | 2010-03-23 | 1 | -13/+13 |
| | |||||
* | Add EFX types and enums to alext.h | Chris Robinson | 2010-03-09 | 1 | -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 effects | Chris Robinson | 2009-11-05 | 1 | -0/+1 |
| | |||||
* | Add a method to update device-dependant effect parameters. | Chris Robinson | 2009-10-20 | 1 | -0/+2 |
| | | | | The effect state's update method will be called afterwards | ||||
* | Be context-agnostic in the effect Create functions | Chris Robinson | 2009-10-19 | 1 | -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 input | Chris Robinson | 2009-05-29 | 1 | -5/+5 |
| | |||||
* | Don't expose effect-specific structures | Chris Robinson | 2009-05-29 | 1 | -4/+19 |
| | |||||
* | Add the Echo effect | Chris Robinson | 2009-04-12 | 1 | -0/+2 |
| | |||||
* | Move the WetBuffer into the effect slot object | Chris Robinson | 2009-04-11 | 1 | -0/+2 |
| | | | | This should make it easier to support multiple slots | ||||
* | Implement a new reverb effect | Chris Robinson | 2008-11-16 | 1 | -9/+2 |
| | | | | Code created and graciously provided by Christopher Fitzgerald | ||||
* | Don't export extension function symbols from the lib | Chris Robinson | 2008-09-06 | 1 | -13/+13 |
| | |||||
* | Implement yet another low-pass filter | Chris Robinson | 2008-07-25 | 1 | -2/+4 |
| | | | | This one using the Butterworth IIR filter design | ||||
* | Implement AL_EFFECT_REVERB | Chris Robinson | 2008-01-18 | 1 | -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 use | Chris Robinson | 2008-01-16 | 1 | -0/+2 |
| | |||||
* | Store effect slots in the context | Chris Robinson | 2008-01-15 | 1 | -1/+1 |
| | |||||
* | Don't append _struct to the effect slot struct name | Chris Robinson | 2008-01-15 | 1 | -2/+2 |
| |