aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include
Commit message (Collapse)AuthorAgeFilesLines
* 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. :)
* Don't include alAuxEffectSlot.h in alSource.hChris Robinson2008-01-161-2/+1
|
* Make sure sources are deleted with the contextChris Robinson2008-01-161-0/+2
|
* Keep track of references to effect slots, so they aren't deleted while in useChris Robinson2008-01-161-0/+2
|
* Store a reference to the effect slot in a source's send, not a copyChris Robinson2008-01-161-1/+1
|
* Allow getting and setting reverb parameters, as well as setting reverb effectsChris Robinson2008-01-151-0/+17
| | | | Reverb is still not implemented. The parameters just no-op for now.
* Add reverb parametersChris Robinson2008-01-151-0/+15
|
* Store effect slots in the contextChris Robinson2008-01-152-1/+4
|
* Don't append _struct to the effect slot struct nameChris Robinson2008-01-151-2/+2
|
* Move include so win32 gets it too, and remove unnecessary lineChris Robinson2008-01-151-2/+2
|
* Add support for AL_LOKI_quadriphonicChris Robinson2008-01-141-0/+3
|
* Add missing stdio includeChris Robinson2008-01-141-0/+1
|
* Close dangling devices when exitingChris Robinson2008-01-141-0/+2
|
* Keep track of open devicesChris Robinson2008-01-141-0/+2
|
* Merge branch 'master' into efx-experimentChris Robinson2008-01-111-0/+28
|\
| * Add a wave file writing backendChris Robinson2008-01-111-0/+1
| |
| * Use nanosleep instead of usleepChris Robinson2008-01-111-1/+11
| | | | | | | | So not to rely on the non-standard unistd.h header
| * Add Sleep wrapperChris Robinson2008-01-111-0/+1
| |
| * Add a timing wrapper, using gettimeofdayChris Robinson2008-01-111-0/+16
| |
* | Merge branch 'master' into efx-experimentChris Robinson2008-01-042-0/+111
|\|
| * Add the Bauer stereophonic-to-binaural DSP (bs2b) code and hooksChris Robinson2008-01-032-0/+111
| |
* | Merge branch 'master' into efx-experimentChris Robinson2007-12-313-23/+24
|\|
| * Remove obsolete commentChris Robinson2007-12-311-2/+0
| |
| * Add some more formatsChris Robinson2007-12-311-3/+15
| |
| * Make some defines local to ALu.cChris Robinson2007-12-311-6/+0
| |
| * Fix includes so alMain.h doesn't include so much by itselfChris Robinson2007-12-311-8/+2
| |
| * Don't append _struct to the source struct nameChris Robinson2007-12-311-2/+2
| |
| * Remove unused macrosChris Robinson2007-12-311-4/+0
| |
| * Implement AL_EXT_FLOAT32Chris Robinson2007-12-281-0/+3
| |
| * Allow 5.1 channel outputChris Robinson2007-12-262-2/+4
| | | | | | | | This doesn't use the center or LFE channel in spatial calculations, however
| * Prevent possible buffer overflow in AL_PRINTChris Robinson2007-12-221-1/+3
| |
* | Merge branch 'master' into efx-experimentChris Robinson2007-12-201-5/+5
|\|
| * MacOSX doesn't like global szDebug and g_mutex symbol namesChris Robinson2007-12-191-5/+5
| |
* | Implement AL_AUXILIARY_SEND_FILTER_GAIN_AUTO propertyChris Robinson2007-12-181-0/+1
| |
* | Implement AL_ROOM_ROLLOFF_FACTOR propertyChris Robinson2007-12-181-0/+2
| |
* | Report one max auxiliary send per sourceChris Robinson2007-12-181-1/+4
| |
* | 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_AUXILIARY_SEND_FILTER_GAINHF_AUTO propertyChris Robinson2007-12-181-0/+1
| |
* | Implement AL_EFFECTSLOT_GAIN propertyChris Robinson2007-12-181-0/+2
| |
* | Add initial auxiliary send pathsChris Robinson2007-12-181-0/+6
| |
* | Implement AL_EFFECTSLOT_EFFECT propertyChris Robinson2007-12-181-0/+3
| |
* | Implement AL_AIR_ABSORPTION_FACTOR source propertyChris Robinson2007-12-182-0/+3
| |
* | Add AL_FILTER_LOWPASS supportChris Robinson2007-12-171-0/+7
| | | | | | | | Direct filters only, since auxiliary sends and slots aren't available yet
* | Implement AL_CONE_OUTER_GAINHF source propertyChris Robinson2007-12-171-0/+1
| |
* | Implement AL_DIRECT_FILTER_GAINHF_AUTO source propertyChris Robinson2007-12-171-0/+2
| |
* | Implement basic lowpass filter pathChris Robinson2007-12-171-0/+3
| |
* | Add AL_METERS_PER_UNIT listener propertyChris Robinson2007-12-171-0/+1
| |
* | Add new listener property definitionChris Robinson2007-12-171-0/+2
| |
* | Add effect type enumsChris Robinson2007-12-171-0/+12
| |