Hi all!
I'm trying to implement a real-time synthesis algorithm which produces waveforms sample by sample. My approach is to calculate a block of samples, store them in a table, wait for those samples to be reproduced (using phasor~ and tabread~) and calculate another block. For example, if there are 8820 samples in a block, the reading frequnecy is set to 5 Hz, whilst the waiting between calculating two successive blocks is 200 ms (I use METRO 200).
And it works fine. However, in every reading cycle there is a hearable click. The click is not caused by the synthesis algorithm because the updateded table smoothly continues from the old values. So, I guess that the problem is updating the table while reading it.
I spent a lot of time trying different apporaches (such as tabosc~ and even direct usage of sig~), but have not found a solution. Also, searching for an idea on the Internet did not help. As I am quite new to Pure Data, maybe there is a different approach or an obvious solution which I don't see. I would appreciate every suggestion.
Cheers!