Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Implement AL_EFFECT_REVERB | Chris Robinson | 2008-01-18 | 1 | -19/+98 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. :) | ||||
* | Remove duplicated source freeing code | Chris Robinson | 2008-01-18 | 1 | -20/+0 |
| | |||||
* | Buffer size fixes. Partially reverts the ALSA buffer size "fix" | Chris Robinson | 2008-01-18 | 2 | -11/+17 |
| | |||||
* | Don't dereference ALContext if there's no context yet | Chris Robinson | 2008-01-17 | 1 | -2/+2 |
| | | | | Patch by Evgeny A. Marchenko | ||||
* | Add missing config.h includes | Chris Robinson | 2008-01-16 | 7 | -2/+14 |
| | |||||
* | Don't include alAuxEffectSlot.h in alSource.h | Chris Robinson | 2008-01-16 | 2 | -0/+2 |
| | |||||
* | Make sure sources are deleted with the context | Chris Robinson | 2008-01-16 | 1 | -0/+1 |
| | |||||
* | Don't clamp wet gain if there's no send slot, and move slot gain calculation | Chris Robinson | 2008-01-16 | 1 | -9/+12 |
| | | | | To remove an extra if check | ||||
* | Store a reference to the effect slot in a source's send, not a copy | Chris Robinson | 2008-01-16 | 1 | -11/+13 |
| | |||||
* | Remove unneeded variables | Chris Robinson | 2008-01-15 | 1 | -38/+28 |
| | |||||
* | Use acosf when available | Chris Robinson | 2008-01-15 | 1 | -1/+8 |
| | |||||
* | Use the previous low-pass filter again, as it seems to match the intended ↵ | Chris Robinson | 2008-01-15 | 1 | -6/+14 |
| | | | | output better | ||||
* | Store effect slots in the context | Chris Robinson | 2008-01-15 | 1 | -0/+2 |
| | |||||
* | Add support for AL_LOKI_quadriphonic | Chris Robinson | 2008-01-14 | 2 | -1/+5 |
| | |||||
* | Reduce indentation | Chris Robinson | 2008-01-14 | 1 | -6/+4 |
| | |||||
* | Add an option for disabling ALSA mmap | Chris Robinson | 2008-01-14 | 1 | -1/+9 |
| | |||||
* | Avoid busy waiting when waiting for suspend to clear | Chris Robinson | 2008-01-14 | 1 | -3/+2 |
| | |||||
* | Let the mmap thread start the pcm stream when it's full | Chris Robinson | 2008-01-14 | 1 | -52/+0 |
| | | | | Instead of filling it with silence and starting it before the thread is active | ||||
* | Make sure the stream is playing when it's full | Chris Robinson | 2008-01-14 | 1 | -0/+13 |
| | |||||
* | Don't restart the stream right after preparing it | Chris Robinson | 2008-01-14 | 1 | -4/+0 |
| | | | | It needs to be filled, first | ||||
* | Don't attempt to recover the ALSA stream when filling silence | Chris Robinson | 2008-01-14 | 1 | -13/+4 |
| | | | | Since it was just prepared, any error would likely mean bigger problems | ||||
* | Close dangling devices when exiting | Chris Robinson | 2008-01-14 | 1 | -0/+22 |
| | |||||
* | Destroy context if closing a device with one | Chris Robinson | 2008-01-14 | 1 | -0/+2 |
| | |||||
* | Keep track of open devices | Chris Robinson | 2008-01-14 | 1 | -0/+39 |
| | |||||
* | Reorder setting of some variables | Chris Robinson | 2008-01-12 | 1 | -8/+9 |
| | |||||
* | Merge branch 'master' into efx-experiment | Chris Robinson | 2008-01-11 | 6 | -143/+483 |
|\ | |||||
| * | Don't limit output wave filename size | Chris Robinson | 2008-01-11 | 1 | -3/+2 |
| | | |||||
| * | Fix the Wave Writer's reliance on ftell | Chris Robinson | 2008-01-11 | 1 | -2/+3 |
| | | | | | | | | So output can work on FIFOs | ||||
| * | Use Sleep instead of usleep | Chris Robinson | 2008-01-11 | 2 | -6/+6 |
| | | |||||
| * | Don't double-close a handle on error | Chris Robinson | 2008-01-11 | 1 | -1/+0 |
| | | |||||
| * | Don't attempt to open ALSA playback/capture if it didn't load | Chris Robinson | 2008-01-11 | 1 | -1/+7 |
| | | |||||
| * | Add a wave file writing backend | Chris Robinson | 2008-01-11 | 2 | -0/+337 |
| | | |||||
| * | Allow querying of ALC_MONO_SOURCES and ALC_STEREO_SOURCES | Chris Robinson | 2008-01-10 | 1 | -0/+18 |
| | | | | | | | | Based on a patch by Xavier Bouchoux | ||||
| * | Use a more reliable thread loop for DSound, instead of a Win32 timer | Chris Robinson | 2008-01-08 | 1 | -68/+64 |
| | | | | | | | | Also use a simpler method for calculating the read/write location | ||||
| * | Remove unneeded silence field | Chris Robinson | 2008-01-07 | 1 | -5/+0 |
| | | |||||
| * | Fix lone ALC_REFRESH query case | Chris Robinson | 2008-01-06 | 1 | -1/+1 |
| | | |||||
| * | Don't allow 0 periods | Chris Robinson | 2008-01-06 | 1 | -1/+1 |
| | | |||||
| * | ALC_REFRESH is the number of updates per second | Chris Robinson | 2008-01-06 | 4 | -5/+5 |
| | | |||||
| * | Make OSS's update size dynamic | Chris Robinson | 2008-01-06 | 1 | -17/+21 |
| | | |||||
| * | Fix the buffer size so ALSA doesn't multiply by the number of periods | Chris Robinson | 2008-01-06 | 1 | -4/+6 |
| | | |||||
| * | Some non-mmap ALSA fixes | Chris Robinson | 2008-01-05 | 1 | -40/+21 |
| | | |||||
| * | Disable fast float-to-int hack. | Chris Robinson | 2008-01-05 | 1 | -0/+2 |
| | | | | | | | | | | Even with precautions, it's giving problems. Not worth it since I don't quite understand how it works, or know if there's even a benefit. | ||||
* | | Try a different low-pass filter | Chris Robinson | 2008-01-05 | 1 | -4/+6 |
| | | | | | | | | | | Seems to be more correct, although it's not as powerful as the previous (which may be a good thing) | ||||
* | | Merge branch 'master' into efx-experiment | Chris Robinson | 2008-01-04 | 3 | -27/+328 |
|\| | |||||
| * | Use 6 point spatialization for 6.1 and 7.1 output | Chris Robinson | 2008-01-04 | 1 | -11/+38 |
| | | |||||
| * | Implement a crossfeed config option | Chris Robinson | 2008-01-03 | 1 | -0/+14 |
| | | |||||
| * | Add the Bauer stereophonic-to-binaural DSP (bs2b) code and hooks | Chris Robinson | 2008-01-03 | 2 | -8/+242 |
| | | |||||
* | | Merge branch 'master' into efx-experiment | Chris Robinson | 2008-01-01 | 2 | -60/+33 |
|\| | |||||
| * | Fail if OSS can't set the requested bit depth and channel count | Chris Robinson | 2008-01-01 | 1 | -38/+9 |
| | | |||||
| * | Fix channel ordering for multichannel buffers | Chris Robinson | 2008-01-01 | 1 | -22/+24 |
| | |