ChucK/fm.ck
From CSWiki
Basic example: FM synthesis, by-hand, advancing time by one samp at a time.
Things to try:
- different modulator/carrier frequency ratios
- different index of modulation
- spork a shred to modulate the modulator, possibly at a lower rate
- spork a shred to play a tune
- run and watch the spectrum in the audicle
- a lot of other things
// carrier
sinosc c => dac;
// modulator
sinosc m => blackhole;
// carrier frequency
220 => float cf;
// modulator frequency
550 => float mf => m.freq;
// index of modulation
.5 => float index;
// time-loop
while( true )
{
// modulate
cf + (index * mf * m.last()) => c.freq;
// advance time by 1 samp
1::samp => now;
}
