1. IMPORTANT:
    We launched a new online community and this space is now closed. This community will be available as a read-only resources until further notice.
    JOIN US HERE

fm synthesis:index brain storming.

Discussion in 'Building With Reaktor' started by toto le robot, Nov 29, 2004.

Thread Status:
Not open for further replies.
  1. toto le robot

    toto le robot NI Product Owner

    Messages:
    663
    hi,
    I'm a newbie in fm synthesys.

    santa klaus was early this year( well for me );thank you santa klaus!

    he brings me a book about fm synthesis.
    I discovered that dx7 use index call I which is the ratio between the amp of the modulator by the freq of the modulator. this is to have the fm amount in the same ratio for each notes. I notice that there is no such thing in the fm macro that come with reaktor and i didn't find that in fm synths in the user library.

    why?

    and why and when using index or not?
     
  2. CList

    CList Moderator

    Messages:
    3,299
    This came up just recently in the ReaktorBuilders Yahoo group. I'd never heard about it before. It's *very* easy to implement. Just do P->F on the pitch of the modulator, mutliply it by an FM-Index knob with a range 0...5 (or whatever - 5 works well), and send the result to the "F" input of the carrier.

    I tried it on my Koyannisqatsi and thought it sounded very cool, and the idea of "FM AMount" being something int he range 0...5 and not 0...5000 is very nice as well.

    I'm sure the book tells you all about the math properties behind it, it is the way FM "should" be done according to some. Why no one's done it with Reaktor - I have no idea.

    I will say that the sound is not dramatically different if you're using FM for bleepy effect type sounds...

    - CList
     
  3. CList

    CList Moderator

    Messages:
    3,299
    ...in fact just listening to one note, there really isn't much difference, it's only when you play the instrument liek a piano that you notice it more. Maybe you haven't seen it here because so few people actually play Reaktor instruments with a keyboard :)
     
  4. smart_hex

    smart_hex New Member

    Messages:
    176
    I read about this on the Sound on Sound web site, http://www.soundonsound.com/sos/may00/articles/synth.htm

    Allegedly, as soon as there is more than one modulator, the index used is the the Bessell function, which looks like another kettle of fish altogether.
    Does reaktor have the power to do true D. X. synthesis?
     
  5. toto le robot

    toto le robot NI Product Owner

    Messages:
    663
    chris, you are right, index works like when you want to do a vibrato that you plug in the f input of an osc, if you want a vibrato, let say of 1 half tone, the f amount will vary with the pitch. this is why they use index in dx synthesys to keep the ratio and the hartmonic content the same.

    with I=c/m

    you got the harmonics with this rule
    f=c+-km with k=0 to I+2.

    you don't need o have I<6 because harmonic amplitude >6 are so little that you don't hear it, that make the fm synthesys much more easy.

    i'll have to read again but the rule with neg freq are simple something like reflect it thru c and change the phase. you get the amp of each freq by the bessel function. you don't need to have it in the synth, it is just the way fm works. the amp of harmonic are related to a bessel function.Jn where n is k (I think).

    so smart hex dx synthesis is easy to implement in reaktor. if you look at fm 7 you'll find no bessel function in it. you just use it if you want to calculate the spectrum, not to produce it.

    oh btw do you know spooggleworld? ;-)
     
  6. ZooTooK

    ZooTooK NI Product Owner

    Messages:
    1,751
    I'm not so much into the math of FM but putting a differetiator before the FM input of the carrier and off you go - DX type FM. I got that idea from a NI developer working on the FM7.

    Keep in mind to not to use the P input at all (input a constant -200 cancels it completely).

    Look at the brilliant SY-FM in the user library. I'v compared the result with my trusty old DX9 and it's very accurate.
     
  7. smart_hex

    smart_hex New Member

    Messages:
    176
    I'm glad I've seen that synth zoo, it sounds very authentic, although most ways very similar to all the other frequency modulation synthesisers.
    The differentiator is a way of sidestepping true frequency modulation.
    I still think the best FM on reactor is inhuman logic, because of the nice filters, although it's definitely possible to make something twice as crazy sounds.

    Does anyone know if the Bessell function is possible in a reaktor? I just make sequences and ABC albegra perhaps Nowak would know? this would enable you to have 15 FM oscillators in the matrix simultaneously with coherent and interesting results. Toto, you sound like perhaps you could be able to make a synthesiser using Bessell ?
     
  8. toto le robot

    toto le robot NI Product Owner

    Messages:
    663
    I don't get the interest of the differentiator as derivate of sin is cos, seems to be like adding PI/2 to the osc?

    I'm too tired!

    and smart hex I don't understand you message about 15 op in the matrix but I can answer you about how implementing a bessel function in reaktor.
    as it is a serie the best way is to store the result of Jn(x) in a table (n,x).it seems that mathematica can do the calculation for you so you can import in text format in the table otherwise you can find calculation tables on the net. as bessel function are continue don't forget to set x interpolation on your table.
     
  9. ZooTooK

    ZooTooK NI Product Owner

    Messages:
    1,751
    Just a clarification: putting a differentiator before the fm input makes it into phase modulation not fm modulation... but that's how Yamaha and Casio implemented it anyway I believe...
     
  10. smart_hex

    smart_hex New Member

    Messages:
    176
    Cheers Toto, mathematically too advanced the me for the moment. If someone managed to link 20 oscillators with appropriate carrier operator functions what you think the result would be? a radically improved expression of frequency modulation?
     
  11. toto le robot

    toto le robot NI Product Owner

    Messages:
    663
    I've never heard about that and I don't see how it does PM. could some math student do the mathematical demonstration of this assertion?
    (john? darklogik? clist? anybody?)
    I finish my studies 12 years ago and I'm not in math anymore but my thinking is this.

    I think we can consider a modulator as this function:

    f(t)=(at+b)sin(nt)

    with t is the time (at+b) is the adsr

    the differentiator is the operator d/dt.

    can someone calculate d/dt(f(t))?

    that way we'll see. but my way of thinking might be wrong.
     
  12. smart_hex

    smart_hex New Member

    Messages:
    176
    Hence no pitch shift will occur. Also, consider that a highpass filter acts like a signal differentiator for signals whose frequencies are on the low frequency cutoff slope region of the filter. Frequency modulation with the derivative of a signal is similar to phase modulation with the signal itself (since frequency is the time derivative of phase). Thus, signals applied to the FMB input result in something similar to phase modulation, as in the Yamaha systems. For modulating signals with frequencies above the cutoff frequency of the highpass filter, the modulation will be of frequency and not of phase, so the character of the sound created by the modulation with high frequencies will be different than that for modulation with low frequencies. One might want to lowpass filter the modulating waveform to eliminate the high frequency components that will adversely affect the sound.

    One from this great resource.
    http://www.cim.mcgill.ca/~clark/nordmodularbook/nm_oscillator.html
     
  13. toto le robot

    toto le robot NI Product Owner

    Messages:
    663
    thanks for the link.:)
     
  14. toto le robot

    toto le robot NI Product Owner

    Messages:
    663
    I've been playing with fm7 to day to understand and try stuff. I'm very surprise by the factory preset I look into they don't use a lot of carrier modulator in fact most of the time they use one,but they use the six operator by doubling structure with little change in the op values to produce bigger stereo sound. the interest of having 20 osc would be to do lots of change in the harmonic content. but I think you can do that with less op link together but with different EG for each links. so I think 6 op with 2 voices per note with some spread is enough but an EG for each link would be cool, like in absynth. maybe fm77?considering 6OP plus a direct out that make 7 ouput so should be something like 49 envs, not sure the cpu can handle it.
     
  15. herw

    herw NI Product Owner

    Messages:
    6,421
    PM and FM
    d/dt (f(t)) = a*sin(nt)+(at+b)*n*cos(nt)

    ciao herw
     
  16. toto le robot

    toto le robot NI Product Owner

    Messages:
    663
    thanks herw!

    that's what I thaught, there is no phase modulation in this formula.

    as PM should be in the form of

    f(t) =Fenv(t).sin(t+PM(t))

    where PM(t) would be the function used to do the phase modulation.

    searching more with the link given by smart hex I found this:

    There are two advantages of PM over FM. The first is that it allows selfmodulation of an oscillator without changing the fundamental frequency of the resulting waveform. The second is that the fundamental of the resulting waveform doesn't drift if the modulating waveform contains a DC component (DC as opposed to AC), meaning that the average energy of the waveform is slightly positive or negative instead of true zero.

    smart hex where did you get that freq is time derivative from phase?

    I understand that using a diferentiator will get rid of a dc offset as derivative function get rid of constant.but that's all.

    I'm lost.
     
  17. machinehermit

    machinehermit Forum Member

    Messages:
    403
    I know ive used an ensemble by sigmar kreie before that has all the FM stuff expressed in ratios. does anyone remember what ensemble this is?
     
  18. herw

    herw NI Product Owner

    Messages:
    6,421
    search in the user library with Siegmar Kreie (which ensemble?)

    ciao herw
     
  19. jjclark

    jjclark NI Product Owner

    Messages:
    112
    Toto,
    Seeing as how that is my link you are talking about, maybe I can clear things up a little bit...

    Consider a sine wave with a constant frequency, F: f(t)=sin(2*pi*F*t)
    It's phase is not constant, in fact the phase increases linearly with time. You can think of the phase as the (unwrapped) angle that is the argument of the sine function. This would have that the phase P(t) is P(t)=2*pi*F*t. The derivative of P(t) is then dP(t)/dt=2*pi*F, or
    F=dP(t)/dt*(1/2*pi). Thus the statement that Frequency is the time derivative of Phase.

    This example is for a linear phase (or a constant frequency). If the phase is increasing non-linearly, then its derivative is no longer constant, and we talk about the "Instantaneous Frequency", since the usual concept of the frequency of a sine wave doesn't make sense any more.

    So, to implement Phase Modulation we can pass the phase modulating signal through a differentiator and feed it into a frequency modulation input. Or you could design a VCO that modulates phase directly (e.g. by altering the pointer address in a wavetable osc).

    One thing that muddies the water a little bit is that synth makers often put a blocking capacitor on the frequency modulation input of a VCO (usually a linear mod input). The capacitor, for low frequencies, acts as a differentiator, and therefore will produce a type of phase modulation. But this will only happen for relatively low frequencies. For high frequencies the capacitor acts as a short circuit and you get regular frequency modu. The main reason the capacitor is added is to get rid of the DC level of the modulation signal. If there is any DC level, then the average frequency of the modulated signal will be shifted, and will sound out of tune. So, to keep things in tune, they put a blocking capacitor in there.

    JJClark
     
  20. toto le robot

    toto le robot NI Product Owner

    Messages:
    663
    many,many,many thanks JJCLARCK I will never look at a sine function the same way now!:)
     
Thread Status:
Not open for further replies.