電音の工場ブログ

趣味の電子工作を中心としたブログです.音モノの工作が多いです.

LFO for FX 進捗

LFO for FX 進捗

前回できなかったはんだ付け作業、プローブピンと内部状態モニタ用のLEDを付け、マイコンATtiny85を挿してICEを繋いでdebugWireで通信できる状態まで持って行った。電源は+5Vのままで。

f:id:Chuck:20101213075812j:image

週末の作業としては上記まで。なかなか没入するだけの時間を取らせてもらえない。

以下は移動時の思考のメモ…

以前に途中まで書きかけのコードがあったけれど、実体と合わないところが見えてきたので書きなおす。

パラメータも見えてきた。

システムクロック(FCPU =1/clk) 8MHz
LFO値更新レート(1/Fs) 32μsec (=1/31.250kHz = 256./FCPU )
位相アキュームレータフォーマット 10.22(符号なし整数部10bit、小数部22bit)
波形テーブル長(NTABLE) 1024 ( = 2^10 位相ACCの整数部でインデックス)
LFO 1Hz時の位相アップデート量(kstep) = 2^22 * NTABLE / Fs

システムクロック8MHzとして、256clkでLFOな処理(位相ACCの更新をして位相値から波形テーブルへのインデックスポインタを算出してPWMへ波形出力)する考え。計算が間に合わなかったらまた考える。

計算を楽にするためにはCVをAD変換した値から位相アップデートの量をどのように決めるかにかかってくる。ATtiny85はプログラム領域の容量をたくさん(8Kbyte)持っているのでここを使ってテーブルを持っちゃおう、と。

以前、

  • 0-5V入力で0.1~10Hzぐらい
はてなグループの終了日を2020年1月31日(金)に決定しました - はてなグループ日記 - 機能変更、お知らせなど

という仮仕様で考えていたが、テーブル変化が2の冪乗のほうが都合がいいので、0.125(=1/8)~8Hz に仕様を変更しようかなと考えた。

そしたら、

6オクターブよりは8オクターブのほうがいいぞ

と夢でお告げがあったので、0.125~32Hz にすることにした。

さて、まずはコントロール系のテーブルを作ろうっと。