diff options
author | Chris Robinson <[email protected]> | 2017-07-19 02:48:01 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2017-07-19 02:48:01 -0700 |
commit | fea74124c88e00a27e51b89fdb769d2467bda0e7 (patch) | |
tree | 8e39847575424b6de5066c1a4f74b376ae153263 /Alc/bformatdec.h | |
parent | 0135ddc2e5857e172fccd6ec635275eeae4ae869 (diff) |
Add an all-pass filter that replicates the band splitter's phase shift
Diffstat (limited to 'Alc/bformatdec.h')
-rw-r--r-- | Alc/bformatdec.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Alc/bformatdec.h b/Alc/bformatdec.h index 162f2652..8f44fc2a 100644 --- a/Alc/bformatdec.h +++ b/Alc/bformatdec.h @@ -60,4 +60,16 @@ void bandsplit_clear(BandSplitter *splitter); void bandsplit_process(BandSplitter *splitter, ALfloat *restrict hpout, ALfloat *restrict lpout, const ALfloat *input, ALsizei count); +/* The all-pass portion of the band splitter. Applies the same phase shift + * without splitting the signal. + */ +typedef struct SplitterAllpass { + ALfloat coeff; + ALfloat z1; +} SplitterAllpass; + +void splitterap_init(SplitterAllpass *splitter, ALfloat freq_mult); +void splitterap_clear(SplitterAllpass *splitter); +void splitterap_process(SplitterAllpass *splitter, ALfloat *restrict samples, ALsizei count); + #endif /* BFORMATDEC_H */ |