2019年02月03日

新しいWavetableのアップロードを行う

Thereminに新しいWavetableを読みこませて起動したところ、音源の具合が悪く妙なノイズが発生するようになった。

これはあからさまに怪しい現象なので、データ長を調べる仕掛けを組み込んで解析すると4095stepと表示された。本来は4096stepあるはずのデータが1bit分足りない。

この欠損によってノイズが発生している公算が高くなったので、読み込ませるデータそのものを調べたところ、怪しいところは発見できなかった。

WS001622.JPG

Screen Shot 2019-02-02 at 14.27.04.png

他に想定される怪し気な場所はデータをmicroSDから読み出すルーチンだが、データの区切りを判定するのにスペースとカンマを用いているところが疑わしい。

WS001623.JPG

「スペース」を読み出せない場合はカンマで区切るのが正解だが、読み込ませるデータを検討したところ、末尾にはカンマが存在していなかった。

WS001624.JPG

つまり、書き込み時にデータの末尾に「スペース」を挿入し忘れていた場合、データが字足らずになってしまうということで、これがノイズが発生する原因となっているようだ。

「スペース」は視認性が悪いので、安全を期するのであれば、データの末尾にカンマを書き加えたほうが良いだろう。

WS001625.JPG

データを修正してmicroSDに書き込んでテストを行ったところ、ノイズの問題は解決した。

Screen Shot 2019-02-02 at 16.00.16.png

音源が抱えていた問題を全面的に解決出来たのは非常に喜ばしいことだ。

追記:

microSDカード上に記録した「出力波形をセレクトするデータをアップロードするためのファイル」に"ゼロ"を書き込もうとすると、何故か56や54が記録されてしまうという謎のバグが発生、該当するチャンネルの出音がノイズになってしまった。

残念ながらバグが発生する要因を特定できないために、今回は根本的な解決策を発見出来ず。 対症療法としては"0"を扱わないという消極的なものしか思い付けなかったが、これによってひとまずトラブルの発生は回避出来た。

また、運用試験の過程で新たにアルペジエーターの下降再生モードの選択が無視されるバグを発見した。 

こちらの原因は、swich()回路内にbrake;の配置を忘れるという何時ものパターンで、該当する文言の追加によって問題を解決することができた。
posted by Yasuski at 03:33| LaVoixski