finalized bw_reverb + examples + fix bw_dry_wet + cosmetics
This commit is contained in:
parent
d5751c0c4c
commit
d890510d0f
11
TODO
11
TODO
@ -1,14 +1,8 @@
|
||||
1.0.0
|
||||
-----
|
||||
|
||||
in progress:
|
||||
* add initial state (x0) to reset state of all modules
|
||||
* check assumptions w.r.t. usage of math functions
|
||||
* empty functions etc. to keep consistency and forward compatibility
|
||||
* format declarations in a more readable way
|
||||
code:
|
||||
* synth(pp)_poly
|
||||
* IMPLEMENTATION prepocessor def???
|
||||
finally:
|
||||
* debugging - also check outputs different (incl bw_buf)
|
||||
* check all examples again
|
||||
* clearly specify that state is tied to a particular set of coeffs (1:N)
|
||||
@ -21,7 +15,7 @@ finally:
|
||||
* state that mem_set() can/must be called on uninitialized state (before reset_state)
|
||||
|
||||
build system:
|
||||
* single header generation (vs modules in bwp... to think about)
|
||||
* single header generation (vs modules in bwp... to think about)?
|
||||
|
||||
post 1.0.0
|
||||
----------
|
||||
@ -77,6 +71,7 @@ code:
|
||||
* bw_comb: should also modulate feedback?
|
||||
* bw_comb: integer target delay values?
|
||||
* are we sure about inlining everything?
|
||||
* reset style is not enough when you have feedbacks... (see reverb)
|
||||
|
||||
build system:
|
||||
* make makefiles handle paths with spaces etc
|
||||
|
@ -38,7 +38,8 @@ void bw_example_fx_reverb_mem_set(bw_example_fx_reverb *instance, void *mem) {
|
||||
|
||||
void bw_example_fx_reverb_reset(bw_example_fx_reverb *instance) {
|
||||
bw_reverb_reset_coeffs(&instance->reverb_coeffs);
|
||||
bw_reverb_reset_state(&instance->reverb_coeffs, &instance->reverb_state);
|
||||
float yl, yr;
|
||||
bw_reverb_reset_state(&instance->reverb_coeffs, &instance->reverb_state, 0.f, 0.f, &yl, &yr);
|
||||
}
|
||||
|
||||
void bw_example_fx_reverb_process(bw_example_fx_reverb *instance, const float** x, float** y, int n_samples) {
|
||||
|
@ -4,3 +4,6 @@ NAME := bw_example_fx_reverb
|
||||
SOURCE := bw_example_fx_reverb.c
|
||||
|
||||
include ${ROOT_DIR}/../../common/vst3/vst3.mk
|
||||
|
||||
CXXFLAGS += -DRELEASE=1 -DNDEBUG -DBW_NO_DEBUG
|
||||
#CXXFLAGS += -DDEVELOPMENT=1 -DBW_DEBUG_DEEP
|
||||
|
@ -4,3 +4,6 @@ NAME := bw_example_fxpp_reverb
|
||||
SOURCE := bw_example_fxpp_reverb.cpp
|
||||
|
||||
include ${ROOT_DIR}/../../common/vst3/vst3.mk
|
||||
|
||||
CXXFLAGS += -DRELEASE=1 -DNDEBUG -DBW_NO_DEBUG
|
||||
#CXXFLAGS += -DDEVELOPMENT=1 -DBW_DEBUG_DEEP
|
||||
|
@ -399,6 +399,7 @@ struct bw_chorus_state {
|
||||
enum bw_chorus_state_state state;
|
||||
uint32_t coeffs_reset_id;
|
||||
#endif
|
||||
|
||||
// Sub-components
|
||||
bw_comb_state comb_state;
|
||||
};
|
||||
@ -524,9 +525,9 @@ static inline float bw_chorus_reset_state(
|
||||
static inline void bw_chorus_reset_state_multi(
|
||||
const bw_chorus_coeffs * BW_RESTRICT coeffs,
|
||||
bw_chorus_state * BW_RESTRICT const * BW_RESTRICT state,
|
||||
const float * x_0,
|
||||
float * y_0,
|
||||
size_t n_channels) {
|
||||
const float * x_0,
|
||||
float * y_0,
|
||||
size_t n_channels) {
|
||||
BW_ASSERT(coeffs != NULL);
|
||||
BW_ASSERT_DEEP(bw_chorus_coeffs_is_valid(coeffs));
|
||||
BW_ASSERT_DEEP(coeffs->state >= bw_chorus_coeffs_state_reset_coeffs);
|
||||
|
@ -302,7 +302,7 @@ static inline float bw_dry_wet_process1(
|
||||
|
||||
BW_ASSERT_DEEP(bw_dry_wet_coeffs_is_valid(coeffs));
|
||||
BW_ASSERT_DEEP(coeffs->state >= bw_dry_wet_coeffs_state_reset_coeffs);
|
||||
BW_ASSERT(bw_is_finite(*y));
|
||||
BW_ASSERT(bw_is_finite(y));
|
||||
|
||||
return y;
|
||||
}
|
||||
@ -419,19 +419,6 @@ class DryWet {
|
||||
public:
|
||||
DryWet();
|
||||
|
||||
void setSampleRate(float sampleRate);
|
||||
void reset();
|
||||
void process(
|
||||
const float * const *x_dry,
|
||||
const float * const *x_wet,
|
||||
float * const *y,
|
||||
size_t nSamples);
|
||||
void process(
|
||||
std::array<const float *, N_CHANNELS> x_dry,
|
||||
std::array<const float *, N_CHANNELS> x_wet,
|
||||
std::array<float *, N_CHANNELS> y,
|
||||
size_t nSamples);
|
||||
|
||||
void setSampleRate(
|
||||
float sampleRate);
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user