Difference between revisions of "Example 3"

From CSWiki
Jump to: navigation, search
(SuperCollider code)
(SuperCollider code)
Line 33: Line 33:
  
 
http://chuck.cs.princeton.edu/doc/program/ugen_full.html#FM
 
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?

Revision as of 18:37, 11 October 2007

FM synthesis:

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;
}

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?