I was working on a project on FM synthesis well over a year ago, with the hopes of using patches I had created for my Yamaha DX7 synthesizer procedurally instead of as .wav files, and had managed some success. Patches with only two layers, a carrier and a modulator, were working. But I could neither figure out how to implement modulator “feedback” nor cascading modulators, which are important components of most of my favorite patches. The results of all attempts produced unexpected and undesired sounds.
I was unable to get any help at any forum. I found only one article that seemed to touch on the problem but the math was incomprehensible. After a certain amount of thrashing, I got discouraged and shelved the project. I had some ideas for possible tests to try and track down the problem, but never got around to doing them, though the problem remained in the back of my mind.
Two weeks ago, while making a digital flanger, something clicked and I had an insight that led to the solution. It’s not easy to explain, but involved calculating the modulation in a slightly different way, at a stage that was one step removed from what I had done before. It turns out that I had algorithmically hit on the difference between modulating frequency and modulating phase (PM), and the latter turns out to be the preferred method for cascading FM. (Also, none of the tests I was contemplating would have uncovered the problem, which has to do with frequency modulation sometimes creating 0 Hz energy that wreaks havoc with carriers that use FM as opposed to PM. So, it was just as well I let it go instead of wasting time trying hopeless ideas.)
I don’t think I would have figured this out if I hadn’t built the flanger, which has a modulation component to it. While making that, the experience made it possible to concretely understand the two different ways of programming a modulation. Once I had that, it became possible to understand that these (FM and PM) are two different things, and this even helped illuminate some of the math in the article I mentioned before.
So, just saying, sometimes a discouraging project just has to be put on a back burner. But that doesn’t mean there won’t be an insight down the road that will revive it. Sometimes it just takes time to develop the chops that allows one to even frame a problem in a useful way.