

The reason I'm doing all this madness with tables here is because I wanted to have feedback as well for each operator, and in order to do so the phases need to be updated sample by sample, whereas s~ and r~ objects only work in chunks of 64 samples. You could do all this in a simpler way with s~, r~, throw~ and catch~. I think that once you understand the difference between FM and PM this becomes clearer.

#Modmatrix mod#
This is what my mod matrix is doing in the patch, there is one table which holds the phase of each operator, and every time some other operator is sent to modulate it by some amount (aka the modulation index), the output of this modulator is added to the table along with all the others that are set to modulate it. This is a key difference to understand if you are trying to implement multi-operator FM.įor the basics on this, have a look at help > browser > pure data > 3.audio.examples >
#Modmatrix Patch#
I should point out that your patch uses "real" FM, which means that you directly modulate the frequency of an osc~, whereas my patch (like most implementations of FM) uses what is called "phase modulation", where you modulate the phase lookup of a sine wave instead. A lot of the stuff that’s in it was taken from this forum so thanks everyone for your inputs.Īny feedback is more than welcome! (no pun Thanks for sharing the patch you're working on. I'm not sure if the way I've done it here is overkill or just nonsense, but it sounds ok to me and allows for the three oscillators to modulate each other (kind of how the FM8 matrix works, I think). However, when using it in conjunction with a second (or third) modulator, it sounds rather bad unless the modulator is also working at block~ 1, and I wanted to find a way to do it which allowed to change algorithm without re-patching the whole thing. It features 9 types of waveforms (similar to those found on old fm synths), 4-stage envelopes (level/time, even though the labels say "rate") and has a modulation matrix including feedback.Ī while ago I came across this patch for doing accurate FM feedback, which sounds a lot better then doing it with and I'd like to share this patch for a 4-voice, 3-operator synth which is based on the phase modulation type of FM.
