簡単な記述だったので、note_onとnote_offに関してだけ通信してみた。
内容を変えると反応も変わる。
それは規則的だ。
しかし、信号の化け方が凄まじい。
note_onがprogram_changeに化けたり、miidiチャンネルが別のところだったり、ベロシティとかも、化けてて(ちゃんとした数値ではあるんだけど)。
それから、事件がひとつ。
ATmega328のICを壊してしまった。
DIYでATmegaICを壊したのは初めてだった。
GertduinoのICはブートローダーなしの分だった。
実は壊れた時のために予備を持っていた。
早速、取り換えた。
起動ヨシ!
壊れた理由を考えてみた。
浅はかな知識で、ttyMIDIをハッキングしようとして、何度も書き込みを繰り返したがそれは理由ではないと思う。
大きな穴って言うか、GertduinoはRaspberrypiとGPIOで接続されているので、Gertduinoに書き込みをした後、ジャンパピンを書き込みモードから通信モードに変えるときに電源が入ったまま抜き差しすることになる。
Arduinoのスケッチを書きこむたびにRaspberryPiを再起動するのはしんどい。
今回のケースはArduinoUNOでプログラムをテストしてから試せる内容ではないし(やろうと思えばデジタル端子から引き出してきて通信出来るとは思う)。
ハードウェアいじるのに電源が入ったままって仕様にはなっていないと思う。
ってか、このソフト自体を疑って、UNOで動作確認したほうが良かったかもしれない。
ようやく、現状のやり方では解決しないと思い始めて、ttyMIDI本体のソースコードを見ることにした。
ソースは短いものなので変数の把握だけできれば何をやっているかは分かりそうだった。
読めるといい勉強になるんだろう。
大事なエッセンスだけを抽出して、サイレントギター専用(なんといってもNOTEのONとOFFくらいしか使わないもの)のttyMIDI-miniを作れるかもしれない。
気体を抱きつつも、変数の多さに気が引ける。
出来るだろうか。
流れだけでも把握出来たら、Pythonでやるときの手がかりになるかもしれない(って初心者的希望!)。
追記!
シリアル通信でハローワールド!出来た!(文字化け解消へ)
