FM Synthesis Megathread

I have no idea how you manage to have such technical points about almost every concern I have had.

This is what I figured. Is there a compromise to be had somewhere? I have found that in my experience a lot of what I want to do or what I am looking for in a product often tends to be characterized as “something that just isn’t done,” or there is usually some accepted barrier in the way of some key elements that could really open up territories. I can’t think of a more common scenario in terms of ‘innovation’.

Much of what kills my momentum are the technical walls, which are just there because people have been putting their energy into marketing and buying a lot of junk. I am over the moon about Audulus, but I really wish Apple would just say, “okay, we made it big. Why don’t we stop pandering to the masses and spend some time giving back to the core nerds who made everything possible for the masses, so that the nerds can have fun for a while and develop the next stage for technology?” Then you hand the stuff out to the consumers after things have been renovated a little. If Apple doesn’t make this change, there may be some bright people who will turn away from computing – bored with the pretty graphics and ‘sense of community’.

3 Likes

I’ve spent most of the last 45 years involved with software in one form or another, both as a hobby and a profession. Some of it stuck. :cowboy_hat_face:

As is the case with most things in life creating an operating system is a balancing act between competing factors. With iOS, Apple chose to put security high on the priority list. The choice to only allow apps to to be installed from the App Store after the code has been verified makes it very difficult for a user to install malicious code. Of course it also means that Apple has total control over what apps can and cannot do and which apps can be installed. Because it’s not practical to validate code that might be generated from any on-board compiler, Apple chooses not to allow them on iOS. This is not the case with Android which does not prevent the user from installing arbitrary code. As a result Android has had several publicized cases of malware. Originally apps had no ability to communicate with each other and only limited abilities to interact with the OS, but that has changed as iOS has evolved and apps now have greater freedom to interact with others and the underlying OS.

As far as walls are concerned, I think Apple has done a lot to make the technology available. Apple’s development environment, the documentation, a wide range of tutorials and other tools needed to develop applications are freely available which is not the case for the Windows OS. I believe they realize that their future depends on independent developers and for the most part they do a good job in supporting them and encouraging new ones.

Originally it was not possible to install an app on iOS other than as a registered developer or from the App Store. As of 2018 that is no longer the case, and it is possible for you to create an app via Xcode and install it on your own device. You can’t distribute the app, but you can run it on your own iOS devices. Of course you still need to be familiar with iOS. It might be possible to develop a framework that would allow someone with limited programming experience to build plug-ins, but it would be a difficult task and would probably have a limited market. If you’re interested there is an open source audio framework called AudioKit that is freely available that makes using audio in iOS much simpler. It was used to build the free Synth One app as well as the Digital D1 app and many others.

If you really want to build your own apps it’s possible to do so without spending a fortune (assuming you have a Mac.) If you can code using Audulus, you can learn to program in other languages.

2 Likes

I would even go so far as to say that Audulus bests its competitors with all that it is capable of doing, while still maintaining a reasonable price point. Also, having the community, which is so good at welcoming new users, and sharing knowledge and inventions freely pushes it up over the top, in my opinion. I don’t see that type of innovation anywhere else, and I was shocked and kinda disappointed to find out that users of Max actually make patches and utilities so they can monetize, keeping the knowledge all to themselves, like trade secrets.

People can do what they want, but that promotes an ‘every man for himself’ kind of environment, and I don’t think any of that adds up to even a fraction of the level of awesome where my mind elevates Audulus, as a whole. It makes me feel even more grateful for all the kind and generous people (you all know who you are :wink:) who have given so much of their time and energy to help myself and many others like me to better understand, and become a more functional and contributing member of this app and community :smiley:

Nothing else can come close!

2 Likes

It’s true that Max allows you to create a finished app which can then be sold. I’m not sure that this is necessarily a bad thing. In many ways it’s similar to programming in any other environment. In the same way that there are a mix of paid, free and open-source apps created with other programming tools, Max allows flexibility in how Max apps are distributed. After all you have to cover the cost for Max. Max and PD both have large and very active user communities. The biggest issue for me with Max (other than the steep price tag) and PD is the complexity of their approach to modeling sound. While in some cases it allows you to do things that aren’t practical in Audulus, it makes it much more difficult for a new user, particularly someone not familiar with programming, to start making music. I initially chose Audulus for it’s simplicity, flexibility, beautiful UI and outstanding performance, but I stuck with it because of all the fine people that contribute their thoughts and creations to our little community. Like you said:

