日中はとても暖かくなりました。
昨夜は雪が降り、その後雨となりましたが、午後の晴れ間に温度が上がり風も無く気持ち良く過ごせました。
TimidiS4には MIDI ファイルの演奏リスト機能があります。
今回新たに演奏リストウインドウを作りました。
演奏リストウインドウはドッキングとフローティングウインドウにする事ができます。フローティングウインドウではウインドウの大きさ変更が可能です。
従来からファイル一覧での演奏リスト表示はありました。
演奏リストウインドウでは、MIDI ファイル中に含まれるタイトルと、演奏時間を表示する事ができます。
タイトルは MIDI ファイルに含まれる先頭トラックのトラック名を探して表示します。この処理は比較的分かり易いです。
MIDI ファイルの演奏時間を求める処理は、結構大変です。
MIDI ファイルは、音符の発音長さをカウント数で決めます。
カウントの単位を決めるため、MIDI ファイルの中に4分音符のカウント数が定義してあります。
カウント情報だけでは発音を時間に換算できないため、MIDI ファイルの中にテンポとして4分音符の発音長さを us単位で表す数値があります。
演奏時間を求めるためには、MIDI ファイルの中の音符のカウントをテンポを基に時間に換算して、全て足し合わせる必要があります。
結局 MIDI ファイルを全て読み込み、処理する必要があります。
しかも演奏リストウインドウに表示する項目数だけ繰り返します。
処理論理を高速化してようやく実用的に使えるようになりました。
MIDI ファイル中にタイトルが含まれていない事が多々ありますが、演奏時間と一緒に表示できると選局するのに便利です。