重ね合わせ

サイン波の重ね合わせ。振幅は一定で周波数は整数倍になっています。奇数倍と偶数倍とか、さらに振幅をいろいろ変えてみたりとかできそう。

gain g => dac;
fun void sinbank( int num, float f)
{
   sinosc s[num];
   for(0 => int i; i<=num-1; i++)
   {
      s[i] => g;
      f + f*i => float pf;
      pf => s[i].freq;
      0.1 => s[i].gain;
   }
}
sinbank(10, 110.0);
2::second => now;

とある音響言語のGen関数みたいなのを作ってみてもイイかも。