250 lines
13 KiB
Plaintext
250 lines
13 KiB
Plaintext
1.1.0
|
|
-----
|
|
* Added new bw_cab module.
|
|
* Added new fx_cab and fxpp_cab examples.
|
|
* Added skip_sustain and always_reach_sustain parameters to bw_env_gen.
|
|
* Added silence_dc parameter to bw_bd_reduce.
|
|
* Added BW_NULL definition in bw_common and used it throughout the entire
|
|
codebase.
|
|
* Added BW_CXX_NO_ARRAY to control the inclusion of features depending on
|
|
C++ <array>.
|
|
* Relaxed sidechain APIs in bw_comp and bw_noise_gate to accept BW_NULL to
|
|
represent null sidechain inputs.
|
|
* Added setThreshLin() and setThreshDb() methods to the C++ APIs of bw_comp
|
|
and bw_noise_gate to fix naming typos without breaking the API.
|
|
* Reworked all example code and added LV2, command line application, and
|
|
C++/WebAssembly targets.
|
|
* Fixed gain compensation in bw_satur_process_multi().
|
|
* Fixed rounding bug in bw_phase_gen when frequency is tiny and negative.
|
|
* Fixed smoothing of decay parameter in bw_reverb.
|
|
* Fixed computation of initial states in bw_mm1 and bw_mm2.
|
|
* Fixed sign-related issues in bw_hash_sdbm(), bw_truncf(), bw_roundf(), and
|
|
bw_sqrtf() (thanks Kevin Molcard).
|
|
* Replace GCC pragmas to suppress uninitalized variable warnings with
|
|
useless harmless statements in bw_env_gen, bw_hs2, bw_ls2, bw_one_pole, and
|
|
bw_peak.
|
|
* Fixed documentation typos in bw_ls2.
|
|
* Updated examples' documentation.
|
|
|
|
1.0.0
|
|
-----
|
|
* Removed C++ headers and moved C++ code to now-unique C/C++ headers.
|
|
* Added extern "C" linkage specifier to C functions declarations and
|
|
definitions.
|
|
* Added bw_*_reset_state_multi() and updated C++ APIs in this regard.
|
|
* Now bw_*_reset_state() take initial input values and return initial output
|
|
values.
|
|
* Added more const and BW_RESTRICT specifiers to input arguments.
|
|
* Added overloaded C++ functions taking C-style arrays as arguments.
|
|
* Added debugging code to all modules and improved existing debugging code.
|
|
* Removed usage of reserved identifiers and designated initializers.
|
|
* Now using size_t rather than BW_SIZE_T and for counting items.
|
|
* Improved documentation w.r.t. validity of input values and approximation
|
|
errors.
|
|
* Added pragmas to silence bogus GCC uninitialized variable warnings.
|
|
* Made control over inclusion of standard library headers more explicit via
|
|
specific preprocessor definitions.
|
|
* Introduced BW_NO_DEBUG and prevented useless inclusion of assert.h.
|
|
* Changed order of arguments to improve consistency in bw_buf.
|
|
* Renamed bw_min0xf() as bw_min0f() and bw_max0xf() as bw_max0f().
|
|
* Removed precision suffixes from function names in bw_math.
|
|
* New implementations for bw_min0f(), bw_max0f(), bw_minf(), bw_maxf(), and
|
|
bw_clipf().
|
|
* Fixed rounding bug in bw_roundf() when absolute value of input was in [0.5f,
|
|
1.f].
|
|
* Fixed bw_ceilf() for negative input values.
|
|
* Fixed bw_sqrtf() for very large input values and improved implementation.
|
|
* Fixed input validity ranges in bw_asinhf() and bw_acoshf().
|
|
* Removed redundant status member from bw_note_queue_event.
|
|
* Possibly improved memeory layout of bw_note_queue.
|
|
* Clarified ambiguity in the documentation of bw_note_queue_status.
|
|
* Specified that velocity can be negative in bw_voice_alloc_opts.
|
|
* Fixed output polarity in bw_ap1.
|
|
* Added bw_bd_reduce_set_sample_rate().
|
|
* Changed default value for gain compensation to off in bw_clip.
|
|
* Fixed missing smoothing filter initialization in bw_comp.
|
|
* Fixed missing forced coefficients' update in bw_comp_reset_coeffs().
|
|
* Improved and strengthened algorithm in bw_comp.
|
|
* Removed read() and write() from C++ API in bw_delay.
|
|
* Adjusted internal peak cutoff to more sensible value in bw_dist.
|
|
* Improved algorithm to be a bit more faithful to the original in bw_drive.
|
|
* bw_drywet renamed as bw_dry_wet.
|
|
* Renamed bw_env_gen_update_state_ctrl() as bw_env_gen_process_ctrl().
|
|
* Faster and more robust implementation in bw_env_gen.
|
|
* Improved algorithm to be a bit more faithful to the original in bw_fuzz.
|
|
* Added bw_gain_get_gain_lin().
|
|
* Renamed bw_gain_get_gain() as bw_gain_get_gain_cur().
|
|
* Simplified implementation to use less memory in bw_gain.
|
|
* Added prewarp_at_cutoff and prewarp_freq parameters in bw_ap1, bw_ap2,
|
|
bw_hp1, bw_hs1, bw_ls1, bw_ls2, bw_notch, and bw_peak.
|
|
* Fixed documentation to indicate correct default parameter values in bw_hs1,
|
|
bw_hs2, bw_ls1, bw_ls2, bw_notch, and bw_peak.
|
|
* Fixed bug when setting default parameter values in bw_hs1_init().
|
|
* Limited actual prewarping frequency to prevent instability in bw_lp1.
|
|
* Fixed missing smoothing filter initialization in bw_noise_gate.
|
|
* Fixed missing forced coefficients' update in bw_noise_gate_reset_coeffs().
|
|
* Added bw_noise_gen_reset_coeffs(), bw_noise_gen_update_coeffs_ctrl(), and
|
|
bw_noise_gen_update_coeffs_audio().
|
|
* Improved and strengthened algorithm in bw_noise_gate.
|
|
* Now using backward Euler rather than impulse invariant method in
|
|
bw_one_pole.
|
|
* Added coeffs argument to bw_one_pole_state_is_valid().
|
|
* Changed implementation topology to use less memory in bw_osc_filt.
|
|
* Now antialiasing should work also with negative input increments in
|
|
bw_osc_pulse, bw_osc_saw, and bw_osc_tri.
|
|
* Clearly specified validity ranges for audio-rate signals in bw_osc_pulse,
|
|
bw_osc_saw, bw_osc_sin, and bw_osc_tri.
|
|
* Added bw_osc_saw_set_sample_rate(), bw_osc_saw_reset_coeffs(),
|
|
bw_osc_saw_update_coeffs_ctrl(), and bw_osc_saw_update_coeffs_audio().
|
|
* Now using parabolic curves instead of trigonometric ones in bw_pan.
|
|
* Fixed smoothing coefficients update in bw_phase_gen_reset_coeffs().
|
|
* Removed internal limits on cutoff frequency in bw_phaser.
|
|
* Added bw_pink_filt_reset_coeffs(), bw_pink_filt_update_coeffs_ctrl(), and
|
|
bw_pink_filt_update_coeffs_audio().
|
|
* Fixed type of coefficient in bw_pink_filt_process1().
|
|
* Enforced minimum output value -600.f in bw_ppm.
|
|
* bw_ringmod renamed as bw_ring_mod.
|
|
* Fixed inverted-polarity modulation (for real this time) in bw_ring_mod.
|
|
* Changed default value for gain compensation to off in bw_satur.
|
|
* Added bw_slew_lim_process1_none().
|
|
* Fixed setting of default parameter values in bw_slew_lim_init().
|
|
* Fixed documentation of bw_slew_lim_update_coeffs_audio().
|
|
* Added bw_sr_reduce_set_sample_rate(), bw_sr_reduce_reset_coeffs(),
|
|
bw_sr_reduce_update_coeffs_ctrl(), and bw_sr_reduce_update_coeffs_audio().
|
|
* Removed useless computation when upsampling in bw_src.
|
|
* Clarified when the same buffers cannot be used for both input and output in
|
|
bw_src and bw_src_int.
|
|
* Fixed frequency response and improved speed in bw_src_int.
|
|
* Changed model to get positive polarity at the bandpass output in bw_svf.
|
|
* Limited actual prewarping frequency to prevent instability in bw_svf.
|
|
* Adjusted examples accordingly to changes.
|
|
|
|
0.6.0
|
|
-----
|
|
* Added support and examples for Android and iOS.
|
|
* Added debugging definitions and related new functions in bw_common.
|
|
* Added debugging code to bw_buf, bw_math, bw_note_queue, bw_rand, and
|
|
bw_voice_alloc, and also partly to bw_one_pole.
|
|
* Removed bw_config module.
|
|
* Removed bw_omega_3log() and bw_omega_3lognr() from bw_math.
|
|
* bw_one_pole_process*() now use BW_SIZE_T to count samples and channels.
|
|
* bw_voice_alloc() now uses BW_SIZE_T to count voices.
|
|
* Fixed bugs in bw_pow10f_3() and bw_acoshf_3().
|
|
* Fixed bug when using very high cutoff values in bw_one_pole.
|
|
* Fixed bug when signal level is extremely low in bw_ppm.
|
|
* Fixed harmless compiler warning in bw_randu32().
|
|
* Fixed number of channels in fx_reverb.
|
|
* Fixed (unused) note velocity in synth_poly and synthpp_poly.
|
|
|
|
0.5.0
|
|
-----
|
|
* Added new bw_fuzz, bw_clip, bw_dist, bw_drive, bw_drywet, bw_reverb,
|
|
bw_note_queue, and bw_voice_alloc modules.
|
|
* Added new fx_fuzz, fx_clip, fx_dist, fx_drive, fx_reverb, synth_poly,
|
|
fx_lp1, fx_one_pole, and fx_slew_lim examples.
|
|
* Added C++ wrappers for all dsp modules and for bw_buf.
|
|
* Added new corresponding C++ examples for each C example.
|
|
* Added multichannel API to all dsp modules and to bw_buf.
|
|
* Added new bw_buf_neg() routine to bw_buf.
|
|
* Added new bw_gain_get_gain() function to bw_gain.
|
|
* Changed mem_req/set API in bw_delay, bw_comb, bw_chorus, bw_reverb.
|
|
* Turned gate parameter into a control-rate input in bw_env_gen.
|
|
* bw_balance_process() and bw_pan_process() do not accept NULL buffers
|
|
anymore.
|
|
* Made VST3 and web examples' common code stricter and more redundant w.r.t.
|
|
memory usage and finalization.
|
|
* Fixed bug in bw_svf_process() occurring when only y_hp was NULL.
|
|
* Fixed prewarping-related instability bug in bw_svf.
|
|
* Fixed inverted-polarity modulation in bw_ringmod.
|
|
* Fixed coefficients' reset in bw_phaser and bw_chorus.
|
|
* Fixed initial conditions in bw_satur.
|
|
* Fixed unused variable warnings in VST3 and Daisy Seed examples' common code.
|
|
* Fixed unused variable warnings in bw_slew_lim.
|
|
* Fixed left shift of negative value warnings in bw_math.
|
|
* Fixed typos in the documentaion of bw_peak, bw_comp, bw_osc_tri,
|
|
bw_ringmod, bw_balance, bw_slew_lim, and bw_common.
|
|
* Fixed code tags and heading levels in documentation of several modules.
|
|
* Fixed setting of default parameter values in synth_simple and synth_mono.
|
|
* Updated examples to use multichannel APIs where possible.
|
|
* Removed useless random state from synth_simple.
|
|
* Now forcing minimum attack and release times for VCAs of synth examples.
|
|
* Build system updated to emit as many compilation warnings as possible.
|
|
|
|
0.4.0
|
|
-----
|
|
* Added new bw_ringmod, bw_trem, bw_phaser, bw_delay, bw_src_int, bw_src,
|
|
bw_comb, and bw_chorus modules.
|
|
* Added new fx_ringmod, fx_trem, fx_phaser, fx_delay, fx_comb, fx_chorus,
|
|
fx_vibrato, and fx_flanger examples.
|
|
* Added MIDI over UART support for example synthesizers running on the Daisy
|
|
Seed platform.
|
|
* Added new bw_buf_add() and bw_buf_fill() routines to bw_buf.
|
|
* Added new bw_ceilf(), bw_intfracf(), bw_sinhf_3(), bw_coshf_3(),
|
|
bw_asinhf_3(), and bw_acoshf_3() math routines.
|
|
* Added BW_SIZE_T definition to bw_common.
|
|
* Added initial value parameters to bw_*_reset_state() in
|
|
bw_{lp1,ap1,hp1,hs1,ls1,mm1,ap2,hs2,ls2,mm2,notch,peak,svf}.
|
|
* Fixed typos in the documentation of bw_wah.
|
|
* Fixed unused parameter warnings.
|
|
* Now using bw_src_int in fx_satur.
|
|
|
|
0.3.0
|
|
-----
|
|
* Added new bw_ap1, bw_ap2, bw_balance, bw_bd_reduce, bw_buf, bw_comp, bw_hp1,
|
|
bw_hs1, bw_hs2, bw_lp1, bw_ls1, bw_ls2, bw_mm1, bw_mm2, bw_notch,
|
|
bw_noise_gate, bw_pan, bw_peak, bw_ppm, and bw_sr_reduce modules.
|
|
* Added new fx_ap1, fx_ap2, fx_balance, fx_bitcrush, fx_comp, fx_eq_3band,
|
|
fx_hp1, fx_hs1, fx_ls1, fx_mm1, fx_mm2, fx_noise_gate, fx_notch, fx_pan
|
|
examples.
|
|
* Added support and examples for the Daisy Seed platform.
|
|
* Strengthened bw_svf algorithm for modulation and added prewarp_at_cutoff
|
|
and prewarp_freq parameters.
|
|
* Changed bw_wah to be a bandpass and not a lowpass filter.
|
|
* Renamed bw_vol as bw_gain, added new smooth_tau parameter, and changed gain
|
|
parameter API to express values in linear gain an dB.
|
|
* Added new bw_log10f_3(), bw_pow10f_3(), bw_dB2linf_3(), and bw_lin2dBf_3()
|
|
math routines.
|
|
* Fixed computation bug in bw_sqrtf_2().
|
|
* Avoid a warning related to a potentially uninitialized variable in
|
|
bw_env_gen.
|
|
* Reworked example source code structure and Makefiles.
|
|
* Stopped using dynamic memory allocation for individual modules in example
|
|
code.
|
|
* Adjusted noise levels in synth_mono example.
|
|
* Added BW_RESTRICT to bw_svf_process1() arguments.
|
|
* Fixed bad defintion of bw_pink_filt_set_sample_rate_scaling().
|
|
* Now using bw_ppm in synth_mono and synth_simple examples.
|
|
* Moved header inclusions where most appropriate in bw_env_follow.
|
|
* Added missing API documentation in bw_pink_filt.
|
|
* Fixed typo in the documentation of bw_svf_set_Q().
|
|
* Fixed license headers in all source files.
|
|
|
|
0.2.0
|
|
-----
|
|
* Refactored API of DSP modules for better flexibility and performance.
|
|
* Removed bw_inline_one_pole and bw_inline_slew_rate (functionality
|
|
implemented by bw_one_pole and bw_slew_rate, respectively).
|
|
* Added bw_wah and bw_example_fx_wah.
|
|
* Added bw_satur and bw_example_fx_satur.
|
|
* Added bw_pink_filt.
|
|
* Added BW_RESTRICT and removed BW_MALLOC, BW_REALLOC, and BW_FREE from
|
|
bw_common.
|
|
* Added new monophonic synth example bw_example_synth_mono.
|
|
* Added new bw_sin2pif_3(), bw_cos2pif_3(), bw_tan2pif_3(),
|
|
bw_omega_3lognr(), and bw_tanhf_3() fast math routines.
|
|
* Using bw_one_pole for smoothing bw_vol.
|
|
* Simplified and rewritten example synth, renamed as
|
|
bw_example_synth_simple.
|
|
* Renamed bw_example_fx to bw_example_fx_svf are removed output "Level"
|
|
parameter from it.
|
|
* Using correct "Fx|Filter" VST3 subcategory for bw_example_fx_svf.
|
|
* Correctly handling note on events with velocity 0 as note offs.
|
|
* Using official logo as VST3 plugin icon.
|
|
* Minor performance improvements in bw_svf.
|
|
* Fixed potential bug when setting parameters in examples.
|
|
* Fixed missing initialization of sticky mode in bw_one_pole.
|
|
|
|
0.1.0
|
|
-----
|
|
First release.
|