2019年06月01日

choppingArpeggiator

Arpeggiatorのコードを再確認する過程で、Arpeggiatorにミュート機能を付加したアドレスの存在を失念していたことに気付いた。

ので、早速これをEnvelopeControlに応用することを思い付き、実装を始めた。

WS001852.JPG

Arpeggiatorのフレーズを格納したメモリーのアドレス#17から#20は、元々フレーズを任意のタイミングでミュートするために準備していたのだが、ミュートを行う手法が「ピッチの値に”0”を割り当てる」という野蛮な方法だったために、クリック音が大きくなり過ぎて実用不可と判断、そのまま放置していた経過があった。

WS001850.JPG

今回行った作業は、休符にあたる「@=ゼロ」を感知した時点で、LFO用に製作したミュート機構が起動するようにコードを改変することで、機能単体ではクリック音の発生を軽減しつつ確実に動作させることが出来た。

WS001849.JPG

問題はLFOモードとの共存で、条件分岐の設定を行うと何故か片方の機能が動作不能に陥ってしまう現象に悩まされることになった。

解決法を試行錯誤した結果、if構文の最初の段階で大まかな条件分岐をネストし、分岐の内部で更に条件を判断するという手法を採ることになった。 優先順位はLFOが優位で、ノーマル/ピッチベンドモード選択時にchoppingArpeggiatorの作動が可能としている。

WS001851.JPG 

Arpeggiatorのミュート機能はArpeggiatorのフレーズ選択アドレス#17~#20を選択すると自動的に機能がアクティヴェートされる。 

休符を含んだテクストファイルは以下のように記述する。

WS001853.JPG

後ほど画像をアップロードする予定だが、撮影の過程でなかなかに面白い効果が得られることが判明した一方、フレーズを仕込む段階から構想を練る必要性を実感させられた。
posted by Yasuski at 18:21| LaVoixski