ぼちぼちとであるが、MIDIメッセージ処理部分を作り始めている。まずはデバイス指定ダイアログを作り、指定したデバイスを初期化する部分を作ろうとしている。それからシーケンスデータをMIDI出力に変換したり、MIDI入力をシーケンスデータに変換していく部分を作っていく。
私はUI作りが苦手である。理由は作るのが難しいから。プログラミングを趣味で始めてから、ずーっと難しいものだと考えていていつもUIを作るフェーズになるとやる気が消失してしまうのである。まだ画面サイズが固定されている時代は良かった。さらにいうとテキストVRAMがあった時代はそんなに抵抗感はなかった。できることが少なかったからあんまり迷うこともなかった。今はもう画面サイズやDPI、文字サイズや文字間、文字種まで違う。さらにGUIともなればいろいろなウィジェットがあり、個々にコントロールする必要があるし、Windowsであれば膨大なAPIを使いこなさなくてはならない。まだ描画システムもGDI,GDI+,Direct2D,DirectWriteなどいろいろ選べるが、最新のものほど細かくコントロールできるようになっており、意図したように画面に表示するだけでも一苦労である。そんなこんなを考えると何も手がつかなくなってくる。
UIプログラミングは苦手だけれども、そうはいっても少しずつではあるけれども進歩はしている。ウィジェットをAPIで操作するときのお作法のようなものは割と身に付いていたりする。でも難しいものは難しい。特にDirect2DとWindowsのUIコントロールの共存とか、いまだによくわかっていないとか、古い技術と新しい技術をどう組み合わせるのが最適なのかというのはまだ模索している途中である。この部分は地道に積み上げていくしかなないのだろうね。しかし10年たっても私のUIプログラミングスキルは低いままだから、向いていないのかもしれない。素質がないというか。もうそういうのは面倒だからあきらめてコンソールアプリで作ったほうがいいかもしれないね。
あとUIというのはやりたい処理の本質的な部分ではなく、そこに大部分のリソースを割かれるのが嫌だという思いもあるかもしれない。 今回でいうと純粋なMIDI入出力部分のみに注力したいのだけれど、UI作りの部分に作業時間の大部分を取られてしまうという部分とか。