2016年8月26日金曜日

ベースマシンのUI シーケンス打ち込み

シーケンス打ち込みができるようにファームウェアをプログラミングした。Reasonというソフト・シンセのMatrixというシーケンサーを参考にした。

Reasonは実在のハードウェアを模しているので多分元ネタになっているシーケンサーがあるんだと思う。ハード→ソフト→ハードというリスペクトの輪廻である。


BaseMachine_Sequencer:
https://developer.mbed.org/users/ryood/code/BaseMachine_Sequencer/

mbed、mbed-rtosライブラリのアップデートのおかげでかなり混乱したが、以前のリビジョンに戻して、想定していた機能の実装はなんとかなった。

↓使っているmbed official libraryのrevision

mbed Rev 121
mbed-rtos Rev 117

メモ:


再生中にLCDを表示させたい。再生中もパラメータの更新は可能なので、シーケンスを走らせながら打ち込みしたくなる。再生中にLCDを表示させるとrtxのエラーが出る。RtosTimerがらみだと思う。地道に調査。

機能の拡張。モード変更ボタンを用意して、シーケンス打ち込みに使っているタクトスイッチやRotary Encoderを他の用途に使えるようにする。

パターン切り替えとパラメータの保存。16stepのパターンだけだとつまらないのでスイッチ等でパターンの切り替えが出来るようにしたい。また、SDカードか何かでパラメータを保存出来るようにしたい。

シーケンス打ち込み用のデバイスも使いやすいように筐体に収める。パラレルだと配線がぐちゃぐちゃするので将来的に専用のマイコンを入れてNucleoとシリアル接続出来るように考えておく。

BPMにenvelopeLengthを追従させる?

休符時にノイズが入る。NJM13700のDCAがすぐにはOFFにならないのか?これも要調査。