diff --git a/TODO b/TODO index 7e27814..cadd112 100644 --- a/TODO +++ b/TODO @@ -1,12 +1,3 @@ -0.5.0 ------ - -code: -* missing doc -* check all examples again -* synth poly stuck notes? -* check sustain synth mono (poly?) on daisy - 0.6.0 ----- @@ -18,6 +9,7 @@ code: ----- code: +* check all examples again * osc post filter (and one pole init, slew rate, etc.) val from input? set state instead? * audio rate optional pulse width/slope inputs? * should rather use backward Euler in bw_onepole? diff --git a/examples/synth_mono/src/bw_example_synth_mono.c b/examples/synth_mono/src/bw_example_synth_mono.c index 0715fa7..442c9a0 100644 --- a/examples/synth_mono/src/bw_example_synth_mono.c +++ b/examples/synth_mono/src/bw_example_synth_mono.c @@ -293,7 +293,7 @@ void bw_example_synth_mono_set_parameter(bw_example_synth_mono *instance, int in bw_env_gen_set_release(&instance->vcf_env_gen_coeffs, value); break; case p_vca_attack: - bw_env_gen_set_attack(&instance->vca_env_gen_coeffs, value); + bw_env_gen_set_attack(&instance->vca_env_gen_coeffs, bw_maxf(0.002f, value)); break; case p_vca_decay: bw_env_gen_set_decay(&instance->vca_env_gen_coeffs, value); @@ -302,7 +302,7 @@ void bw_example_synth_mono_set_parameter(bw_example_synth_mono *instance, int in bw_env_gen_set_sustain(&instance->vca_env_gen_coeffs, value); break; case p_vca_release: - bw_env_gen_set_release(&instance->vca_env_gen_coeffs, value); + bw_env_gen_set_release(&instance->vca_env_gen_coeffs, bw_maxf(0.002f, value)); break; } } diff --git a/examples/synth_poly/src/bw_example_synth_poly.c b/examples/synth_poly/src/bw_example_synth_poly.c index 1f27067..78484ac 100644 --- a/examples/synth_poly/src/bw_example_synth_poly.c +++ b/examples/synth_poly/src/bw_example_synth_poly.c @@ -382,7 +382,7 @@ void bw_example_synth_poly_set_parameter(bw_example_synth_poly *instance, int in bw_env_gen_set_release(&instance->vcf_env_gen_coeffs, value); break; case p_vca_attack: - bw_env_gen_set_attack(&instance->vca_env_gen_coeffs, value); + bw_env_gen_set_attack(&instance->vca_env_gen_coeffs, bw_maxf(0.002f, value)); break; case p_vca_decay: bw_env_gen_set_decay(&instance->vca_env_gen_coeffs, value); @@ -391,7 +391,7 @@ void bw_example_synth_poly_set_parameter(bw_example_synth_poly *instance, int in bw_env_gen_set_sustain(&instance->vca_env_gen_coeffs, value); break; case p_vca_release: - bw_env_gen_set_release(&instance->vca_env_gen_coeffs, value); + bw_env_gen_set_release(&instance->vca_env_gen_coeffs, bw_maxf(0.002f, value)); break; } } diff --git a/examples/synth_simple/src/bw_example_synth_simple.c b/examples/synth_simple/src/bw_example_synth_simple.c index 4d069e1..3602463 100644 --- a/examples/synth_simple/src/bw_example_synth_simple.c +++ b/examples/synth_simple/src/bw_example_synth_simple.c @@ -98,7 +98,7 @@ void bw_example_synth_simple_set_parameter(bw_example_synth_simple *instance, in bw_svf_set_Q(&instance->svf_coeffs, 0.5f + 9.5f * value); break; case p_attack: - bw_env_gen_set_attack(&instance->env_gen_coeffs, value); + bw_env_gen_set_attack(&instance->env_gen_coeffs, bw_maxf(0.002f, value)); break; case p_decay: bw_env_gen_set_decay(&instance->env_gen_coeffs, value); @@ -107,7 +107,7 @@ void bw_example_synth_simple_set_parameter(bw_example_synth_simple *instance, in bw_env_gen_set_sustain(&instance->env_gen_coeffs, value); break; case p_release: - bw_env_gen_set_release(&instance->env_gen_coeffs, value); + bw_env_gen_set_release(&instance->env_gen_coeffs, bw_maxf(0.002f, value)); break; } } diff --git a/examples/synthpp_mono/src/bw_example_synthpp_mono.cpp b/examples/synthpp_mono/src/bw_example_synthpp_mono.cpp index b30ecbc..aaed143 100644 --- a/examples/synthpp_mono/src/bw_example_synthpp_mono.cpp +++ b/examples/synthpp_mono/src/bw_example_synthpp_mono.cpp @@ -265,7 +265,7 @@ void bw_example_synthpp_mono_set_parameter(bw_example_synthpp_mono *instance, in instance->vcfEnvGen.setRelease(value); break; case p_vca_attack: - instance->vcaEnvGen.setAttack(value); + instance->vcaEnvGen.setAttack(bw_maxf(0.002f, value)); break; case p_vca_decay: instance->vcaEnvGen.setDecay(value); @@ -274,7 +274,7 @@ void bw_example_synthpp_mono_set_parameter(bw_example_synthpp_mono *instance, in instance->vcaEnvGen.setSustain(value); break; case p_vca_release: - instance->vcaEnvGen.setRelease(value); + instance->vcaEnvGen.setRelease(bw_maxf(0.002f, value)); break; } } diff --git a/examples/synthpp_poly/src/bw_example_synthpp_poly.cpp b/examples/synthpp_poly/src/bw_example_synthpp_poly.cpp index 1ea9574..1708b45 100644 --- a/examples/synthpp_poly/src/bw_example_synthpp_poly.cpp +++ b/examples/synthpp_poly/src/bw_example_synthpp_poly.cpp @@ -353,7 +353,7 @@ void bw_example_synthpp_poly_set_parameter(bw_example_synthpp_poly *instance, in instance->vcfEnvGen.setRelease(value); break; case p_vca_attack: - instance->vcaEnvGen.setAttack(value); + instance->vcaEnvGen.setAttack(bw_maxf(0.002f, value)); break; case p_vca_decay: instance->vcaEnvGen.setDecay(value); @@ -362,7 +362,7 @@ void bw_example_synthpp_poly_set_parameter(bw_example_synthpp_poly *instance, in instance->vcaEnvGen.setSustain(value); break; case p_vca_release: - instance->vcaEnvGen.setRelease(value); + instance->vcaEnvGen.setRelease(bw_maxf(0.002f, value)); break; } } diff --git a/examples/synthpp_simple/src/bw_example_synthpp_simple.cpp b/examples/synthpp_simple/src/bw_example_synthpp_simple.cpp index ccf9ce1..0de7ee8 100644 --- a/examples/synthpp_simple/src/bw_example_synthpp_simple.cpp +++ b/examples/synthpp_simple/src/bw_example_synthpp_simple.cpp @@ -87,7 +87,7 @@ void bw_example_synthpp_simple_set_parameter(bw_example_synthpp_simple *instance instance->svf.setQ(0.5f + 9.5f * value); break; case p_attack: - instance->envGen.setAttack(value); + instance->envGen.setAttack(bw_maxf(0.002f, value)); break; case p_decay: instance->envGen.setDecay(value); @@ -96,7 +96,7 @@ void bw_example_synthpp_simple_set_parameter(bw_example_synthpp_simple *instance instance->envGen.setSustain(value); break; case p_release: - instance->envGen.setRelease(value); + instance->envGen.setRelease(bw_maxf(0.002f, value)); break; } }