アナログシンセ掲示板ログ閲覧所
Library of BBS for DIYers of Analog Synth

[ トップページへ / 一覧表示 / 最新記事 / 管理用 ]
[ to Top Page / Title List ]


設計と製作 Re[2]:ソフトウエアEGの仕様
#8778
この記事の投稿者にメールを送信 takeda (2007年12月27日21時32分)
LFOのテーブルレスアルゴリズム検討

フォローいただくと、心強いな。とりあえず、試行錯誤の最初のポイントはココっちゅーことで。上手くいけばラッキーだし。必要なら、また、変更と...。
RJBさんのソフトが30秒程度に対応との事だし、氏のソフトとは違うなんかとして公開するのが狙いなんで、一応なんか差別化しなくちゃと、短めのをやってみますね。

仕様は0.3Hzから16Hzとすると51倍の変化。最小単位時間を124usとすると256段ステップを往復して16Hz(63.5ms)。この時の変化の傾きは1。傾きが1/51になれば、0.3Hzぐらいになる。
5/5=1とすると、5/255が1/51と同値と考える(正規化されて無い傾きで考える)ADコンバーターの1段の変化で、0.2ずつ、もとの周波数から変わるという感じ。
ADコンバーターで得られる数字は0-255のつもりで、これが、分母になるというわけ。(本当は分母は、5-255の変化で無きゃいけないんだけど、5以下は1としてみても、250段階の変化が表現できるし、0V周辺や5Vは誤差で思う数字が出ないとすると遊びが必要かもとかいいつつ逃げたりして。)5以下なら5にしちゃう方向で、特にコンバートしないで0-255のままでいけそう。

で、仰る通り、そのまま、ADCの変化を指数カーブへの変換がむずかしそうです。使い道は多そうだから、代表的な係数のテーブルとして使いまわせるかなと、エクセルでいろんなカーブを表示して見ましたー。

http://www.aleph.co.jp/~takeda/radio/parm/work/exp-curve.gif
http://www.aleph.co.jp/~takeda/radio/parm/work/exp-curve.xls

これまで、集めたデータのチェックで、指数的な変化かどうかとか、みた経験はあるんだけど、自分で、EXPカーブを造ろうと思ったのは、実は初めて。ぽりぽり。
数表の部分は単純に、y=exp(x)としただけの数字をグラフ化したもの。、Y軸の変化を0-1、0-10、0-50、0-100(それぞれ、青、赤、黄色、空色)のグラフの形を正規化してみると見た目で全然形が違う。えー。(直線のグラフは、それぞれ、Y軸を対数目盛りにしたもの)
いまさらなんだけど...どのカーブを使えばいいんだろ。

1から51倍までかわるのだから、0-50のカーブが正解なのだとすると、いろんな値で使える便利な係数のテーブルってのはありえないのかな。
ChuckさんのLFOのソフト、スピードのとりだしのところカーブつけてるって仰ってたから、見直してみよう....。

[この記事の元になった記事]

Re:ソフトウエアEGの仕様 : アルゴ算法堂 (2007年12月27日00時49分)

[この記事に対する返事]

指数変換 : takeda (2008年01月07日19時37分)