2019年12月29日

FrequencyDetectorの改装を行う

今日は、年内最後になるかもしれないプログラムの大改装を行っている。

ここ最近の試験運用で気になっていたのは、左手の分解能を「粗く」感じることで、実際のところはどうなのかをLEDのマーカーを使って調べてみると、本来12bit幅はある筈の変化量が高々10bit程度なことが判明、周波数ディテクタ関連の設定を根本的に考え直さなければならなくなった。

Screen Shot 2019-12-29 at 16.12.17.png

チューニングモードで左手側のダイナミックレンジ=聴感上の周波数変化を測ってみると、これが実質1Octに満たない状態で、なるほどこれは由々しきナローレンジだ。 周波数が低い方のレンジを稼げないのはFTMの設定の問題で、プリスケーラの分周率を上げることでディテクトが可能な最低周波数を拡張した。 

Screen Shot 2019-12-29 at 14.40.34.png

改装後は大凡12bitのダイナミックレンジを確保できたが、改変のついでにディテクター出力のオフセット値を現実的な領域まで狭めて、全体の変化量に合わせた。

Screen Shot 2019-12-29 at 14.34.15.png

Volumeカーヴの出力は専用のWavetableにアンテナからの復調信号のアップエッジをカウントしたレアデータを対応させて生成しているが、よりスムーズな変換を行うためにレアデータの方にも新たなLPFを噛ませることにした。

Screen Shot 2019-12-29 at 14.34.45.png

再起動後に謎な挙動を示すオフセットの設定不良は、ロータリーエンコーダでオフセットを調整してEEPROMに記録する際に、修正値にデフォルト値の加算を忘れていたことが原因だった。

Screen Shot 2019-12-29 at 14.37.54.png

暫定的に同じ値を割振っていたDetectorOutとWavetableのLPFを個別にチューンした。 特にDetectorOutの方は周波数が高くなる方向で音量が小さくなるように逆転した設定を行っているが故に、周波数の変動率はピアニッシモの方が大きくなる特徴があり、それに準じたLPFの帯域設定を行う必要があった。

その他、TransitionControlで行っていたモジュロ演算を簡略化して、構成をシンプルにしている。

Screen Shot 2019-12-29 at 14.35.19.png

改良の結果、グリッチは依然として発生しているが、発生域とレベルをそこそこ押さえ込むことが出来ている。
posted by Yasuski at 16:19| LaVoixski