Hi!
Piotr Majdak wrote:
It seems like [readsf~] or [delay] have some timing problems. I reduced my patches to something like that:
I found a solution for my delay-problems: to get accurate delays the value for the [delay]-object must be a little bit greater than the block size delay, because it will be always truncated to the smaller block size without any rounding.
E.g. set delay to 8 to get a delay of 8ms. Set delay to 9.33333333, which is the next possible delay using 48kHz and 64samples/block, and you won't get 9.333333 - you'll still get 8ms! Set delay to 9.334 and you'll get 9.333ms.
I think, the problem is a combination of float-double casting without rounding in delay_ft1() (x_time.c) and using if(sys_time < setticks) somewhere in m_shed.c.
Truncation and not rounding: is this a bug or a feature? ;-) I propose to insert a rounding operation in clock_delay() (m_shed.c).
br, Piotr Majdak