2013年05月24日

//加算合成(周波数の違う4つの正弦波を加算合成)

#include <MozziGuts.h>
#include <Oscil.h>
#include <tables/sin2048_int8.h>

//同じ正弦波テンプレートからaSin、bSin、cSin、dSinに入れる。
Oscil <SIN2048_NUM_CELLS, AUDIO_RATE> aSin(SIN2048_DATA);
Oscil <SIN2048_NUM_CELLS, AUDIO_RATE> bSin(SIN2048_DATA);
Oscil <SIN2048_NUM_CELLS, AUDIO_RATE> cSin(SIN2048_DATA);
Oscil <SIN2048_NUM_CELLS, AUDIO_RATE> dSin(SIN2048_DATA);

#define CONTROL_RATE 64

void setup(){
    startMozzi(CONTROL_RATE);
    aSin.setFreq(440);
    bSin.setFreq(640);
    cSin.setFreq(720);
    dSin.setFreq(850);
}

void updateControl(){
}

int updateAudio(){
    return aSin.next()>>2+ bSin.next()>>2+ cSin.next()>>2+ dSin.next()>>2;
/*それぞれの周波数の正弦波変数を4(2^2つまり>>2)で割って足す。4で割る理由は出力オーバーをさせないため。*/
}

void loop(){
    audioHook();
}

コメントする

名前
 
  絵文字