Sunday, May 8, 2011

FM Synthesis: A short beginner's guide

As many of you know, the Yamaha DX7 is often one of the first synthesizers you come across while searching for a well known, cheap vintage synth. The DX7 is not a usual synth, however; it uses a different form of programming called Frequency Modulation. FM synthesis is not the type of thing you can learn from just by fiddling with knobs, especially since the DX7 uses only one knob for a data input. Last summer I owned a DX7 for a couple of months and purchased a used book on how to program it from someone online. While I eventually sold the DX7 because I found the user interface for programming too difficult, I still use FM synthesis on my computer using Native Instrument's FM8, a solid program that offers visual representations of the waves you're using and a spectrogram of the different frequencies and their harmonic content. For tutorial purposes, I will be demonstrating on a browser based FM synth from Angry Octopus (who's more recently created the famous Webotribe, a browser based version of the soon to be released Monotribe).

First, I'll explain the layout as clearly as I can, and what happens with FM synthesis. Open this page and you will see the browser based FM synth MiniFM. Unfortunately, the page won't let me save my pages and post the links to them directly here, so you will have to follow my directions. On the right side, we have 4 oscillators, each a sine wave. The graphic shows the ADSR aspect of the wave, which can be changed by dragging the white squares. The ratio knob to the right changes what ratio the freqency of the sine wave is. Detune is used for a slight change in the frequency of the wave. ModA, modF, and Vel are all modulation parameters from the left side. The last item on the right is a slider, called level, which is very important in FM synthesis. On the left, we have the feedback volume, which I will explain later, and the routing diagram. This routing technique can be changed to try to emulate different sounds or instruments. Below that is the modulation knobs, and the effect knobs, which I won't be using in the tutorial. Below that is a patch bank that can be flipped through. Feel free to flip through and see and hear the different sounds MiniFM has to offer, but for this tutorial you will need to start on the original demo1 patch.

FM synthesis works by having one or more oscillators modulating other oscillators that have an output. This is easily demonstrated on a synthesizer that has a fast LFO. By turning the LFO up while modulating the pitch of a wave, we can enter the audio range, meaning the LFO is moving at more than about 70Hz which is where the audio rage starts. This forces the original sound that was being modulated to become even higher and become a harmonic. This will be easier to see once you start playing with the app.

First and foremost, turn down feedback, all the modulation parameters, and all the effect parameters. These will cloud your judgement of the sound you are using, and should almost always be added at the end of your programming. On the right, take the level of oscillators 3 and 4 down to 0 on the right side. Take the ADSR envelopes of 1 and 2 and make them box-like so that the have no envelope, they only turn on and turn off. Set the ratio of oscillator 1 to 1.00 and 2 to 1.00, set their detunes to 0.0, and turn off modA, modF, and vel. Turn down the level of oscillator 2 to 0 for now, but we will soon change this. Oscillator 1 should be at full level.

When you press a key, you should only hear a sinewave, which is very dull and warm. This is becase oscillator 1 is the oscillator out, as we can see on the bottom of the routing algorithm. Nothing is happening to this oscillator so it is a rather boring sound. Now, we see that oscillator 2 is modulating oscillator 1 by looking at the algorithm chart. If the 2 box is above and connected to the 1 box, it is modulating it. If we raise the level of oscillator 2, we start to hear added harmonics to oscillator 1. Because the oscillators are the same ratio, we hear all the harmonics, which makes the output wave almost saw-like. Note that if you add the ratios that are not whole numbers, you get very rough, sometimes atonal sounds. If you raise the ratio of oscillator 2, we start to hear a square-like sound, because the output wave no longer has every harmonic, only the odd harmonics. This is the same characteristic as the wave found. Changing the parameters of the first oscillator, because it is the output oscillator, changes the sound output. For example, level on oscillator 1 is its volume, ratio is its pitch, detune is a total detune, and the envelope is the amplitude envelope.

Now, by changing the amplitude envelope of oscillator 2, we can change when the harmonics enter and exit the sound. We can also add oscillator 3 by turning up its level and changing its ratio and detune parameter. One interesting sound can be achieved by making oscillators 2 and 3 exactly the same amplitude and ratio wise, but then slightly detuning them in different directions. You will hear "beating" if you do this. Note that by adding oscillator 3 into the mix, we have to turn down both its level and oscillator 2's level in order to get the same effect as just oscillator 2 working. Finally, we can do even deeper by having oscillator 4, which is connected ot oscillator 3, gain in level. This adds harmonics to oscillator 3 which adds even more harmonics to oscillator 1, our output oscillator. Oscillator 4 also has a line connecting itself to itself, as seen in the algorithm diagram, which is the feedback symbol. If you turn up feedback, 4 will modulate itself, creating even more harmonics. The more harmonics you add, the brighter and harsher the sound will be.

It's important when using FM synthesis to consider what algorithm you are using, because changing the algorithm at the end will almost always ruin your sound if you are trying to recreate something. For example, a dull bass would not require large "stacks" of oscillators-- you do not need more than one modulating another. For a brighter, screechy guitar, you would need a stack of at least 3-- 3 modulating 2 modulating 1. Also, try looking through some of Angry Octopus's presets on the page-- he offers many inspiring ways to try to program.

FM8 by Native Instruments offers infinite routing, as the user can decide what modulates what. They also have a huge patch bank and a simple section that allows you to change the amplitude envelope and use an arpeggiator.

I hope you enjoyed this short tutorial, and if you have any questions, feel free to email me at, and I'll add an addendum.


  1. Just wanted to say, this really helped me get going. Great tutorial, great writing, very easy to understand.

    1. The development of artificial intelligence (AI) has propelled more programming architects, information scientists, and different experts to investigate the plausibility of a vocation in machine learning. Notwithstanding, a few newcomers will in general spotlight a lot on hypothesis and insufficient on commonsense application. machine learning projects for final year In case you will succeed, you have to begin building machine learning projects in the near future.

      Projects assist you with improving your applied ML skills rapidly while allowing you to investigate an intriguing point. Furthermore, you can include projects into your portfolio, making it simpler to get a vocation, discover cool profession openings, and Final Year Project Centers in Chennai even arrange a more significant compensation.

      Data analytics is the study of dissecting crude data so as to make decisions about that data. Data analytics advances and procedures are generally utilized in business ventures to empower associations to settle on progressively Python Training in Chennai educated business choices. In the present worldwide commercial center, it isn't sufficient to assemble data and do the math; you should realize how to apply that data to genuine situations such that will affect conduct. In the program you will initially gain proficiency with the specialized skills, including R and Python dialects most usually utilized in data analytics programming and usage; Python Training in Chennai at that point center around the commonsense application, in view of genuine business issues in a scope of industry segments, for example, wellbeing, promoting and account.

      The Nodejs Projects Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training

  2. Very helpfull, but If you consider a free vst, FMMF bv delaMancha is als a great cool and unique instrument for creating Interesting sounds. Thanks for s haring your insight intocht FM .This post made it so much easier to understand.

  3. If you can wrap your head around it - I'm trying to - Dexed's the ultimate FM synth freebie! It comes with a TON - many hundreds - of presets too. But it IS a beast to try to understand.
    If you can't find the presets, ask me on and I'll give a legit. free link to them.

  4. on the off chance that you are not wearing a watch or need to change the time on your framework you should simply tune in to the radio and it will give you a point by point time refresh!radio shqiptare online

  5. This particular papers fabulous, and My spouse and i enjoy each of the perform that you have placed into this. I’m sure that you will be making a really useful place. I has been additionally pleased. Good perform! PANZER ARMSPANZER ARMS AR12panzer arms bp-12

  6. ExcelR is the best institute for digital marketing certification course in Singapore known for the highest placements in top companies across the world. data science course syllabus

  7. Thanks for posting the best information and the blog is very informative.Data science course in Faridabad

  8. Thanks for posting the best information and the blog is very helpful.Data science course in Varanasi

  9. i am glad to discover this page : i have to thank you for the time i spent on this especially great reading !! i really liked each part and also bookmarked you for new information on your site.
    best data science courses in bangalore

  10. i am glad to discover this page : i have to thank you for the time i spent on this especially great reading !! i really liked each part and also bookmarked you for new information on your site.
    cyber security training in bangalore

  11. i am glad to discover this page : i have to thank you for the time i spent on this especially great reading !! i really liked each part and also bookmarked you for new information on your site.
    best data science courses in bangalore

  12. I want to leave a little comment to support and wish you the best of luck.we wish you the best of luck in all your blogging enedevors.
    data science course fees in bangalore

  13. This post is very simple to read and appreciate without leaving any details out. Great work!
    best data science institute in hyderabad