I am trying to implement FM algorithms for computer music applications. The language I'm using (Nyquist) has a primitive FM oscillator called fmosc. I want to use modulators in series which is a very common technique in some Yamaha synths. In pseudo code it is the composition fmosc(fmosc(osc())) where all oscillators output sine waves. When I have tried this there are strong non-harmonic components even though all oscillators are at the same frequency and I am well below the Nyquist limit. I think the culprit is a strong DC component from the inner fmosc. My first thought was to use a very sharp high-pass filter around 20Hz, in pseudo code fmosc(hp(fmosc(osc()))). There was a marked improvement but also a distinct "blip" sound on the attack. Are there other ways to remove the DC component from a signal? Does anyone know how Yamaha does it? Thanks in advance. For those who are interested, Nyquist is a rather elegent language for sound synthesis and composition. It seems to get lost in the shadows of CSOUND etc.. You can find it at http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/music/web/music.software.html -- Remove underscores in email address to respond
Question about FM
Started by ●December 30, 2003
Reply by ●December 31, 20032003-12-31