Arranging FM operator algorithms

Sam Bollands's icon

Hi,

I'm currently making an FM synth and I'm a little confused as to how to arrange the operators within Max to form algorithm combinations. I plan to have a small number of presets for the algorithm combinations which the user can select, however after doing some research particularly on the DX7, I've noticed that the operators within that consist simply of an envelope generator and an oscillator which are then arranged too be either carriers or modulators. I've been experimenting with a variety of different combinations such as modulators in series, multiple modulator and single carrier set ups and vice versa.

My questions are:
1.How could I achieve an implementation similar to the DX7 set up?
2.Could I arrange the combinations as described above as algorithms?
2.How can I arrange operator combinations in Max to form different algorithm set ups?

I appreciate this might have been covered before, but I'm not finding many concrete explanations on how the above can be achieved.

Sam.

brendan mccloskey's icon

Hi - very short answer:
I have a DX9 (substantially smaller number of possible combinations), and if I were to attempt a Max realisation of such algorithms the first object I would consider is [matrix~]. You could route your signal(s) in a multitude of ways, and possibly even impose either/or functionality of each operator (either carrier or modulator). No doubt you have tried the FM7 synth? I wonder how they do it . . . .

HTH

Brendan

mzed's icon

Save this as fm-osc.maxpat:

Max Patch
Copy patch and select New From Clipboard in Max.
Max Patch
Copy patch and select New From Clipboard in Max.

Save this as fm-osc.maxhelp:

Max Patch
Copy patch and select New From Clipboard in Max.

Save this as whatever:

All of this is from the CNMAT MMJ depot, which can be downloaded here:
http://cnmat.berkeley.edu/downloads

Roman Thilenius's icon

you could either use gate~s and selector~s between the oscillators, or one poly~ patcher per routing scheme.

for me it seems more logical and easier to handle the second way.

(in both cases those schemes with feedback oscillators can not be recreated in max/msp.)

Sam Bollands's icon

Thank you all so much, really appreciated. Brendan FM7 and FM8 are my go to instruments for my composition work, both fascinating. However I'm not feeling that ambitious!

panj22japan@gmail.com's icon

Hello,
I'm working on a very similar problem of allowing a system to dynamically choose the order in which order of poly~s are chained together (in my case, the poly~s are oscillator driven OpenGL shaders). But the concept is the same - so I'm interested. One of the things that I note when attempting your patch is that there is a bpatcher which is missing..... - actually it looks to be three. Is it possible to re-upload/describe/screenshot? That would help a lot. Thanks!

fm-dx7.png
png