2019年02月05日

音源の改良、Arpeggiatorのサブルーチン化とSequencer使用時に発生するピッチの変動問題について

昨日からオシレーターのミックスデータを組み直しているが、オーヴァーレベルによって稼動域が極端に狭くなるディストーション系プリセットのレベル調整が難しい。

現状は、どちらかというと「ソフトに歪む」設定が手薄なので、その辺りの感触をターゲットに音色のデザインを進めていく。

特に仕込み領域のアドレスはツールによる書き換えが必須(ローカルで変更が不能)なので、この部分の調整は手堅く行う必要がある。

現在は暫定で、sin8波、cos4 波、半波長sin、鋸波、三角波、矩形波、ヴァイオリン風の波形 の17種類のWavetableをエントリーしているが、倍音構成が異なる基本波を展開するのが今後の課題だ。

C#SVの規格変更によってArpeggiatorの高域側の設定がズレたので、試しに動作させてみたところ、予想通り不具合が発生している。 動作を修正するには、楽器を分解してデータが格納されたmicroSDを取り出す必要があるが、プラスドライバーを使って側面パネルのネジを4個も外す作業工程を熟すのは一寸億劫に思える。 今後のサービス性を考えた場合、USBから一括書き換えが行えるツールがあった方が便利そうなので、ファイルを一気に書き換える仕掛けを作ることにした。

WS001634.JPG

一方、このところの懸案だったSequencer起動時に主旋律のピッチがヨレる現象は、ソフトウエアの構造を合理化しても解決出来る兆しが見えない。 以前は有効だった筈の制御ルーティン側のインターラプト・マスクを調整してみたが、こちらも上手く行かない。 システムに実装している簡易なシーケンサーは「オマケ」みたいなものなので、これの完成度に拘る必然は無いと思っているが、如何せんピッチが揺らぐのは気味が悪い現象なので、引き続き調査を行うことにした。

その後、Sequencerモード下で発生する「ピッチのよじれ」を巡っていろいろと実験する過程でArpeggiatorのサブルーチン化を行ったりしていたが、

WS001632.JPG

怪し気に見えるmetro周りのコードを解析しても直接的な原因を特定出来ず、肝心のトラブルは一向に解決しない。

症状の発生するタイミングが、Sequencerモードにおけるクロックの表示=空色にLEDを発光させた時だったので、極性を確定するためにLEDのアサインを反転してみたが、何故か状況は変わらず「空色が発色するタイミング」でピッチが上昇する方向によじれている。 

以上の点灯実験から、原因はコードではなく「物理」にあるのではないか?という疑問が生じることになった。

つまり、LED周りの回路が怪しいということで、試しにオレンジの発光を止めて別の色味に設定をやり直したところ、件の「よじれ」は消滅した。

WS001633.JPG 

結局のところ、ピッチは空色のクロックに反応していたのではなく、オレンジの発光に反応して低い方にドリフトしていたということになる。 クロックの点滅表示から連想して、「クロックに関係するルーティンによって負荷が発生している」という予断を行った結果、ドリフトの方向を間違うことになった。

今回のケースでは、おそらく回路上の問題(消費電流もしくは配線の取り回しによる)が、オシレーターのピッチに影響を与えていたのだろう。 予想外の物理的な要因で問題が発生した結果、対策が無用に混乱する典型的なパターンを踏襲した形といえる。

現状のハードウエアは以前よりも程度がマシになったとはいえ所詮は掘っ立て小屋っぽい状況なので、そろそろこの環境を卒業すべき時期なのかもしれないが、ひとまずはソフトウエア側の合理化からこなして行きたい。

WS001631.JPG
posted by Yasuski at 16:31| LaVoixski