Example 3
From CSWiki
FM synthesis:
[edit]
ChucK code
SinOsc c => Gain amp => dac; // carrier
SinOsc m => blackhole; // modulator
0.3 => amp.gain;
550 => float mf => m.freq;
300 => float cf => c.freq;
2 => float index;
while( true )
{
cf + (index * mf * m.last()) => c.freq;
1::samp => now;
}
[edit]
SuperCollider code
{
var cf, mf, index;
cf = 300;
mf = 550;
index = 2;
SinOsc.ar(cf + SinOsc.ar(mf, mul: mf * index), mul: 0.3).dup // .dup = duplicate = cheap stereo
}.play;
SC actually has a PM UGen (Phase Modulation synthesis and Frequency Modulation synthesis are basically the same sound), so this example could also look like this:
{PMOsc.ar(300,550,2,mul:0.3).dup}.play;
from DT here: this is super cool Jascha! there is also a ChucK FM synthesis ugen:
http://chuck.cs.princeton.edu/doc/program/ugen_full.html#FM
from JN: neat-o - this should totally be added to the ChucK code section as an alternative approach. i couldn't immediately see how to use it - can you post an example?
