2018年08月01日

Open.Theremin@ArpeggiatorにSceneMemory機能を追加する

先日行ったライヴ演奏の体験で、演奏を行っている最中にVoiceModeを変更した場合に、Arpeggiatorのスピードやフレーズ等のパラメーターが固定されている状態が予想していた以上に遣い難いことが判った。

モードを切り替えても一本調子で同じパターンが機械的に繰り返されるシチュエーションによって、Arpeggitatorから感じられる「機械っぽさ」の印象が助長されてしまうのだ。

マイナスの印象を少しでも軽減するために、VoiceMode毎にそれぞれの設定が切り替わるようにインターフェイスを変更した。 構造は単純で、Arpeggiatorを構成しているコードのローカルに条件分岐によって切り替わるバッファーを組み込むだけ。 VoiceModeが切り替わるのと連動して、Arpeggiatorの設定も切り替わっていく。

現時点ではmicroSDに設定を記憶させる機能を追加していないために、事前にパラメーターを仕込むことが必要だが、これも使いにくいことが判明した時点で徐々に改善を行っていく予定。



試験運転を終えた後の印象としては、パラメーターがややこしくなる分だけ混乱を回避するためにメモリー機能が必要な感触だった。 一番にアクセスするのは緑=スピードなので、ここに読み込み機能を盛り込むか。

ついでに、Voice毎に音色も切り替えたほうが良いと感じたが、こちらはメモリーが必須。

追記:

その後、ヴォイスモードに連動したプリセットの記憶方法に関して試行錯誤を行っていたのだが、何故かメモリーした値の表示が狂ってしまう謎のバグが発生。外部に同じものを移植するとまともに動くという気味の悪い状況で、結局メモリー機能の実装はペンディングとなってしまった。

WS001388.JPG

モードによってローカルの設定を切り替える機能の実装は成功しているので、本番前にパラメーターを仕込めばよいのだが、電源が落ちれば終わる原始的な設定は出来れば避けたいところ。

が、ロータリーエンコーダーが絡む機能は、何故か基本設定値の扱いが難しく、なかなか上手く動作してくれない。

多分、「クリックエンコーダー」周辺の機能そのものに問題があるのだが、ルーティン内に仕込んでいる出力リミッターを外部に出し、エンコーダーからの出力はデータの増減のみに限定するのが正道っぽい。

ついでに、コンパイル時の設定をPure-Codeなるものに変更したところ、

IMG_8302.JPG

コード領域の仕様サイズが7%ほどアップしてしまった。 面白いのは、荒れていたVolumeアンテナ側の挙動がマシになったと感じたことで、(明らかに音量が下がっている)原因は謎だがひとまずこの仕様を運用を続けてみることにした。
posted by Yasuski at 23:37| open.Theremin