Chris Robinson
ea0aea6508
Change the autowah to have a cutoff range of 20Hz to 20KHz
...
This is the same as allowed in the SF2 spec for its filter cutoff generator,
which can be used for a wah effect in MIDI. It makes sense to use a similar
range here.
2014-02-07 03:23:49 -08:00
Chris Robinson
6f711c32ba
Fix some types
2014-02-07 03:20:27 -08:00
Chris Robinson
d596cf9cf3
Use a different autowah filter range
...
Still just guesses, but this seems to avoid math problems with low peak gains.
2013-12-20 00:16:23 -08:00
Chris Robinson
ac525db845
Fix numeric constant type (double->float)
2013-12-08 05:01:06 -08:00
Chris Robinson
4386ee32ce
Use one long buffer for the chorus and flanger delay lines
2013-11-10 02:48:03 -08:00
Chris Robinson
a603dd55ff
Rename lfo_coeff to lfo_scale
2013-11-08 16:54:45 -08:00
Chris Robinson
9228d13333
Use integer modulo for chorus and flanger
...
Also simplify LFO coefficient calculations.
2013-11-08 16:33:42 -08:00
Chris Robinson
bca959f372
Only use the inner loop for the chorus/flanger template method
2013-11-08 05:26:43 -08:00
Chris Robinson
d6eff654be
Redo the autowah effect
...
It's now a low-pass filter with a cutoff that varies according to the input
signal amplitude.
There remains issues with apparent feedback in the resonant frequency with high
resonance values. The actual cutoff range for the filter is also a guess.
2013-11-07 17:46:14 -08:00
Chris Robinson
e0fecdcaaa
Reimplement the compressor to work per-sample
2013-11-06 23:39:41 -08:00
Chris Robinson
a421e515be
Use a helper macro for pi*2
2013-10-08 16:31:23 -07:00
Chris Robinson
b42fcce014
Use inline initialization for effect state factory vtables
2013-10-07 14:49:36 -07:00
Chris Robinson
fc31a41473
Constify the effect parameter of effect getters
2013-10-07 12:56:41 -07:00
Chris Robinson
997f6228de
Use the UNUSED macro in the effects
2013-10-07 08:34:54 -07:00
Chris Robinson
79edd2cf3b
Use a macro for the silence threshold
2013-10-06 17:25:47 -07:00
Chris Robinson
41175ec84c
Implement the Compressor effect
2013-10-03 07:55:12 -07:00
Chris Robinson
2e605590a2
Convert autowah.c line-endings
2013-10-03 05:04:39 -07:00
Chris Robinson
764ea95781
Use helpers to set channel gain arrays
...
Also avoid unnecessary clearing.
2013-10-03 05:02:16 -07:00
Chris Robinson
99fa5911bc
Implement the Autowah effect.
2013-10-03 03:37:03 -07:00
Chris Robinson
2f676832bc
Avoid a divide-by-0 when distortion edge is 1
2013-09-04 15:46:05 -07:00
Chris Robinson
2219ce2475
Implement master high-pass filter for EAXREVERB
2013-07-21 22:12:50 -07:00
Chris Robinson
51791e6a54
Remove an unused function
2013-07-21 03:22:14 -07:00
Chris Robinson
817ca82e4b
Fix input and feedback in the echo effect
2013-06-10 05:57:27 -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
a7a3d1e194
Avoid an unnecessary loop
2013-05-29 22:34:57 -07:00
Chris Robinson
764e3aa496
Fix up the naming convention of effect methods
2013-05-29 11:17:45 -07:00
Chris Robinson
e96cc656e9
Use C99's inline instead of __inline
2013-05-28 22:27:07 -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
6556626055
Simplify and fix some filter gain calculations
2013-05-27 21:57:22 -07:00
Chris Robinson
59a38442ac
Use ALfilterState for the modulator high pass filter
2013-05-27 21:24:28 -07:00
Chris Robinson
0c7c5327c9
Use ALfilterState for the master echo and reverb filters
2013-05-27 19:55:00 -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
334a7c1d59
Cleanup the ALeffectStateFactory_create methods
...
Get rid of the ALeffectStateFactory_create macro, and use the VCALL_NOARGS
helper (requires adding the 'this' factory parameter).
2013-05-27 13:16:17 -07:00
Chris Robinson
06c8442af6
Rename a variable
2013-05-26 17:10:57 -07:00
Chris Robinson
0a4be3470e
Pre-apply the a[0] EQ filter coefficient
...
Saves 20 fp divisions per sample
2013-05-26 17:04:45 -07:00
Chris Robinson
82caba6bbe
Use the helper macros in more places
2013-05-26 08:54:34 -07:00
Chris Robinson
8808159d55
Add helper macros to set an error and return, and use it in a few places
2013-05-26 00:01:07 -07:00
Chris Robinson
d1c5599c8e
Use an ALeffectProps union to store the effect properties
2013-05-25 22:07:31 -07:00
Chris Robinson
6571d80540
Use a Delete method for deletable objects
2013-05-25 21:04:00 -07:00
Chris Robinson
2da6caeaa6
Update the Null effect so it can act as a guide to new effects
2013-05-25 17:42:34 -07:00
Chris Robinson
e157238ce7
Use vtables for setting effect properties
2013-05-24 23:26:59 -07:00
Chris Robinson
357cf72ab3
Move remaining effects to the effects subdir
2013-05-23 21:33:16 -07:00
Chris Robinson
2376683128
Move reverb to the effects subdir
2013-05-23 19:48:24 -07:00
Chris Robinson
f667c028e6
Move the AL_EFFECT_NULL state into a separate file
2013-05-23 18:50:07 -07:00