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();
}
#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();
}









