FM frequency fine coarse and detune controls

    Nov 15 2012 | 10:57 am
    Hi, i'm new to max and i am in the middle of building an FM Algorithm, based on Algorithm three of the Yamaha DX7. I have the patch working without these controls but am having difficulty with implementing the frequency fine, course and detune to each operator. i have been at this for a couple of weeks and am getting nowhere. i would be very grateful for any help with this.

    • Nov 15 2012 | 11:19 am
      Hi I'm not familiar with the algorithm you mention (I only have a DX9) - but here's how to implement coarse and fine detune (on the carrier):
    • Nov 15 2012 | 1:29 pm
      Thanks very much noob meister I'm going to have a go at implementing this tonight, ill let you know how i get on :)
      Thanks again
    • Nov 15 2012 | 2:40 pm
      ignore that last - it was a little amateurish!
      here is a more mathematically robust version, using 0-127 to control fine and coarse tuning across the octaves:
    • Nov 15 2012 | 4:35 pm
      added "local or global" detune - not sure if this is a feature of the DX, I seem to remember it may be just local....
    • Nov 15 2012 | 4:38 pm
      You just answered a few other questions i had, without me even having to ask! :)
      Thanks Brenden
    • Nov 15 2012 | 4:44 pm
      : )
    • Nov 15 2012 | 11:53 pm
      Hi, I have the fine and coarse controls working and the first operators nearly complete :). i have got one problem left to complete this, i need to build a super fine control -7 to+7 range. the problem is i dont understand what the math means in the fine control. I need to adapt the maths in the fine control to make it super fine for very mild detuning. If its not to much hassle could you explain the maths a little so i can adapt the fine control to be super fine. i dont understand the maths in the expr pow object and what the split object is doing.
      Thanks again i have achieved more with this project tonight with your help, than in the last two weeks :)
    • Nov 16 2012 | 10:05 am
      If an output ranges from 0 to 10 and you want to scale it down to a smaller range, then multiply by < 1.
      All the explanation you need is here:
    • Nov 16 2012 | 2:36 pm
      thanks Brendan ill check it out :)