'Mode' Opcode, is it really a "correct" type of filter for Modal synthesis? Why that kind of filter specifically?

Hi there, I’m looking into modal synthesis and physical modeling, I see Csound has the ‘mode’ filter, which I analyzed and see it’s a lowpass resonant filter. I’ve always thought you had to only use resonant bandpass filters, but now I see lowpass also ‘works’, and so does a highpass in my tests. Of course the sound quality isn’t exactly the same.

Anyway, I had an interaction about this on the facebook group but things are still unclear and unsettled. Someone said that only bandpasses should be used. So I ask, why is ‘mode’ a lowpass resonant filter?

For the record, I checked the source code for that and it is coded in the biquad.c section. I analyzed the coefficient calculation and the result, and found it to be a lowpass in the frequency response. More specifically, it is a resonant lowpass with 2 poles and a gain adjustment on the input, so no zeros. As I see it, this filter is quite similar to Pd’s [bp~] object, which is supposed to be a “2-pole band-pass filter”, but it is actually a resonant lowpass with the maximum gain adjusted to 0dB, so it’s more like a bandpass.

If you really “can’t” use a lowpass, why is this a lowpass? Was it a mistake? Or is there actually no rule at all? But even so, why was a lowpass chosen? And why this particular separate lowpass filter instead of another one? Don’t we have another 2nd order resonant lowpass filter with biquad? Like, I’d rather use a 2-pole, 2-zero 2nd order filter.

Last question, it says in the description it is “a filter that simulates a mass-spring-damper system”, how is it so?

I checked some references for the theory but there was nothing conclusive about this. I read Curtis Road’s 2nd edition of the computer music tutorial and it really doesn’t get deep into these things, and it doesn’t really get deep in many other topics as well :frowning: Please answer me with more references if possible… btw I’ve only consulted with ChatGPT and I don’t trust it :slight_smile:

cheers