Modal Synthesis

I’ve been loving Rings waaaaaay more than I ever thought I would. But it makes me realize I know next to nothing about physical modelling synthesis. I did a quick search of the topic in the forums and didn’t find a topic like this (please direct me to that thread if it exists) so I made one here.

What EXACTLY is going on inside rings? I understand that it’s a mathematic approximation of physical materials and the rings_quickstart.pdf is just descriptive enough to peak my curiosity but not enough to get me experimenting in Audulus or Pd.

I would love any further info anyone has, links to videos or essays etc.

I’d recommend playing around with Reaktor’s Prism if you have access to it and are interested in modal synthesis. My very limited understanding of the concept is that you’re pinging a bunch of tuned bandpass filters in order to emulate the behavior of resonant bodies. Here’s a more technical explanation:


I believe they used to call it physical modelling.

There’s a PDF presentation here:

1 Like

These terms do not mean the same thing. Modal synthesis is one form of physical modelling. Waveguides, finite elements methods are other approaches.

Modal synthesia refers to an approach in which you describe the behaviour of the vibrating body as a sum of 2-pole resonant bandpass filters (by finding the eigenfunctions of the continuous pde describing the sustem, or by computing the eigenvalues of the matrix describing the update rules of all variables in a finite elements scheme; or by empirical analysis of recordings of the material being excited)


It’s been a long time since I read something so confusing :sweat_smile:


@pichenettes does Rings use modal synthesis because you found it to be the best approach to accomplishing what the module’s purpose was? Everything I’ve heard from Rings is just fantastic. You really nailed it.

I have a real soft spot for stringed instruments and the idea of being able to emulate them with infinite variation is extremely compelling. (Not saying Rings does this, just alluding to my idea of a perfect implementation of physical modeling as it pertains to stringed instruments.)

Only one out of three modes in Rings uses modal synthesis (green). The other two modes (orange and red) are Karplus Strong with a few twists (2 pole IIR absorption filter with phase compensation instead of the usual FIR; a non-linearity emulating the curved bridge of the tanpura; AP dispersion filters…).

String instruments, especially when the play low notes, can have very rich spectra with many harmonics - with a 100 Hz f0, the 100th harmonic is still well within the audible range! If you want to simulate that with modal synthesis, you need that many filters in your filter bank, and that would be too much for our little Cortex M4. Try playing a low note (say a f0 at 80 Hz) with Rings in modal mode, with STRUCTURE at :clock1030: Because Rings is limited to 60 or so bandpass filters, there’s nothing in the spectrum above 6400 Hz, and the resulting sound is dull, almost cellphone/youtube like.

If you look back at the product history… Rings has a modal synthesis mode because it was supposed to be, initially, a standalone version of Element’s resonator section (with no other mode).

Elements uses modal synthesis because this is what offers the largest palette of “physically inspired” sounds in a same continuous space, without the need for mode selection buttons.


Extremely solid logic and also very informative. I find this form of synthesis very compelling and it’s underlying mechanics equally as interesting.

Thanks for the response!

1 Like

May I ask you another question? I’m wondering with such a limitation (and there will always be limitations in any design) how you decided where enough was enough? What was the constraint(s) per se? Where in the inspiration for the Rings and Elements did you say this was enough, and what prompted that? (I know that modal synthesis is not the only physical modelling method used here, so this is just a more general question about how much synthesis you wanted to be able to accomplish.)

If this is too business practice specific, etc. I completely understand. I’ve read about many other manufacturers and the struggles they face with defining that same thing (when enough is enough), and it would be interesting to see your process for that, specifically as it pertained to Rings. The MI lineup has always felt so well thought out and complete.

Oh wow, you make it sound much more complicated than it really is!

Basically I come up with a hardware platform that maximizes

(CPU power x energy efficiency x ease of development) / (parts cost x PCB real estate)

From there, I try to look for everything reasonably sounding that can be implemented on it. What can get us 90% of the good stuff with only 10% of the complexity? - that’s what I love doing, and have been doing all my life (from demos/intros to PalmOS software to the Shruthi to Eurorack modules). I’m not at all a “no expense spared”, “dream synth” guy - this line of thought where you have a vision and over-engineer every aspect of it. I admire the guys who push the limits of engineering when designing spacecrafts or particle colliders, but doing this to push the noise floor on an audio DAC from -124dB to -124.1dB… not my kind of fun. My kind of audio gear engineering heroes are people like Keith Barr or Bret Victor who made inexpensive things full of smart shortcuts. I do not like “over-fitting” my ideas. Whenever there are constraints, technical limitations requiring approximations… so be it… these are the gray areas where digital gear gets a bit of personality!


That is a very interesting outlook on it. Thanks for sharing it!

To me that is a really important trait. I look at all of the computer systems that have been tossed aside because the rate at which there have been improvements have just been so fast. However, I feel that when the 486 or 286 was in it’s prime we barely scratched the surface of getting all of the performance we could out of them. Today I bet this is even more pronounced, although I would guess that some enterprise workloads come close.

Anyway would you maybe have an opinion on what form of physical modeling is best suited to accomplishing the task? Or does this question just underscore my ignorance on the matter?

Which task? Under which constraints?

Fair point. It isn’t your task, or you would have already done it. I just meant because you noted the limitation in rings and elements, under those circumstances, which method do you favor? Or is the answer self evident in what Rings can already do and already includes?

I think what @pichenettes is trying to say is that you choose tools, technology, algorithms, etc. based on what you are trying to accomplish.

Isn’t he saying the opposite? You choose your tools and see what you can get out of that.

1 Like

I’d agree in terms of maximizing the use the platform’s capabilities.

But, in answering the question:

The best algorithm or method depends on the task (what you’re trying to accomplish) and constraints that you’re working within.

For sure. Was probably too broad of a question, and honestly he tends to shy away from saying anything is the best usually, which makes lots of sense.

I think you can pack too much into a single module. Braids was an example of that, too many modes, menus and so on. Pretty sure nobody wants to have to fork out £500-600 for a module either, so it is worthwhile keeping the costs down.

I think Braids is module not really suffering from it. With the big display it works really well in setting up lot of different oscillator sounds under a few knobs. And there are a lot of settings in menu that you can forget about and don’t have to go into. I think a lot of the other modules with different modes through button pressing make me want to reach for a manual everytime.

1 Like

Yes and no. I think it may have been better to have had a master knob which infinitely varies between the different modes. If you’ve used a waldorf streichfett you’ll know what I mean, how it moves from string, to brass, to voice etc. Of course this would need a lot more grunt and big code changes.

I think the above might have been a little more in keeping with modular. The mode could be CV controlled then.