As i suspected, i wasnt able to reproduce the simple feedback fm algorithm that is in the computer music tutorial book so i came here with hope that someone could help me patch a simple feedback fm algorithm in Pd or tell me what are the workarounds with feedback in Pd so i can build it myself.
Thanks in advance

Feedback FM algorithm

@acreil said:
[fexpr~] is just the loop filter, y[t] = 0.5(x[t]+x[t1]), as I said previously.
[fexpr~] is known to be quite computationally expensive. To avoid using it, you could do it this way:
[rzero~ 1]

[*~ .5](Disclaimer: I haven't actually compared the two.)

By the way, acreil, why would it create a burst if the feedback is too high? I haven't heard about this before. Could you link the patent?

Here's the patent (4249447): http://www.google.com/patents?id=IeA3AAAAEBAJ&printsec=frontcover&dq=4249447&hl=en&sa=X&ei=7vK4T_m5LKOH6QHH2pTsCg&ved=0CDUQ6AEwAA
Fig. 7 shows the oscillatory burst and Fig. 8 shows the filter. There's some explanation in the text.
I used [fexpr~] because I was hoping that other types of filters would produce better results. But everything I've tried ends up being worse. I was hoping to use something that has a null at Fs/2 and Fs/4, but it doesn't seem to work any better. It's probably better to just oversample so that all of the oscillatory stuff is outside the audible range.
Oh, also note that the feedback coefficients in the patent would be in radians, so they should be 2*pi larger than in my PD patch, since [cos~] includes the 2*pi.

Thanks!

Thank you acreil, that makes complete sense now.
The main problem i had was understanding what [fexpr~] was doing, since i couldnt understand why would you put a mathematical expression as a filter. But i made a little research and found this paper called "a general filter design language with realtime parameter control in pd, max/msp, and jmax" (anyone can google it and download the pdf) and it explains the family of [expr] objects, and now it all makes complete sense. And as i suspected i do need a little bit more math...
Thanks again!

Howdy, I'm trying to understand and recreate in Pd how the Feedback modulation works in FM8 (from NI) and how it really is the same as in DX7. I'm actually also using SuperCollider, which provides a self modulating oscillator (SinOscFB), but it just burst and blows up in noise way before the FM8 does with the same modulation index. I've made an equivalent patch in Pd for SinOscFB. Now, I know that in Supercollider there is no filter in the feedback, and I was checking the patents where they described the usage of a mean filter in the feedback loop.
I tried the mean filter in the feedback loop, but it doesn't really sound closer to FM8's self modulating oscillator. FM8 is supposed to be a kind of perfect clone to DX7. I don't have a DX7, but I have FM8, so I'm using it as a guide to recreate DX7 patches in Pd.
So yeah, basically, the mean filter didn't seem to work and I wonder if anyone could help me out here
thanks

@porres Hi did you get anywhere with this? Im doing a similar project atm with fm8. I have managed to get what i think is very close to the modulation index (although my tests show it to be slightly different from what i have been able to achieve  see my screenshots on this thread: https://forum.pdpatchrepo.info/topic/12453/phasemodulationfm8emulationtroubles/5) I dont need what im making to be exact but id like to be able to reverse engineer some of my favourite patches in fm8 in pd.
I am now looking to implement feedback and was wondering what the best way to implement this was, i also saw this post
https://forum.pdpatchrepo.info/topic/10864/fmfeedbackhack
and was wondering if you'd come across it too and if you can offer any advice from your experiences ? Cheersthanks
R 
@RandLaneFly Your pet subject has had people scratching their heads for a long time now..... https://cycling74.com/forums/dx7problemfeedbackgenerator
They discussed a duplicate modulator at the time.
And also a subpatch at blocksize 1 write/reading an array with [tabsend~] and [tabread~]
It does seem likely that once your modulator has calculated its values for a 64 block and fed them back the delay will cause additional complex modulation that is maybe what you see in your FM8 waveform and not in that from the DX7.
Were your spectra all sourced in the digital domain or was there some analogue involved? Some of it looks like analogue noise and some like digital clipping.
David. 
@whaleav hi thanks for your reply. To clarify, i havent actually attempted any feedback in those screenshots of the spectrums  i was purely testing mod index formulas. All screenshots apart from the FM8 one are from pure data, using the formulas given to calculate mod index from various sources, so it's all in the digital domain.
I dont actually know if the formulas are 100% correct but they seem pretty close comparing with fm8. I'm a bit in the dark about the whole 64 block issue so i will need to do a bit of research into that.
CheersR