iOS版 チャンクサイズ不正の標準MIDIファイル読み込み対応
エラーが発生したMIDIファイル(Track 01.MID)は、 チャンクサイズ(トラックサイズ)が5919byteと宣言されているにも関わらず、実際はトラック終端まで5918byteであった。 残りの1byteを読み取ろうとして、エラーが発生していた。
ファイル末尾は以下の通り。
2F 00 トラック終端 ここまで5918byte 00 謎の1byte ここまで5919byte [EOF]
データ異常の可能性はあるが、トラック終端からチャンクサイズに到達するまでのデータを 読み飛ばすことで、ファイルを読み込めるようにする。
トラック終端を読み取った後に、指定されたチャンクサイズまでファイルを読み飛ばす処理を追加。
トラック終端フラグ(pIsEndOfTrack)を設定するときの判定方法が誤っていた。 バグであるがこれまで実害はなかった。
MIDIファイル読み込み時にエラーが発生するとの報告があった。
ダウンロードしたファイルを展開して、MIDITrailでファイルを開くとエラーメッセージが表示される。
MIDITrail Ver 1.3.3 for iOS でファイルを開いた時のエラーは以下の通り。
macOS版の以下チケットをマージする。
参考:Windows版チケット