Modal synthesis is one of my favorite jams: an additive group of noise burst --> resonator chains.
The catch is the resonator. TL;DR Which object(s) should I use for filtering here?
More:
In SuperCollider, there's a lovely resonator called Ringz, which specifies bandwidth in terms of 60 dB decay time (and it's "constant skirt gain," meaning that it doesn't lose volume as the band gets narrower). This is especially useful because you can control the amount of the exciter's color that leaks through using Ringz.ar(exciter, freq, decayTime) - Ringz.ar(exciter, freq, attackTime)
-- longer attack time = less "kch" from the noise burst.
I've gone into SC's source code and tried to backtrack through the math, but I can't replicate the sound using SOS (second-order section, basically [biquad~] in Pd). I think the problem is that Ringz internally uses double precision coefficients, but I can get only single-precision from audio math units.
So that's another question... is there a way to feed doubles into [biquad~]? (I guess, no.)
Anyway, for my own work I'll continue to use Ringz in SC, but I wanted to have a class session this term on modal synthesis, but I'll have to drop it if there's no good filter.
Thanks,
hjh