Chris Robinson
f16ece6048
Move some inline functions into a header instead of copying them
...
Unfortunately does not include the Lookup* functions, which need the full type
declaration to offset the pointer.
2018-01-27 21:16:24 -08:00
Chris Robinson
e12059a311
Fix error reporting for resource generation
2018-01-27 20:04:21 -08:00
Chris Robinson
cb9fb31214
Store filters in an array of lists
2018-01-27 19:40:47 -08:00
Chris Robinson
99f0377ae3
Construct error messages using parameterized values
2018-01-25 15:59:59 -08:00
Chris Robinson
2ded5547ba
Provide messages for the remaining AL errors
2018-01-24 17:07:01 -08:00
Chris Robinson
786a05876e
Call the event callback when an error is generated
...
Most errors don't yet provide correct object IDs or text messages for the AL
error.
2018-01-24 12:10:48 -08:00
Chris Robinson
78cb70a5f9
Replace some freq_mult variable names with f0norm
...
The latter is a bit more descriptive as f0 is often used to denote the
reference frequency of a filter, so f0norm indicates the normalized reference
frequency (ref_freq / sample_rate).
2018-01-13 09:14:46 -08:00
Chris Robinson
16e4e0fa7c
Use a more normal vtable setup for filter methods
2018-01-13 08:07:03 -08:00
Chris Robinson
5691dceb38
Add a method to copy a filter's coefficients
2017-05-21 03:31:44 -07:00
Chris Robinson
d04cc28f33
Limit filter gains to -24dB
2017-02-22 18:07:41 -08:00
Chris Robinson
325a49975a
Use ALsizei and ALint for sizes and offsets with resamplers and filters
2017-01-16 08:54:30 -08:00
Chris Robinson
53d8a49673
Call ALfilterState_processC directly
...
It's the only implementation currently, so there's no point to having it stored
as a function pointer in the filter struct. Even if there were SIMD versions,
it'd be a global selection, not per-instance.
2016-09-12 11:48:15 -07:00
Chris Robinson
3b2d8d3949
Use al_calloc/al_free in more places
2016-08-03 17:36:42 -07:00
Chris Robinson
2b3c7f211c
Add 'restrict' to another parameter
2016-08-03 08:34:25 -07:00
Chris Robinson
a6f41e4cb0
Remove the last use of ALfilterState_processSingle
2016-07-26 04:09:01 -07:00
Chris Robinson
11b38e1190
Rename input_gain to b0
2016-07-26 00:03:44 -07:00
Chris Robinson
8f4d6c48ce
Use separate arrays for UIntMap keys and values
2016-07-04 20:35:32 -07:00
Chris Robinson
9e6d8342de
Hold the effect and filter maps while handling effects and filters
2016-05-12 23:12:11 -07:00
Chris Robinson
5d552980a4
Move a couple extern inline declarations to the others
2016-01-23 18:19:19 -08:00
Chris Robinson
94816d0073
Reorder filterstate properties
2016-01-23 03:38:15 -08:00
Chris Robinson
352d9afd64
Inline a couple filterstate methods
2016-01-23 01:22:08 -08:00
Chris Robinson
c57f571920
Pass in the Q parameter for setting the filter parameters
...
Also better handle the peaking filter gain.
2015-11-01 05:41:06 -08:00
Chris Robinson
2a62b38530
Update filter histories even when they're not used
...
If the filter properties are continually updated, and the HF or LF gain goes
from <1, to 1, and later back to <1, the history shouldn't hold stale values
from before it was at 1.
2015-10-24 00:47:58 -07:00
Chris Robinson
b859f1bdc3
Avoid multiple sin, cos, and sqrt calls for filter calculations
2015-10-11 10:21:37 -07:00
Chris Robinson
b348abf5c3
Rename F_2PI to F_TAU
2015-09-13 08:46:48 -07:00
Chris Robinson
205e258d1a
Fix high-pass coefficients
2015-01-13 09:38:13 -08:00
François Cami
3c13e1e333
Update COPYING to the latest https://www.gnu.org/licenses/old-licenses/lgpl-2.0.txt to fix the FSF' address Fix the FSF' address in the source
2014-08-18 11:34:29 -07:00
Chris Robinson
a5631e05cc
Add a ALfilterState method to process multiple samples at once
2014-05-18 06:23:20 -07:00
Chris Robinson
cd53a4b74c
Reset filter properties when setting a null filter type
2014-05-17 08:05:49 -07:00
Chris Robinson
190ab90c0d
Support the band-pass filter
2014-05-17 08:04:14 -07:00
Chris Robinson
3a26ebef0b
Implementing handling high-pass filter properties
2014-05-17 07:29:50 -07:00
Chris Robinson
1efddac3db
Document the different filter types, and combine some split lines
2014-05-17 02:09:43 -07:00
Chris Robinson
c5b25ba2a7
Rename freq_scale parameter to freq_mult
2014-05-17 01:32:55 -07:00
Chris Robinson
4454ae25c7
Add HF Reference as a filter property
2014-05-14 01:24:18 -07:00
Chris Robinson
de5c54db09
Remove an unused method
2014-03-23 17:47:58 -07:00
Chris Robinson
d3c70e63b4
Use C99 inline in more places
2013-11-04 13:44:46 -08:00
Chris Robinson
551f893ae9
Use C99 inline semantics
2013-11-04 12:12:31 -08:00
Chris Robinson
a421e515be
Use a helper macro for pi*2
2013-10-08 16:31:23 -07:00
Chris Robinson
b3841653c6
Remove the last of the al_try code
2013-10-07 12:05:39 -07:00
Chris Robinson
1518895e15
Use an UNUSED macro instead of void-tagging unused parameters
2013-10-07 07:44:09 -07:00
Chris Robinson
99fa5911bc
Implement the Autowah effect.
2013-10-03 03:37:03 -07:00
Chris Robinson
393d0eb138
Limit lower filter gain to -100dB
2013-07-21 18:42:14 -07:00
Chris Robinson
647398d7c6
Use ALfilterState for the distortion effect filters
2013-06-06 03:24:44 -07:00
Chris Robinson
a371de080b
Silence some clang warnings
2013-06-05 01:52:49 -07:00
Chris Robinson
48aa1e10d6
Use the high-shelf filter in place of low-pass
...
They effectively both work to lower (or raise) high frequencies. However, the
high-shelf performs better when gain=1.
2013-05-28 10:57:38 -07:00
Chris Robinson
feeec34333
Use ALfilterState for the source direct and send filters
2013-05-27 19:14:02 -07:00
Chris Robinson
bcf4842eb3
Fix filter coefficient pre-calc
...
a[0] was getting set to 1 before a[1] and a[2] were normalized. a[0] needs to
be done last.
2013-05-27 17:47:13 -07:00
Chris Robinson
b1ae44206f
Move ALEQFilter to alFilter.c/h and rename it to ALfilterState
2013-05-27 15:32:02 -07:00
Chris Robinson
4bf5466f64
Use SET_ERROR_AND_RETURN in a few more places
2013-05-26 16:34:08 -07:00
Chris Robinson
43b406ad9b
Simplify al_try code
2013-03-24 13:55:41 -07:00