Chris Robinson
8c3188bc7d
Remove FrameSize struct member
2008-02-14 22:05:56 -08:00
Chris Robinson
c3446a10fa
Rename UpdateFreq device field to UpdateSize
2008-02-12 19:38:27 -08:00
Chris Robinson
acbb4f8e6c
Include alext.h instead of redefining some enums
2008-02-08 19:55:51 -08:00
Chris Robinson
13a3fe8a7a
Remove unneeded device struct member
2008-02-08 19:41:47 -08:00
Chris Robinson
b4ffdfab81
Add an option for duplicating stereo sources on the back speakers
2008-02-06 22:18:50 -08:00
Chris Robinson
5f1c0450b3
Remove unnecessary Channels field
2008-01-25 16:38:37 -08:00
Chris Robinson
4caf2c7edd
Implement AL_EFFECT_REVERB
...
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. :)
2008-01-18 21:25:40 -08:00
Chris Robinson
be34dbe608
Don't include alAuxEffectSlot.h in alSource.h
2008-01-16 14:01:24 -08:00
Chris Robinson
8ad16145f6
Make sure sources are deleted with the context
2008-01-16 13:27:15 -08:00
Chris Robinson
bb7b18d4e1
Keep track of references to effect slots, so they aren't deleted while in use
2008-01-16 13:20:09 -08:00
Chris Robinson
10a9bc62bf
Store a reference to the effect slot in a source's send, not a copy
2008-01-16 12:43:25 -08:00
Chris Robinson
8cbbf17519
Allow getting and setting reverb parameters, as well as setting reverb effects
...
Reverb is still not implemented. The parameters just no-op for now.
2008-01-15 23:32:28 -08:00
Chris Robinson
bf87aed459
Add reverb parameters
2008-01-15 20:32:20 -08:00
Chris Robinson
b95fcf5da1
Store effect slots in the context
2008-01-15 16:22:39 -08:00
Chris Robinson
707e596811
Don't append _struct to the effect slot struct name
2008-01-15 16:01:27 -08:00
Chris Robinson
0041a09576
Move include so win32 gets it too, and remove unnecessary line
2008-01-15 12:45:24 -08:00
Chris Robinson
df07e8a65b
Add support for AL_LOKI_quadriphonic
2008-01-14 16:11:15 -08:00
Chris Robinson
e519338a2b
Add missing stdio include
2008-01-14 10:55:13 -08:00
Chris Robinson
7a4870bd97
Close dangling devices when exiting
2008-01-14 10:54:33 -08:00
Chris Robinson
29c6238b52
Keep track of open devices
2008-01-14 10:39:54 -08:00
Chris Robinson
3bbbf8a025
Merge branch 'master' into efx-experiment
2008-01-11 17:19:08 -08:00
Chris Robinson
f10408739e
Add a wave file writing backend
2008-01-11 09:32:22 -08:00
Chris Robinson
e1d0ad749b
Use nanosleep instead of usleep
...
So not to rely on the non-standard unistd.h header
2008-01-11 08:15:44 -08:00
Chris Robinson
2a5a5b5c1b
Add Sleep wrapper
2008-01-11 06:54:09 -08:00
Chris Robinson
a97ecb8690
Add a timing wrapper, using gettimeofday
2008-01-11 06:01:51 -08:00
Chris Robinson
5e48be27b8
Merge branch 'master' into efx-experiment
2008-01-04 14:40:38 -08:00
Chris Robinson
8fe39042da
Add the Bauer stereophonic-to-binaural DSP (bs2b) code and hooks
2008-01-03 05:36:51 -08:00
Chris Robinson
3d78d93b40
Merge branch 'master' into efx-experiment
2007-12-31 19:34:52 -08:00
Chris Robinson
9382956b0e
Remove obsolete comment
2007-12-31 06:00:50 -08:00
Chris Robinson
76dd568971
Add some more formats
2007-12-31 02:53:56 -08:00
Chris Robinson
7a99b1fa32
Make some defines local to ALu.c
2007-12-31 01:16:13 -08:00
Chris Robinson
e82c27ab04
Fix includes so alMain.h doesn't include so much by itself
2007-12-31 01:09:57 -08:00
Chris Robinson
f32098e04d
Don't append _struct to the source struct name
2007-12-31 01:09:21 -08:00
Chris Robinson
1e0fa58d79
Remove unused macros
2007-12-31 00:52:34 -08:00
Chris Robinson
5f8e65e099
Implement AL_EXT_FLOAT32
2007-12-28 22:41:14 -08:00
Chris Robinson
ab8d342df0
Allow 5.1 channel output
...
This doesn't use the center or LFE channel in spatial calculations, however
2007-12-26 23:01:22 -08:00
Chris Robinson
e516b3c0d3
Prevent possible buffer overflow in AL_PRINT
2007-12-22 14:00:10 -08:00
Chris Robinson
229bc0d7e1
Merge branch 'master' into efx-experiment
2007-12-20 21:48:17 -08:00
Chris Robinson
44df5c3567
MacOSX doesn't like global szDebug and g_mutex symbol names
2007-12-19 14:14:26 -08:00
Chris Robinson
e5609279da
Implement AL_AUXILIARY_SEND_FILTER_GAIN_AUTO property
2007-12-18 19:13:41 -08:00
Chris Robinson
afd3b71849
Implement AL_ROOM_ROLLOFF_FACTOR property
2007-12-18 19:03:40 -08:00
Chris Robinson
919b8c5bd1
Report one max auxiliary send per source
2007-12-18 18:13:49 -08:00
Chris Robinson
72ce653bcf
Remove unneeded struct member
2007-12-18 17:46:49 -08:00
Chris Robinson
17c8881444
Add AL_EFFECTSLOT_AUXILIARY_SEND_AUTO property (still unimplemented)
2007-12-18 17:41:44 -08:00
Chris Robinson
233e6f1765
Implement AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO property
2007-12-18 16:54:22 -08:00
Chris Robinson
9adc20e4e7
Implement AL_EFFECTSLOT_GAIN property
2007-12-18 15:47:24 -08:00
Chris Robinson
bdf16bf601
Add initial auxiliary send paths
2007-12-18 15:10:21 -08:00
Chris Robinson
cf03bfa156
Implement AL_EFFECTSLOT_EFFECT property
2007-12-18 14:22:59 -08:00
Chris Robinson
ebb30ec5b0
Implement AL_AIR_ABSORPTION_FACTOR source property
2007-12-18 13:37:07 -08:00
Chris Robinson
168d8e3bee
Add AL_FILTER_LOWPASS support
...
Direct filters only, since auxiliary sends and slots aren't available yet
2007-12-17 22:42:38 -08:00