Skip to content

Commit 124267d

Browse files
authored
Fix IIR filter Q becoming negative (#1476)
1 parent 8c8f36a commit 124267d

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

src/rvoice/fluid_iir_filter.c

+2
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ DECLARE_FLUID_RVOICE_FUNCTION(fluid_iir_filter_set_q)
115115
if(iir_filter->filter_startup)
116116
{
117117
iir_filter->last_q = q;
118+
iir_filter->q_incr_count = 0;
118119
}
119120
else
120121
{
@@ -126,6 +127,7 @@ DECLARE_FLUID_RVOICE_FUNCTION(fluid_iir_filter_set_q)
126127
}
127128
iir_filter->q_incr = (q - iir_filter->last_q) / (q_incr_count);
128129
iir_filter->q_incr_count = q_incr_count;
130+
LOG_FILTER("%f - %f / %f = %f", q , iir_filter->last_q, q_incr_count, iir_filter->q_incr);
129131
}
130132
#ifdef DBG_FILTER
131133
iir_filter->target_q = q;

src/utils/fluid_conv.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ fluid_real_t
211211
fluid_sec2tc(fluid_real_t sec)
212212
{
213213
fluid_real_t res;
214-
if(sec < 0)
214+
if(sec <= 0)
215215
{
216216
// would require a complex solution of fluid_tc2sec(), but this is real-only
217217
return -32768.f;

0 commit comments

Comments
 (0)