diff --git a/include/bw_hs1.h b/include/bw_hs1.h index 3c41cd0..818f55a 100644 --- a/include/bw_hs1.h +++ b/include/bw_hs1.h @@ -29,6 +29,9 @@ *
bw_hs1_reset_state*()
and clarified
+ * documentation.bw_hs1_process()
to
* bw_hs1_process_multi()
.bw_hs1_process_multi()
to
@@ -226,10 +229,9 @@ static inline void bw_hs1_set_cutoff(
*
* `value` must be finite and positive.
*
- * By the time `bw_hs1_reset_coeffs()`, `bw_hs1_update_coeffs_ctrl()`,
- * `bw_hs1_update_coeffs_audio()`, `bw_hs1_process1()`, `bw_hs1_process()`,
- * or `bw_hs1_process_multi()` is called, `cutoff * bw_sqrtf(high_gain)` must
- * be in [`1e-6f`, `1e12f`].
+ * By the time `bw_hs1_reset_\*()`, `bw_hs1_update_coeffs_\*()`, or
+ * `bw_hs1_process\*()` is called, `cutoff * bw_sqrtf(high_gain)` must be in
+ * [`1e-6f`, `1e12f`].
*
* Default value: `1e3f`.
*
@@ -270,10 +272,9 @@ static inline void bw_hs1_set_high_gain_lin(
*
* Valid range: [`1e-30f`, `1e30f`].
*
- * By the time `bw_hs1_reset_coeffs()`, `bw_hs1_update_coeffs_ctrl()`,
- * `bw_hs1_update_coeffs_audio()`, `bw_hs1_process1()`, `bw_hs1_process()`,
- * or `bw_hs1_process_multi()` is called, `cutoff * bw_sqrtf(high_gain)` must
- * be in [`1e-6f`, `1e12f`].
+ * By the time `bw_hs1_reset_\*()`, `bw_hs1_update_coeffs_\*()`, or
+ * `bw_hs1_process\*()` is called, `cutoff * bw_sqrtf(high_gain)` must be in
+ * [`1e-6f`, `1e12f`].
*
* Default value: `1.f`.
*
@@ -288,10 +289,9 @@ static inline void bw_hs1_set_high_gain_dB(
*
* Valid range: [`-600.f`, `600.f`].
*
- * By the time `bw_hs1_reset_coeffs()`, `bw_hs1_update_coeffs_ctrl()`,
- * `bw_hs1_update_coeffs_audio()`, `bw_hs1_process1()`, `bw_hs1_process()`,
- * or `bw_hs1_process_multi()` is called, `cutoff * bw_sqrtf(high_gain)` must
- * be in [`1e-6f`, `1e12f`].
+ * By the time `bw_hs1_reset_\*()`, `bw_hs1_update_coeffs_\*()`, or
+ * `bw_hs1_process\*()` is called, `cutoff * bw_sqrtf(high_gain)` must be in
+ * [`1e-6f`, `1e12f`].
*
* Default value: `0.f`.
*
@@ -453,6 +453,7 @@ static inline float bw_hs1_reset_state(
BW_ASSERT(coeffs != BW_NULL);
BW_ASSERT_DEEP(bw_hs1_coeffs_is_valid(coeffs));
BW_ASSERT_DEEP(coeffs->state >= bw_hs1_coeffs_state_reset_coeffs);
+ BW_ASSERT_DEEP(coeffs->cutoff * bw_sqrtf(coeffs->high_gain) >= 1e-6f && coeffs->cutoff * bw_sqrtf(coeffs->high_gain) <= 1e12f);
BW_ASSERT(state != BW_NULL);
BW_ASSERT(bw_is_finite(x_0));
@@ -479,6 +480,7 @@ static inline void bw_hs1_reset_state_multi(
BW_ASSERT(coeffs != BW_NULL);
BW_ASSERT_DEEP(bw_hs1_coeffs_is_valid(coeffs));
BW_ASSERT_DEEP(coeffs->state >= bw_hs1_coeffs_state_reset_coeffs);
+ BW_ASSERT_DEEP(coeffs->cutoff * bw_sqrtf(coeffs->high_gain) >= 1e-6f && coeffs->cutoff * bw_sqrtf(coeffs->high_gain) <= 1e12f);
BW_ASSERT(state != BW_NULL);
#ifndef BW_NO_DEBUG
for (size_t i = 0; i < n_channels; i++)
diff --git a/include/bw_hs2.h b/include/bw_hs2.h
index 48653e9..cc721c6 100644
--- a/include/bw_hs2.h
+++ b/include/bw_hs2.h
@@ -29,6 +29,9 @@
* bw_hs2_reset_state*()
and clarified
+ * documentation.bw_hs2_process()
to
* bw_hs2_process_multi()
.bw_hs2_process_multi()
to
@@ -230,10 +233,9 @@ static inline void bw_hs2_set_cutoff(
*
* `value` must be finite and positive.
*
- * By the time `bw_hs2_reset_coeffs()`, `bw_hs2_update_coeffs_ctrl()`,
- * `bw_hs2_update_coeffs_audio()`, `bw_hs2_process1()`, `bw_hs2_process()`,
- * or `bw_hs2_process_multi()` is called,
- * `cutoff * bw_sqrtf(bw_sqrtf(high_gain))` must be in [`1e-6f`, `1e12f`].
+ * By the time `bw_hs2_reset_\*()`, `bw_hs2_update_coeffs_\*()`, or
+ * `bw_hs2_process\*()` is called, `cutoff * bw_sqrtf(bw_sqrtf(high_gain))`
+ * must be in [`1e-6f`, `1e12f`].
*
* Default value: `1e3f`.
*
@@ -286,10 +288,9 @@ static inline void bw_hs2_set_high_gain_lin(
*
* Valid range: [`1e-30f`, `1e30f`].
*
- * By the time `bw_hs2_reset_coeffs()`, `bw_hs2_update_coeffs_ctrl()`,
- * `bw_hs2_update_coeffs_audio()`, `bw_hs2_process1()`, `bw_hs2_process()`,
- * or `bw_hs2_process_multi()` is called,
- * `cutoff * bw_sqrtf(bw_sqrtf(high_gain))` must be in [`1e-6f`, `1e12f`].
+ * By the time `bw_hs2_reset_\*()`, `bw_hs2_update_coeffs_\*()`, or
+ * `bw_hs2_process\*()` is called, `cutoff * bw_sqrtf(bw_sqrtf(high_gain))`
+ * must be in [`1e-6f`, `1e12f`].
*
* Default value: `1.f`.
*
@@ -304,10 +305,9 @@ static inline void bw_hs2_set_high_gain_dB(
*
* Valid range: [`-600.f`, `600.f`].
*
- * By the time `bw_hs2_reset_coeffs()`, `bw_hs2_update_coeffs_ctrl()`,
- * `bw_hs2_update_coeffs_audio()`, `bw_hs2_process1()`, `bw_hs2_process()`,
- * or `bw_hs2_process_multi()` is called,
- * `cutoff * bw_sqrtf(bw_sqrtf(high_gain))` must be in [`1e-6f`, `1e12f`].
+ * By the time `bw_hs2_reset_\*()`, `bw_hs2_update_coeffs_\*()`, or
+ * `bw_hs2_process\*()` is called, `cutoff * bw_sqrtf(bw_sqrtf(high_gain))`
+ * must be in [`1e-6f`, `1e12f`].
*
* Default value: `0.f`.
*
@@ -481,6 +481,7 @@ static inline float bw_hs2_reset_state(
BW_ASSERT(coeffs != BW_NULL);
BW_ASSERT_DEEP(bw_hs2_coeffs_is_valid(coeffs));
BW_ASSERT_DEEP(coeffs->state >= bw_hs2_coeffs_state_reset_coeffs);
+ BW_ASSERT_DEEP(coeffs->cutoff * bw_sqrtf(bw_sqrtf(coeffs->high_gain)) >= 1e-6f && coeffs->cutoff * bw_sqrtf(bw_sqrtf(coeffs->high_gain)) <= 1e12f);
BW_ASSERT(state != BW_NULL);
BW_ASSERT(bw_is_finite(x_0));
@@ -507,6 +508,7 @@ static inline void bw_hs2_reset_state_multi(
BW_ASSERT(coeffs != BW_NULL);
BW_ASSERT_DEEP(bw_hs2_coeffs_is_valid(coeffs));
BW_ASSERT_DEEP(coeffs->state >= bw_hs2_coeffs_state_reset_coeffs);
+ BW_ASSERT_DEEP(coeffs->cutoff * bw_sqrtf(bw_sqrtf(coeffs->high_gain)) >= 1e-6f && coeffs->cutoff * bw_sqrtf(bw_sqrtf(coeffs->high_gain)) <= 1e12f);
BW_ASSERT(state != BW_NULL);
#ifndef BW_NO_DEBUG
for (size_t i = 0; i < n_channels; i++)
diff --git a/include/bw_ls1.h b/include/bw_ls1.h
index 043321e..f7f6c14 100644
--- a/include/bw_ls1.h
+++ b/include/bw_ls1.h
@@ -30,6 +30,9 @@
* bw_ls1_reset_state*()
and clarified
+ * documentation.bw_ls1_process()
to
* bw_ls1_process_multi()
.bw_ls1_process_multi()
to
@@ -227,10 +230,9 @@ static inline void bw_ls1_set_cutoff(
*
* `value` must be finite and positive.
*
- * By the time `bw_ls1_reset_coeffs()`, `bw_ls1_update_coeffs_ctrl()`,
- * `bw_ls1_update_coeffs_audio()`, `bw_ls1_process1()`, `bw_ls1_process()`,
- * or `bw_ls1_process_multi()` is called,
- * `cutoff * bw_rcpf(bw_sqrtf(dc_gain))` must be in [`1e-6f`, `1e12f`].
+ * By the time `bw_ls1_reset_\*()`, `bw_ls1_update_coeffs_\*()`, or
+ * `bw_ls1_process\*()` is called, `cutoff * bw_rcpf(bw_sqrtf(dc_gain))`
+ * must be in [`1e-6f`, `1e12f`].
*
* Default value: `1e3f`.
*
@@ -270,10 +272,9 @@ static inline void bw_ls1_set_dc_gain_lin(
*
* Valid range: [`1e-30f`, `1e30f`].
*
- * By the time `bw_ls1_reset_coeffs()`, `bw_ls1_update_coeffs_ctrl()`,
- * `bw_ls1_update_coeffs_audio()`, `bw_ls1_process1()`, `bw_ls1_process()`,
- * or `bw_ls1_process_multi()` is called,
- * `cutoff * bw_rcpf(bw_sqrtf(dc_gain))` must be in [`1e-6f`, `1e12f`].
+ * By the time `bw_ls1_reset_\*()`, `bw_ls1_update_coeffs_\*()`, or
+ * `bw_ls1_process\*()` is called, `cutoff * bw_rcpf(bw_sqrtf(dc_gain))`
+ * must be in [`1e-6f`, `1e12f`].
*
* Default value: `1.f`.
*
@@ -287,10 +288,9 @@ static inline void bw_ls1_set_dc_gain_dB(
*
* Valid range: [`-600.f`, `600.f`].
*
- * By the time `bw_ls1_reset_coeffs()`, `bw_ls1_update_coeffs_ctrl()`,
- * `bw_ls1_update_coeffs_audio()`, `bw_ls1_process1()`, `bw_ls1_process()`,
- * or `bw_ls1_process_multi()` is called,
- * `cutoff * bw_rcpf(bw_sqrtf(dc_gain))` must be in [`1e-6f`, `1e12f`].
+ * By the time `bw_ls1_reset_\*()`, `bw_ls1_update_coeffs_\*()`, or
+ * `bw_ls1_process\*()` is called, `cutoff * bw_rcpf(bw_sqrtf(dc_gain))`
+ * must be in [`1e-6f`, `1e12f`].
*
* Default value: `0.f`.
*
@@ -451,6 +451,7 @@ static inline float bw_ls1_reset_state(
BW_ASSERT(coeffs != BW_NULL);
BW_ASSERT_DEEP(bw_ls1_coeffs_is_valid(coeffs));
BW_ASSERT_DEEP(coeffs->state >= bw_ls1_coeffs_state_reset_coeffs);
+ BW_ASSERT_DEEP(coeffs->cutoff * bw_rcpf(bw_sqrtf(coeffs->dc_gain)) >= 1e-6f && coeffs->cutoff * bw_rcpf(bw_sqrtf(coeffs->dc_gain)) <= 1e12f);
BW_ASSERT(state != BW_NULL);
BW_ASSERT(bw_is_finite(x_0));
@@ -477,6 +478,7 @@ static inline void bw_ls1_reset_state_multi(
BW_ASSERT(coeffs != BW_NULL);
BW_ASSERT_DEEP(bw_ls1_coeffs_is_valid(coeffs));
BW_ASSERT_DEEP(coeffs->state >= bw_ls1_coeffs_state_reset_coeffs);
+ BW_ASSERT_DEEP(coeffs->cutoff * bw_rcpf(bw_sqrtf(coeffs->dc_gain)) >= 1e-6f && coeffs->cutoff * bw_rcpf(bw_sqrtf(coeffs->dc_gain)) <= 1e12f);
BW_ASSERT(state != BW_NULL);
#ifndef BW_NO_DEBUG
for (size_t i = 0; i < n_channels; i++)
diff --git a/include/bw_ls2.h b/include/bw_ls2.h
index 20fc178..ab82c9a 100644
--- a/include/bw_ls2.h
+++ b/include/bw_ls2.h
@@ -30,6 +30,9 @@
* bw_ls2_reset_state*()
and clarified
+ * documentation.bw_ls2_process()
to
* bw_ls2_process_multi()
.bw_ls2_process_multi()
to
@@ -235,9 +238,8 @@ static inline void bw_ls2_set_cutoff(
*
* `value` must be finite and positive.
*
- * By the time `bw_ls2_reset_coeffs()`, `bw_ls2_update_coeffs_ctrl()`,
- * `bw_ls2_update_coeffs_audio()`, `bw_ls2_process1()`, `bw_ls2_process()`,
- * or `bw_ls2_process_multi()` is called,
+ * By the time `bw_ls2_reset_\*()`, `bw_ls2_update_coeffs_\*()`, or
+ * `bw_ls2_process\*()` is called,
* `cutoff * bw_rcpf(bw_sqrtf(bw_sqrtf(dc_gain)))` must be in [`1e-6f`,
* `1e12f`].
*
@@ -291,9 +293,8 @@ static inline void bw_ls2_set_dc_gain_lin(
*
* Valid range: [`1e-30f`, `1e30f`].
*
- * By the time `bw_ls2_reset_coeffs()`, `bw_ls2_update_coeffs_ctrl()`,
- * `bw_ls2_update_coeffs_audio()`, `bw_ls2_process1()`, `bw_ls2_process()`,
- * or `bw_ls2_process_multi()` is called,
+ * By the time `bw_ls2_reset_\*()`, `bw_ls2_update_coeffs_\*()`, or
+ * `bw_ls2_process\*()` is called,
* `cutoff * bw_rcpf(bw_sqrtf(bw_sqrtf(dc_gain)))` must be in [`1e-6f`,
* `1e12f`].
*
@@ -309,9 +310,8 @@ static inline void bw_ls2_set_dc_gain_dB(
*
* Valid range: [`-600.f`, `600.f`].
*
- * By the time `bw_ls2_reset_coeffs()`, `bw_ls2_update_coeffs_ctrl()`,
- * `bw_ls2_update_coeffs_audio()`, `bw_ls2_process1()`, `bw_ls2_process()`,
- * or `bw_ls2_process_multi()` is called,
+ * By the time `bw_ls2_reset_\*()`, `bw_ls2_update_coeffs_\*()`, or
+ * `bw_ls2_process\*()` is called,
* `cutoff * bw_rcpf(bw_sqrtf(bw_sqrtf(dc_gain)))` must be in [`1e-6f`,
* `1e12f`].
*
@@ -487,6 +487,7 @@ static inline float bw_ls2_reset_state(
BW_ASSERT(coeffs != BW_NULL);
BW_ASSERT_DEEP(bw_ls2_coeffs_is_valid(coeffs));
BW_ASSERT_DEEP(coeffs->state >= bw_ls2_coeffs_state_reset_coeffs);
+ BW_ASSERT_DEEP(coeffs->cutoff * bw_rcpf(bw_sqrtf(bw_sqrtf(coeffs->dc_gain))) >= 1e-6f && coeffs->cutoff * bw_rcpf(bw_sqrtf(bw_sqrtf(coeffs->dc_gain))) <= 1e12f);
BW_ASSERT(state != BW_NULL);
BW_ASSERT(bw_is_finite(x_0));
@@ -513,6 +514,7 @@ static inline void bw_ls2_reset_state_multi(
BW_ASSERT(coeffs != BW_NULL);
BW_ASSERT_DEEP(bw_ls2_coeffs_is_valid(coeffs));
BW_ASSERT_DEEP(coeffs->state >= bw_ls2_coeffs_state_reset_coeffs);
+ BW_ASSERT_DEEP(coeffs->cutoff * bw_rcpf(bw_sqrtf(bw_sqrtf(coeffs->dc_gain))) >= 1e-6f && coeffs->cutoff * bw_rcpf(bw_sqrtf(bw_sqrtf(coeffs->dc_gain))) <= 1e12f);
BW_ASSERT(state != BW_NULL);
#ifndef BW_NO_DEBUG
for (size_t i = 0; i < n_channels; i++)
diff --git a/include/bw_peak.h b/include/bw_peak.h
index a276128..424206e 100644
--- a/include/bw_peak.h
+++ b/include/bw_peak.h
@@ -37,6 +37,9 @@
* bw_peak_reset_state*()
and clarified
+ * documentation.bw_peak_process()
to
* bw_peak_process_multi()
.bw_peak_process_multi()
@@ -290,9 +293,8 @@ static inline void bw_peak_set_peak_gain_lin(
* Valid range: [`1e-30f`, `1e30f`].
*
* If actually using the bandwidth parameter to control Q, by the time
- * `bw_peak_reset_coeffs()`, `bw_peak_update_coeffs_ctrl()`,
- * `bw_peak_update_coeffs_audio()`, `bw_peak_process1()`,
- * `bw_peak_process()`, or `bw_peak_process_multi()` is called,
+ * `bw_peak_reset_\*()`, `bw_peak_update_coeffs_\*()`, or
+ * `bw_peak_process\*()`, is called,
* `bw_sqrtf(bw_pow2f(bandwidth) * peak_gain) *
* bw_rcpf(bw_pow2f(bandwidth) - 1.f)` must be in [`1e-6f`, `1e6f`].
*
@@ -309,9 +311,8 @@ static inline void bw_peak_set_peak_gain_dB(
* Valid range: [`-600.f`, `600.f`].
*
* If actually using the bandwidth parameter to control Q, by the time
- * `bw_peak_reset_coeffs()`, `bw_peak_update_coeffs_ctrl()`,
- * `bw_peak_update_coeffs_audio()`, `bw_peak_process1()`,
- * `bw_peak_process()`, or `bw_peak_process_multi()` is called,
+ * `bw_peak_reset_\*()`, `bw_peak_update_coeffs_\*()`, or
+ * `bw_peak_process\*()`, is called,
* `bw_sqrtf(bw_pow2f(bandwidth) * peak_gain) *
* bw_rcpf(bw_pow2f(bandwidth) - 1.f)` must be in [`1e-6f`, `1e6f`].
*
@@ -328,9 +329,8 @@ static inline void bw_peak_set_bandwidth(
* Valid range: [`1e-6f`, `90.f`].
*
* If actually using the bandwidth parameter to control Q, by the time
- * `bw_peak_reset_coeffs()`, `bw_peak_update_coeffs_ctrl()`,
- * `bw_peak_update_coeffs_audio()`, `bw_peak_process1()`,
- * `bw_peak_process()`, or `bw_peak_process_multi()` is called,
+ * `bw_peak_reset_\*()`, `bw_peak_update_coeffs_\*()`, or
+ * `bw_peak_process\*()`, is called,
* `bw_sqrtf(bw_pow2f(bandwidth) * peak_gain) *
* bw_rcpf(bw_pow2f(bandwidth) - 1.f)` must be in [`1e-6f`, `1e6f`].
*
@@ -525,6 +525,10 @@ static inline float bw_peak_reset_state(
BW_ASSERT(coeffs != BW_NULL);
BW_ASSERT_DEEP(bw_peak_coeffs_is_valid(coeffs));
BW_ASSERT_DEEP(coeffs->state >= bw_peak_coeffs_state_reset_coeffs);
+ BW_ASSERT_DEEP(coeffs->use_bandwidth
+ ? bw_sqrtf(bw_pow2f(coeffs->bandwidth) * coeffs->peak_gain) * bw_rcpf(bw_pow2f(coeffs->bandwidth) - 1.f) >= 1e-6f
+ && bw_sqrtf(bw_pow2f(coeffs->bandwidth) * coeffs->peak_gain) * bw_rcpf(bw_pow2f(coeffs->bandwidth) - 1.f) <= 1e6f
+ : 1);
BW_ASSERT(state != BW_NULL);
BW_ASSERT(bw_is_finite(x_0));
@@ -551,6 +555,10 @@ static inline void bw_peak_reset_state_multi(
BW_ASSERT(coeffs != BW_NULL);
BW_ASSERT_DEEP(bw_peak_coeffs_is_valid(coeffs));
BW_ASSERT_DEEP(coeffs->state >= bw_peak_coeffs_state_reset_coeffs);
+ BW_ASSERT_DEEP(coeffs->use_bandwidth
+ ? bw_sqrtf(bw_pow2f(coeffs->bandwidth) * coeffs->peak_gain) * bw_rcpf(bw_pow2f(coeffs->bandwidth) - 1.f) >= 1e-6f
+ && bw_sqrtf(bw_pow2f(coeffs->bandwidth) * coeffs->peak_gain) * bw_rcpf(bw_pow2f(coeffs->bandwidth) - 1.f) <= 1e6f
+ : 1);
BW_ASSERT(state != BW_NULL);
#ifndef BW_NO_DEBUG
for (size_t i = 0; i < n_channels; i++)
diff --git a/include/bw_phaser.h b/include/bw_phaser.h
index 3aa7c61..3d8e9a7 100644
--- a/include/bw_phaser.h
+++ b/include/bw_phaser.h
@@ -32,6 +32,9 @@
* bw_phaser_reset_state*()
and clarified
+ * documentation.bw_phaser_process()
to
* bw_phaser_process_multi()
.bw_phaser_process_multi()
@@ -236,10 +239,9 @@ static inline void bw_phaser_set_center(
*
* Valid range: [`1e-6f`, `1e12f`].
*
- * By the time `bw_phaser_reset_coeffs()`, `bw_phaser_update_coeffs_ctrl()`,
- * `bw_phaser_update_coeffs_audio()`, `bw_phaser_process1()`,
- * `bw_phaser_process()`, or `bw_phaser_process_multi()` is called,
- * `center * bw_pow2f(amount)` must be in [`1e-6f`, `1e12f`].
+ * By the time `bw_phaser_reset_\*()`, `bw_phaser_update_coeffs_\*()`, or
+ * `bw_phaser_process\*()` is called, `center * bw_pow2f(amount)` must be in
+ * [`1e-6f`, `1e12f`].
*
* Default value: `1e3f`.
*
@@ -253,10 +255,9 @@ static inline void bw_phaser_set_amount(
*
* `value` must be finite and non-negative.
*
- * By the time `bw_phaser_reset_coeffs()`, `bw_phaser_update_coeffs_ctrl()`,
- * `bw_phaser_update_coeffs_audio()`, `bw_phaser_process1()`,
- * `bw_phaser_process()`, or `bw_phaser_process_multi()` is called,
- * `center * bw_pow2f(amount)` must be in [`1e-6f`, `1e12f`].
+ * By the time `bw_phaser_reset_\*()`, `bw_phaser_update_coeffs_\*()`, or
+ * `bw_phaser_process\*()` is called, `center * bw_pow2f(amount)` must be in
+ * [`1e-6f`, `1e12f`].
*
* Default value: `1.f`.
*
@@ -407,6 +408,7 @@ static inline float bw_phaser_reset_state(
BW_ASSERT(coeffs != BW_NULL);
BW_ASSERT_DEEP(bw_phaser_coeffs_is_valid(coeffs));
BW_ASSERT_DEEP(coeffs->state >= bw_phaser_coeffs_state_reset_coeffs);
+ BW_ASSERT_DEEP(coeffs->center * bw_pow2f(coeffs->amount) >= 1e-6f && coeffs->center * bw_pow2f(coeffs->amount) <= 1e12f);
BW_ASSERT(state != BW_NULL);
BW_ASSERT(bw_is_finite(x_0));
@@ -436,6 +438,7 @@ static inline void bw_phaser_reset_state_multi(
BW_ASSERT(coeffs != BW_NULL);
BW_ASSERT_DEEP(bw_phaser_coeffs_is_valid(coeffs));
BW_ASSERT_DEEP(coeffs->state >= bw_phaser_coeffs_state_reset_coeffs);
+ BW_ASSERT_DEEP(coeffs->center * bw_pow2f(coeffs->amount) >= 1e-6f && coeffs->center * bw_pow2f(coeffs->amount) <= 1e12f);
BW_ASSERT(state != BW_NULL);
#ifndef BW_NO_DEBUG
for (size_t i = 0; i < n_channels; i++)