FM Matrix Question
I am trying to make an FM matrix but I am encountering a problem when an oscillator modulates itself or when any other "feedback loop"(i.e A to B B to C C to A) is present. When an oscillator is sent back on its own FM path, the output is muted. The Question: How can an oscillator FM itself?
I can solve this problem by making a second, identical osc, but this doesnt strike me as true inner FM, and it can cause other problems when using more oscillators.
we recently answered the same question with "use a copy of that oscillator".
for feedback loops bigger than 1 operator i have no solution though, except giving up the idea of digital style operators and using free running oscillators, so that the vector delay in the loop does not matter too much.
-110
Hi
I see two solutions....or three if you include [gen] - which I don't have. One is [send~]/[receive~], the other you have already mentioned - duplicate oscillators, here's an example of both:
Brendan
anyway, the solution does involve a minimal 1 sample delay line i think. You could probably do this with delay~ and tapin/tapout, or history in the gen~ world (which maybe Brendan was talking about). Afaik, having an audio feedback with 0 samples delay in Max is impossible and leads to immediate muting, even if it should not lead to a digital larsen, like in the case of a matrix~ where you would want to feed back one output into one input, it immediately ceases to work even if you never route the said output to itself.
tapin~ 0/tapout~ 0 creates a one vector size delay which is fine for any looping situation.
Thank you, Thank you very much. Its good to know about that feedback issue. I didn't try the tapin sample delay method at this point. Here is the basic monophonic Matrix I made (you may to need the Envelope too) with send~s if you needed one or had any ideas for improvement.
The two oscillator method will definitely not give you the same sound as the feedback, since it will be much more stable.
The single sample delay is not a huge deal when using gen~, and remember that if you want a shorter delay, you can always upsample. The original DX7 had a higher sample rate, IIRC, so you might look into that.