Hello again,
First of all, thank you again for your recent help. I am getting a patch ready for a concert on the 21 and 22.6 so your advice is appreciated.
At the beginning of my piece, I filter [noise~] and and send random values for the q into [bp~], and even though I am using lines (of about 15 ms, because I want sudden changes) I am getting crackling sounds once the window of values becomes larger- I start with a window of 0 to 1 q with is gradually enlarged and shifted to a window of 500-1000 q (the amplitude is correspondingly changed with each alteration of the q, also with a [line~] of 15) -and I am not certain why. I spoke to one of my professors about it, and he suggested using a higher-tier filter like [biquad~]. However, neither he nor I understand the mathematical workings of this object's arguments. He uses MaxMSP, not PD, and says there is a graphical interface for [biquad~] in Max which allows for easy manipulation of the of the values to achieve a desired filtering; of course he doesn't know if anything like this exists for PD.
Any ideas?
-
Replacing \[bp~\] with \[bquad~\]
-
You should use [vcf~] instead of [bp~]. The problem with [bp~] is that the control inlets are not audio-rate, so the jump values at the block boundaries. That's why you're getting the crackling.
You'd have the same issue if you use [biquad~]. Max's version has audio-rate inlets for the coefficients, but Pd's doesn't. But if you still want to try it, take a look at my library in the signature. There's an audio-rate version of [biquad~] as well as abstractions based off of Max's [filtercoeff~] that will do the biquad math for you.
-
Hi Maelstrom,
Thank you for your reply. Upon having examined [vcf~], it would seem only it's first two inlets take an audio signal- the q is still only determined by control-input. So it would probably not make a difference to use it instead of [bp~].
I will take a look at your library now... -
the nusmuk-audio abstractions/external contain a biquad which takes signals as input. the abstractions for calculating the coefficients use messages, but should be easiely adoptable for signal-only calculations. the most elegant method is probably using pds pole/zero objects. i think the filters in frank barknechts rjlib abstracions use these. i have attached some of my filters which use audio-rate calculations and a fexpr-biquad, like the nusmuk abstractions. quite heavy on the cpu though, probably not that good if you need hundreds of these...