Chris Robinson
301a4c4a95
Append the driver and its version to the AL version string
2008-10-25 15:48:17 -07:00
Chris Robinson
8fc4a3b724
Make sure an appropriate error is set when opening a device fails
2008-10-24 19:58:49 -07:00
Chris Robinson
cb6f040005
Use plughw for capture so ALSA can convert capture data
2008-10-14 09:50:37 -07:00
Chris Robinson
b91c2e4a99
Include float.h if it exists, for _RC_CHOP and _MCW_RC
2008-10-14 09:47:32 -07:00
Chris Robinson
59a71b1454
Remove another unused source member
2008-10-10 01:31:31 -07:00
Chris Robinson
36f133a5ae
Use a modulo to keep the buffer position in range for looping sources
...
A high pitch and low buffer size can cause a lot of unnecessary iterations
otherwise, that just decrement the position
2008-10-10 01:13:32 -07:00
Chris Robinson
74a58c0d09
Clamp source position to the buffer size when it stops
2008-10-09 23:54:31 -07:00
Chris Robinson
bfa1107781
Remove unneeded source member variable
2008-10-09 23:44:48 -07:00
Chris Robinson
11397f7667
Commit missing changes
2008-10-09 20:58:12 -07:00
Chris Robinson
6e9e8239ef
Only send one channel through the wet path
2008-10-09 04:02:34 -07:00
Chris Robinson
af9932d28b
Increase max pitch to 65536
...
This should be safe now
2008-10-09 02:50:00 -07:00
Chris Robinson
87ff8a65e9
Simplify the lerp function
2008-10-09 02:32:47 -07:00
Chris Robinson
7b6f207790
Don't apply the wet path for multi-channel buffers
2008-10-09 02:28:52 -07:00
Chris Robinson
8672008e43
Skip mixing if the read position is beyond the end of the buffer
2008-10-09 01:17:39 -07:00
Chris Robinson
c8cd193346
The wet path should be silent if no effect is set on the slot
2008-10-09 01:07:02 -07:00
Chris Robinson
be292e5f0b
Don't hold the whole-number position in the fractional value
...
This will help prevent overflows when the max pitch is increased
2008-10-02 23:53:46 -07:00
Chris Robinson
3863dcc9cb
Use a new low-pass filter, based on the I3DL2 spec
...
Many thanks to Christopher Fitzgerald, for helping with it
2008-10-02 22:20:42 -07:00
Chris Robinson
a2568409fc
Implement non-mmap ALSA capture
2008-09-29 17:24:50 -07:00
Chris Robinson
6567cdd7b5
Air absorption factor is applied to the dB value, not linear gain
2008-09-22 17:01:47 -07:00
Chris Robinson
5bbf55a401
Add a variable to override the default library type with
2008-09-16 07:43:38 -07:00
Chris Robinson
4a530e2146
Fixup some source parameter calculations
2008-09-16 07:36:48 -07:00
Chris Robinson
27ba8f7b60
Fix function pointer declarations
2008-09-16 06:19:27 -07:00
Chris Robinson
6bfdb57a5b
Use a 12dB/oct rolloff instead of 24 for the lowpass filter
2008-09-13 02:46:14 -07:00
Chris Robinson
26e8ea60a5
Store pi as a static const
2008-09-13 00:44:48 -07:00
Chris Robinson
f4ea188ffa
Fix typo to get the proper minor ALC version
2008-09-12 18:07:12 -07:00
Chris Robinson
1266580420
Print EFX info when the extension is available
2008-09-12 18:05:23 -07:00
Chris Robinson
16d96eed7b
Add a Solaris playback backend
2008-09-07 14:34:14 -07:00
Chris Robinson
fa76168683
Clear the end of the buffer when at the end of the queue and not looping
2008-09-06 14:08:53 -07:00
Chris Robinson
5f3329b2c9
Don't export extension function symbols from the lib
2008-09-06 13:45:27 -07:00
Chris Robinson
db541f3cfa
Remove unneeded source struct member
2008-08-15 17:43:07 -07:00
Chris Robinson
3e19ba6ca8
Clear channel volumes when starting a source
2008-08-15 16:33:47 -07:00
Chris Robinson
ac8c082b89
Overwrite the input wet sample with the output
2008-08-14 20:44:55 -07:00
Chris Robinson
084df2a229
Allow setting the EFX doppler factor source property
2008-08-14 16:14:16 -07:00
Chris Robinson
22557070ec
Ramp channel gains to remove pops and clicks from abrupt changes
...
Thanks to Christopher Fitzgerald for helping me work on it
2008-08-14 05:43:52 -07:00
Chris Robinson
f8ef66954c
Include fenv.h if it exists for fesetround
2008-08-08 08:12:41 -07:00
Chris Robinson
ef59901e7c
Set FPU mode to round toward zero for mixing
2008-08-08 07:32:21 -07:00
Chris Robinson
cfe620ccb5
Remove unnecessary casting
2008-08-08 00:21:25 -07:00
Chris Robinson
453b015225
Prevent a 0 or negative increment for the buffer position
...
Thanks to Christopher Fitzgerald for pointing these last two problems out
2008-08-05 20:51:30 -07:00
Chris Robinson
c1cf9ae8f6
Pass a dummy variable to CreateThread to satisfy Win9x
2008-08-05 20:19:13 -07:00
Chris Robinson
f1414c650e
Release 1.5.304
2008-07-27 19:58:32 -07:00
Chris Robinson
869b041f2f
Reduce the default buffer size to 4096
...
Should help with latency issues some people have and not put too much extra
burden on the mixer, hopefully
2008-07-26 21:07:08 -07:00
Chris Robinson
8621fbb015
Improve getting and setting EFX filter parameters
2008-07-26 18:32:45 -07:00
Chris Robinson
597e01153e
Use arrays instead of pointer-to-arrays for the low-pass filter
2008-07-26 17:13:50 -07:00
Chris Robinson
d3e5fcd13e
Fix some calculations for the reverb buffer
2008-07-26 01:57:04 -07:00
Chris Robinson
3e0f9cc716
Make the filter processing function inline
2008-07-26 00:58:54 -07:00
Chris Robinson
c7e49c9f57
Implement yet another low-pass filter
...
This one using the Butterworth IIR filter design
2008-07-25 19:31:12 -07:00
Chris Robinson
e2ed8ff2bf
Use a temp pointer when realloc()ing
...
So the original data isn't lost on out-of-memory conditions
2008-07-24 13:44:26 -07:00
Chris Robinson
559c786d0c
Specify padding per buffer, and make sure it's large enough for the filter step
2008-07-24 00:41:25 -07:00
Chris Robinson
c3a7480961
Don't advertise extra samples for mixing
2008-07-23 23:27:38 -07:00
Chris Robinson
a75e75aef5
Implement an alternative low-pass filter
...
This method samples from the buffer so that it gets a time-correct 5khz stream,
which is subtracted from the original sample and has the high-frequency gain
applied, then added back.
A better method may be to average all the samples from the current one to the
one freq/5000 away, instead of bilinear filtering the two nearest freq/5000
apart. Processing cost will need to determine its viability
2008-07-23 22:29:53 -07:00