1 Like

I wanted to throw something in about phase vs. frequency modulation since one finds a lot of internet discussions where someone will say that the DX7 does phase modulation and not FM. To the best of my knowledge, the following is correct (please correct me if I am mistaken).

When working with sine wave carriers and modulators (which is what Chowning was working with and which is how the DX7 works), phase modulation and “traditional” FM are mathematically equivalent. Either phase or (angular) frequency is the derivative of the other (I can’t remember which direction the relationship goes) (when working with sine waves).

From what I understand, working in the phase domain has benefits (compuatational efficiency?) so that was used. Apparently, lots of things that we call FM (including with radio signals) actually uses phase modulation. So, phase modulation is the mathematical technique being used to accomplish frequency modulation and achieves the same result as would be achieved by performing straight frequency modulation.

The phase vs. frequency modulation debate (with regards to sine wave based systems) seems to be making a distinction without a difference.

2 Likes

@robertsyrett has some anwers for you:

https://discourse.audulus.com/t/know-your-nodes-pt-2-phase-modulation/266

3 Likes

Is there something incorrect in what I said that is elucidated in the video?

1 Like

I was just thinking that @robertsyrett demonstrates that while they may be described as being mathematically ‘equivalent’, there is a difference in practice (even if it isn’t a very big one).

3 Likes

Like you (and @robertsyrett in the video) said: linear fm and pm are mostly the same when using sine operators but there are some little differences.
When the frequency of a pm operator is increased it scrolls faster though the phase of the carrier which results in stronger frequency modulation. This doesn‘t apply to frequency modulation.
So the first difference is that the depth of phase modulation increases with the pitch of the operator and that the depth of fm doesn‘t.
A second difference I can think of is that not all oscillators that can do linear fm can also do trough zero fm. The modulation in frequency that‘s caused by phase modulation always is trough zero.

Here a little demo so you can hear the differences:
pm vs. lin fm.audulus (30.8 KB)

3 Likes

I had a go at recreating the synth brass patch form the video above and ended up making an interesting tremolo trumpet sound.

FM Tremolo Trumpet.audulus (126.7 KB)

4 Likes

That’s a gem

Another nugget. Thanks.

3 Likes

I’m still working on FM patches. I will probably make a collection of preset synth voices that respond to modulation at some point.

4 Likes

I found this series very useful as well:

3 Likes

The classics!

1 Like

Of course no FM thread would be complete without a scan of a photocopy of the 1986 classic book on FM Synthesis by Chowning and Bristow.

But the fun doesn’t stop there! I found great blog post about shaping your wave frorm with the sine function.

3 Likes

Very interesting. I hadn’t read Chowning’s paper before. One point he makes early on, starting on page 57 is that in order for the index to remain constant the modulator level has to change inversely proportional to the modulator frequency where Index = delta f/modulation frequency. Delta f is the frequency swing caused by the modulator which, for linear FM, is proportional to the modulator level. None of the modules I’ve constructed adjust the modulator level as a function of modulator frequency.

2 Likes

I think that isn’t an issue with phase modulation, but if you want to make frequency modulation behave like phase modulation then you would need to do that.

Chowning”s paper seems to treat the two interchangeably. He specifically references the Yamaha DX7 when discussing the modulator index.

1 Like

The type of FM that went into the DX series synths is what Chowning had been working on and refining for years. The architecture and algorithms as far as I know were not just inspired by his work but designed by him anc his team at CCRMA. For most musicians at that time, programming FM sounds meant doing it on a DX. It makes sense to that the book is about that.

The Casio “phase distortion” synthesis has a pretty interesting spin on how they allowed their “modules” (their version of operators) to be routed. Definitely worth exploring further.

2 Likes