当ブログは…
心を入れ替えました
はまって(id:Chuck:20060315#p1)いたが、スタックして先に進めないのもなんなので、本当にぐぐっとシンプルにしてみた。
MICI2CV ATtiny2313(Simple)版 暫定仕様
- ATtiny2313 で
- 4ch PWM で次を出力
- ゲート出力 (極性を設定可)
- MIDIメッセージ
- 高音優先 mono mode, single/multiple trigger
- Legato対応
- Re-trigger対応(リトリガタイムは CC Legatoのローカル拡張で指定)
- ランニングステータス
- All note off (MM#123 (7Bh))
- Reset all controllers (MM#121 (79h))
- Active Sensing (FEh)
- System Reset (FFh) (できれば)
- 見ないMIDIメッセージ
- MIDI ch とかアサイン情報の類の設定はEEPROM記録とする
- I2Cからも読み書きはコードエリアに余裕があったらとする
- 処理済メッセージを抜いてのMIDI再送を行わない
MIDI再送をやめると決めた時点でずいぶんとすっきりした(筆者の中の仕様として)。
Legatoの実装方法はまだ悩ましいが、まぁ何とかなるだろう(ほんとか?)。
見ないといっているMIDIメッセージも、現時点では全てをパースしてunionかなんかに積んで、その上で然るべき処理に送り込みたいと思っているが、コードエリアに余裕がなければパース段階で捨てるとかするかもしれない。コモンメッセージなどはパラメータを引き連れているのも居るのでvoiceメッセージと同じような状態遷移が必要。
ずいぶんと減らしたぞ(どこがだ)。