2020年01月20日

ディテクタの改良

Pitch/Volumeデータが確定するタイミングを、FTMキャプチャ出力が更新されるサイクルの比較とadd_value(wavetableのポインタ)に設定した閾値で切替える機能を追加した。 

Screen Shot 2020-01-20 at 1.47.43.png

更新サイクルが長くなった方のタイミングで処理が行われ、補完のステップにはそれに準拠した値が設定される。

Screen Shot 2020-01-20 at 1.48.02.png

以前行った実験で、Pitch側のタイミングでデータを更確定させると高域でノイズが発生する現象を確認していたが、add_valueに閾値を設定しなかった場合に同じ症状が発現した。 

Screen Shot 2020-01-20 at 1.48.30.png

切替機能の実装後、低域で発生するグリッチが減少した一方で一定の周波数におけるバウンシングの発生を確認している。

オシレーターを物理的にリチューンするとバウンスが消滅することが判明しているが、原因がデジタル側のチューニングシステム内に潜んでいる可能性は否定できない。

現在は暫定でadd_valueの閾値を1000に設定しているが、これは低い方に修正を行うことになりそうだ。

そろそろLocalVariableに割振るRAMの容量が怪しくなってきたので、Wavetableを削除してRAMの余裕を増やしたが、

Screen Shot 2020-01-20 at 0.01.11.png

Screen Shot 2020-01-19 at 17.06.32.png

重タスク環境下でフリーズが発生することが判明、オプティマイザをSmallestCodeからSmallestCodeWithLTOに変更する必要が生じている。

その後、オシレーターのリチューンを行う過程で、ディテクタが参照するオシレーターの素の発振周波数の下限値がバウンシングの発生要因となっている可能性が示唆された。 低い方に周波数を拡張した場合にバウンシングが発生することから、入力信号のアップエッジのタイミングで瞬間値のキャプチャを行うリングカウンタが「一巡する周期」との関連性が疑われるが、その前にハードウエアの個体差から生じる物理的な影響を確認しなければならない。
posted by Yasuski at 06:55| LaVoixski