New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Filter hangs fully open in some circumstances #5
Comments
Since the problem happens even when the filter envelope amount is zero, it must be some form of illegal value that gets past the control and into the filter. The prime suspect is a division in the envelope generator which might result in a division by zero under certain circumstances. |
polluxsynth
pushed a commit
that referenced
this issue
Mar 22, 2024
If the default values (ADSR mode on, Sustain level zero) are first loaded, and then a patch setting ADSR mode, depending on which order the parameters are set, this can result in a division-by-zero in calculate_sustain_asymptote(). Fix this by recalculating sustain_asymptote before every usage. (The envelope code should really be rewritten to avoid recalculating coef at every phase transition; coefs should be set when the parameters are set, separately for each envelope stage).
polluxsynth
pushed a commit
that referenced
this issue
Mar 29, 2024
If the default values (ADSR mode on, Sustain level zero) are first loaded, and then a patch setting ADSR mode, depending on which order the parameters are set, this can result in a division-by-zero in calculate_sustain_asymptote(). Fix this by recalculating sustain_asymptote before every usage. (The envelope code should really be rewritten to avoid recalculating coef at every phase transition; coefs should be set when the parameters are set, separately for each envelope stage).
polluxsynth
pushed a commit
that referenced
this issue
Mar 30, 2024
If the default values (ADSR mode on, Sustain level zero) are first loaded, and then a patch setting ADSR mode, depending on which order the parameters are set, this can result in a division-by-zero in calculate_sustain_asymptote(). Fix this by recalculating sustain_asymptote before every usage. (The envelope code should really be rewritten to avoid recalculating coef at every phase transition; coefs should be set when the parameters are set, separately for each envelope stage).
polluxsynth
pushed a commit
that referenced
this issue
Apr 2, 2024
If the default values (ADSR mode on, Sustain level zero) are first loaded, and then a patch setting ADSR mode, depending on which order the parameters are set, this can result in a division-by-zero in calculate_sustain_asymptote(). Fix this by recalculating sustain_asymptote before every usage. (The envelope code should really be rewritten to avoid recalculating coef at every phase transition; coefs should be set when the parameters are set, separately for each envelope stage).
polluxsynth
pushed a commit
that referenced
this issue
Apr 4, 2024
If the default values (ADSR mode on, Sustain level zero) are first loaded, and then a patch setting ADSR mode, depending on which order the parameters are set, this can result in a division-by-zero in calculate_sustain_asymptote(). Fix this by recalculating sustain_asymptote before every usage. (The envelope code should really be rewritten to avoid recalculating coef at every phase transition; coefs should be set when the parameters are set, separately for each envelope stage).
polluxsynth
pushed a commit
that referenced
this issue
Apr 5, 2024
) If the default values (ADSR mode on, Sustain level zero) are first loaded, and then a patch setting ADSR mode, depending on which order the parameters are set, this can result in a division-by-zero in calculate_sustain_asymptote(). Fix this by recalculating sustain_asymptote before every usage. (The envelope code should really be rewritten to avoid recalculating coef at every phase transition; coefs should be set when the parameters are set, separately for each envelope stage).
polluxsynth
pushed a commit
that referenced
this issue
Apr 5, 2024
If the default values (ADSR mode on, Sustain level zero) are first loaded, and then a patch setting ADSR mode, depending on which order the parameters are set, this can result in a division-by-zero in calculate_sustain_asymptote(). Fix this by recalculating sustain_asymptote before every usage. (The envelope code should really be rewritten to avoid recalculating coef at every phase transition; coefs should be set when the parameters are set, separately for each envelope stage).
polluxsynth
pushed a commit
that referenced
this issue
Apr 7, 2024
If the default values (ADSR mode on, Sustain level zero) are first loaded, and then a patch setting ADSR mode, depending on which order the parameters are set, this can result in a division-by-zero in calculate_sustain_asymptote(). Fix this by recalculating sustain_asymptote before every usage. (The envelope code should really be rewritten to avoid recalculating coef at every phase transition; coefs should be set when the parameters are set, separately for each envelope stage).
polluxsynth
pushed a commit
that referenced
this issue
Apr 17, 2024
If the default values (ADSR mode on, Sustain level zero) are first loaded, and then a patch setting ADSR mode, depending on which order the parameters are set, this can result in a division-by-zero in calculate_sustain_asymptote(). Fix this by recalculating sustain_asymptote before every usage. (The envelope code should really be rewritten to avoid recalculating coef at every phase transition; coefs should be set when the parameters are set, separately for each envelope stage).
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When a patch which previously has been working fine is loaded as a 'last state' snapshot in Zynthian, the filter can suddenly open completely after the filter envelope attack time has passed, regardless of the setting of other envelope parameters, or even the filter envelope amount control. After this has happened, the filter in that voice can't be brought back to normality unless the system is rebooted (or the plugin reloaded).
The text was updated successfully, but these errors were encountered: