midiを直接出力するプログラムを書こうとしていて、
和音の出力でつまづいています。

MIDIフォーマット(SMF)は、♪の開始、♪の終了を指定して音を鳴らします。

例えばドの音は次のように鳴らします
 時間0 ドの開始
 時間10 ドの終了
(時間0とあるのは、前の音符からどれだけ経過してから音を鳴らすか)
ミも同様に
 時間0 ミの開始
 時間10 レの終了

しかし、これを和音にすると次のようになります
 時間0 ドの出力
 時間0 ミの出力
 時間10 ドの停止
 時間0 ミの停止

つまり、合成することによって、(同時に音がなるため)
ミの停止の前の時間が0になってしまいました。
このように、単音の場合を単純に合成したものが和音の出力にならないのですが
考えやすいやり方ってありますでしょうか

同じタイミングでなり始めたことを調べるため
♪の開始、♪の終了ではなく
♪の開始、♪の長さ、からなる中間データを考えてみましたが
中間データ→MIDIデータの箇所で結局つまづいてしまいました。