Toneより高機能の音声出力のためのライブラリ
外側に書く内容
#include <MozziGuts.h> #include <Oscil.h> #include <tables/sin2048_int8.h> // 正弦波の表 #include <mozzi_midi.h> // 音の高さを周波数に変換するためのmtof()関数を用いるため。 #define CONTROL_RATE 64 // 下記updateControlが1秒間に呼び出される頻度。2のべき乗を設定。 Oscil <SIN2048_NUM_CELLS, AUDIO_RATE> aSin(SIN2048_DATA); // AUDIO_RATEはサンプリング周期。デフォルトは16384Hz
setup()の内容は、少なくともstartMozziを含むこと。CONTROL_RATEは上記で定義されている。
void setup(){ startMozzi(CONTROL_RATE); }
loop()の内容は必ず次のようにする。これ以外を書かないこと。
void loop(){ audioHook(); }
void updateControl(){ }
int updateAudio(){ Q15n16 vibrato = (Q15n16) intensity * aVibrato.next(); return aCos.phMod(vibrato); // phase modulation to modulate frequency }