再生終了後に音が鳴り続ける場合がある
NOTE ON したままトラックが終了するSMFがある。 シーケンサは素直に従うため、再生が終わっても音が鳴ったままになる。
問題のSMFは cvs.exe や rcpcv.dll で *.RCP から *.MID に変換したものである。 変換元の *.RCP で、トラックの最終データが次のように ST < GT になってると、 NOTE OFF が欠けたSMFができるらしい。変換ツールの不具合??
NOTE ST GT VEL B5 24 37 126 END_TRACK
SMFの仕様で、このようなデータへの対処方法(指針)が定義されているかどうかは不明。
再生終了時に、全トラックを NOTE OFF する。 少々乱暴であるが、音が鳴りっぱなしになることを確実に避ける。
データ終端に到達したら全トラックの NOTE OFF を行う。_AllTrackNoteOff()
全トラックノートオフの処理は実装済みであったが、 MIDIデバイスに送信するコマンドが間違っていたので修正する。
備考:ログインせずにチケットを登録してしまったので、報告者が(匿名)になっています。
特定のMIDIデータにおいて、曲の再生が終了しても最後の音が鳴り続ける場合がある。 曲の最後で NOTE ON したまま NOTE OFF しないMIDIデータで発生している。