FM harsh bass patch (5 operators)


#1

Hi guys, here's a patch I made during the process of trying to teach myself what frequency modulation is. It sounds pretty abrasive, but not in a bad way in my opinion. It's a 5 operator algorithm with 2 carriers and 3 modulators. I'm trying to implement linear FM here by adding small values to the frequency generated by the keyboard object before it is passed to the operators. the 'pwm operator' object is basically just a sine osc, vca, adsr and mixer smooshed into one component to make the patch more readable and tidy.

I'm pretty new to this so if anyone has some tips on doing FM, any recommended reading I would greatly appreciate it.

5opFMbass.axp (9.0 KB)
pwm operator.axo (2.1 KB)


#2

pwm operator is missing..


#3

Oof, my bad. I've edited the OP to add a link to it.


#4

A few tips:

It's much easier to get a feel for FM if you start out with just the basic 2 operator algorithm.
That'll get you most of the familiar FM sounds.

With modulator 2x frequency of carrier you can get something like a square wave.

Bell tones with modulator:carrier ratios like 4:3 , 7:5 and so on.
(starting point for adsrs :zero attack, zero sustain, decay/release to taste, to start with duplicate the ADSR settings across both operators)


#5

Thanks for the tips, I can successfully get a square wave type sound with a patch where i manually set the pitch dial of the modulator to be approx 2x that of the carrier, but would you happen to have any tips for making the control more intuitive? Here's what I have now:


I'm wondering if you know a way to make the addition section more clear, since a value of '7' for dial_1 doesn't really convey much useful information, even though it sounds fine. Ideally there would be an object I can feed the pitch into and define the ratio of change from there. I guess I could make one, but I'm hoping there's something out of the box.


#6

well i would use a multiplication object and connect the note input to that and from there to the operator. because for example an octave is always twice the pitch of the root note, you have to use multiplication to get consistent results over the note range.


#7

Maybe I'm doing something wroing, but whenever I use a mult object on the note and the pass that to the freq of another oscillator it sounds very unstable, like strange vibrato wobbles appear inconsistently when walking up a scale. But when I add like in the screenshot above, it's much more harmonically and tonally consistent from note to note.

Semi related: I'm working on this big ol' 4 operator patch that implements the 8 algorithms from the TX81Z and makes them all selectable from a single control! Sounds much better than the thing I linked in OP.


#8

sorry, i was in PD (puredata) land... where my fm synth has modulation applied after the midi to frequency conversion. in axolotiland pitch input is of course a "midi note" input and as such a linear thing. so an addition is exactly the right thing...


#9

as for your original question:

if you use a +c object (or your solution) the numbers should correlate with midi numbers, so if you offset by 12 (halftones) this should be an octave higher. so 7 would be a fifth above the pitch input. i am not with my Axoloti so cannot test...


#10

Makes sense, thanks for the clarification.