LoginSignup
12
10

More than 5 years have passed since last update.

ArduinoのオーディオライブラリMozziの基礎

Posted at

Mozziを勉強するにあたって自分用メモ。

リファレンスのメモ(英語がきわどいので間違ってるかもしれないw)

CONTROL_RATE
updateControl()が1秒間に何回読まれるようにするか決めるレート

audioHook(): 
こいつはArduinoのvoid loop ()の中に書く必要がある。こいつは一回だけ updateAudio() を呼んで、そのupdateAudio()の結果をアウトプットバッファに送ります。
loopにはこいつだけにしてほかの関数はupdateControl()に入れると動作が安定するよ。?

void updateControl():
startMozzi()関数でコントロールレートを決めて使ってね。コントロールレートのレートで呼び出されます。たとえ何も描かなくてもmozziを使うにはこの関数を作る必要があります。

int updateAudio():
AUDIO_RATE of 16384 Hzでオーディオ信号のアウトプットをとてもスムーズに行ってくれます。計算等の処理はここにはかかないでsetupかupdateControlを使ってね。

int mozziAnalogRead(uint8_t pin)
選んだピンのアナログインプットの値をほかの命令の実行を邪魔することなく読み込んでくれます。

Q0n7 Q8n0 などQanbシリーズ
いっぱいあります。小数点の位置を決めます。Qに続く数字が整数ビットの数。nに続く数字が少数ビットの数。基本合わせて8bitか16bitになっており7bitと15bitのやつは1bitが符号を現してます。

float mtof(float midival)
midiのノートナンバーを周波数の値に変えます。

Q16n16 Q16n16_mtof ( Q16n16 midival_fractional )
よりスピードをもとめるならこれ。さらに早くしたいならQ16n16_mtof()
Timing: ~8 us.

int8_t rand(int8_t minval, int8_t maxval)
最小値と最大値を決めてランダムな値を取得します。

以上Mozziの基本的な機能を紹介しました。
あとはクラスをつかって自由に遊びましょう。

12
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
10