I've implemented a simple FM function in both C and in Max: f(t) = G * cos(2pi * fc * t + pd * cos(2pi * fm * t)) [the max code is pasted below].
However, the two sound quite different from one another (of course, using the same values for fm, fc and pd). The C code version sounds much "brighter".
What might be the reason for the difference? Does Max use a lower sampling rate, and so doesn't (by default) reproduce the higher frequencies? (The sampling rate for the C code was 44100).