2018年12月29日

ピッチ検出機構の改良

不安定なピッチ検出機構の改良を試行錯誤していたが、データを帯域制限した後に乗算してスケールを拡張する手法に到達するまでに数時間余りを費やすことになった。

ピッチの分解能の制限を安定性とトレードオフした結果、新たに立ち上がってくる問題は高音域の縮小で、制限前に6オクターヴだったものが5オクターヴ以下になってしまう。 このような状態を回避するため、当初はbitshift を使って2倍に乗算を行ってみたが、出力が荒れる現象は解消出来なかった。 結局は、出力値に1.5を掛けることで調整を行えたが、これは閾値の段差を上手く回避する方法だったようだ。

WS001547.JPG

その後、sequencerモード上で、アンテナ入力からドライヴする音源のピッチが、テンポを表示するLEDが点滅するタイミングでブレてしまう現象が発覚した。

ピッチ検出ルーティンに新設したタスクの増加による遅延の影響なのかどうかは不明だが、出来るだけシンプルな位置にsequencerのピッチを決定するコードを移転させることにした。

現状はswitchの条件分岐上にコードを展開していたが、

WS001546.JPG

これをクロックディバイダの直後に置き換えたところ、ピッチの崩れを解消することが出来たようだ。

WS001545.JPG

posted by Yasuski at 11:32| LaVoixski