ロータリーエンコーダを4つつけたので、実装する機能を色々考えてた。
思いついたのは以下
・BPM コントロール
・テンポの同期
・Swing
・Glitch
BPMコントロールは既にプログラムされてたので直ぐに動いた。表示パネルがないので、BPM同期してCubaseで録音してもBPMがわからない、そこでMIDI Time codeを送ること考えたが、色々調べてみたら、これはテンポというより、現在の再生位置の同期のようだった。
そこで、Artiria Beatstepはどうしてるのかマニュアル読んだら、MIDI Clockを送ってた。そこで、プログラムをしようと色々しらべてたら、MIDI Clock, 再生、停止の信号は、real time sendという信号に分類されるのて、note, sysEx を送信するのとは違うみたいだ。
しかしながら、なんとこのreal time sendは、oontzで使ってるMIDIライブラリーでは未実装。フォーラムでは作者が実装を検討してる事が、今月のレスとして存在していた。
しかし、Leonardo 以外のボードでは、real time sendがあるみたい…そもそも、なんでteensyduino と TeeOnArdu を採用したんだっけ?と読み直してみたら、Leonardoのチップに対応したMIDIライブラリーが、teensyduinoで、それをUSB-MIDIで使えるようにしたのがTeeOnArduと言うことっぽい。なので、純正のMIDIライブラリーに載せ替えるのは無理かも。MIDIの送受信をシリアル化すればいける?
選択肢としては、実装を待つか、自作するか。
ひとまず、保留にして、他の機能の実装について検討してみよう。
因みに、Arduino Leonardo はデジタル入力が13個あるものの、1番、2番は、SCL、SDAとつながってるので使えない。知らずに繋げたら期待通りの動きがせず、MIDI Noteが送信されたのでおかしいなーと思ってた。最終的に使えるのは11個。つなり 4個のロータリーエンコーダーをつけてるが、2個のプッシボタンは無しにするか、ツマミを1個無しにするかということになる。
そして、エンコーダーの爪は折り曲げないとケースが閉まらないので、収縮チューブも必要となる。これも買わないといけないな。