#author("2017-05-09T19:13:56+09:00","default:qua","qua")
* Mozzi [#z445bc71]
Toneより高機能の音声出力のためのライブラリ。
- [[公式ドキュメント>http://sensorium.github.io/Mozzi/]]
- [[ライブラリMozzi-1.0.2.zip>http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/lib/Mozzi-1.0.2.zip]]
- Arduinoとの接続~
スピーカには9番ピンとGNDを接続する。
** プログラミング [#lf041504]
外側に書く内容
 #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
#author("2019-04-21T23:41:57+09:00","default:qua","qua")

setup()の内容は、少なくともstartMozziを含むこと。CONTROL_RATEは上記で定義されている。
 void setup(){
   startMozzi(CONTROL_RATE);
   aSin.setFreq( mtof(60) ); // 中央のド
 }
loop()の内容は必ず次のようにする。これ以外を書かないこと。
 void loop(){
   audioHook();
 }
updateControlでは外部機器との入出力や、音程、音量などの制御を行なう。analogReadの代わりに、mozziAnalogReadを用いること。
 void updateControl(){
   int r;
   r = mozziAnalogRead(A0);
   r = map( r, 0, 1023, 0, 127 );
   aSin.setFreq( mtof(r) );
 }
updateAudioは音波の次のサンプル値を返す。
 int updateAudio(){
    return aSin.next(); // 正弦波の表からデータを返す。
 }

** [[Mozzi出力回路:http://sensorium.github.io/Mozzi/learn/output/]]のためのアダプタ [#mc74d01c]
-HiFi用
#ref(http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/img/mozzi_hifi.png)
右の9, 10, GNDをArduinoの9, 10, GNDピンへ。左の4つ並んだ方の端子にオーディオジャックを接続。
-Standard用ローパスフィルタ
#ref(http://www.ist.aichi-pu.ac.jp/lab/qua/~qua/pbl/img/mozzi_std.png)
右の9, GNDをArduinoの9, GNDピンへ。左の端子にオーディオジャックを接続。


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS