>>59
MIDI-IFの最小単位って、通信速度が
31.25Kbps(async)ってことを考えると、ポート単位では
出るかもしれませんね。

>>1は実時間ベースで一定時間を確保してからやろうと
してるみたいだけど、普通はそんなことしないと思う。
実時間はテンポと音長が確定済みな再生時にのみ必要で、
データ上では音長だけで良いよ。その辺は>>59さんの通り、
Timebaseを基本にtickを使えば良いよ。
双方向リスト構造でイベントをリンクするのが一番簡単ぽい。
再生時はテンポとTimebaseから最小単位が決まるから、
そのタイミングでタイマ割込みとかでタイミングとれば良し。

MMLは打ち込みはともかく、編集んときに全体を
見渡しにくいから駄目でしょう。
MMLビューも付いてる、てのならアリかもしれないけど。

あと、sysxでなくてsysexが普通だと思ってたんですが。